Composer - commitovat obsah vendor adresáře do repa? rubrika: Programování: PHP

6 SpaceAngel
položil/-a 18.12.2014

otazka jednoducha - na projektu je composer. Commitovat composer.lock a obsah adresare vendor do repozitare, a nebo ne?

Pro a proti..?

odkaz
9 Michal Vyšinský
odpověděl/-a 18.12.2014

Rozhodně necommitovat vendor. Pro commit composer.lock používám tato dvě jednoduchá pravidla (nejsou z mé hlavy):

  • vyvíjíš knihovnu? necommitovat .lock - nechceš mít všude stejné verze závislostí (zpravidla chceš nejnovější požadovanou verzi)
  • vyvijíš projekt? commitovat .lock - chceš mít všude stejné verze

Jinak pro commit vendoru neexisujte snad žádné PRO, jen PROTI - velikost repozitáře - commit při každém 'composer update' atd.

Komentáře

  • danaketh : Ideální vysvětlení pro lock file. Opalcováno... 18.12.2014
  • kbarborak : U vendors dost záleží na situaci. Dokážu si představit případy, kdy dává smysl uchovávat vendory v nějaké offline podobě. Problémy s připojením na internet v korporátním prostředí nebo nějaký krabicový software, který si zákazník instaluje bůh ví kam apod. Jinak to smysl nemá. 18.12.2014
  • Taco : @kbarborak: Používám adresář libs. Pokud mám nějaké knihovny, které jsou natolik opatchované, nebo třeba jen patche vendor knihoven, tak je dávám do adresáře libs. A ty commituju. Ale jinak mám tendenci ze všeho dělat composer knihovny, protože jinak je z toho strašnej bordel. Krabicoví software je dost jiný případ. 18.12.2014
  • Forrest79 : Tak já pár PRO mám. Na serveru se připravuje build aplikace pro nasazení, umím si představit, že potřebuju rychle fixnout nějaky bug a bude problém s připojením k packagist a já build neudělám -> nelíbí se mi závislost buildu mé aplikace na nějaké třetí straně. Další PRO, někdo smaže knihovnu, kterou používám a jsem zase nahranej, když jí nemám v repozitáři. 19.12.2014
  • michal.kubec : Taky nejsem uplne odvazanej ze spousteni composeru na ostrem serveru. Opravdu tam nechci na posledni chvili resit nejake problemy 19.12.2014
  • mkoubik : Composer a packagist jsou dvě různé věci. Composer balíčky si můžeš hostovat klidně u sebe (nebo jen mirrorovat). 19.12.2014
  • danaketh : Já mám mirror všech balíčků, který používám. Instalace/upgrade jsou mnohem rychlejší a nehrozí mi nějakej zásek v případě výpadku packagistu. 19.12.2014
  • Ondřej Machulda : U těch knihoven to není úplně přesné, jde spíše o to, že composer.lock se bere v potaz jenom v rodičovském projektu, nikoliv pokud máš tu knihovnu nainstalovanou jako závislost - tam se její composer.lock neřeší, ale závislosti se spočítají z composer.json. Takže je to spíše zbytečné, uživatele tvé knihovny rozdíl nepocítí. 19.12.2014
  • David Grudl : Commitu při každém composer update se nevyhneš ani když verzuješ composer.lock, to bych jako protiargument nebral. 19.12.2014
  • Taco : @Forrest79: To, že ti někdo smaže knihovnu přeci v dnešním distribuovaném prostředí není problém, ne? Cache, Satis, lokál. Stačí změnit url v comoseru a je to. Fix na deset minut. 6.6. 14:53
  • - : @danaketh: můžu se zeptat, jak technicky řešíte ten mirroring? 6.6. 23:23
  • - : @Taco: ona to zase taková legrace není. Já třeba na nových projektech mám build v CI, v Docker exekutoru (docker-in-docker = clean build environment for every build), takže třeba o cacheování si můžu nechat zdát :) Už jen přinutit to, aby pracoval nějak rozumně s vlastními balíčky (Satis + privátní Gitlab) a nemusel jsem se pro každý z těch balíčků vypisovat "repositories": [{ "type": "vcs", "url": "https://_.company/duolog"} ...] je fakt zábava na dlouhé večery. 6.6. 23:34
  • Taco : @-: Nemůžu soudit. Mě to vždycky šlo v pohodě. Ten docker chápu, ale furt zůstává satis a lokál. 7.6. 22:55
  • maryo : Já lockfile commituju i u knihoven. Na CI pak dělám update. Tam chci, aby to nainstalovalo vždycky nejnovější verzi a aby to potenciálně failnulo kvůli BC, ale když chce někdo třeba poslat PR, tak ať to má s verzema, se kterejma to naposledy ještě 100% fungovalo. 11.6. 1:37

Pro zobrazení všech 8 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.