Numeración de versiones de software

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 27 de mayo de 2021; las comprobaciones requieren 3 ediciones .

El ciclo de vida de un programa de computadora exitoso puede ser muy largo; los cambios en el programa son diferentes, desde corregir un error hasta una reescritura completa. En la mayoría de los casos, el nombre del programa sigue siendo el mismo, el subnombre cambia, la llamada versión .

La versión del programa puede ser un número entero ( Corel Draw 11), una secuencia de números ( JDK 1.0.3), un año ( Windows 2000 ), o texto ( Embarcadero Delphi XE). En cualquier caso, el sistema de versionado se selecciona en función de varios criterios:

A veces, la presencia de errores humanos en la creación de números de versión conduce a errores en los cambios de versión. Por ejemplo, los desarrolladores pueden cambiar el número de versión incluso si no se ha reescrito ninguna línea de código para dar la falsa impresión de que se han realizado cambios significativos.

Esquemas de numeración

Números secuenciales

Inicialmente, los programas estaban numerados con los números 1, 2, 3, etc., similar a las ediciones de libros . Además, los números de serie pueden basarse en algún tipo de contador técnico (por ejemplo, el número de versión en un sistema de control de versiones ).

Hoy en día, los números de serie denotan programas rara vez lanzados que ya son estables. Por ejemplo, Corel Draw 11, Windows 10 . Para dichos programas, los cambios menores de servicio generalmente se "barren debajo de la alfombra" sin cambiar la versión visible (cambiando solo la versión técnica, disponible, por ejemplo, en el menú "Acerca de"). Los cambios importantes que introducen nuevas funciones pero que no conducen a un nuevo producto generalmente se etiquetan con un decimal ( Windows 8.1 ).

Fracción decimal

Históricamente, el primer método de numeración que separa los cambios menores de los mayores.

El número de versión es un decimal estadounidense (puntos ) . Por ejemplo, la primera versión obtiene el número 1.0, la siguiente, 1.1, con un pequeño cambio, 1.11, se crea un nuevo producto con una nueva funcionalidad, 2.0. Cuanto más aumenta la fracción, más significativo es el cambio. Los desarrolladores a veces saltan de la versión 2.0 directamente a la 2.5, por ejemplo, para agregar algunas características significativas a un programa, pero no lo suficiente como para cambiar el número de versión principal ( Turbo Pascal 5.0 → 5.5).

Para versiones preliminares no oficiales, se utilizan números menores que 1: digamos, 0.1 o 0.9.

Las versiones se comparan según las reglas de las fracciones decimales: 0,9 < 1,0 < 1,01 < 1,1 = 1,10 < 1,11 < 1,2 = 1,20 < 2,0 < 2,5.

Secuencia de números

Este método se adopta, por ejemplo, en la API de Windows . La versión consta de varios números (normalmente tres) separados por un punto: por ejemplo, 1.5.2. La primera es la versión mayor ( mayor ), la segunda es la menor ( menor ), la tercera es cambios menores ( mantenimiento , micro ).

Cuando uno de los números aumenta, todos los siguientes se ponen a cero: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0... El último cero puede ser omitido: 1.0.0 = 1.0.

Las bibliotecas de Unix utilizan el esquema de control de versiones current.revision.age . Actual es el número de API actual, revisión es el contador de versiones dentro de la misma API, edad es la diferencia entre la última y la primera versión de la API admitida [1] .

Para determinar la antigüedad de las versiones, primero se comparan las versiones anteriores, luego las más jóvenes, luego las micro como números enteros: < 2.0.0.

A veces, el cuarto número es el número de montaje con numeración continua. Esta cifra puede aumentar en uno con cada versión (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4), o tomarse de algún contador técnico (compilaciones, compilaciones nocturnas , versiones de código en el sistema de control de versiones  , por ejemplo, 1.5.2.7682). En Microsoft Office, el cuarto número codifica la fecha de lanzamiento [2] .

Nuevamente, 1.0 se considera el primer lanzamiento oficial; 0.1 o 0.9 son versiones preliminares.

Carta como versión menor

A veces se usa una letra en lugar del tercer número. Entonces, cuando se encontró un error en DotA 6.42 , la nueva versión recibió el nombre de 6.42b. Esto significa: el juego sigue siendo el mismo, con la misma ubicación de obstáculos y el mismo equilibrio , pero con un error solucionado. Otras correcciones de errores se conocen como 6.42c, 6.42d, etc.

Etapa de desarrollo

Si el desarrollador tiene que depender de probadores independientes , la versión puede indicar el nivel de madurez del programa: alfa, beta, versión candidata, versión final, corrección de errores ( versión de servicio ).

Por ejemplo, 2.0 alpha1 < 2.0 alpha2 < 2.0 beta < 2.0 rc1 < 2.0 < 2.0 sr1.

Existen diferentes esquemas para designar etapas de desarrollo. Por ejemplo, el tercer número podría significar:

Por ejemplo:

Dentro de la empresa, también se puede indicar la etapa de desarrollo (por ejemplo, 1.2.3 < 1.2.3r9 < 1.2.4), mientras que este no es el caso en los comunicados oficiales, por ejemplo, para evitar confusiones entre los probadores o para emitir algunos versión al cliente - quizás inestable, pero corrigiendo su error.

