Una versión semántica es MAJOR.MINOR.PATCH: se sube MAJOR para cambios incompatibles, MINOR para funciones compatibles y PATCH para correcciones compatibles. Los gestores de paquetes describen las versiones aceptables con rangos. Pruebe cualquier rango con cualquier versión en Comprobador de Rangos Semver; la idea que hay detrás de los números está en Versionado semántico (SemVer).
Operadores de rango
| Rango | Se expande a | Coincide (ejemplos) | No coincide |
|---|---|---|---|
^1.2.3 |
>=1.2.3 <2.0.0 |
1.2.3, 1.9.9 |
2.0.0, 1.2.2 |
~1.2.3 |
>=1.2.3 <1.3.0 |
1.2.3, 1.2.9 |
1.3.0, 1.2.2 |
^0.2.3 |
>=0.2.3 <0.3.0 |
0.2.3, 0.2.9 |
0.3.0, 0.2.2 |
^0.0.3 |
>=0.0.3 <0.0.4 |
0.0.3 |
0.0.4, 0.0.2 |
^1.2 |
>=1.2.0 <2.0.0 |
1.2.0, 1.9.9 |
2.0.0, 1.1.9 |
~1 |
>=1.0.0 <2.0.0 |
1.0.0, 1.9.9 |
2.0.0, 0.9.9 |
1.x |
>=1.0.0 <2.0.0 |
1.0.0, 1.9.9 |
2.0.0, 0.9.9 |
1.2.x |
>=1.2.0 <1.3.0 |
1.2.0, 1.2.9 |
1.3.0, 1.1.9 |
>=1.2.7 <1.3.0 |
>=1.2.7 <1.3.0 |
1.2.7, 1.2.99 |
1.3.0, 1.2.6 |
1.2.3 - 2.3.4 |
>=1.2.3 <=2.3.4 |
1.2.3, 2.3.4 |
2.3.5, 1.2.2 |
<2.0.0 || >=3.0.0 |
<2.0.0 || >=3.0.0 |
1.9.9, 3.0.0 |
2.5.0, 2.0.0 |
^1.2.3-beta.2 |
>=1.2.3-beta.2 <2.0.0 |
1.2.3-beta.2, 1.2.3 |
1.2.3-beta.1, 2.0.0 |
Versiones preliminares
Las versiones preliminares se ordenan por debajo de la versión final que preceden, y sus identificadores se comparan campo a campo (los números numéricamente, las palabras alfabéticamente y un conjunto más largo de campos después de uno más corto):
1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
Un rango solo acepta una versión preliminar cuando el propio rango nombra una preliminar con el mismo MAJOR.MINOR.PATCH. Así, >1.2.3 no acepta 1.3.0-beta, mientras que ^1.2.3-beta.2 acepta 1.2.3-beta.4. La mayoría de las herramientas ofrecen una opción para incluir las preliminares de forma explícita.
Reglas rápidas
^permite cambios que no modifiquen el primer número distinto de cero por la izquierda. Por debajo de 1.0.0, eso hace que^0.2.3sea tan estricto como~0.2.3.~permite cambios de parche cuando se indica la versión menor (~1.2.3) y cambios de versión menor cuando solo se indica la mayor (~1).- Un espacio entre comparadores significa Y;
||significa O. - Los metadatos de compilación tras
+(1.0.0+20261028) se ignoran al comparar versiones. - Incrementos:
1.2.3pasa a1.2.4(parche),1.3.0(menor) o2.0.0(mayor);1.2.3-beta.1pasa a1.2.3-beta.2. - La PEP 440 de Python usa otros operadores (
~=,==1.*) y otras grafías (1.0rc1); Cargo sigue por defecto las reglas del acento circunflejo de npm.