Realmente depende del proyecto; Algunos proyectos ni siquiera lanzan una versión 1.0.
Los desarrolladores de MAME no tienen la intención de lanzar una versión 1.0 de su programa emulador. El argumento es que nunca estará realmente "terminado" porque siempre habrá más juegos de arcade. La versión 0.99 fue seguida simplemente por la versión 0.100 (versión menor 100> 99). De manera similar, Xfire 1.99 fue seguido por 1.100. Después de 6 años de desarrollo, eMule ni siquiera ha alcanzado la versión 0.50 todavía. Versiones de software en Wikipedia
Un método popular de numeración de versiones (que he comenzado a usar) es el control de versiones semántico .
Bajo este esquema, los números de versión y la forma en que cambian transmiten significado sobre el código subyacente y lo que se ha modificado de una versión a la siguiente.
Algunas citas para darle más ideas sobre cómo funciona y / o responder algunas de sus preguntas:
¿Cómo sé cuándo lanzar 1.0.0?
Si su software se está utilizando en producción, probablemente ya debería ser 1.0.0. Si tiene una API estable de la que dependen los usuarios, debe ser 1.0.0. Si te preocupa mucho la compatibilidad con versiones anteriores, probablemente ya deberías ser 1.0.0.
¿No desalienta esto el desarrollo rápido y la iteración rápida?
La versión principal cero se trata de un desarrollo rápido. Si está cambiando la API todos los días, debería estar en la versión 0.xx o en una rama de desarrollo separada trabajando en la próxima versión principal.
Si incluso los cambios incompatibles hacia atrás más pequeños en la API pública requieren un aumento importante de la versión, ¿no terminaré en la versión 42.0.0 muy rápidamente?
Esta es una cuestión de desarrollo responsable y previsión. Los cambios incompatibles no se deben introducir a la ligera en el software que tiene mucho código dependiente. El costo en el que se debe incurrir para actualizar puede ser significativo. Tener que superar las versiones principales para liberar cambios incompatibles significa que considerará el impacto de sus cambios y evaluará la relación costo / beneficio involucrada.
También hay reglas sobre cómo especificar versiones "alfa", "beta", etc. Consulte los detalles en http://semver.org/ .
[Editar] Otro esquema interesante de numeración de versiones es el que utiliza MongoDB :
MongoDB usa las versiones impares para los lanzamientos de desarrollo.
Hay 3 números en una versión de MongoDB: ABC
- A es la versión principal. Esto rara vez cambiará y significará cambios muy grandes
- B es el número de lanzamiento. Esto incluirá muchos cambios, incluidas características y cosas que posiblemente rompan la compatibilidad con versiones anteriores. Incluso los Bs serán ramas estables, y los impares serán desarrollo.
- C es el número de revisión y se utilizará para errores y problemas de seguridad.
Por ejemplo:
- 1.0.0: primer lanzamiento de GA
- 1.0.x: correcciones de errores a 1.0.x: muy recomendable para actualizar, muy poco riesgo
- 1.1.x: versión de desarrollo. Esto incluirá nuevas características que no están completamente terminadas y que están en progreso. Algunas cosas pueden ser diferentes a 1.0
- 1.2.x: segunda versión de GA. Esta será la culminación de la versión 1.1.x.