Vice databazi od nette 2.2 >

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Lister
Člen | 12
+
0
-

Fascinuje me, ze jak vsude vsichni prezentuji jak to krasne funguje, dokonce i dokumentace je prepsana na nette 2.2, ale kdyby to alespon nekdo otestoval, tak by zjistil, ze pri presunu a prejmenovani databaseextension do bridge nastal jeden zasadni problem.
Priklad pro 2 db: default a foo

Proto, ze reflection se definuje, jako setup (v definition u nette 2.1), ma builder, potazmo autowire k dispozici ContainerBuilder::$currentService (v metode ContainerBuilder::formatStatement() ⇒ Helpers::autowireArguments() ⇒ Container::getByType), tim se stane to, ze se vykonstuuje DiscoveredReflection s zadnosti na sluzbu nette.database.default, pri konstruovani defaultniho pripojeni a pri druhem pruletu ma k dispozici nette.database.foo.

Od 2.2 a fantastickeho vytvoreni bridge DatabaseExtension:
Defininuje se connection zvlast a context, tim padem se predava odkaz na reflection ne v setupu, ale v argumentu, coz je pri druhem pruchodu (databaze foo) celkem problem, protoze za prve je ContainerBuilder::$currentService = NULL a tim padem musi ContainerBuilder::getByType hledat neco, co odpovida Nette\Database\Connection a pochopitelne nalezne default, protoze je prvni. Tim padem se vykonstruuje DiscoveredReflection s getService(‚nette.databe.default‘), ktery ma jako argument pochopitelne prvni connection, cili to ztroskota u fce getPrimary(), protoze se dotazuju na tabulku, ktera je v uplne jine databazi.

Zjistil jsem, ze se jedna o commit od Hracha a je 2 mesice stary. (nasledne byl opraven a ikdyz vznikl dalsi problem, alespon to bylo opravene a z nejakeho duvodu se to nedostalo do release 2.2, nechapu proc, kdyz vysel o 2 mesice pozdeji)

Nette 2.3dev
Pote to proslo nekolika zmenami, ktere puvodni problem vyresily, ale nastal uplne jiny problem a to je duplicitni sluzba IStructure, coz je pochopitelne… Bohuzel na zaklade toho se nevybuduje container…

U nette 2.2 je reseni jednoduche: pridat do cfg k databazi foo reflection: ‚discovered‘
Nasel sem totiz v extensionu podminku (nechapu kde se vzala a co tam dela), ktera timto zaridi, ze se jako argument reflectionu prida vytvoreny connection a neresi to autowire. Tim padem se postavi spravne.

U Nette 2.3dev me taky reseni napada – definovat si reflection (nove convention) rucne, cimz nebude autowire hledat a uspesne se postavi. Toto jsem netestoval, protoze sem usoudil, ze to skutecne nema smysl.

Navrhuju postup: bud to delejme poradne a nebo to nedelejme vubec

Neni mozne aby nejstabilenejsi verzi byla 2.1, kdyz je releasnuta 2.2. Bohuzel to celkem jasne poukazuje na fakt, ze to skutence nikdo nekontroluje a nikdo to netestuje.

Dokonce ani nepredpokladam, ze se k tomu nekdo vyjadri. Pisu to sem, protoze tady je s tim nejmin problemu. Kdybych to postnul jako issue, tak by me zas nejaky expert z jebal ze mam postnout pull req a ja skutecne takovou buzeraci nemam zapotrebi. Hlasim chybu, tak to bud ignorujte a nebo to klidne smazte. Pochopitelne to muzete i opravit, ale neocekavam to.

David Grudl
Nette Core | 8154
+
0
-

Fascinuje mě, že ten stav je 2 měsíce starý a tys to za celou dobu nebyl schopný otestovat. Se styď.

Filip Procházka
Moderator | 4668
+
+3
-

Mohl bys poslat pullrequest :)

hrach
Člen | 1834
+
0
-

cc @DavidGrudl je nejaky duvod, proc nebyla vydana 2.2.2 u database a zustala na githubu jenom RC?

@esorimer bude to nejaka chyba v releas managmentu, asi omyl, v 2.2.2 RC u database to je, akorat se zapomnelo to otagovat a dat sem: https://github.com/…omposer.json#L23

David Grudl
Nette Core | 8154
+
0
-

NDB 2.2.2 ještě vydána nebyla, je jen RC. Bude v Nette 2.2.3.

hrach
Člen | 1834
+
0
-

