ramirez número numero javier hacer cómo como cartón carton version product

version - numero - ¿Cómo hacer números de versión?



cómo hacer un número 3 de cartón (18)

Buena información aquí:

Cuándo cambiar las versiones de archivo / ensamblaje

En primer lugar, las versiones de archivo y las versiones de ensamblaje no necesitan coincidir entre sí. Recomiendo que las versiones de los archivos cambien con cada compilación. Pero no cambie las versiones de ensamblaje con cada compilación solo para que pueda distinguir entre dos versiones del mismo archivo; usa la versión del archivo para eso. Decidir cuándo cambiar las versiones de ensamblaje requiere una discusión sobre los tipos de construcciones que se deben considerar: envío y no envío.

Desarrollos no relacionados con el envío En general, recomiendo que las versiones de ensamblado que no son de envío sean iguales entre las compilaciones de envío. Esto evita problemas de carga de ensamblaje fuertemente nombrados debido a discrepancias de versión. Algunas personas prefieren usar la política del editor para redirigir nuevas versiones de ensamblaje para cada compilación. Sin embargo, recomiendo esto para las versiones que no sean de envío: no evita todos los problemas de carga. Por ejemplo, si un socio copia x su aplicación, es posible que no sepa instalar la política del editor. Entonces, su aplicación se romperá para ellos, a pesar de que funciona bien en su máquina.

Pero, si hay casos en que las diferentes aplicaciones en la misma máquina necesitan vincularse a diferentes versiones de su ensamblaje, recomiendo darles a esas construcciones diferentes versiones de ensamblaje para que se pueda usar la correcta para cada aplicación sin tener que usar LoadFrom / etc.

Creación de envíos En cuanto a si es una buena idea cambiar esa versión para el envío de compilaciones, depende de cómo quiera que funcione el enlace para los usuarios finales. ¿Desea que estas construcciones estén una al lado de la otra o en el lugar? ¿Hay muchos cambios entre las dos versiones? ¿Van a romper algunos clientes? ¿Te importa que los rompa (o quieres obligar a los usuarios a usar tus actualizaciones importantes)? En caso afirmativo, debería considerar incrementar la versión de ensamblaje. Pero, nuevamente, considere que hacerlo demasiadas veces puede ensuciar el disco del usuario con ensamblajes desactualizados.

Cuando cambia las versiones de su ensamblaje Para cambiar las versiones codificadas a la nueva, recomiendo configurar una variable para la versión en un archivo de encabezado y reemplazar la codificación rígida en las fuentes con la variable. Luego, ejecute un pre-procesador durante la compilación para poner la versión correcta. Recomiendo cambiar las versiones inmediatamente después del envío, no antes, para que haya más tiempo para detectar errores debido al cambio.

Mi compañía está construyendo un producto. Va a ser versionado por SVN. Es una aplicación web, así que, básicamente, nunca habrá una versión que no tenga algunas funciones y, por lo tanto, siempre se etiquetará como beta. Pero dado que se tratará de un producto corporativo, realmente no quiero que el "cliente inestable" esté allí. Entonces, ¿cómo harías para versionar? ¿Es 1.0 estable? ¿Debería la fecha de compilación estar en el número de versión? ¡Dime lo que piensan!


El control de versiones depende de usted; Colocaría 1.0 en la primera versión en la que confiaba. Quizá desee seguirla rápidamente con otras versiones, ya que algunos proveedores de software le han dado una mala reputación a 1.0.

Sí quieres una forma de vincular el número de versión con la compilación exacta utilizada, pero probablemente quieras que sea agradable y simple para tus usuarios finales. Considere usar números de versión estándar y etiquetar el repositorio SVN con el número de versión incluido.


En estos días, es bastante popular simplemente usar el número de revisión de Subversion.


En función de mi experiencia con la gestión de dependencias a nivel de plataforma empresarial compleja y el control de versiones de lanzamiento, he venido a recomendar un enfoque que me gusta llamar Versiones semisemanticas .

Básicamente se basa en Semantic Versioning 2.0 pero no es tan estricto.

Segmentos de la versión semi-semántica:

<primary.release.segment>[-<pre.release.segment>][+<post.release.segment>]

Formato del segmento de lanzamiento primario:

MARKETTING.MAJOR.MINOR.PATCH

Cada segmento debe permitir caracteres alfanuméricos, pero se recomiendan valores numéricos puros para cambios incrementales lógicos.

