Composer minimum-stability doplňku
- hejdav
- Člen | 50
Ahoj, vysvětlíte mi prosím někdo chování composeru?
Dělám jeden doplněk pro Nette, teď je jedno jakej. Mám k tomu vyrobenou DEMO stránku.
V repu DEMO stránky mám composer.json a v něm prosté:
"require": {
"vladahejda/livetranslator": "@dev"
}
tzn. chci aby DEMO běželo na devu.
V repozitáři doplňku v dev-masteru mám tento composer.json:
"require": {
"nette/nette": "~2"
},
"minimum-stability": "RC"
tzn. běží pod Nette 2.2, ale to je zatím jen RC.
Pokud ale na DEMO repu spustím
composer update
, natáhne se pouze Nette 2.1.2,
tj. poslední stable. Ignoruje to min stability definovanou v doplňku.
Správně to začne fungovat teprve, když i do DEMA přidám
"minimum-stability": "RC"
, jenže v DEMU mě
nezajímá jaký dependence má doplněk, jestli RC Nette nebo nějaký
jiný, přece?
Jak to tedy je? :) Díky
Editoval hejdav (1. 5. 2014 17:20)
- Michal Vyšinský
- Člen | 608
Ahoj,
zde: https://getcomposer.org/…04-schema.md#… je jasně
řečeno „root-only“. A je to podle mého správně, ty chceš, aby ten
konkrétní projekt měl nějakou minimální stabilitu a ne jen jeden doplněk.
Doplňek by měl mít přesně specifikovanou verzi, na které má běžet.
- voda
- Člen | 561
minimum-stability má vliv pouze v hlavním composer.json
souboru. Pokud tvůj doplněk závisí na Nette 2.2, uveď v
require
sekci "nette/nette": "~2.2"
.
- Filip Procházka
- Moderator | 4668
Composer hledá verzi Nette, která bude vyhovovat require
pravidlu jak tvého doplňku tak i tvé aplikace. A protože tvůj doplněk
vyžaduje 2.1 tak se ti prostě nemůže nainstalovat 2.2.
Tohle chování nejde změnit a neměl by ses ho pokoušet měnit.
Prostě musíš buď tvůj doplněk předělat pro 2.2 a změnit mu require, udělat další vývojovou větev aby jel na 2.1 i 2.2, nebo svou aplikaci napsat pro 2.1.