test semver dependency actual node.js npm semantic-versioning

node.js - semver - ¿Cuál es la convención para la versión de paquetes npm antes de la 1.0.0?



npm versioning (1)

Estaba leyendo sobre la versión con npm , y aparentemente proporciona un comando conveniente para cargar las versiones de tu paquete.

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]

presentación

Digamos que su paquete comienza en la versión 0.0.0

npm version prerelease => 0.0.1-0

npm version prerelease => 0.0.1-1

Básicamente solo golpea el número después del guión

preparche

A partir de 0.0.0 usando pre [major | minor | patch] en su lugar ...

npm version prepatch => 0.0.1-0

npm version preminor => 0.1.0-0

npm version premajor => 1.0.0-0

parche

A partir de 0.0.0 usando el parche ...

npm version patch => 0.0.1

npm version patch => 0.0.2

Entiendo las reglas para golpear versiones mayores y parches mayores, pero ¿cuál es la convención estándar para las versiones anteriores a la 1.0.0 ?


TLDR

No he visto versiones preliminares utilizadas pre-1.0.0. Parece bastante inútil ya que la API pública aún no está finalizada. Se vuelven útiles después del lanzamiento de 1.0.0.

Entonces, ¿cuándo son útiles las versiones preliminares?

De semver.org :

La versión 1.0.0 define la API pública. La forma en que se incrementa el número de versión después de esta versión depende de esta API pública y de cómo cambia.

y:

Una versión previa al lanzamiento PUEDE denotarse agregando un guión y una serie de identificadores separados por puntos inmediatamente después de la versión del parche. ... Una versión preliminar indica que la versión es inestable y puede que no cumpla con los requisitos de compatibilidad previstos como se indica en su versión normal asociada.

Las convenciones que he visto antes de la versión 1.0.0 incluyen el uso de parches para corregir errores / errores tipográficos y versiones secundarias para cualquier modificación significativa. Las convenciones son menos estrictas antes de la versión 1.0.0, ya que todavía no se ha garantizado ninguna API pública.

Las versiones preliminares son útiles cuando desea compartir algunas características iniciales con la comunidad.

Por ejemplo, en el momento de escribir este artículo, la última versión estable de npm-check-updates es la versión 1.5.1 . Algunas de las nuevas características que he agregado han introducido cambios incompatibles con versiones anteriores, por lo que para ajustarme a semver, tendré que lanzarlos bajo 2.0.0 . Sin embargo, no quiero lanzar la versión 2.0.0 como la última versión estable hasta que la comunidad la haya probado más a fondo. Por lo tanto, he publicado una versión preliminar (utilizando npm publish --tag unstable ) versión 2.0.0-alpha.1 . Los miembros de la comunidad pueden instalar la versión preliminar (con npm install -g npm-check-updates@unstable ) para probar las funciones más recientes mientras que una instalación normal de npm install -g npm-check-updates continuará instalando la versión estable 1.5.1 para la mayoría de los usuarios. Cuando la versión preliminar ha demostrado su eficacia, puedo publicarla fácilmente como el nuevo establo en 2.0.0 .