Como SemVer, recomiendo componentes Major, Minor y Patch para representar niveles de compatibilidad inversa, pero también recomiendo anteponer un componente de Marketing . Esto les permite a los propietarios de los productos, características épicas / grupos y negocios enfrentar el componente principal independientemente de las preocupaciones de compatibilidad técnica.

A diferencia de otras respuestas, no recomiendo agregar un número de compilación al segmento primario. En su lugar, agregue un segmento posterior a la publicación después de un ''+'' (por ejemplo: 1.1.0.0 + build.42). SemVer llama a estos metadatos de compilación, pero creo que el Segmento de post-lanzamiento es más claro. Este segmento es excelente para declarar los datos del sufijo como no relacionados con la información de compatibilidad en el Segmento de publicación principal. Sus compilaciones de integración continua pueden recibir el número de versión anterior anexado con un número de compilación incremental que se restablece después de cada versión primaria (por ejemplo: 1.1.0.0 -> 1.1.0.0 + compilación.1 -> 1.1.0.0 + compilación.2 -> 1.1.0.1). A algunas personas les gusta poner el número de revisión svn aquí o el bit de confirmación git para facilitar el enlace con el repositorio de código. Otra opción es usar el segmento posterior a la publicación para revisiones y parches, aunque podría valer la pena considerar agregar un nuevo componente de versión principal para eso. Siempre se puede descartar cuando se incrementa el componente de parche, ya que las versiones se alinean a la izquierda y se ordenan.

Además de los segmentos de publicación y posterior a la publicación, las personas a menudo desean utilizar un segmento de prelanzamiento para indicar pre-lanzamientos casi estables, como alfas, betas y candidatos de lanzamiento. El enfoque de SemVer para esto funciona bien, pero recomiendo separar los componentes numéricos de los clasificadores alfanuméricos (por ejemplo, 1.2.0.0 + alpha.2 o 1.2.0.0 + RC.2). Normalmente, se toparía con el segmento de publicación al mismo tiempo que se agrega el segmento de publicación posterior y luego se descartaría el segmento de prelanzamiento la próxima vez que se topa con el segmento de publicación principal (por ejemplo, 1.0.1.2 -> 1.2.0.0-RC.1 - > 1.2.0.0). Los segmentos previos a la publicación se agregan para indicar que se aproxima la versión de lanzamiento, por lo general solo un conjunto fijo de características para realizar pruebas más exhaustivas y compartirlas, que no cambian minuto a minuto en función de más compromisos.

La belleza de tener todo esto semánticamente definido de una manera que cubra casi todos los casos de uso es que puedes analizarlos, ordenarlos, compararlos e incrementarlos de manera estándar. Esto es especialmente importante cuando se usan sistemas de CI para aplicaciones complejas con muchos componentes pequeños con versiones independientes (como micro-servicios) cada uno con sus propias dependencias administradas.

Si estás interesado, escribí un analizador semisemático en rubí . Necesitaba no solo usar este patrón sino también administrar otras aplicaciones que lo usaban.


Esquema de la versión: [principal]. [Menor]. [Devrel] [marca]
[mayor]: incremente si tiene un cambio drástico en el desarrollo.
[menor]: incrementa si tienes un cambio menor en el desarrollo.
[devrel]: incrementa si tienes una corrección de errores. Restablecer a cero si ++ o menor ++.
[mark]: a, b o rc: a es una versión alfa, b es versión beta y rc es un candidato de lanzamiento. Tenga en cuenta que las versiones como 1.3.57a o 1.3.57b o 1.3.57rc son anteriores a la versión 1.3.57. Comience en 0.0.0.


La razón por la cual existe esta pregunta es porque no tenemos una sola forma acordada para hacer la administración de la configuración.

La forma en que me gusta hacer el número de versión es simplemente incrementar el número entero desde 1. No quiero un número de versión de varias partes que deba explicar o documentar. Y no quiero usar el número de rev. SVN ya que eso también requerirá algunas explicaciones.

Necesitarás algunos scripts de versión encima de SVN para que esto suceda


Los "números de versión" son una cuestión de su sistema interno de control de versiones. Los números de publicación son una cuestión diferente (y se deben MANTENER de forma diferente).