@DavidGrudl a muzes prosim sdelit duvod? zapomnel jsi, nebo je tu nejaka strategie, kdy proste inkrementujes verze u vseho postupne, ale vydavas celek nezavisle na tom (a taky s ikrementem)?

David Grudl
Nette Core | 8154
+
0
-

Nette 2.2.2 vyšlo 24. 6., ten fix jsi napsal 10. 7., takže důvody jeho nezahrnutí jsou především časové ;)

hrach
Člen | 1834
+
-1
-

aha, to chapu spis tedy jako tu strategii toho tagovain, proc tagujeme 2.2.2, kdyz uz to vyslo? proste bych to u ndb preskocil a tagoval 2.2.3, respektive klidne otagovat 2.2.2 na stejne misto jako 2.2.1. Takto je v tom bordel, protoze nette/nette 2.2.3 bude obsahovat db 2.2.2, ktera pak paradoxne nebude zahrnuza v releasu nette/nette 2.2.2.

David Grudl
Nette Core | 8154
+
0
-

Protože každý package má vlastní verzování. Nette je max(jednotlivé verze).

hrach
Člen | 1834
+
0
-

Takze zaver je:

  • nette/nette 2.2.2 obsahuje nette/database 2.2.1
  • nette/nette 2.2.3 bude obsahovat nette/database 2.2.2
David Grudl
Nette Core | 8154
+
0
-

Presne tak.

David Grudl
Nette Core | 8154
+
+7
-

A teď z jiného soudku: tohle verzování není žádná novinka, účastnil ses setkání Nette Internals, kde se tohle probíralo, v této diskusi jsi nenavrhl žádné lepší řešení, ale hodíš na Twitter uštěpačnou poznámku https://twitter.com/…546531766272.

Chováš se jako ču***. Furt máš kecy k release managementu, jak blbě releasuju třeba NDB, ale v životě jsi mi neposlal email s jakýmkoliv dotazem kolem vydávání verzí, nikdy jsi ani nic necherrypicknul do release větve NDB, necháváš to mně a pak se děsně veřejně všemu divíš a hážeš špínu.

Paráda.

castamir
Člen | 629
+
0
-

OFFTOPIC:

Podle mě je jenom dobře, že se to verzování rozchází. Umožňuje to vyvíjet balíčky nezávisle a třeba zrovna u NDB bych čekal, že se novinky budou přidávat častěji a číslo verze bude naopak o dost napřed před ostatními balíčky.

Editoval castamir (24. 8. 2014 17:27)

David Grudl
Nette Core | 8154
+
+2
-

Asi tak. Řada balíčků se už takřka nevyvíjí, například RobotLoader nebo Tokenizer, neboť jsou hotové. Když třeba za rok a půl, kdy bude Nette 2.3 a taky 2.4, do RobotLoaderu v2.2.0 komitnu drobný fix řešící např. kompatibilitu s PHP 7, jak bych jej měl asi tak otagovat?

hrach
Člen | 1834
+
-3
-

@DavidGrudl akorat si sprotej a lzes:

ad cherry pick:

  • dany commit jsem si do v 2.2 cherrypicknul sam: http://cl.ly/…3F2E2M2B3x1Y, commity, co jsou nad tim, jsi mi cherry picknul tam ty, aniz bych te o to zadal, protoze jsem to mel rozdelanou praci.
  • ty jsi me pozadal uplne v jinym issue, cesky, abych to vybral commity pro cherry pick
  • ty jsem si zacal pripravovat, o takovych vecech je treba premyslet, ze, … otevrel jsem si issue, kde si to budu trackovat, jeste schvalne jsem si tam napsal candidates. aniz by ses zeptatl, nacherry-pickoval si, jakobych o nich byl definitivne rozhodnutej – a ted tu machrujes, tak to jdi nekam. Kdybych to po tobe chtel, assignu te.

ad verzovani

  • neohanej se tu internals, rozhodne nepadlo presne takove rozhodnuti, ktere tu prezentujes, a uz z principu, ze samozvazne internals nikdy zadnou moc nemelo, se ani o nicem nehlasovalo, vetsina internals nema ani pravo commitovat, ale koukam, ze nekdy se to slovo hodi.
  • tagovani na stejnym tagu, pokud se nic nezmenilo, jsem navrhoval, takze nebud demagog, to ze se ti to nelibi je jina vec,
  • emaily – co ti mam jako posilat? nekolikrat jsem tema interne otevrel – seres na to, a nenach nikoho k tomu pricuchnout, vymluvit si to nedas.

