269 votes

Existe-t-il une convention de dénomination standard pour les balises git ?

J'ai vu beaucoup de projets utilisant v1.2.3 comme convention de nommage pour les balises dans git. J'ai aussi vu certains utiliser 1.2.3 . Existe-t-il un style officiellement approuvé, ou de bons arguments pour utiliser l'un ou l'autre ?

25 votes

Avec 43 upvotes et plus, je me demande si cette question très précieuse ne pourrait pas être reformulée et rouverte, avec une réponse intégrant tous les points dans un joli résumé et se trouvant en haut ? La réponse de @PeterEisentraut semble être la plus complète, alors que la réponse acceptée par ATM semble un peu trompeuse. (Je pense que je vais moi-même utiliser la v1.2.3 pour les balises, après avoir lu tous les points).

1 votes

SO est pour fixer le code. Les meilleures pratiques semblent appartenir à génie logiciel.stackexchange.com o codereview.stackexchange.com

1 votes

Jetez un coup d'œil à semver.org (versionnement sémantique), cela devrait vous donner quelques idées.

187voto

peritus Points 1262

Version 1.0.0 de Versionnage sémantique par Tom Preston-Werner, célèbre pour GitHub. une sous-spécification en s'occupant de ça :

Spécification d'étiquetage (SemVerTag)

Cette sous-spécification DEVRAIT être utilisée si vous utilisez un système de contrôle de version (Git, Mercurial, SVN, etc.) pour stocker votre code. L'utilisation de ce système permet aux outils automatisés d'inspecter votre paquet et de déterminer la conformité SemVer et les versions publiées.

  1. Lors du balisage des versions dans un système de contrôle de version, la balise pour une version DOIT être "vX.Y.Z", par exemple "v3.1.0". .

Cependant après discussion ce point a été supprimé, et n'est plus présent dans le document 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 a été approfondi et a donné lieu à une nouvelle Est-ce que "v1.2.3" est une version sémantique ? être ajouté à la FAQ du site de SemVer master bien qu'à l'heure où nous écrivons ces lignes (plus de deux ans plus tard), ce changement n'a pas encore été effectué. toujours pas présent dans la version officielle de la spécification.

10 votes

Merci - C'est très proche. J'aurais aimé qu'il soit qualifié pourquoi le site v devrait être là cependant.

0 votes

Je vois que quelqu'un d'autre a eu la même idée : github.com/mojombo/semver.org/issues/unreads#issue/1

3 votes

@troelskn @mojombo == Tom Preston-Werner

117voto

Peter Eisentraut Points 12513

Il semble y avoir deux conventions dominantes (en supposant que vous respectiez également une norme raisonnable pour la numérotation des publications elles-mêmes) :

  • v1.2.3
  • 1.2.3

Les avantages de v1.2.3 sont que la documentation de Git (et aussi celle de Mercurial) utilise ce format dans ses exemples, et que plusieurs "autorités" telles que les Noyau Linux y Git lui-même l'utiliser. (La mention Versionnage sémantique avait l'habitude de l'utiliser mais ne le fait plus).

Les avantages de 1.2.3 sont que gitweb ou GitHub peuvent offrir automatiquement un téléchargement tarball ou zip de la forme packagename-$tag.tar.gz (et je pense qu'il est tout à fait établi qu'un tarball devrait pas être nommé package-v1.2.3.tar.gz ). Vous pouvez également utiliser git describe directement pour générer les numéros de version de la boîte à outils. Pour les projets légers sans processus de publication formel, ces possibilités peuvent être très pratiques. Il convient également de noter que Semantic Versioning n'est en aucun cas la seule norme ou une norme universellement acceptée pour la numérotation des versions. Des projets notables tels que GNOME, ainsi que d'innombrables autres projets, utilisent la norme 1.2.3 la dénomination des balises.

Je pense qu'il est probablement trop tard pour consolider ces positions. Comme toujours, soyez cohérent et soyez logique.


Mise à jour : Comme mentionné dans ce GitHub propose désormais le nom d'une archive avec le "v" supprimé de la balise.

13 votes

En ce qui concerne GitHub et la génération de tarball : ce n'est plus pertinent. Ils enlèvent le 'v' de l'étiquette.

6 votes

Le préfixe "v" est également très utile pour trier les balises par ordre alphabétique. D'autres balises peuvent également exister, que ce soit officiellement dans un dépôt maître ou pour suivre le travail d'un développeur localement. Avec le préfixe 'v', les balises de version forment leur propre groupe, au lieu d'être dispersées dans le reste de l'espace de nommage.

1 votes

Mise à jour de la réponse pour refléter que SemVer n'utilise plus de v .

85voto

Bill Door Points 2561

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 identifiants de balises ne devaient pas commencer par une valeur numérique afin que les numéros de révision puissent être détectés.

5 votes

+1 : Bonne première réponse et un nom tiré d'un de mes livres préférés :-) Mais peut-être que votre prochaine réponse portera sur une question plus actuelle.

1 votes

... mais si cela est seulement vrai pour plus vieux SVCS, si le but de cette réponse était une question sur le Git moderne ?

3 votes

C'est toujours utile dans git, afin de pouvoir distinguer facilement les balises de version des autres types de balises (les balises sont utiles pour beaucoup d'autres choses)

21voto

VonC Points 414372

Pas que je sache.
Mais Git n'autorisera pas un tag et une branche du même nom en même temps, donc si vous avez une branche " 1.1 " pour 1.1 fonctionne, il ne faut pas mettre une balise " 1.1 ", utilisez par exemple " v1.1 "

11 votes

A utiliser pour les branches 1.1.x. C'est tout.

1 votes

Belle prise, merci.

11voto

user2635057 Points 19

Conseils aux nouveaux gestionnaires de paquets pour marquer les versions sans préfixe v (comme compositeur pour les projets PHP). SemVer 2.0 n'a rien à voir avec la spécification des balises. C'est fait intentionnellement pour éviter les conflits. Cependant, c'est conseillé pour ajouter le préfixe v dans la documentation et les références textuelles. Comme exemple de format v1.0.4 au lieu d'un plein version 1.0.4 o ver. 1.0.4 est suffisamment verbeux et élégant dans la documentation.

22 votes

"il est conseillé de " Conseillé par qui, et où peut-on voir ce conseil dans son contexte original ?

0 votes

@bignose Regardez comment packagist ou maven central analyse le repos git. Il est préférable d'utiliser uniquement des chiffres, mais avec la version 1.xx, le 'v' est supprimé. Je crois qu'il y en a beaucoup d'autres, y compris pour debian/ubuntu. Packagist avait un article indiquant qu'ils préféraient l'étiquette numérique dans git et le préfixe 'v' dans la documentation, mais je ne peux pas le trouver maintenant.

0 votes

"Packagist a écrit qu'il préférait l'étiquette numérotée dans git et le préfixe 'v' dans la documentation [ ]" - Il s'agit donc d'une préférence pour ces projets ; il semble que personne ne doive y prêter attention.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X