Entre las series 1.0 y 2.6.x, el kernel de Linux usaba números impares para las versiones beta y números pares para las versiones estables. Por ejemplo, Linux 2.3 fue la serie de desarrollo y Linux 2.4 fue la serie de lanzamiento estable en la que evolucionó Linux 2.3. El número de versión del kernel de Linux se escribió primero con el número de versión menor y luego con el número de versión en orden ascendente. Por ejemplo Linux 2.4.0 → Linux 2.4.22. Desde el lanzamiento de 2.6 en 2004, Linux ya no usa este sistema, el ciclo de lanzamiento es mucho más corto ahora. Ahora simplemente aumentan el tercer número, usando el cuarto si es necesario.

El mismo sistema par-impar es utilizado por otros productos de ciclo largo, como GNOME.

Título alfanumérico

Software más utilizado con una larga historia y versiones raramente lanzadas ( Windows Vista ).

Si el contador de versiones ha ido demasiado lejos y necesita reiniciarse, también se utilizan los códigos alfabéticos: Adobe Photoshop 7.0 < CS < CS2 < ... < CS6 < CC < CC 2014.

A veces se utiliza un subnombre alfanumérico además de la versión normal: Ubuntu 9.04 Jaunty Jackalope , Embarcadero Delphi 10.2 Tokio .

Fecha

El año de lanzamiento se usa con mayor frecuencia en software con versiones raramente lanzadas, por ejemplo: Windows Server 2003 , Microsoft Office 2014.

Los desarrolladores del proyecto Wine también utilizaron por primera vez las fechas al numerar las versiones, indicaron el año, el mes y el día de lanzamiento: "Wine 20040505". Wine utiliza actualmente la numeración de versiones "estándar", siendo la última versión de 2010 la 1.2. La empresa Ubuntu Linux utiliza un esquema de numeración similar, por ejemplo, la versión de octubre de 2010 está numerada como Ubuntu 10.10. Microsoft utiliza actualmente un esquema similar para numerar las actualizaciones de Windows 10, aunque generalmente tienen una versión número 1 menos que el número de mes, por ejemplo, Fall Creators Update (1709) se lanzó el 17 de octubre de 2017 y April 2018 Update ( 1803) a pesar del número "03" en el título fue lanzado en abril de 2018.

Cuando se usan fechas en la numeración de versiones, se debe usar el esquema ISO año-mes-día (esto facilita la comparación de versiones por antigüedad) y se puede omitir el guión.

Versiones internas

A menudo, el programa tiene un nombre comercial y una versión interna compilada de acuerdo con todas las reglas. Por ejemplo, Java SE 5.0 tiene la versión interna 1.5.0, Windows 7 tiene la  versión 6.1 [3] . Se pueden nombrar varios ensamblajes de archivos de Windows, por ejemplo, 6.1.7600.16385.

Versiones técnicas similares se comparan con la placa de identificación de un soldado [2] . Al igual que en el campo de batalla, son necesarios en casos de emergencia, cuando el programa no funciona como debería y es necesario contactar al desarrollador.

Esquemas exóticos

Donald Knuth numera las versiones del sistema de composición tipográfica Τ Ε Χ con aproximaciones sucesivas del número : 3.0 < 3.1 < 3.14, etc. El último número de versión estable es 3.141592653. Las versiones de otra creación de Donald Knuth del lenguaje METAFONT están numeradas por aproximaciones al número e . La versión de marzo de 2008 tenía el número 2.718281.

SuSE Linux comenzó contando con la versión 4.2, como referencia al famoso libro de Douglas Adams .

Significado de los números de versión

La versión 1.0 como hito clave del desarrollo

Los programas comerciales suelen empezar a numerar sus versiones en 1.0. Incluso se considera que la versión 1.0 es exclusivamente cruda y por tanto es necesario llegar cuanto antes a la 1.2 o incluso a la 2.0.

En el software libre y de código abierto, 1.0 se considera el punto en el que un programa se considera listo para su uso generalizado por parte de no especialistas. Al mismo tiempo, las versiones iniciales del programa están numeradas como 0.1, 0.2, etc. FreeDOS llegó a la versión 1.0 en 2006, cuando DOS prácticamente no se usaba en ninguna parte. El emulador de máquinas tragamonedas MAME nunca llegará a la versión 1.0, porque la historia de las máquinas tragamonedas continúa hasta el día de hoy.

Marketing, superstición y TOC

Para que el nombre se vea mejor, el software comercial debe involucrar a los especialistas en marketing. Por ejemplo, la tetrafobia es común en los países asiáticos , por lo que en los números de versión se evita el número 4. En Europa, el número 13 se considera de mala suerte, se omite o se reemplaza por X3.

Si el historial del programa es muy largo, a veces hay que reiniciarlo: Adobe Photoshop 7.0 < 8.0 < CS < CS2.

Una de las razones por las que no había Winamp 4 era el juego de palabras : Winamp 4 skin e inglés.  prepucio  - "prepucio" [4] .

