Aktualizace na nove verze Nette
- neznalek
- Člen | 60
Ahoj,
proc kdyz pokazdne aktualizuju Nette stravim pul dne projitim celeho webu jestli vsechno funguje jak ma.. Takovy zbytecny update prejmenovani: onSubmit na onSuccess.. Proc?
Kdyz se podivam na verze nette je tu 0.9, ktera je nekompatibilni a zastarala. 2.0 beta ktera se vyviji a 2.0 dev pro zkusene nette vyvojare take ve vyvoji.. Pokud ovsem mam nette 2.0 pul roku starou a chci aktualizovat na novou verzi 2.0 nejde to, protoze se obevil neon, prejmenovali se konstaty service na services atd.. Dokonce i sablony se registruji jinak, helpery atd.. Takze fakt ztrata jednoho dne ladeni veci ktere byli napsany a odladeni behem pul roku vyvoje webu..
Dokumentace je zastarala a jedine z ceho se da nette naucit je forum, ktere je uz take pro zkusenejsi programatory..
Nechci aby jste reagovali ze nette neni jedina moznost, ale proc vyvoj FW neni plne kompatibilni s predchozimi verzemy?
- Jan Tvrdík
- Nette guru | 2595
neznalek wrote:
Proc vyvoj FW neni plne kompatibilni s predchozimi verzemy?
Protože ne všechny změny lze provést kompatibilně.
- Patrik Votoček
- Člen | 2221
neznalek napsal(a):
2.0 beta ktera se vyviji a 2.0 dev pro zkusene nette vyvojare take ve vyvoji..
Od vydání 2.0 beta jsou DEV a BETA balíky shodné.
Pokud ovsem mam nette 2.0 pul roku starou a chci aktualizovat na novou verzi 2.0 nejde to…
To je daň za používání DEV verzí (proto se taky jmenuje DEV)
Dokumentace je zastarala a jedine z ceho se da nette naucit je forum, ktere je uz take pro zkusenejsi programatory..
Dokumentace zastaralá? Víš o tom že je kompletně nová dokumentace ? Která je dokonce napřed před kódem :-) .
… ale proc vyvoj FW neni plne kompatibilni s predchozimi verzemy?
Tak to u vývoje SW chodí. Zkrátka a dobře desetinkové verze jsou / měli by být kompatabilní. A major verze se od kompatability oprosťují, protože se tak dá vyvinout něco co je daleko „lepšího“.
Nette není v tomto ohledu jediné. Koukni se třeba na Doctrine 1.x vs 2.x, Symfony 1.x vs 2.x tam je těch nekompatabilních věcí daleko více než v Nette.
- kravčo
- Člen | 721
neznalek napsal(a):
Takovy zbytecny update prejmenovani: onSubmit na onSuccess.. Proc?
Je to zbytočné – nie je to zbytočné… Každý môže mať svoj
názor. Podstatné je to, u ktorého prevažujú pozitíva a u ktorého
negatíva. V tomto prípade je zrejmé, že premenovanie má za cieľ
odstrániť nepresný názov a nahradiť ho presným. To všetko pri dočasnom
zachovaní spätnej kompatibility (áno, drvivá väčšina zmien sa deje
s dočasným zachovaním spätnej kompatibility, pričom starý spôsob vyhodí
warning). To znamená, že nedôjde k syntaktickej chybe, ale jasne
zrozumiteľnému warningu „Nette\Forms\Form->onSubmit
changed
its behavior; use onSuccess
instead.“
…, ale proc vyvoj FW neni plne kompatibilni s predchozimi verzemy?
Akonáhle sa FW vyvíja v istom momente dôjde k tomu, že doterajšie API nepostačuje, treba ho upraviť, či dokonca výraznejšie prekopať. Je to o rozhodnutí: buď stabilné API a stabilné (staré) fičúry, alebo nové API a nové (čerstvé) fičúry… A to rozhodnutie môžeš spraviť aj ty sám…
- jannemec
- Člen | 78
No s vývojem a změnami tj. i nekompatibilitou je třeba u DEV počítat – zároveň bych také uvítal, kdyby byl nějaký „roadmap“ – z posledních verzí mám pocit, že už čas na 2.0 verzi nazrál. Jenže zároveň rozumím, že to dělá někdo ve svém volném čase … těžko požadovat termíny a jejich plnění. Brání to ale imho dalšímu rozšíření. Asi málokterá firma si troufne použít verzi, která je zastaralá a nevyvíjí se (0.9), je ve stavu beta (2.0 beta) a všeobecně se ví, že se API změní – viz DEV verze. Já mám třeba několik projektů v 0.9 verzi, ale upgrade na 2.0 beta je půlkrok, takže s jejich rozvojem čekám na nějakou „finál“ verzi … no a nové věci dělám v DEV verzi, abych si osahal nové věci. A to je docela náročné …
- arron
- Člen | 464
neznalek wrote:
Ahoj,
proc kdyz pokazdne aktualizuju Nette stravim pul dne projitim celeho webu jestli vsechno funguje jak ma..
Protože nemáš pro svoje projekty napsané testy:-)
jannemec wrote:
Asi málokterá firma si troufne použít verzi, která je zastaralá a nevyvíjí se (0.9), je ve stavu beta (2.0 beta) a všeobecně se ví, že se API změní – viz DEV verze.
Upřímně, pokud v DEV verzi není zrovna nějaký „super-bug“, tak jí klidně použijeme :-) Je tam sice jisté riziko nekompatibility s budoucími verzemi, ale když to člověk dělá průběžně, tak je to docela v pohode :-)
- 22
- Člen | 1478
@arron:
- s těmi testy to není moc hezká argumentace :-)
- Pokud si vezmu poslední betu a poslední dev, tak je tam změn celkem požehnaně jako je například úplné vyřazení robotLoaderu z config.neon, návrat konstant APP_DIR, LIBS_DIR atd. Tento nekomentovaný vývoj Nette, jakým směrem se montálně ubírá mě už trošku vadí a z changelogu nejsem například schopen vyčíst, ja teď definovat expiraci session v configu a jiné vychytávky souvisejcí s možností načítání uživatelských configů, atd.
Takže raději používej betu, než dev verzi, dokud nebudou nové věci dotáhnuté do konce i s nějakým „oficiálním uvedením“ v podobě nějakého postu od DG.
- Filip Procházka
- Moderator | 4668
@**22**: Přesunutí RobotLoaderu je jedna z mála věcí, která je výraznější BC, ale vůbec to není přeci problém. Stačí zkopírovat 3 řádky ze sandboxu. A konstanty nepoužívám a to mám poslední dev :)
- 22
- Člen | 1478
@HosipLan: já neříkám, že je to problém. Ale přechod poslední beta na dev – robotLoader jsou 3 řádky, pak tu máme session, dalších 5 řádku, protože v neonu jsem ji prostě nenakofiguroval zatím :-), pokud používáš vlastní MyConfigurator, což ty používáš, musíš řešit jinak, protože robotLoader se spouští až po načtení configurace a to ještě nevím, na co narazím dál.
- Filip Procházka
- Moderator | 4668
Ale MyConfigurator
, který jsem vždy radil, přece dědí od
Nette\Config\Configurator
:)
Mimochodem, s posledním dev možná přestanou fungovat továrničky v poděděném Configuratoru :) Ale nechce se mi to zkoumat, protože už ho nepoužívám :P
- 22
- Člen | 1478
@HosipLan: teď nevím, ale i když od něj dědí, tak ho přece načítáš v bootstrapu místo Nette\Config\Configuratoru, takže si tu třídu musíš naloadovat ručně, protože robotLoader se rozjede až po načtení configu nebo se mi něco plete?
Edit: ber to jako řečnickou otázku, teď jsem četl toto
Editoval 22 (1. 12. 2011 12:08)
- Patrik Votoček
- Člen | 2221
22 napsal(a):
@arron:
- s těmi testy to není moc hezká argumentace :-)
Naopak je to ten nejlepší a nejpravdivější argument, kterej mohl zaznít!
22 napsal(a):
… tak ho přece načítáš v bootstrapu místo Nette\Config\Configuratoru, takže si tu třídu musíš naloadovat ručně, protože robotLoader se rozjede až po načtení configu…
A co ti brání si RobotLoader hodit už před Configurator?
- 22
- Člen | 1478
@patrik:
- nějak nevím, v čem mi pomůže test, pokud přestane fungovat v neonu zápis:
service:
session:
arguments: [%session%]
session:
expiration: +1 months
save_path: %tempDir%/sessions
- když ho hodím před configurator, tak jaksi nezavolám createRobotLoader, takže to máme x dalších řádků configurace robotLoaderu
Editoval 22 (1. 12. 2011 13:04)
- David Grudl
- Nette Core | 8227
Mám tady připravených ještě pár commitů a potom o DI sepíšu info do dokumentace.
- awsickness
- Člen | 98
tak to by bylo super kdyby si ty nejzasadnejsi zmeny a novinky sepsal nejak prestavam mit prehled co se jak meni.
- arron
- Člen | 464
Někdo někde napsal jednu úžasně pravdivou větu: „Unit testy nejsou jenom o testování kódu, ale zároveň poskytují (by měly poskytovat) příklady použití.“ Netvrdím, že je to 100%, ale často, když si nejsem jistý použitím něčeho konkrétního, tak testy Nette pomohou. Takže by se v nich dalo jistě částečně vyčíst, jak je potřeba upravit změněnou (nefunkční) část po update :-)