¿Cómo funcionan los primeros números de versión para nuevos productos?

11

Actualmente estoy escribiendo una pequeña aplicación de escritorio para un amigo, pero lo estoy haciendo principalmente como una experiencia de aprendizaje para mí. En el espíritu de educarse y hacer las cosas de la manera correcta, quiero tener números de versión para esta aplicación.

Mi investigación trajo estos resultados relacionados

pero ninguno de ellos aborda la numeración de alfas, beta, candidatos de lanzamiento, etc. ¿Cuáles son las convenciones para los números de versión inferiores a 1.0? Sé que pueden continuar por algún tiempo; por ejemplo, PuTTY ha existido durante al menos una década y todavía está solo en la versión beta 0.60.

Estallidos
fuente

Respuestas:

30

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.
Michelle Tilley
fuente
Wow, eso es ... una gran edición. Te volvería a votar si pudiera.
Pops
2
¡Gracias! ^ _ ^ ¿Supongo que esta es la edición que me empuja a 1.0.0? :)
Michelle Tilley
@RossPatterson Los votos positivos y acepta son semánticamente diferentes; esta respuesta contiene mucha buena información, pero no creo que sea " la respuesta", por lo que la aceptación no se siente bien.
Aparece el
1

No creo que haya un "estándar" como tal.

Existe una convención para Release Candidates que generalmente es "[versión] RC 1", etc., dependiendo de cuántas versiones creas que puedes lanzar.

Si está lanzando una versión muy temprana de su producto, una que no tiene la función completa, es posible que desee utilizar la versión "0". De esa manera, puede incrementar la versión con el tiempo a medida que completa su conjunto de funciones.

Usaría "Alpha" y "Beta" como Release Candidate, por versiones de tiempo limitado para indicar que crees que estás cerca de lanzar la versión completa.

ChrisF
fuente
Pensé en esto, pero no puedo entender qué representa la versión 0. La diferencia entre 0.1 y 0.2, y entre 0.3.2 y 0.3.3, simultáneamente tiene y no tiene sentido para mí según el modelo de "lanzamiento menor" / "parche de corrección de errores".
Pops
@ Señor - es cierto que ahí es donde se cae ...
ChrisF
1

Hay una página de Wikipedia sobre versiones de software . Para compartir versiones anteriores a la 1.0, la convención utilizada por Apple y otros funciona bien: major.minor.maintSrev donde S es el indicador de etapa para las versiones preliminares: d = desarrollo, a = alfa, b = beta, rc = candidato de lanzamiento. Entonces, su primera versión interna podría ser 1.0.0d1.

Para revisiones completamente internas, la marca de tiempo es suficiente.

xan
fuente
0

Cada desarrollador en su mayor parte decide qué estándar van a utilizar. En general, aunque los números a la izquierda del punto decimal indican grandes revisiones que probablemente serían muy notables para el usuario promedio (es decir, cambios en la funcionalidad o la interfaz, etc.). En el lado derecho del punto decimal, esto sería un cambio / modificación / adición que no cambió mucho la funcionalidad general y el diseño, pero sí cambió algo sobre el programa en sí (es decir, hacer una función más rápido mientras sigue haciendo lo mismo o fijo un problema de seguridad). Luego, si agrega puntos decimales adicionales, los números a la derecha de estos indicarían cambios cada vez más pequeños (es decir, correcciones de errores menores / problemas de seguridad y demás).

Kenneth
fuente
Esta sería una buena respuesta para algunas de las preguntas relacionadas que enumeré en mi publicación y, de hecho, es bastante similar a algunas de las respuestas existentes a esas preguntas, pero realmente no aborda el caso de la "versión cero" Estoy preguntando por.
Pops
¿Por qué no lo hace? Todo comienza con 0 en informática ...
Kenneth
Honestamente, al final, la única persona o personas a las que el número de versión tiene un significado significativo son los desarrolladores En cuanto a los usuarios, solo tiene un significado relativo. Entonces, al final, los desarrolladores pueden usar más o menos el esquema que quieran.
Kenneth
0

Como han dicho otros, no parece haber un estándar exacto. Nuestra organización utiliza la siguiente notación:

Versión 1.0 ---> 2.0 (Una característica importante nueva / mejorada agregada al producto)

Versión 1.0 ---> 1.1 (Una característica nueva / mejorada de nivel medio agregada al producto)

Versión 1.0 ---> 1.001 (correcciones de errores)

Dal
fuente
1
"1.0 ---> 1.001 (Corrección de errores)" ¿En serio? ¿Por qué no 1.0.1? Eso es más usual. ¿Qué sucede si tienes 100 correcciones de errores?
James
@ James - Eso nunca sucederá (últimas palabras famosas que sé jajaja). En serio, nunca hemos llegado a 100 correcciones de errores a la vez, por lo que el número de sublanzamiento siempre ha cambiado antes de alcanzar este límite (1.1,1.2,1.3, etc.). Si alcanzáramos el límite, entonces podríamos tener que aumentar el número de sublanzamiento; contaría como una característica mejorada de nivel medio con tantas correcciones.
Dal
0

El hito de la "versión 1.0" es muy importante para los usuarios de computadoras experimentados, ya que implica que el programa está hecho y funciona como se esperaba. Cualquier cosa en la versión "0.algo" implica que los programadores mismos piensan que el programa aún no ha terminado .

Puede mantener los números de versión "0.1", "0.2" ... para los principales logros de la funcionalidad y luego subconjunto con un número de compilación que con frecuencia es una fecha y marca de tiempo suficientemente finas.


fuente
Para el desarrollo comercial, 1.0 con frecuencia significa que tiene errores, está incompleto y sufrirá cambios importantes muy pronto.
David Thornley