Vendor-lock hell Kdyby/Doctrine & Nette 3.0

Dan Hundrt
Člen | 74
+
+1
-

Zdravím,

rády bych se zeptal, jak řešíte v Nette projektu problémy s vendory, které chtějí Nette 2.4. Mám balíčky (viz. níže), pokud chci updatovat na Nette 3.0, umře to na Kdyby/Doctrine a Kdyby/Translation.

Rád bych se zeptal, zdali lze přinutit composer pro instalaci a ignorování závislostí nebo jsou projekty s Doctrine odkázané na Nette 2.4.

Díky

{
    "name": "project/nette-eshop",
    "description": "Nette eshop",
    "type": "project",
    "license": "Private",
    "minimum-stability": "stable",
    "require": {
        "php": ">= 7.1",
        "nette/application": "^2.4",
        "nette/bootstrap": "^2.4",
        "nette/caching": "^2.5",
        "nette/database": "^2.4",
        "nette/di": "^2.4",
        "nette/finder": "^2.4",
        "nette/forms": "^2.4",
        "nette/http": "^2.4",
        "nette/mail": "^2.4",
        "nette/robot-loader": "^2.4",
        "nette/security": "^2.4",
        "nette/utils": "^2.4",
        "latte/latte": "^2.4",
        "tracy/tracy": "^2.4",
        "nextras/mail-panel": "^2.3",
        "kdyby/translation": "^2.4",
        "doctrine/orm": "^2.5.10",
        "doctrine/dbal": "^2.5.4",
        "kdyby/console": "^2.7.0",
        "kdyby/doctrine": "^3.2.1",
        "kdyby/redis": "^4.0",
        "lightools/xml": "^2.0",
        "moneyphp/money": "^3.0"
    }
}
Dan Hundrt
Člen | 74
+
0
-

Díky

suwer
Člen | 33
+
0
-

Zminovane reseni stejne neni kompatibilni s kdyby/doctrine v3.3.0. Konci to na typech.

Declaration of Kdyby\StrictObjects\Scream::__call($name, $args) should be compatible with Nette\DI\CompilerExtension::__call(string $name, array $args)

David Matějka
Moderator | 6445
+
0
-

u ktere tridy to failuje?

suwer
Člen | 33
+
0
-

Hmm, to bych zase musel predelat cely composer.json a to se mi moc nechce :-). Oproti odkazovanemu reseni jsem tam mel konkretni 2.x verze jednotlivych balicku, ktere jsem lovil na packagist. Samozrejme jsem to pak revertnul bez zalohy.

Kazdopadne to spadlo hned na zacatku pri zavadeni DI extensions kdyby/doctrine.

Pokud by to necemu pomohlo, tak to muzu cele sestavit znova a identifikovat presnou tridu. Podle me tam toho ale bude hromada. Nette 3.0 je striktni a to si myslim nikdy nebude s kdyby/doctrine fungovat, dokud se neupdatne.

Tomáš Votruba
Moderator | 1114
+
0
-

Proto je dobrý aktualizovat průběžně a pravidelně.

Tohle pomůže jako workaround:
https://pehapkari.cz/…y-ve-vendoru

Tohle jako dlouhodobé řešení: https://github.com/…iny/doctrine

Felix
Nette Core | 1196
+
+6
-

Tomáš Votruba napsal(a):

Proto je dobrý aktualizovat průběžně a pravidelně.

Tohle pomůže jako workaround:
https://pehapkari.cz/…y-ve-vendoru

Tohle jako dlouhodobé řešení: https://github.com/…iny/doctrine

