¿Cómo cambio la label del packagist para una versión estable?

Este es mi código fuente abierto que escribí.

https://github.com/simkimsia/UtilityBehaviors/blob/master/README.mdown

Tengo un No Stable Release de packagist.org

¿Cómo hago para tener una calcomanía de Lanzamiento estable de un packagist ?

Tienes que labelr tu código con un número de versión.

 git tag -a 0.0.0 

Eso declarará la primera versión estable. Si te preocupa un número de versión completamente cero, puedes comenzar con algo como 0.0.1 si lo deseas. Intenta mantenerte en las versiones semánticas si puedes: http://semver.org . Después de eso deberías empujar el al repository público, como git push --tags .

Tenga en count que puede usar toda la matriz de tags de estabilidad en sus tags. Hay todo desde alfa, beta, release candidate reconocido por Composer. Consulte http://getcomposer.org/doc/04-schema.md#version para get información sobre cómo crear un número de versión.

Packagist escaneará su repository y procesará esa label, que es una versión "estable", y marcará su package como corresponde (incluso con el número de versión 0.0.0, el software 0.x no es diferente del software 24.x en términos de Composer / Packagist).

Editar 2016-07-14

Tenga en count que los numbers de versión en las versiones semánticas se manejan de forma diferente si comienzan con 0.xy Esto no afecta el labeldo y la liberación de ninguna manera, pero afecta la forma en que los usuarios pueden seleccionar y actualizar el software lanzado. Cualquier software en el range 0.x se considera incompatible si publica la siguiente actualización menor 0.x+1 . El operador de tilde Composer ~ no se verá ~0.x por esto: ~0.x (con cualquier número integer como x) se actualizará a la siguiente versión menor. El operador de caret se comportará de manera diferente: ^0.x o ^0.xy se mantendrá en el range 0.x y no irá a ninguna 0.x+1.y

La mejor manera de contrarrestar esto sería comenzar con las versiones 1.x y usar indicadores de estabilidad para indicar posibles cambios. Puede usar 1.0.0-alpha1 como su primer lanzamiento en lugar de 0.0.1 , versiones posteriores pueden ser 1.0.0-alpha2 para otra versión "inestable" (léase: API no finalizada / estable), luego vaya a 1.0.0-beta1 para lanzamientos estables en API, pero internamente inacabados, luego 1.0.0-rc1 para posibles lanzamientos finales API-estable durante la fase final de corrección de errores, y luego 1.0.0 para la versión final. Más correcciones de errores serán 1.0.1 y superiores, las nuevas características serán 1.1.0 , los cambios de API incompatibles serán 2.0.0 . Tenga en count que los primeros usuarios pueden usar ^1.0.0@beta como su requisito de versión, y a medida que avance el desarrollo, siempre obtendrán la actualización más reciente sin la necesidad de cambiar sus requisitos (a less que rompan su API y fuercen las actualizaciones de esa manera). Esto nunca funcionará si 0.x ruta 0.x y luego libera el producto final como 1.0.0 , porque tiene al less la obvia actualización incompatible de 1.0.

Es difícil decidir sin conocimiento futuro si un package demuestra ser útil y crea una base de usuarios feliz (que se beneficiará de una label de lanzamiento 1.0.0@alpha ), o si es solo un experimento interesante que nadie está utilizando en producción ( alias 0.x ).

Mi preference personal por los packages privados internos es hacerlos 1.0 desde el principio. Tengo que lidiar con varios packages que comenzaron en 0.0.1 y son un poco desagradables cuando actualizo porque están maduros, pero no pueden ir a 1.0 debido a ese paso de versión incompatible, que implicaría mucho trabajo en packages secundarios.