Vydávání verzí

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

Zaprvé bych rád poděkoval Davidovi, že se soustavně věnuje vývoji Nette a reflektuje to, co se zde probírá.

Na druhou stranu začínám mít trochu strach z tak častých změn verzí.
Jde o to, že verze (revize) jsou vydávány několikrát do týdne a vždy jen s popiskem o pár slovech. Jejich význam je pak více probrán zde na fóru. Pokud na Nette vyvíjíte a chcete držet krok, musíte pak jednou za měsíc projít fórum, změny ve zdrojácích, případně další zdroje, abyste se ujistili, že danou verzi Nette můžete nahrát na ostrý server (že váš kód na něčem nehavaruje).

Proto bych navrhoval třeba jednou za 14 dní/měsíc vydávat minor verzi, ve které se promítnou revize udělané za tu dobu a na pár řádek sepsat změny a na co si dát pozor při nasazení nové verze.

Vím, že se snažíš dělat vše zpětně kompatibilní, ale…

Co myslíš Davide? I vy ostatní?

Jod
Člen | 701
+
0
-

Načo to nahrávaš na ostrý server, keď nevieš či to pôjde? Pokiaľ je to stabilné a nepotrebuješ nové funkcie tak tam nechaj aktuálnu verziu, nie? Ja tiež neupdatuje všetky spravené projekty, keď vyjde nejaká nová verzia frameworku, či neakej knižnice pokiaľ to výslovne netreba. A pokiaľ niečo vyvýjam, tak sledujem fórum a aktualizujem.

romansklenar
Člen | 655
+
0
-

Je to fakt, že od té doby, kdy bylo Nette označeno před půl rokem jako 0.8 uběhlo už více než 150 revizí, a kdyby měl člověk verzi Nette zakonzervovanou na téhle revizi v nějakém projektu a chtěl nebo potřeboval aktualizovat, asi by se z toho zbláznil, protože jinak než pročítáním fóra to moměntálně nejde.

Seznam změn je fajn, ale co s dokumentací? Tady se to začíná komplikovat. Sám jsem teďkom dlouho pročítal fórum za poslední skoro 4 měsíce a mám dilema, jestli to přidat k současné verzi, nebo to dát někde bokem aby to nemátlo ty co jedou na verzi 0.9 Napadají mě dvě možnosti:

  1. Vést seznam změn na nějaké stránce k tomu určené stránce (např. [changelog-0.9], [alpha-dev] nebo tak něco) a udržovat jej aktuální k poslední revizi a dokumentaci nechat aktuální pro současnou poslední stabilní verzi (což je podle čísla verze 0.8 ona r.48). V SVN taky tyto změny čísel verzí tagovat a upravit podobu stránky download stejně jako to má dibi. Na toto se ale musí upozornit při editaci stránky ve wiki, že pokud uživatel píše nějakou změnu k nové revizi je třeba to psát tam a tam. Po vydání stable verze 0.9 by se changelog zapsal do příslušných částí. Podobně rozdělit i api.nette.org aby v tom nebyly zmatky (píšu o verzi 0.8, ale v api je poslední revize).
  2. Udržovat v průběhu vývoje další verzi stránek dokumentace a při prohlížení mít možnost výběru verze, které se stránka týká? To asi moc rozumně (v současné podobě) nejde, protože jsou v dokumentaci hodně použity odkazy do API a to se taky průběžně mění, takže by se muselo verzovat podle čísla verze i API. Asi to bude docela oříšek a bez Davidova zásahu to nepůjde.

A ještě něco co už se tak netýká vydávání nových verzí: Možná by stálo za to rozjet i nějaký bug-tracking, protože pro neznalého po shlédnutí sekce „Hlášení chyb“ ve fóru to na něj může působit i negativně, že je Nette zabugované a podobně.

Taky nebudu asi jediný koho by zajímala nějaká roadmap, milestones či aktuální podoba todo-listu, z čeho člověk může odhadnout, za jak dlouho se má připravit na nové číslo verze a co v něm čekat nového. Ikdyž – když člověk pohledá najde to i ve fóru.

Jakub Šulák
Člen | 222
+
0
-

to Jod: Samozřejmě nahrávám na server až když otestuji, že všechno jede – a to je problém, po změnách musím celkem pátrat. Jelikož tato aplikace běží na více projektech, dělá na ní více vývojářů, je potřeba udržovat všechny knihovny aktuální, aby je mohli programátoři využívat.

to Roman: Dělit stable verzi na 0.8 a 0.9 moc neřeší. Verzi 0.8 (revizi 48) dnes nepoužiješ, jelikož výš, že oproti stávající verzi obsahuje takové množství změn, že přechod na 0.9 by byl velice náročný. A hlavně se ochudíš o spoustu již implementovaných věcí.
Osobně jsem pro zavedení miror verzí 0.8.1 (případně 0.8.1.1), které by vycházeli cca jednou za měsíc (to je ale na Davidovi samozřejmě) s nějakým článkem, který by uvedl, jaké důležité věci se mění – tento článek bychom pak reflektovali do dokumentace.

Jod
Člen | 701
+
0
-

To jedno číslo do verzie by nebolo zlé pridať.

David Grudl
Nette Core | 8218
+
0
-