Rad bych doporucil spise Nettrine (https://github.com/nettrine/) ekosystem, ktery se snazi nahradit Kdyby\Doctrine a dalsi prilehle balicky. Nettrine, jak uz nazev napovida, je spojen ze slov Nette a Doctrine. V organizaci jsou tedy adaptace balicku z organizace Doctrine pro Nette Framework.

Za Nettrine stoji vice firem a vice lidi, kteri se na tom podileji.

Bylo by fajn, kdybychom netvorili dalsi a dalsi a dalsi forky a radeji se vydali spolecnou cestou. Radi uvitame treba @Tomáš Pilař a dalsi, abychom spolecne vytvorili Nettrine\ORM jako volbu 1 pro integraci Doctrine do Nette.


Issue zalozeno: https://github.com/…iny/issues/6

Editoval Felix (15. 3. 2018 21:52)

Machy8
Člen | 59
+
+1
-

@felix nebo může Dan použít portiny/doctrine přímo od Toma Pilaře :D.

Btw. jak každý píše zvlášť vlastní rozšíření do Nette na tatáž věc pořád dokola, tak je to trošku ztráta času. Neexistuje náhodou něco jako FOS pro nette?

Editoval Machy8 (12. 3. 2018 21:49)

Felix
Nette Core | 1196
+
+11
-

Machy8 napsal(a):

@felix nebo může Dan použít portiny/doctrine přímo od Toma Pilaře :D.

Tomu bych se snazil vyhnout, aby kazdy udrzoval svoji „Doctrine“. Pojdme to delat koncepcne. Proc to musi kazdy delat sam?

Felix
Nette Core | 1196
+
+1
-

Machy8 napsal(a):

@felix nebo může Dan použít portiny/doctrine přímo od Toma Pilaře :D.

Btw. jak každý píše zvlášť vlastní rozšíření do Nette na tatáž věc pořád dokola, tak je to trošku ztráta času. Neexistuje náhodou něco jako FOS pro nette?

Plha, vzdyt uz o tom dobrou dobu hovorime…

suwer
Člen | 33
+
0
-

Diky za navrhy reseni a urcite fandim novemu Nette Doctrine projektu, ktery by byl aktualni a stabilni.

K tem resenim, portiny/doctrine dela problemy pri nasazeni. Vyhazuje notice na config atributy, co nejsou v config.neon uvedene.

nettrine/orm ma zase problem s verzi PHPecka, vyzadovalo po mne 7.1.3 a vys. Ja mam 7.1.13 ;-)

Felix
Nette Core | 1196
+
0
-

suwer napsal(a):

Diky za navrhy reseni a urcite fandim novemu Nette Doctrine projektu, ktery by byl aktualni a stabilni.

K tem resenim, portiny/doctrine dela problemy pri nasazeni. Vyhazuje notice na config atributy, co nejsou v config.neon uvedene.

nettrine/orm ma zase problem s verzi PHPecka, vyzadovalo po mne 7.1.3 a vys. Ja mam 7.1.13 ;-)

Muzes sem prosim dumpnout hlasku z composeru? Nejak mi ty tvoje verze nesedi. :-)

suwer
Člen | 33
+
0
-

Muzes sem prosim dumpnout hlasku z composeru? Nejak mi ty tvoje verze nesedi. :-)

Muze za to zavislost na symfony/console: ^4.0.3, ktera ma php: ^7.1.3

symfony/console 4.1.x-dev requires php ^7.1.3 -> your PHP version (7.1.13) overridden by "config.platform.php" version (7.1) does not satisfy that requirement
symfony/console 4.0.x-dev requires php ^7.1.3 -> your PHP version (7.1.13) overridden by "config.platform.php" version (7.1) does not satisfy that requirement
nettrine/orm dev-master requires symfony/console ^4.0.3 -> satisfiable by symfony/console[4.0.x-dev, 4.1.x-dev]

Editoval suwer (15. 3. 2018 10:30)

Felix
Nette Core | 1196
+
+2
-

suwer napsal(a):

Muzes sem prosim dumpnout hlasku z composeru? Nejak mi ty tvoje verze nesedi. :-)

Muze za to zavislost na symfony/console: ^4.0.3, ktera ma php: ^7.1.3

symfony/console 4.1.x-dev requires php ^7.1.3 -> your PHP version (7.1.13) overridden by "config.platform.php" version (7.1) does not satisfy that requirement
symfony/console 4.0.x-dev requires php ^7.1.3 -> your PHP version (7.1.13) overridden by "config.platform.php" version (7.1) does not satisfy that requirement
nettrine/orm dev-master requires symfony/console ^4.0.3 -> satisfiable by symfony/console[4.0.x-dev, 4.1.x-dev]

Ty pouzivas platform.php? Tam musis hodit presnou verzi, nebude stacit 7.1. To pak nedela neplechu.

suwer
Člen | 33
+
0
-

Ty pouzivas platform.php? Tam musis hodit presnou verzi, nebude stacit 7.1. To pak nedela neplechu.

Presne tak, uplne jsem to nakonec prehlidl. Dik za info.

Felix
Nette Core | 1196
+
0
-

Nabidl jsem do portiny/portiny (https://github.com/…iny/issues/6), zda-li se nechteji pridat ke Contributte/Nettrine a tvorit ty veci dohromady.

Uvidime, jak to dopadne. Vic uz udelat nemohu. :-)

_Martin_
Generous Backer | 679
+
0
-