Se adhieren a un simple sistema de lanzamiento MAJOR.MINOR (como v1.27), donde MAJOR es el nivel de compatibilidad (la versión 2.x es incompatible o al menos muy diferente de la versión 1.x) y MENOR es su versión de corrección de errores o mejoras menores . Siempre que siga el formato XY, también puede usar otros sistemas como AÑO.MONTO (2009.12) o AÑO.RELEASE (2009.3). Pero realmente es mejor que te quedes con MAJOR.MINOR a menos que tengas una buena razón para no hacerlo.

Definitivamente no use nada que no se ajuste al formato XY, ya que dificultará que distros, sitios web de anuncios, etc. trabajen con usted, y eso solo podría afectar seriamente la popularidad de su proyecto.

Utilice ramas y etiquetas en su sistema de control de versiones (preferiblemente distribuidas) para marcar números de versiones internas específicas relacionadas con MAYORES y MENORES, respectivamente.

Y sí, 1.0 debería ser estable. Todas las versiones deben ser estables, a menos que estén marcadas alfa, beta o RC. Usa Alphas para conocido-roto-e-incompleto. Betas para conocido-roto. RCs para "pruébalo, probablemente verás cosas que nos perdimos". Todo lo que no tenga uno de estos debe (idealmente, por supuesto) ser probado, conocido, tener un manual actualizado, etc.


O para usar su número de versión de "pensamiento" número de subversión .. zB:

1.0.101 // revisión 101, lanzamiento

o 1.0.101-090303 // con fecha de lanzamiento, uso esto


Obtenga inspiración de Wikipedia: "Versiones de software"

Otra opción "nueva" y "relativamente popular" es la versión semántica

Resumen:

Dado un número de versión MAJOR.MINOR.PATCH, incremente el:

  1. Versión MAYOR cuando realiza cambios incompatibles de API,
  2. Versión MINOR cuando agrega funcionalidad de una manera compatible con versiones anteriores, y
  3. Versión PATCH cuando haces correcciones de errores compatibles con versiones anteriores.

Se encuentran disponibles etiquetas adicionales para los metadatos preliminares y de compilación como extensiones del formato MAJOR.MINOR.PATCH.


Pasamos demasiado tiempo decidiendo cuándo incrementar la versión principal. Algunas tiendas raramente lo harían, por lo que tendrías lanzamientos como 1.25.3 y otros lo harían para siempre, lo que te da 15.0

Me cansé de eso y convencí a todos de que el número de lanzamiento principal es solo el año y que el menor es solo un lanzamiento secuencial en el año. A los usuarios parecía gustarles y no es necesario pensar en el próximo número de versión.

Year.Release.build

  • año = año actual
  • release = secuencia # de publicaciones públicas con nueva funcionalidad - restablecer a 1 cada año
  • build = incrementado por correcciones de errores y versiones internas

EDITAR

** Ahora esto fue para una aplicación interna que se mejoró continuamente **

Esto probablemente no funcionaría para aplicaciones comerciales donde es importante tener lanzamientos importantes en diferentes épocas del año con fines comerciales y financieros.


Si bien el número de revisión de Subversion es simple y sencillo, elimina la información del número de versión. Los usuarios pueden considerar esto como algo malo.

Supongo que su aplicación web tendrá algún tipo de procedimiento de implementación, de modo que no se publique realmente cada revisión en Subversion. Dado que es imposible desde el "exterior" (desde la perspectiva del usuario) determinar cuándo se realizan las entregas, y cuántas revisiones sufrirá el código entre ellas, hace que los números sean casi aleatorios. Aumentarán, y supongo que es posible conjeturar algún tipo de distancia al comparar dos revisiones, pero no mucho.

Los números de versiones clásicas tienden a "dramatizar" lanzamientos, de modo que los usuarios pueden construir algún tipo de expectativa. Es más fácil pensar "Tengo la versión 1.0, ahora la versión 1.1 está añadiendo esto y aquello, eso suena interesante" que pensar "ayer hicimos la revisión SO 2587, hoy es 3233, ¡debe ser mucho mejor!".

Por supuesto, esta dramatización también puede ser inflada, ya que las compañías que eligen números de versión que deben sonar más interesantes de lo que lo motivan las diferencias reales en el producto, creo que esto va un poco con los contadores de números de revisión.


Si está en SVN, ¿por qué no usar el número de revisión de SVN?

Si observa la parte inferior derecha de esta página web, verá el número de versión de desbordamiento de pila, que es el número de revisión de SVN.


