Comment fonctionnent les premiers numéros de version pour les nouveaux produits?

11

J'écris actuellement une petite application de bureau pour un ami, mais je le fais principalement comme une expérience d'apprentissage pour moi-même. Dans le but de s'instruire et de faire les choses de la bonne façon, je veux avoir des numéros de version pour cette application.

Ma recherche a mis en évidence ces résultats connexes

mais aucun d'eux ne traite de la numérotation des alphas, des bêtas, des candidats à la libération, etc. Quelles sont les conventions pour les numéros de version inférieurs à 1.0? Je sais qu'ils peuvent durer quelque temps; par exemple, PuTTY existe depuis au moins une décennie et n'est encore qu'à la version bêta 0.60.

Pops
la source

Réponses:

30

Cela dépend vraiment du projet; certains projets ne publient même pas de version 1.0.

Les développeurs de MAME n'ont pas l'intention de publier une version 1.0 de leur programme émulateur. L'argument est qu'il ne sera jamais vraiment "fini" car il y aura toujours plus de jeux d'arcade. La version 0.99 a été simplement suivie de la version 0.100 (version mineure 100> 99). De la même manière, Xfire 1.99 a été suivi de 1.100. Après 6 ans de développement, eMule n'a même pas encore atteint la version 0.50. Versionnage de logiciels sur Wikipedia

Une méthode populaire de numérotation des versions (que j'ai commencé à utiliser) est la version sémantique .

Dans ce schéma, les numéros de version et la façon dont ils changent donnent une signification au code sous-jacent et à ce qui a été modifié d'une version à la suivante.

Quelques citations pour vous donner plus d'idées sur son fonctionnement et / ou répondre à certaines de vos questions:

Comment savoir quand publier la version 1.0.0?

Si votre logiciel est utilisé en production, il devrait probablement déjà être 1.0.0. Si vous avez une API stable dont les utilisateurs dépendent, vous devriez être 1.0.0. Si vous vous inquiétez beaucoup de la compatibilité descendante, vous devriez probablement déjà être 1.0.0.

Cela ne décourage-t-il pas un développement et une itération rapides?

La version zéro majeure est une question de développement rapide. Si vous modifiez l'API tous les jours, vous devez toujours être en version 0.xx ou sur une branche de développement distincte travaillant sur la prochaine version principale.

Si même les plus petites modifications incompatibles vers l'arrière de l'API publique nécessitent une version majeure, ne vais-je pas finir très rapidement avec la version 42.0.0?

C'est une question de développement responsable et de prévoyance. Les modifications incompatibles ne doivent pas être introduites à la légère dans les logiciels qui ont beaucoup de code dépendant. Le coût qui doit être engagé pour la mise à niveau peut être important. Le fait de devoir bump les versions majeures pour publier des modifications incompatibles signifie que vous réfléchirez à l'impact de vos modifications et évaluerez le rapport coût / bénéfice impliqué.

Il existe également des règles sur la façon de spécifier les versions "alpha", "beta", etc. Consultez les détails sur http://semver.org/ .

[Modifier] Un autre schéma de numérotation des versions intéressant est celui que MongoDB utilise :

MongoDB utilise les versions impaires pour les versions de développement.

Il existe 3 numéros dans une version MongoDB: ABC

  • A est la version principale. Cela changera rarement et signifiera de très grands changements
  • B est le numéro de version. Cela comprendra de nombreux changements, y compris des fonctionnalités et des choses qui pourraient briser la compatibilité descendante. Même les Bs seront des branches stables et les B impair seront du développement.
  • C est le numéro de révision et sera utilisé pour les bogues et les problèmes de sécurité.

Par exemple:

  • 1.0.0: première version GA
  • 1.0.x: correction de bogues à 1.0.x - hautement recommandé pour la mise à niveau, très peu de risques
  • 1.1.x: version de développement. cela comprendra de nouvelles fonctionnalités qui ne sont pas entièrement terminées et en cours de réalisation. Certaines choses peuvent être différentes de 1.0
  • 1.2.x: deuxième version GA. ce sera le point culminant de la version 1.1.x.
Michelle Tilley
la source
Wow, c'est ... tout à fait un montage. Je vous voterais de nouveau si je le pouvais.
Pops
2
Merci! ^ _ ^ Je suppose que c'est l'édition qui me pousse à 1.0.0? :)
Michelle Tilley
@RossPatterson Les votes positifs et les acceptations sont sémantiquement différents; cette réponse contient beaucoup de bonnes informations, mais je ne pense pas que ce soit " la réponse", donc l'acceptation ne se sent pas bien.
Pops le
1

Je ne pense pas qu'il existe une "norme" en tant que telle.

