Ver índice de contenidos del libro

3.3. Estableciendo la versión del paquete

Otra de las obligaciones de los paquetes es que deben indicar de alguna manera su versión. Si publicas tu proyecto a través de Packagist, la versión se infiere automáticamente analizando la información del sistema de control de versiones que utilices (git, svn o hg). En estos casos no sólo no tienes que indicar la versión explícitamente, sino que es mejor que no lo hagas. Las siguientes secciones explican cómo se extrae el número de versión a partir de las etiquetas y las ramas del repositorio.

Si creas los paquetes a mano y tienes que indicar la versión de forma explícita, hazlo mediante la opción version:

{
    "version": "1.0.0"
}

Nota No es conveniente que indiques la versión a mano, ya que en el caso de las etiquetas, esta versión debe coincidir con el nombre de la etiqueta.

3.3.1. Etiquetas

Composer crea una nueva versión para cada etiqueta cuyo nombre parezca el número de una versión. Los nombres considerados versiones tienen el formato X.Y.Z o vX.Y.Z, y opcionalmente pueden incluir un sufijo indicando el tipo de versión: RC (release candidate), beta, alpha o patch.

A continuación se muestran varios ejemplos de nombres de etiquetas que se transforman automáticamente en versiones:

  • 1.0.0
  • v1.0.0
  • 1.10.5-RC1
  • v4.4.4beta2
  • v2.0.0-alpha
  • v2.0.4-p1

3.3.2. Ramas

Composer crea una nueva versión de desarrollo para cada rama del proyecto. Si el nombre de la rama se parece a una versión, el nombre de la versión será {nombre_de_rama}-dev. Así por ejemplo, una rama llamada 2.0 se convertirá en la versión 2.0.x-dev. El .x del final se añade por razones técnicas, para asegurar que se reconoce como una rama. Si la rama se llamara 2.0.x, la versión generada también sería 2.0.x-dev. Si el nombre de la rama no se parece a una versión, el nombre completo de la versión será dev-{nombre_de_rama}. La rama master siempre se corresponde con la versión dev-master.

A continuación se muestran varios ejemplos de nombres de ramas que se transforman automáticamente en versiones:

  • 1.x
  • 1.0 (equivale a 1.0.x)
  • 1.1.x

Nota Cuando se instala una versión de desarrollo (las que empiezan por dev-), Composer siempre la instala utilizando su código fuente.

3.3.3. Alias

También es posible asignar alias a las versiones de las ramas. De esta forma, es posible hacer que la versión dev-master tenga un alias llamado 1.0.x-dev. Así podrías utilizar esta versión 1.0.x-dev en todos los paquetes.

Puedes leer el artículo Los alias de Composer para obtener más información sobre los alias.