J'ai vu beaucoup de projets utiliser v1.2.3
comme convention de dénomination pour les balises dans git. J'ai également vu une utilisation 1.2.3
. Existe-t-il un style officiellement approuvé ou existe-t-il de bons arguments pour utiliser l'un ou l'autre?
229
v/
cette balise de groupe dans un espace de noms. 2. idéalement, une balise devrait également contenir un acronyme qui identifie de manière unique l'application. par exemplev/myapp/1.0
. Cela facilite la fusion du référentiel git: dans le cas où les applications seraient fusionnées, les balises ne se heurteront pas dans l'espace de noms des balises.Réponses:
La version 1.0.0 de Semantic Versioning , par Tom Preston-Werner de GitHub fame, avait une sous-spécification traitant ceci:
Cependant, après discussion, cela a été supprimé et n'est plus présent dans la dernière version de la spécification SemVer (2.0.0 au moment de la rédaction). Un fil de discussion ultérieur au même endroit est allé plus en profondeur et a abouti à une nouvelle version «v1.2.3» est-elle une version sémantique? étant ajouté à la FAQ dans la
master
branche de SemVer , bien qu'au moment de la rédaction (plus de 2 ans plus tard) ce changement ne soit toujours pas présent dans les spécifications officiellement publiées.la source
v
devrait être là cependant.Il semble y avoir deux conventions dominantes (en supposant que vous respectiez également une norme raisonnable pour numéroter les versions elles-mêmes):
v1.2.3
1.2.3
Les avantages
v1.2.3
sont que la documentation Git (ainsi que la documentation Mercurial) utilise ce format dans ses exemples, et que plusieurs "autorités" telles que le noyau Linux et Git lui-même l'utilisent. (Le versionnage sémantique mentionné l'a utilisé mais ne l'est plus.)Les avantages de
1.2.3
sont que gitweb ou GitHub peut automatiquement proposer un tarball ou un téléchargement zip du formulairepackagename-$tag.tar.gz
(et je pense qu'il est tout à fait établi qu'une tarball ne doit pas être nomméepackage-v1.2.3.tar.gz
). Alternativement, vous pouvez utilisergit describe
directement pour générer des numéros de version tarball. Pour les projets légers sans processus de publication officiel, ces possibilités peuvent être très pratiques. Il convient également de noter que la version sémantique n'est en aucun cas la seule norme universellement acceptée pour la numérotation des versions. Et des projets notables tels que GNOME ainsi que d'innombrables autres projets utilisent la1.2.3
dénomination des balises.Je pense qu'il est probablement trop tard pour consolider ces positions. Comme toujours, soyez cohérent et logique.
Mise à jour: Comme mentionné dans ce commentaire, GitHub propose désormais un nom tarball avec le «v» retiré de la balise.
la source
v
.La raison du «v» précédent est historique. Les anciens SCCS (cvs, rcs) ne pouvaient pas faire la distinction entre un identifiant de balise et un numéro de révision. Les identificateurs de balises ont été restreints pour ne pas commencer par une valeur numérique afin que les numéros de révision puissent être détectés.
la source
Pas que je sache de.
Mais Git n'autorisera pas une balise et une branche du même nom en même temps, donc si vous avez une branche "
1.1
" pour les1.1
travaux, ne mettez pas de balise "1.1
", utilisez par exemple "v1.1
"la source
Nouveaux conseils de gestionnaires de paquets pour baliser les versions sans préfixe
v
(comme le compositeur pour les projets PHP). SemVer 2.0 n'a rien sur la spécification des balises. C'est fait intentionnellement en évitant les conflits. Cependant, il est conseillé d'ajouter un préfixev
dans la documentation et les références textuelles. Comme exemple de formatv1.0.4
au lieu de pleinversion 1.0.4
ouver. 1.0.4
est assez bavard et élégant dans la documentation.la source
Nous utilisons des branches et des balises pour le travail spécifique à la version suivie de la version réelle, respectivement:
Chaque développeur décide mentalement si le travail qu'il est sur le point de valider s'applique uniquement à la maîtrise ou s'il est également pertinent pour la branche. Vous pouvez voir que les modifications apportées à la branche sont fusionnées sur le maître, mais certaines modifications sur le maître ne seront jamais apportées à la branche (c'est-à-dire celles qui ne sont pas destinées à la version 1.6, dans cet exemple).
Lorsque nous sommes prêts à publier, nous l'étiquetons puis fusionnons une dernière fois, et nous nommons la balise avec le même nom que la branche, mais avec un identifiant supplémentaire sur la version particulière, par exemple "1.6-release" ou "1.6-beta" ou "1.6-rc2", et cetera.
la source
Je ne connais aucune norme. Je choisis simplement les noms de mes balises pour pouvoir coller un
dans mes scripts de construction. Ainsi, la convention de dénomination des balises dépend en fait de la convention de dénomination des versions du projet.
la source
Il n'y a pas une meilleure pratique , je suis au courant. Voici quelques liens:
En général, le versioning (
0.0.1
,v0.2.1
, ...) peut - être la main dans la main avec une question de suivi pourrait être considéré comme une approche plausible. (.. bien que j'utilise habituellement desv
noms de balises préfixées .. voir aussi la réponse @VonC)la source