Tengo muy poca experiencia en el área. Sin embargo, esto es lo que haría:

  1. Elija un esquema para las revisiones de numeración y cúmplalo. Se consistente.
  2. Cada cambio de versión debe representar un cambio significativo . Qué tan pequeño es un cambio significativo y los niveles de cambio que se reflejan en el número de versión dependen de usted.

¡Por supuesto, puedes usar el número de revisión svn, como muchos otros han sugerido!

Espero que esto ayude.


Una vez escribí una elaborada "guía de estilo de control de versiones" para un gran proyecto mío. El proyecto no se materializó, pero la guía de estilo todavía está disponible en línea . Es mi opinión personal, tal vez sea útil (o inspiradora) para ti.

Tenga cuidado, es un texto extenso, y va a versiones de componentes vs. versiones de productos y cosas por el estilo. También expresa fuertes opiniones sobre algunos esquemas de control de versiones populares en la comunidad de OSS, pero los tengo, así que los expreso. ;-)

No estoy de acuerdo con el uso del número de revisión de Subversion, por ejemplo. Es posible que desee mantener una versión lanzada mientras continúa el desarrollo en TRUNK, por lo que configurará una rama de mantenimiento, y las versiones de su versión de revisión se irán por el desagüe.

Editar: como resumen, distingue entre los archivos de origen de versiones, los componentes y el producto general. Utiliza un sistema de versing xy separado para los componentes y el producto, con una buena interdependencia entre los dos que hace que el seguimiento de qué versión del componente pertenece a qué versión del producto sea trivial. También habla de cómo manejar los ciclos de alfa / beta / liberación / parche sin romper el sistema. En realidad, es un modus operandi para todo el ciclo de desarrollo, por lo que es posible que desee elegir. ;-)

Edición 2: Como suficientes personas encontraron mi artículo útil para hacer de esto una "buena respuesta", comencé a trabajar en el artículo nuevamente. Ahora están disponibles las versiones PDF y LaTeX, una reescritura completa que incluye un mejor lenguaje y gráficos explicativos tan pronto como pueda encontrar el tiempo. ¡Gracias por tus votos!


Usamos una sintaxis major.minor.julian_date simple.

Dónde;

  • major - La primera versión es 1 y luego cuando presentamos nuevas características o cambios tan importantes que no son compatibles con versiones anteriores, aumente este número.
  • menor - Los principales logros del hito. Para cada compilación empujada por la producción, este número aumenta.
  • julian_date: el día juliano en el que la creación fue empujada a QA.

Ejemplo de la primera versión presionada para QA en 1/15 es -> 1.0.015
Ejemplo de la primera versión presionada para Producción en 3/4 es -> 1.1.063

No es perfecto, pero es útil ya que realizamos construcciones para control de calidad casi a diario.


[ major ]. [ minor ]. [ release ]. [ build ]

importante : realmente una decisión de marketing. ¿Estás listo para llamar a la versión 1.0? ¿Considera la compañía que esta es una versión importante por la cual los clientes podrían tener que pagar más, o es una actualización de la versión principal actual que puede ser gratuita? Menos de una decisión de I + D y más una decisión de producto.

menor : comienza desde 0 siempre que se incrementa el mayor. +1 por cada versión que se publique.

lanzamiento : cada vez que alcanzas un hito de desarrollo y liberas el producto, incluso internamente (por ejemplo, para control de calidad), incremente esto. Esto es especialmente importante para la comunicación entre equipos en la organización. No hace falta decir que nunca libere el mismo ''lanzamiento'' dos veces (incluso internamente). Restablecer a 0 sobre menor ++ o mayor ++.

compilación : puede ser una revisión SVN, creo que funciona mejor.


xyzg

los incrementos en g son inestables. (o RC) los incrementos en z son estables y significan correcciones de errores.
los incrementos en y son nuevas características estables y malas.
los incrementos en x son estables, la versión principal sin compatibilidad retroactiva al 100%.


a B C D

Incrementos: cuando
- d : correcciones de errores
- c : mantenimiento, por ejemplo, mejora del rendimiento
- b : nuevas funciones
- a : cambio de arquitectura

El obligatorio es el más a la izquierda; por ejemplo, si hay, por ejemplo, una nueva función y se ha corregido un error, entonces solo tiene que incrementar b .