¿La "versión" en el repository de Composer git se refiere a la publicación (label) en GitHub?

Necesito usar Composer para administrar una dependencia (normalize.css y otros) sin composer.js en la raíz del proyecto. Terminé definiendo un package, pero tengo algunas preguntas:

 { "require": { "twbs/bootstrap": "~3.0", "fortawesome/font-awesome": "~3.2", "nequeues/normalize.css": "*" }, "repositories": [ { "type":"package", "package": { "name": "nequeues/normalize.css", "version":"2", "source": { "url": "https://github.com/nequeues/normalize.css.git", "type": "git", "reference":"master" } } } ] } 

¿La version de mi package se refiere a una versión (label) en el repository de GitHub? En caso afirmativo, ¿cómo puedo especificar ie ~2.1 (obtengo una definición inválida del package) o la última label disponible?

Para nequeues/normalize.css me gustaría get siempre la última versión de la twig principal.

"La versión de mi package se refiere a un lanzamiento"

No, una versión dentro de una input de package define el número de versión que Composer debe referir a este package como.

La configuration de la version explícitamente es obligatoria para los packages, lamentablemente, incluso si provienen de Git.

"¿cómo puedo especificar ie ~ 2.1 (obtengo una definición de package no válida) o la última label disponible?"

Parece que no puedes. La versión enumerada en un package debe ser un número de versión real, en lugar de un range de número de versión, y no hay forma de get las tags de Git, lo cual es una mierda.

Si tuviera que replace el uso de un repository de packages para usar un package de Artefacto zipball, sería muy fácil agregar un composer.json con la información relevante después de haber descargado el zipball de Github.

Lo agregué como una testing de concepto a https://github.com/Danack/IntahwebzRepo , que es un script simple para download zipballs desde Github, y luego agregar una input de la versión a su composer.json, o generar completamente un compositor.json si aún no tienen uno.

Una vez que las bolas zip se descargan y modifican, las usa en un repository Satis (aka Packagist).

Aquí está mi solución:

Para fines de testing, tengo este file composer.json:

 { "name": "mycompagny/composer-project", "repositories": [ { "type": "vcs", "url": "http://localhost/git/test.composer.dep.git" } ], "require" : { "mycompagny/test.composer.dep": "dev-master#v2.0.0" }, "minimum-stability": "dev" } 

En la tecla require, coloca #youversion luego de dev-master para que apunte a tu label git "yourversion".

La label después de # aquí actúa como una confirmación. (de acuerdo con: https://getcomposer.org/doc/04-schema.md#package-links )