Quelles sont les implications de l'utilisation de la directive de version «go» dans un fichier de module go (go.mod)


11

Étant donné le fichier go.mod suivant:

module foo

go 1.12

require (
    github.com/bar/baz v1.0.0
    github.com/rat/cat v1.0.0
)

Qu'est-ce que l' go 1.12indique? Cela empêche-t-il de compiler le foomodule avec toute autre version de Go? Ou s'agit-il simplement d'un indicateur de la fooversion Go recommandée / requise de Go? Est-ce une directive que nous devons mettre à jour chaque fois qu'une nouvelle version de go est publiée (tous les 6 mois)?



1
Aussi: golang.org/cmd/go/#hdr-The_go_mod_file : La version linguistique attendue, définie par la directive go, détermine les fonctionnalités linguistiques disponibles lors de la compilation du module. Les fonctionnalités linguistiques disponibles dans cette version seront disponibles. Les fonctionnalités linguistiques supprimées dans les versions antérieures ou ajoutées dans les versions ultérieures ne seront pas disponibles. Notez que la version linguistique n'affecte pas les balises de build, qui sont déterminées par la version Go utilisée.
icza

Réponses:


5

Il devrait être envisagé dans le sens d'une version Go minimale requise. Si vous construisez avec la même version ou une version supérieure de Go, tout devrait bien se passer comme promis par la promesse de compatibilité Go 1 . Si vous construisez avec une version inférieure, un message d'erreur s'affichera si la génération échoue:

La directive go dans un fichier go.mod indique maintenant la version de la langue utilisée par les fichiers de ce module. Il sera défini sur la version actuelle (passez à 1.12) si aucune version existante n'est présente. Si la directive go pour un module spécifie une version plus récente que la chaîne d'outils utilisée, la commande go tentera de construire les packages malgré tout et notera la non-concordance uniquement si cette génération échoue. Notes de mise à jour de Go 1.12

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.