En mi opinión, casi cualquier esquema de número de versión se puede hacer funcionar más o menos sanamente. El sistema en el que trabajo utiliza números de versión como 11.50.UC3, donde la U indica el Unix de 32 bits, y el C3 es un número de revisión menor (fixpack); otras letras se usan para otros tipos de plataforma. (No recomendaría este esquema, pero funciona.)
Existen algunas reglas de oro que hasta ahora no se han establecido, pero que están implícitas en lo que la gente ha discutido.
- No lance la misma versión dos veces: una vez que la versión 1.0.0 se haya lanzado a nadie, nunca podrá volver a publicarse.
- Los números de versión deberían aumentar monótonamente. Es decir, el código en la versión 1.0.1 o 1.1.0 o 2.0.0 siempre debe ser posterior a la versión 1.0.0, 1.0.9 o 1.4.3 (respectivamente).
Ahora, en la práctica, las personas tienen que liberar correcciones para las versiones anteriores, mientras que las versiones más recientes están disponibles - ver GCC, por ejemplo:
- GCC 3.4.6 fue liberado después de 4.0.0, 4.1.0 (y AFAICR 4.2.0), pero continúa la funcionalidad de GCC 3.4.x en lugar de agregar las características adicionales agregadas a GCC 4.x.
Por lo tanto, debe crear cuidadosamente su esquema de numeración de versiones.
Otro punto, que creo firmemente en:
- El número de versión de lanzamiento no está relacionada con el CM (VCS) versión del sistema de numeración, a excepción de los programas triviales. Cualquier pieza seria de software con más de un archivo fuente principal tendrá un número de versión no relacionado con la versión de un solo archivo.
Con SVN, puede usar el número de versión de SVN, pero probablemente no lo haga ya que cambia de manera impredecible.
Para las cosas con las que trabajo, el número de versión es una decisión puramente política.
Por cierto, conozco el software que pasó por versiones de la versión 1.00 a la 9.53, pero que luego cambió a 2.80.Eso fue un gran error, dictado por el marketing. De acuerdo, la versión 4.x del software está/estaba obsoleta, por lo que no generó confusión de inmediato, pero la versión 5.x del software todavía está en uso y se vendió, y las revisiones ya llegaron a 3.50. Estoy muy preocupado por lo que mi código tiene que funcionar con el 5.x (estilo antiguo) y el 5.x (estilo nuevo) va a funcionar cuando se produce el conflicto inevitable. Supongo que tengo que esperar que se dediquen diligentemente a cambiar a 5.x hasta que el antiguo 5.x realmente esté muerto, pero no soy optimista. También uso un número de versión artificial, como 9.60, para representar el código 3.50, para que pueda hacer una prueba sensata de if VERSION > 900
, en lugar de tener que hacer: if (VERSION >= 900 || (VERSION >= 280 && VERSION < 400)
, donde represento la versión 9.00 por 900. Y luego está el cambio significativo introducido en la versión 3.00.xC3 - mi esquema no puede detectar cambios en el nivel de versión menor ... ... se quejan se quejan ...
NB: Eric Raymond ofrece Software Release Practice HOWTO incluyendo la sección (vinculados) sobre la denominación (numeración).
Ya discutido: [http://stackoverflow.com/questions/65718/what-do-the-numbers-in-a-version-typically-represent-ie-v1901](http://stackoverflow. com/questions/65718/what-do-the-numbers-in-a-version-typical-representation-ie-v1901) – Kev