ad release managment

  • naprosto souhlasim s tim, ze knihovny se maji vyvijet (a tedy tagovat) samostatne
  • zasadni omyl je v tom, ze si stale pletes „dependency“, a tedy funkci require v composeru
  • aktualne je:
    • nemozny requirovat nette/nette 2.2.2 a nette/database 2.2.3
    • nemozny requirovat nette/nette 2.2.2 a nette/database 2.3
  • pouziti nette/nette 2.2.2@dev (tj. vetev v2.2) neni resenim, najednou mam okamzie uvolnene zavislosti a instaluje se mi treba nette/nette 2.2.9, pro druhy to ani bez nejakeho vlastniho repa nejde. navic, se to vzajmene vylucuje s pouzitim nette/nette, protoze composer by rval konfliktem, takze neni pak mozny zpusob ani includovat compatibility tridy – wtf.
  • toto jsem ti vsechno rikal, i osobne, ale je ti to u prdele, protoze delas „dva“ weby, ktery si spravuje sam, to co si chybi, to si pridas do setinkove verze stablu, …
  • v aktualnim pristupu se zamknuty dependency ma jediny rozumny vyznam to vsechno vydatat zaraz.

Konec koncu, muzu se na nette/database vysrat a delat si vlastni verzi. Abys mi tu nadaval do curaku, to fakt zapotrebi nemam.

Tomáš Votruba
Moderator | 1114
+
0
-

@DavidGrudl Myslím, že by pomohlo, kdyby bylo jasné, kdo má za co zodpovědnost. Takhle to vypadá, že úpravy NDB od Honzy musíš nejdříve potvrdit, Davide. Pak přirozeně vzniká prostor pro stížnosti a neshody.

Kdyby měl Honza na starost NDB komplet a do release by se dostala vždy aktuálně stabilní verze (s tím, že stačí sledovat zprávy o Nette RC), těžko hledat spor. Každý by měl práva i zodpovědnost za to své. Pokud jsem tomu porozuměl jinak, tak mě prosím oprav/doplň @hrach

Taky by se šiklo toto verzování někam sepsat (pro nás, co jsme nebyly na diskusi a neznáme tak plány a postupy). Pokud bych nesledoval toto vláknko, tak bych nejspíš předpokládal to co jeho autor.

hrach
Člen | 1834
+
0
-

@TomášVotruba ja si klidne verzi tagnu, ale ve chvili, kdy k buildovani nette ma pristup presne 1 clovek, ve chvili, kdy jedinou moznosti je vydani i noveho stablu nette/nette (viz. elaborat, jak je require spatne pouzito), tak je to ve vysledku opet jenom polovicni prace a je treba Davidova blessing. Me commity neprochazi jeho schvalnim. Respektive, kdyz se mu to nelibi, tak mi to revertne.

Milo
Nette Core | 1283
+
+2
-

hrach napsal(a):

@DavidGrudl akorat si sprotej a lzes:

ad verzovani

  • neohanej se tu internals, rozhodne nepadlo presne takove rozhodnuti

Padlo, na 3. meetingu. Byla to dlouhá nudná diskuze a přesně jsme si řekli, že každý balíček bude mít svoji verzi a tagy se duplicitně dělat nebudou.

ktere tu prezentujes, a uz z principu, ze samozvazne internals nikdy zadnou moc nemelo

Mělo a má. David vyšel vždy vstříc. Ale když nikdo nic nechce, nebo nepřijde (ani videokonferenčně) a místo otevření diskuze v internals se fňuká na Twitteru…

se ani o nicem nehlasovalo

Vše se diskutovalo. Vše. I ty nejmenší hovadiny, které nikoho nebaví.

vetsina internals nema ani pravo commitovat

Ale pull-requesty otevírat může. Pingnout někoho s commit právem taky. Code review jakbysmet.

  • emaily – co ti mam jako posilat? nekolikrat jsem tema interne otevrel – seres na to, a nenach nikoho k tomu pricuchnout, vymluvit si to nedas.

To padlo od více lidí (myslím návrh na verzování), ale nikdo to neobhájil.

Editoval Milo (24. 8. 2014 21:33)

radekBrno
Člen | 61
+
+17
-

O tématu vlákna nic nevím, jen si dovolím připojit postřeh člověka, který s Nette začíná. Podobné diskuze nedělají Nette zrovna dobrou reklamu a mnoho lidí by mohly odradit. Být Vámi, tak si založím nějaký soukromý komunikační kanál. Nechci Vás poučovat, berte to prosím jen jako postřeh člověka z venku.

