No aprendí programación en la escuela y no trabajo como desarrollador (profesional), por lo tanto, muchos conceptos básicos no me quedan del todo claros. Esta pregunta trata de aclarar uno de ellos.
Ahora supongamos que tengo problemas #1
, #2
y #3
en mi Rastreador de problemas que están configurados para ser corregidos / mejorados para la versión 1.0.0
y que la última versión (estable) es 0.9.0
.
¿Cuándo debo incrementar a la versión 1.0.0
? Cuando a) solo uno de los problemas enumerados anteriormente está cerrado ob) cuando todos los problemas relacionados con la versión 1.0
están cerrados.
¿Cuál es la forma correcta de hacerlo? Y por el camino correcto , me refiero a lo que se usa actualmente en la industria.
Respuestas:
Puedo decirte cómo lo hago en el trabajo.
Tenemos un servidor de integración continua que crea, prueba, etiqueta y genera un paquete versionado. Solo procedemos a la siguiente etapa si la anterior es% 100 exitosa.
Nuestra versión se ve así: <Versión principal>. <Versión menor>. <Número de compilación>
fuente
1.4.2
es "este conjunto de correcciones, y cualquier otra cosa lista en ese momento" ... También he visto1.4.2
como "Esto se lanzará en esta fecha con lo que esté listo". Depende de su ciclo de lanzamiento.Los números de versión solo son relevantes para las versiones , ya que son una forma para que los usuarios externos identifiquen una compilación específica de su software. Si solo estás ocupado desarrollando y no lanzando cada arreglo individualmente, entonces no te preocupes por incrementar el número de lanzamiento para cada arreglo. No es relevante para usuarios externos y pierde su propio tiempo con la contabilidad de versiones adicionales.
fuente
Para las aplicaciones web implementadas continuamente, tendemos a construir números de compilación utilizando symver por adelantado y un número de compilación, es decir: 2.5.3.4328, donde 4328 proviene del sistema de integración continua. La expectativa general es que los números cambian por pasos deliberados, pero que el número de compilación es la verdadera identificación única.
Lo que parece estar haciendo aquí es capturar el día de la implementación y el número de compilación svn relacionado:
Por lo que vale.
fuente
Las otras respuestas ya son geniales, así que solo agregaré encima de ellas. Si su software no se publica y realmente no necesita versiones públicas (la versión no pública es su VCS), entonces agregue la palabra clave " SNAPSHOT " al final de su versión. Algunos sistemas, especialmente en la gestión de dependencias, tratan las instantáneas de manera diferente a las versiones publicadas, ya que comparan la fecha de cambio de las instantáneas en lugar del número de versión. Entonces, si tuvo un v. 1.0.0-SNAPSHOT de 8am en un repositorio de paquetes y un descargador de dependencia local tiene la misma versión de 7am, debe descargar el actualizado del repositorio.
Como se dijo anteriormente, su sistema de control de versiones proporciona su versión privada (git, svn, etc.).
fuente
Ya se ha dicho lo suficiente sobre la teoría de las versiones aquí hay otro punto de vista.
Centraré mi respuesta en el cambio del número de versión principal.
Mi respuesta es: Básicamente cuando estás listo para ello. Pasar de 0.9 a 1.0 es una gran cosa, porque la percepción pública será que pasará de un producto beta a un lanzamiento oficial.
(Voy a asumir aquí que es un producto comercial de una compañía).
Algunas preguntas antes de pasar de 0.9 a 1.0.
¿Su organización tiene tiempo para informar a todos sus clientes actuales? Para hacer una fiesta. Obtenga muchas solicitudes de soporte. ¿Un gerente de cuenta para vender su producto? Etcétera etcétera.
Sí, veo el control de versiones como una herramienta de marketing y si miras a tu alrededor, ves que ese es básicamente el estándar de la industria.
Nuestra compañía pasó de la versión 2.x a la 3.0 y tuvo una gran fiesta, creó mucha expectación y por eso consiguió bastantes nuevos clientes. Además de algunas actualizaciones de la interfaz, las diferencias entre las versiones eran bastante menores.
fuente