Lorsqu'on développe en Go, il arrive régulièrement de devoir tester un projet avec une autre version du langage, ou d'installer une version beta pour vérifier la compatibilité de son code. Avoir plusieurs versions de go sur son poste et en changer à la volée peut sembler difficile d'approche. Un outil propose une manière plus simple, sous forme d'un unique script shell.

D'autres outils comme gvm ou goenv permettent déjà de gérer plusieurs versions de Go. g propose une approche plus simple, sous la forme d'un script shell unique et lisible, sans dépendance ni écosystème de plugins.

Parmi les fonctionnalités proposées par g :

  • Installation rapide via un seul script, sans compilation
  • Téléchargement des versions officielles précompilées de Go
  • Exécution d'une version précise sans avoir à l'activer
  • Interface en usage interactif
  • Découverte des versions stables, mais aussi beta et RC

L'installation se fait en une seule commande :

curl -fsSL https://github.com/stefanmaric/g/releases/latest/download/install | sh

Une fois installé, g s'utilise avec quelques commandes simples :

g install latest          # installer la dernière version de Go
g install 1.22.2          # installer une version spécifique
g list                    # lister les versions installées
g list-all                # lister toutes les versions disponibles
g run 1.22.2 version      # exécuter une version sans l'activer
g remove 1.21.9           # supprimer une version installée
g self-upgrade            # mettre à jour g vers sa dernière version

En lançant simplement g sans argument, un menu interactif s'ouvre pour choisir la version de Go à utiliser parmi celles déjà installées.

L'outil s'appuie sur les variables d'environnement standards GOROOT et GOPATH, sans ajouter de mécanisme propriétaire.

Comme le laisse deviner son adresse, le code source de g est hébergé sur GitHub et publié sous licence MIT.

Si vous jonglez régulièrement entre plusieurs versions de Go, g peut simplifier ce quotidien sans alourdir votre environnement.