Estou tentando exigir uma versão mais antiga da biblioteca, que não possui tag. Os repositórios são definidos da seguinte forma:
"repositories": [
{ "type": "vcs", "url": "https://github.com/nette/nette.git" }
],
"require": {
"nette/nette": "dev-master#b8ca5b82d407453b8cf26ce08a36ee698452d000"
},
O commit está presente no branch dev-master
, composer.json está presente sem requisitos, porém em composer install
um erro é emitido sugerindo que o pacote resolve os requisitos do commit mais alto de dev-master
ramo:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- nette/nette dev-master requires nette/application >=2.3.0 -> no matching package found.
- nette/nette dev-master requires nette/application >=2.3.0 -> no matching package found.
- Installation request for nette/nette dev-master#b8ca5b82d407453b8cf26ce08a36ee698452d000 -> satisfiable by nette/nette[dev-master].
A versão do compositor é 07c644ac229a21df80180598d8bb9aaba232eecb
Isso ocorre porque o compositor não conhece o arquivo composer.json nesse hash específico. O Packagist armazena apenas o composer.json mais recente para o dev-master. O Composer não pode determinar o que está no composer.json desse commit específico. Seria necessário um clone do git para poder determinar isso. Por razões sensatas, isso não é suportado, consulte #599. Sua única opção é criar um arquivo de bloqueio com este commit.
Sim, veja a nota azul em https://getcomposer.org/doc/04-schema.md#package -links (tem que rolar um pouco) para mais detalhes.
Ok, claro, obrigado pela explicação.
Comentários muito úteis
Isso ocorre porque o compositor não conhece o arquivo composer.json nesse hash específico. O Packagist armazena apenas o composer.json mais recente para o dev-master. O Composer não pode determinar o que está no composer.json desse commit específico. Seria necessário um clone do git para poder determinar isso. Por razões sensatas, isso não é suportado, consulte #599. Sua única opção é criar um arquivo de bloqueio com este commit.