hrach
Člen | 1834
+
-2
-

@Milo mluvil jsem o schuzce, na ktere jsem byl a kde se to resilo, protoze to David explicitne zminoval.

Dale bych byl rad, kdybys mi do pm napsal informace, kde bych nasel zapis, respektive aspon bodove shrnutou informaci, ze se neco takovehoto delo. Interni zapis spis tak nejak zminuje, ze slo o dobrou kalbu.

Ale když nikdo nic nechce, nebo nepřijde (ani videokonferenčně) a místo otevření diskuze v internals se fňuká na Twitteru.

Bozuhel jako student v Brne nemuzu menit svuj kalendar 2 dny dopredu, jak se rozhodlo o terminu breznove schuzky. 6hodin cesty vlakem, navic polovina v noci je pro me zasadni zasah do harmonogramu, ono prijet o pul ctvrte domu totiz narusi i dalsi den. Na videokonferenci jsem byl, pro priste ste ji zrusili, protoze jste nebyli ji schopni zajistit. Otevrel jsem diskuzi v internals nekolikrat, reaguje polovina clenu. Zadna pravidla o hlasovani nejsou. (Pokud jsou, tesim se, ze jsou nekde zaznamenana.)

To padlo od více lidí (myslím návrh na verzování), ale nikdo to neobhájil.

Z osmi clenu o tom diskutovali 3. Ja, David a Filip. A protoze jsi @milo dost neslusnej, napadas me verejne ze fnukam na twitteru, tak tady je zverejnuji diskuzi: http://cl.ly/…0t3n24130g18 Verejne ti koukam pusa jede, ale kdyz se mas vyjadrit v soukromi, tak nic. To stejny k tvemu vcerejsimu issue na trellu. Moc dobre vis, jaka je realna funkcnost a moc „internals“.

Milo
Nette Core | 1283
+
+3
-

hrach napsal(a):

@Milo mluvil jsem o schuzce, na ktere jsem byl a kde se to resilo, protoze to David explicitne zminoval.

Dale bych byl rad, kdybys mi do pm napsal informace, kde bych nasel zapis, respektive aspon bodove shrnutou informaci, ze se neco takovehoto delo. Interni zapis spis tak nejak zminuje, ze slo o dobrou kalbu.

Zápis není. Nikdo nezapisoval. Ptal ses na zápis? Ne. Třeba by Ti to někdo v pár bodech shrnul.

Ale když nikdo nic nechce, nebo nepřijde (ani videokonferenčně) a místo otevření diskuze v internals se fňuká na Twitteru.

Bozuhel jako student v Brne nemuzu menit svuj kalendar 2 dny dopredu, jak se rozhodlo o terminu breznove schuzky. 6hodin cesty vlakem, navic polovina v noci je pro me zasadni zasah do harmonogramu, ono prijet o pul ctvrte domu totiz narusi i dalsi den. Na videokonferenci jsem byl, pro priste ste ji zrusili, protoze jste nebyli ji schopni zajistit. Otevrel jsem diskuzi v internals nekolikrat, reaguje polovina clenu. Zadna pravidla o hlasovani nejsou. (Pokud jsou, tesim se, ze jsou nekde zaznamenana.)

Já Tě chápu a nemusíš to omlouvat, také jsem studoval. Ale mlčet a nenapsat, že videokonfenci chceš, také není řešení.

To padlo od více lidí (myslím návrh na verzování), ale nikdo to neobhájil.

Z osmi clenu o tom diskutovali 3. Ja, David a Filip. A protoze jsi @milo dost neslusnej, napadas me verejne ze fnukam na twitteru, tak tady je zverejnuji diskuzi: http://cl.ly/…0t3n24130g18 Verejne ti koukam pusa jede, ale kdyz se mas vyjadrit v soukromi, tak nic. To stejny k tvemu vcerejsimu issue na trellu. Moc dobre vis, jaka je realna funkcnost a moc „internals“.

Ano, diskuze o release managementu. Vida, z internals je externals. Položil's otázku, odpovědi Tě neuspokojily, mlčel's. Zeptal ses: „A jak se teda budou verzovat balíčky?“, nezeptal. Já do diskuze nic nenepsal, protože se nemíchám tam, kde si nejsem jistý že věci rozumím na potřebné úrovni. Pak jsem ovšem odkázán na rozhodnutí ostatních. Stejně tak jako Ti, co se na nic neptají.