Více adresářů vendor pro různé verze aplikace
- jedlicka
- Člen | 68
Zdravím,
měl bych dotaz, zda je možné nějak nastavit/ovlivnit cestu k adresáři
vendor
.
Možná popíšu svůj problém a bude existovat i jiné řešeni.
Přecházíme s Nette aplikací na novou verzi PHP. Na Gitu jsme si
vytvořili novou větev pro přechod/ladění/testování. Z důvodu přechodu
na vyšší verzi PHP jsme museli aktualizovat vše ve vendor
,
který je taky na Gitu.
Na masteru ovšem stále probíhá vývoj aplikace (a zasahujeme i do
vendor
), kterou potřebujeme průběžně mergovat do nové větve.
Ovšem potřebujeme, aby se vendor
nijak nemergovalo, tj. zůstalo
oddělené.
Nějaký nápad, řešení?
Děkuju moc.
Martin
- Pavel Kravčík
- Člen | 1193
K tomu slouží ideálně composer.lock
, který budeš
commitovat. Vendor dej do .gitignore
. Každá větev pak bude mít
vlastní composer.lock ve kterém budou různé verze fungující
v daném PHP.
Při vývoji pak používáš pouze composer install
– to
vezme verze z locku. Při dlouhodobějším vývoji, abys nemusel stále
pouštět composer při přepínání – je v pohodě udělat si dvě složky
„projekt-master“ „projekt-velka-vetev“. Stačí dát
git clone ssh://git.repo projekt-velka-vetev
.
Plus do composer.json si můžeš do každé větve přidat
php": ">= 8.2
.
- nightfish
- Člen | 505
@jedlicka K tomu, co popsal Pavel ještě dodám, že v
composer.json
(config -> vendor-dir
) (https://getcomposer.org/…06-config.md#…) lze nastavit
cestu k adresáři vendor
. Můžete tedy v každé větvi mít
nastavený jiný adresář a tím pádem při mergi nebude docházet ke
konfliktům.
Nicméně osobně preferuji vendor
neverzovat.
- Marek Bartoš
- Nette Blogger | 1239
a zasahujeme i do vendor
Proč? :( To se přece nedělá…
Pokud chcete docílit toho, aby se při začlenění jedné větve do druhé
neobjevovaly konflikty, tak můžete do .gitattributes přidat
/vendor -merge
a složka se nikdy nemergne
- Pavel Kravčík
- Člen | 1193
A pokud nutně potřebujete zasahovat do vendoru (což tedy může hodně zhoršit schopnost aktualizovat) je lepší zvolit patche.
//composer.json (např. fix pro datagrid aby šlo s BS5)
"config":
{
"allow-plugins":
{
"cweagans/composer-patches": true
}
},
"extra":
{
"patches":
{
"ublaboo/datagrid":
{
"Fix BS5": "patch/datagrid.patch"
}
}
}