Il existe une convention pour les candidats à la sortie qui est généralement "[version] RC 1", etc., selon le nombre de versions que vous pensez pouvoir publier.

Si vous publiez une version très précoce de votre produit - une version qui n'est pas complète - alors vous voudrez peut-être opter pour la version "0". De cette façon, vous pouvez incrémenter la version au fil du temps lorsque vous remplissez votre ensemble de fonctionnalités.

J'utiliserais "Alpha" et "Beta" comme Release Candidate - pour les versions limitées dans le temps pour indiquer que vous pensez que vous êtes sur le point de publier la version complète.

ChrisF
la source
J'y ai pensé, mais je n'arrive pas à comprendre ce que représente la version 0. La différence entre 0,1 et 0,2, et entre 0,3,2 et 0,3,3, fait simultanément et n'a pas de sens pour moi selon le modèle "version mineure" / "patch correctif".
Pops
@ Lord - certes, c'est là que ça tombe ...
ChrisF
1

Il y a une page Wikipedia sur la gestion des versions de logiciels . Pour partager des versions antérieures à 1.0, la convention utilisée par Apple et d'autres fonctionne bien: major.minor.maintSrev où S est l'indicateur de stade pour les versions préliminaires: d = développement, a = alpha, b = bêta, rc = candidat à la libération. Votre première version interne pourrait donc être 1.0.0d1.

Pour les révisions entièrement internes, l'horodatage est suffisant.

xan
la source
0

La plupart du temps, chaque développeur décide de la norme qu'il va utiliser. En général, bien que les nombres à gauche de la virgule décimale indiquent des révisions importantes qui seraient probablement très visibles pour l'utilisateur moyen (c'est-à-dire des changements de fonctionnalité ou d'interface, etc.). Sur le côté droit de la virgule décimale, ce serait un changement / modification / ajout qui n'a pas beaucoup changé la fonctionnalité globale et la conception mais a changé quelque chose au sujet du programme lui-même (c'est-à-dire rendre une fonction plus rapide tout en faisant la même chose ou corrigé) un problème de sécurité). Ensuite, si vous ajoutez des points décimaux supplémentaires, les chiffres à droite de ceux-ci indiqueraient des changements de plus en plus petits (par exemple, corrections de bugs mineurs / problèmes de sécurité, etc.).

Kenneth
la source
Ce serait une bonne réponse pour certaines des questions connexes que j'ai énumérées dans mon message - et, en fait, est assez similaire à certaines des réponses existantes à ces questions - mais ne traite pas vraiment le cas de la "version zéro" Je demande.
Pops
Pourquoi pas? Tout commence par 0 en informatique ...
Kenneth
Honnêtement, la seule personne ou les personnes auxquelles le numéro de version a une signification significative est le (s) développeur (s). Quant aux utilisateurs, il n'a qu'une signification relative. Donc, à la fin, les développeurs peuvent à peu près utiliser plus ou moins le schéma qu'ils ressentent.
Kenneth
0

Comme d'autres l'ont dit, il ne semble pas y avoir de norme exacte. Notre organisation utilise la notation suivante:

Release 1.0 ---> 2.0 (Une fonctionnalité majeure nouvelle / améliorée ajoutée au produit)

Version 1.0 ---> 1.1 (une fonctionnalité nouvelle / améliorée de niveau moyen ajoutée au produit)

Version 1.0 ---> 1.001 (corrections de bugs)

Dal
la source
1
"1.0 ---> 1.001 (corrections de bugs)" Vraiment? Pourquoi pas 1.0.1? C'est plus habituel. Que se passe-t-il si vous avez 100 corrections de bogues?
James
@James - Cela n'arrivera JAMAIS (Derniers mots célèbres que je connais lol). Sérieusement, nous n'avons jamais atteint 100 corrections de bogues en même temps, et le numéro de sous-version a donc toujours changé avant d'atteindre cette limite (1.1,1.2,1.3, etc.). Si nous atteignions la limite, nous devrons peut-être augmenter le nombre de sous-versions - cela compterait comme une fonctionnalité améliorée de niveau moyen avec autant de correctifs.
Dal
0

Le jalon «version 1.0» est très important pour les utilisateurs d'ordinateurs expérimentés, car il implique que le programme est fait et fonctionne comme prévu. Tout dans la version "0.something" implique que les programmeurs eux-mêmes pensent que le programme n'est pas encore terminé .

Vous pouvez conserver les numéros de version "0.1", "0.2" ... pour les principales réalisations de fonctionnalités, puis les sous-définir avec un numéro de version qui est souvent une date et un horodatage suffisamment fins.


la source
Pour le développement commercial, 1.0 signifie souvent qu'il est bogué, incomplet et subira très bientôt des changements de rupture.
David Thornley