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.