Ahoj, znamená to, že Kdyby\Doctrine ve vývoji ustal? Řeším aktualizaci Doctrine na verzi 2.6 a Kdyby je fixované na 2.5. Je tedy přechod na jinou integrační knihovnu pro Nette nezbytný?

Ondřej Kubíček
Člen | 494
+
+6
-

celý balík Kdyby není vyvíjen, jen udržován
doporučoval bych přejít na Contributte

Daewoo
Člen | 36
+
+1
-

Taky to s kdyby/doctrine už nějakou dobu řeším. A právě mi prask.

Pánové. To je čurbes v těch balíčkách a to jsem ještě slušnej… Dvacet Package na stejnou věc a stejně všechny po dvou třech letech umřou. K tomu každej doporučuje něco jinýho (svýho a zaručeně je to to pravé ECHT), takže je nemožný se v tom vyznat. A za další rok zas překopemem nejlépe úplně všechno (bude nová Contributte, teď tam je zas Nextras ORM nebo co, prostě čím víc lajtwajtů a thinů, tím víc adidas).

Tohle vás hoši jednou zasype, Nette projeku to DOST škodí. Jsem nucenej udržovat projekty na 7.0 php, protože kombinace balíčků, který používám jako základ, už pod nette 2.4 nejdou poskládat (jsou jiné balíčky s jiným API a to by znamenalo přepsat kód – proč bych to měl dělat? u klienta to neobhájim.). A vážně nemám nic jinýho na práci, než každej den dřepět na fóru a sledovat, co zas kdo „vymyslel“ pod novým cool názvem. To není hejt, to je realita. A na výběr jsou alternativy.

Každopádně držím Nettrine projektu palce. Snad se to ustálí, dám mu šanci.

David Grudl
Nette Core | 8218
+
+1
-

Bohužel tohle je stinná stránka open source (a důkaz, že open source je úplně vadný model).

Prostě kvalita odpovídá ceně :)

Daewoo
Člen | 36
+
-5
-

Souhlasím s tebou. Samozřejmě, cena odpovídá. Absolutně nic proti tomu.

Vím, že se s tím moc dělat nedá. Možná by pro začátek jen stačilo, aby autor nějakého nevyvíjeného balíčku dal někam vědět: „Hele kluci, už mě pracovat na tomhle nebaví, ujměte se toho.“ nebo „Je to špatná ulička, přepište to někdo, nemám na to čas.“. Někam na viditelné místo. Dát tuhle funkci (a zařídit, aby se o ní opravdu vědělo) třeba do Componette. Kliknu a je (zdechlost především). Co na tom, že to nový člověk komplet přepíše – od toho máme přece major verzování. Jenže se raději napíše úplně novej balíček a celý se to pak v composeru rozjebe.

David Grudl
Nette Core | 8218
+
0
-

Proč by někdo měl držet kompatibilitu s cizím balíčkem, který mu navíc může připadat špatně navržený, když nemusí? To nedává ekonomicky smysl.

Čamo
Člen | 798
+
0
-

Open source je vadný model? Má Nette málo peňazí? A čo to je málo? Treba vymyslieť nejaký funkčný marketing pre Nette.

David Grudl
Nette Core | 8218
+
+4
-

@Čamo pokud máš zájem podpořit Nette, pošli prosím příspěvek https://nette.org/cs/donate

Čamo
Člen | 798
+
+1
-

@DavidGrudl Ja posielam pravidelne. Mne to príde normálne. A osobne nechápem čiastku 64 000 mesačně. To sú aké náklady?

Editoval Čamo (22. 6. 2018 10:06)

David Grudl
Nette Core | 8218
+
+2
-

Super, díky.

Jinak to je cíl, kterého bych rád dosáhl, abych mohl pokračovat ve vývoji. Zkusím to na stránce lépe vysvětlit.

pitr82
Člen | 121
+
0
-

Zdravím, dotaz na NETTRINE.
u Kdyby\doctrine používám pro LazyLoading ResultSet. Plánujete něco i pro Nettrine?

Filip Procházka
Moderator | 4668
+
+7
-

Říkám to na každém srazu a otravuju s tím pravidelně na twitteru a spoustě dalších míst.

Používáte nějaký Kdyby balíček v projektu a potřebujete aby byl udržovaný?
Napište mi, domluvíme se – dám vám práva a můžete se o něj starat.


Zatím se mi přihlásil jen @enumag, že bude aspoň mergovat PR, ale vyvijet to nema čas.
A pak další jeden člověk, kterej si vzal dva balíčky a vyvíjí je dál, protože jsou použite v projektu na kterém dělá.

… jinak nikdo :)