Composer stahuje Nette minified při konflitku dvou verzí Nette
- tsusanka
- Člen | 23
Předem sory za dlouhý příspěvek a díky těm, kteří to zvládli :).
Pokud v composer.json vyžaduju Nette 2.0.*, composer install
správně nainstaluje Nette 2.0.*. Pokud ale přidám svůj vlastní balíček
se závislostí na Nette 2.1.* composer místo oznámení konfliktu nainstaluje
Nette 2.1.* a Nette minified 2.0.*. Konkrétně:
composer.json projektu:
...
"require": {
"php": ">= 5.3.7",
"nette/nette": "2.0.*",
"tsusanka/composer-bug-package": "*"
}
...
composer.json balíčku:
{
"name": "tsusanka/composer-bug-package",
...
"require": {
"php": ">= 5.3.7",
"nette/nette": "2.1.*"
}
}
Jak vidíte projekt žádá verzi 2.0.* ale balíček chce 2.1.*. Pokud vím,
composer by měl zařvat errorem. Místo toho ale composer install
přidá nette-minifed, který se vykouzlí nevim odkud.
$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing nette/nette (2.1.x-dev e40bb99)
Cloning e40bb993c6456b2ddc7e27005f7310feeb77c7bb
- Installing tsusanka/composer-bug-package (dev-master accc956)
Cloning accc956759a1f3a2d193352cec038b855a1a9bbc
- Installing nette/nette-minified (2.0.x-dev e374d73)
Cloning e374d73dbc8c702ce95e86114b8203ba36963a5d
nette/nette suggests installing ext-gd (*)
nette/nette-minified suggests installing ext-memcache (*)
nette/nette-minified suggests installing ext-gd (*)
Writing lock file
Generating autoload files
Za prvé je divné, že composer nekřičí, ale to je dotaz jinam. Hlavně nevím kde se vzalo nette-minified. Nette na to žádnou závislost nemá, stejně tak ne můj projekt či balíček. packagist.org nenapověděl. Verze si můžete nahradit dle vůle, chová se to stejně pro dev-master s 2.1.* atd.
Není náhodou někde v nějaké verzi špatně nastavený requirment na nette-minified? Najít se mi to však nepodařilo.
Výpis composer install -vvv
(prázdná cache, vendor složka a
composer.lock smazán) zde. Replikovat
to můžete pomocí tsusanka/ComposerBugProject
a tsusanka/ComposerBugPackage.
Mělo by stačit naklonovat to první a spustit composer. I jsem vytvořil
issue na
composeru ale spíš si říkám, jestli není nějaké špatné nastavení
ze strany nette.
- Filip Procházka
- Moderator | 4668
Je to na 100% bug v composeru, podobná nepříjemnost se před pár
měsíci děla s forky, ale to fixli. Tak možná tu máme něco nového.
A dost možná to taky bude feature :D (což by bylo nejhorší, protože
bychom se toho neměli jak zbavit, leda smazat
nette/nette-minified
).
Btw pro ostatní: nette/nette-minified
rozhodně nikdy
nepoužívejte! Dost možná ho budeme muset dropnout :P
- Jiří Nápravník
- Člen | 710
Filip Procházka napsal(a):
Btw pro ostatní:nette/nette-minified
rozhodně nikdy nepoužívejte! Dost možná ho budeme muset dropnout :P
pročpak? Já kdybych neměl problém s tím, že mi nefunguje phar s APC bych ji s radostí používal na production
- Filip Procházka
- Moderator | 4668
Nemá to žádný výkonnostní benefit a je to v konfliktu s balíčky co vyžadují nette/nette. Nehledě na to jaké odporné laděnky to pak generuje ;)
- Jiří Nápravník
- Člen | 710
Výkonostní benefit, já když to zkusil na lokale, tak jsem měl výrazně rychleji vygenerované stránky. Nevím sice moc proč, protože jsem to zas tak nezkoumal, ale tipoval bych obecně na pomalejší IO operace, kdy je rychlejší načtení jednoho velkého filu než několik menších
No a pokud někdo nemá opcode cache, tak si myslím, že tam kor musi byt znatelný rozdíl
- Filip Procházka
- Moderator | 4668
Nebo jinak, na špatně nastaveném hostingu PHP < 5.5 to bude mít výhody. Kdo pracuje na dobrém hostingu nebo má vlastní VPS s 5.5 a má tam opcode cache tak rozdíl nezpozná.