Formato para la versión del Toolkit

Este documento es una referencia para el formato de versión, tal como se usa en Firefox 1.5 (XULRunner 1.8) y posteriores. Este formato se usa por el administrador de extensiones, la actualización de software y otras partes de la plataforma. Las versiones en, al menos, los siguientes lugares deben ser conformes a este formato:

Puede usar nsIVersionComparator para comparar versiones de su aplicación.

Véase Formatos de versión previas más abajo para una descripción del formato de versión anterior usado en Firefox/Thunderbird 1.0.

Formato de versión

Una cadena de versión consiste en una o más partes de versión, separadas con puntos.

Cada parte de versión es en sí misma interpretada como una secuencia de cuatro partes: <tt><número-a><cadena-b><número-c><cadena-d></tt>. Cada una de las partes es opcional. Los números son enteros en base 10 (pueden ser negativos); las cadenas son ASCII.

Algunos ejemplos de partes de versión válidas:

  • <tt>0</tt> (como en <tt>1.0</tt>): <tt><número-a>=0</tt>
  • <tt>5a</tt> (como en <tt>1.5a</tt>): <tt><número-a>=5</tt>, <tt><cadena-b>=a</tt>
  • <tt>5pre4</tt> (como en <tt>3.5pre4</tt>): <tt><número-a>=5</tt>, <tt><cadena-b>=pre</tt>, <tt><número-c>=4</tt>
  • <tt>*</tt> (como en <tt>1.0.*</tt>): <tt><cadena-b>=*</tt>

Se aplican algunas reglas especiales de interpretación con el fin de proporcionar compatibilidad hacia atrás y legibilidad:

  • si la parte de versión es un solo asterisco, se interpreta como un número infinitamente largo:
    <tt>1.5.0.*</tt> es lo mismo que <tt>1.5.0.(infinito)</tt>
  • si cadena-b es un signo más, número-a se incrementa para ser compatible con el formato de versión de Firefox 1.0.x:
    <tt>1.0+</tt> es lo mismo que <tt>1.1pre</tt>

La lógica tras el particionado de una parte de versión en una secuencia de cadenas y números es que, cuando se comparan partes de versión, las partes numéricas se comparan como números, por ejemplo: '1.0pre1' < '1.0pre10', mientras que las cadenas se comparan byte a byte. Véase la siguiente sección para obtener detalles sobre cómo se comparan las versiones.

Comparar versiones

Cuando se comparan dos cadenas de versión, sus partes de versión se comparan de izquierda a derecha. Una parte de versión vacía o no presente equivale a 0.

Si en algún punto una parte de una cadena de versión es mayor que la parte correspondiente de otra cadena de versión, entonces la primera cadena de versión es mayor que la otra.

En caso contrario, las cadenas de versión son iguales. Observe que, puesto que las partes de versión no presentes se tratan como si fueran 0, las siguientes cadenas de versión son iguales: 1, 1.0, 1.0., 1.0.0, e incluso 1.0...

Comparar partes de versión

Las partes de versión también se comparan de izquierda a derecha; las partes A y C se comparan como números, mientras que las partes B y D se comparan byte a byte. Una parte de tipo cadena que exista es siempre menor que una parte de tipo cadena no existente (<tt>1.6a</tt> es menor que <tt>1.6</tt>).

Ejemplos

1.-1
< 1 == 1. == 1.0 == 1.0.0
< 1.1a < 1.1aa < 1.1ab < 1.1b < 1.1c
< 1.1whatever
< 1.1pre == 1.1pre0 == 1.0+
< 1.1pre1a < 1.1pre1aa < 1.1pre1b < 1.1pre1
< 1.1pre2
< 1.1pre10
< 1.1.-1
< 1.1 == 1.1.0 == 1.1.00
< 1.10
< 1.* < 1.*.1
< 2.0

Formatos de versión previas

Firefox y Thunderbird 1.0 usaban un formato de versión más simple, en concreto

mayor[.menor[.publicación[.compilación]]][+]

donde <tt>[..]</tt> designa un componente opcional y <tt>mayor</tt>, <tt>menor</tt>, <tt>publicación</tt> y <tt>compilación</tt> son todos enteros no negativos.

Etiquetas y colaboradores del documento

Etiquetas:
Colaboradores de esta página: RickieesES, Nathymig, ethertank, Nukeador, Mgjbot
Última actualización por: ethertank,