Omisiones en las versiones

A veces, un desarrollador omite un número de versión para mantenerse al día con los competidores u otros productos de la misma empresa: por ejemplo, Microsoft Access saltó directamente de 2.0 a 7.0. Netscape Communicator omitió la versión 5 cuando Internet Explorer llegó a la 6.0; además de la versión 5.0 en las versiones de prueba replanteadas del User-Agent del navegador Mozilla Suite .

Sun Solaris eliminó el primer dígito: 2,8 y 2,9 se mencionaron como 8 y 9 en los materiales de marketing; Java SE 1.5.0 y 1.6.0 son como Java 5 y 6. Slackware Linux saltó de la versión 4 directamente a la versión 7 en 1999.

Microsoft Windows 10 sale después de 8.1.

PHP salta de 5 a 7, la razón es que la versión 6 resultó ser exagerada, pero irrealizable, y muchas de sus innovaciones se adjuntaron a la quinta rama [5] .

Algoritmos de precedencia de versiones

A menudo, debe determinar mediante programación cuál de las dos versiones es más antigua; por ejemplo, las " burbujas " se admiten en Windows desde 2000 [6] , y en versiones anteriores debe hacerlo de manera diferente. Tal verificación se realiza de acuerdo con reglas bastante complicadas: por ejemplo, si la versión es una fracción decimal, primero debe comparar las partes enteras como números; si son iguales, entonces los fraccionarios son como cadenas . Si la versión es un triple o cuádruple de números, entonces los números se comparan uno a la vez hasta que se solucione una desigualdad.

Dado que los algoritmos demasiado complejos están llenos de errores [7] , y no siempre hay tiempo para escribir pruebas unitarias , a menudo se las arreglan con opciones simplificadas: por ejemplo, construyen un número largo usando campos de bits (1.2.3.4 → 01020304 16 ) ; o comparar versiones como cadenas en orden lexicográfico . El primero no funcionará si uno de los números va más allá de 256 (1.0.257 < 1.1.0, pero 010101 16 > 010100 16 ), el segundo no funcionará si se lanza la versión 10 (9.5 < 10.0, pero "9.5" > "10.0").

A veces, tales simplificaciones juegan una broma cruel: en los primeros años de la popularidad de Windows , resultó que muchos programas verificaron incorrectamente la versión del sistema operativo y se negaron a funcionar con 4.0. Por lo tanto, Windows 95 y Windows 98 tenían versiones internas 3.95 y 3.98 [8] .

Se utilizaron trucos similares en el User-Agent del navegador Opera al pasar de la versión 9.64 a la 10.00. Esto se debe a que algunos sitios que respondieron al User-Agent compararon números como cadenas (10,0 < 9,5) o tomaron el primer dígito (10,0 = 1,0) [9] . Los desarrolladores tuvieron que usar la notación Opera/9.80 en lugar de Opera/10.00 y agregar el número de versión real al final del UserAgent [10] . Se planeó que para la versión 11 de UserAgent adquiriera un aspecto familiar, pero este truco se usó hasta la transición al motor Blink (principios de 2013, a pesar de que la transición a la versión 10 tuvo lugar en 2009). ).

PHP tiene una función especial version_compare()para determinar la precedencia de la versión [11] .

Aplicación de esquemas de numeración de software en otras áreas de la cultura

Enlaces externos

Véase también

Notas

  1. Versión . Consultado el 17 de noviembre de 2017. Archivado desde el original el 27 de septiembre de 2019.
  2. 1 2 ¿Qué hay en un número de versión, de todos modos? . Consultado el 18 de noviembre de 2017. Archivado desde el original el 1 de diciembre de 2017.
  3. Preguntas frecuentes sobre la implementación de Windows 7 . Consultado el 29 de octubre de 2017. Archivado desde el original el 1 de diciembre de 2017.
  4. Preguntas frecuentes - Ayuda de Winamp (enlace descendente) . Consultado el 6 de mayo de 2011. Archivado desde el original el 19 de diciembre de 2013. 
  5. La próxima versión de PHP se llamará PHP 7/Habrahabr . Consultado el 20 de mayo de 2015. Archivado desde el original el 20 de mayo de 2015.
  6. Estructura NOTIFYICONDATAen MSDN . Consultado el 7 de mayo de 2011. Archivado desde el original el 12 de junio de 2011.
  7. Desglose de la función CheckWin32Versionen Embarcadero Quality Central (enlace descendente) . Consultado el 7 de mayo de 2011. Archivado desde el original el 29 de julio de 2013. 
  8. Comprobaciones de números de versión incorrectos . Consultado el 6 de mayo de 2011. Archivado desde el original el 16 de enero de 2013.
  9. Andreas Bovens. Cambios en el formato de cadena del agente de usuario de Opera  (ing.)  (enlace no disponible) (27 de mayo de 2009). - Descripción de los motivos de los cambios en el formato de AserAgent. Fecha de acceso: 18 de junio de 2011. Archivado desde el original el 22 de febrero de 2012.
  10. Por ejemplo:Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
  11. versión_comparar() . Consultado el 17 de noviembre de 2013. Archivado desde el original el 23 de abril de 2014.