Zkusím jen bodově:

  • vývoj Nette je momentálně ve stádiu, kdy se první (veřejná) stable teprve blíží. Rád bych ji vypustil krátce po Brněnském/Pražském srazu. Tím je situace malinko jiná, než u jiných produktů.
  • dokumentace by měla reflektovat jen poslední podobu, dokud nebude existovat stable
  • číslo verze můžeme klidně chápat jako 0.8.0156, kde 156 je číslo revize
  • nové revize zachovávají (alespoň se o to snažím) zpětnou kompatibilitu a o změnách informují prostřednictvím varování (vhodnější by bylo E_USER_DEPRECATED, ale to bude až v PHP 5.3).
  • při změně na větší číslo verze všechny deprecated části frameworku odstraním; postupný update je proto asi nejschůdnější řešení, ačkoliv chápu, že to je velmi náročné
  • bylo by vhodné pročistit fórum od vláken, které už jsou zastaralé
  • souhlasím s Romanem, že „hlášení chyb“ na fóru může vytvářet špatný dojem, chtělo by to řadu vláken přesunout jinam.

ad roadmap:

  1. mám tu asi pětadvacet poznámek a linků z fóra týkajících se formulářů
  2. AJAX ve formulářích
  3. AJAX a snippety, zbavit se @{...}
  4. finalizovat dědění šablon, vymyslet, jak to skloubit se současnou podobou šablon
  5. services & refactoring, viz 1286-za-objekty-hloupejsi
  6. přidat třídu Http a přesunout do ní detectLanguage(), lastModified() z Presenter, možná i canonicalize()
  7. zkusit implementovat anotace na základě analýzy zdrojového kódu, tam kde nefunguje getDocComment()
  8. zvážit třídu Locale pro jazykově specifické záležitosti
PetrP
Člen | 587
+
0
-

David Grudl napsal(a):

  • bylo by vhodné pročistit fórum od vláken, které už jsou zastaralé

Než vymazávat bych je přesouval do nějaké sekce archiv. Kde by bylo nějaké upozornění že to co se zde řeší není aktuální. To vše aby např byli dohledatelné linky z aktivní části fóra.

phx
Člen | 651
+
0
-

Souhlasim. Na webu bude oficialni stable verze s dokumentaci a API a trunk verze bude na SVN ci nekde jinde s dokumentaci a API.

Ohledne nasezani nove verze Nette taky trnu kde co na be bafne. Treba David ted nedavno (nevni kdy a ani jsem to nezahledl na foru ci ve zmenach) rozdelil Object na Object a ObjectMixin cimz mi moje APP zbuchla. Protoze kdyz se volal handler sam na sobe (stejny objekt) tak byl protected. Coz po one zmene selhalo, protoze ObjectMixin neni predek.

Jakub Šulák
Člen | 222
+
0
-

Asi to takto bude nejrozumější.
S tím, že se nebude aktualizovat jádro, ale spíše nějaké komponenty – mimochodem nemáte někdo opravdu dobře napsanou komponentu DataGridu, kterou byste mohli uvolnit?

Jod
Člen | 701
+
0
-

Ja mám jednu upravenú o nejakú funkcionalitu, ale či je dobre napísaná to neviem ))

Jakub Šulák
Člen | 222
+
0
-

Co by to tak asi mělo umět:

  1. bindSql (načtení zdroje jako sql dotazu – přes dibi)
  2. automatické stránkování
  3. automatické řazení
  4. automatické vyhledávání ve výsledcích
  5. generování odkazů (editace, smazat, apod.)

a teď věci, které já zatím nemám a bylo by super je tam mít:

  1. celé přes ajax
  2. možnost mít ve sloupci i jiné věci než text (obrázek, apod.)
  3. propojení s formuláři (pro editaci, apod.)

V podstatě takový datagrid jako je v .NETu. Navíc ta moje komponenta je tak na přepsání – dělal jsem ji, když jsem začal s nette a taky dibi umí od té doby nové věci… proto se ptám.

Jod
Člen | 701
+
0
-

Môj grid zvláda základnú funckionalitu ako bola (tj. strankovanie, radenie), plus papá dataSource (idem prerobiť aby papal aj hocjaké polia), vie pomenovať názvy stĺpcov, vyhladávanie mám riešené cez samostatný FilterControl, vie generovať akcie (tj. edit, delete a pod.), vie spraviť link zo stĺpca, vie spracúvať udalosti, vie pri generovaní meniť obsah pomocou udalostí a tým pádom mať v stĺpci aj iné veci než text. S formulármi je prepojený normálne cez link :D , klikneš a hodí ťa na formulár :D . Môžem to večer hodiť do tipy a triky.

Jakub Šulák
Člen | 222
+
0
-

Super hoď to tam, díky. Jak budu mít čas, tak se na to mrknu a zkusím napsat něco nového, kombinujícího snad to nejlepší ;-)

krajaac
Člen | 45
+
0
-

Jod napsal(a):

Môj grid zvláda základnú funckionalitu ako bola (tj. strankovanie, radenie), plus papá dataSource (idem prerobiť aby papal aj hocjaké polia), vie pomenovať názvy stĺpcov, vyhladávanie mám riešené cez samostatný FilterControl, vie generovať akcie (tj. edit, delete a pod.), vie spraviť link zo stĺpca, vie spracúvať udalosti, vie pri generovaní meniť obsah pomocou udalostí a tým pádom mať v stĺpci aj iné veci než text. S formulármi je prepojený normálne cez link :D , klikneš a hodí ťa na formulár :D . Môžem to večer hodiť do tipy a triky.

Podle popisu ten tvůj datagrid vypadá šťavnatě :) Taky se připojuju k prosbě o hození sem na fórum. Napsal jsem si podobný, funkčně chudší a určitě více zbastlený, tak bych se u tebe rád inspiroval :)

Jod
Člen | 701
+
0
-

Aha sorry, ešte ho upravujem, aby vyzeral krajšie. Boli tam nejaké neotestované chyby. Čoskoro pridám.