Debugger 2.0.2 nefunguje, 2.0-dev funguje
- hubipe
- Člen | 26
Dobrý den,
narazil jsem na zajímavou chybu. Při vyhození chyby debugger v 2.0.2 chybu
neodešle na mail, vypíše server error
FATAL ERROR: unable to log error
, vygeneruje soubor mail-sent, ale
e-mail prokazatelně neodešle. Taktéž neuloží HTML soubor laděnky.
Pokud přehodím knihovnu z Nette 2.0.2 na Nette 2.0-dev (bez jiné změny
kódu), vše funguje jak má.
Je chyba na mém přijímači?
- hubipe
- Člen | 26
David Grudl napsal(a):
Mezi oběma verzemi nevidím v adresáři Diagnostics žádný rozdíl.
Řešení jsem asi našel (resp. ho našel Slavista v https://forum.nette.org/…ack-nezavola#…).
Opravdu pomůže v Logger nahradit callback
za
call_user_func
. Právě tyto změny mi ukazuje diff mezi oběma
soubory (2.0-dev a 2.0.2).
callback vyhazuje výjimku a mail neodešle:
[2012–04–03 00–15–47] Nette\MemberAccessException: Call to undefined
static method Nette\Diagnostics\Logger::defaultMailer(). in
C:\data\www\supermotard\libs\Nette\common\ObjectMixin.php:119
V něčem tedy chyba je, otázkou zůstává jestli mám nějak špatně nastavené prostředí, nebo skutečně je to chyba/vlastnost laděnky.
Editoval hubipe (3. 4. 2012 0:24)
- David Grudl
- Nette Core | 8228
Opraveno. Každopádně to je velmi nepříjemný bug, opravu dodatečně zahrnu do 2.0.2, vydávat 2.0.3 snad není potřeba.
- Jan Tvrdík
- Nette guru | 2595
David Grudl wrote: opravu dodatečně zahrnu do 2.0.2, vydávat 2.0.3 snad není potřeba.
A přesně za tenhle přístup by ti měl někdo nafackovat. Nic jako dodatečná úprava obsahu verze není přípustné. Správné řešení je vydat 2.0.3 nebo alespoň 2.0.2a. Všichni, co si stáhli 2.0.2, věří, že mají stabilní verzi a nemají jak se dozvědět, že si mají stáhnout „novou 2.0.2“.
- Roman Ožana
- Člen | 52
Jan Tvrdík napsal(a):
David Grudl wrote: opravu dodatečně zahrnu do 2.0.2, vydávat 2.0.3 snad není potřeba.
A přesně za tenhle přístup by ti měl někdo nafackovat. Nic jako dodatečná úprava obsahu verze není přípustné. Správné řešení je vydat 2.0.3 nebo alespoň 2.0.2a. Všichni, co si stáhli 2.0.2, věří, že mají stabilní verzi a nemají jak se dozvědět, že si mají stáhnout „novou 2.0.2“.
1000 % souhlas! tímto (jediným správným) postupem se ušetří duševní zdraví mnoha programátorů
- Jan Tvrdík
- Nette guru | 2595
David Grudl: Doufám v následující nápravu:
- Force-pushem vrátíš tag 2.0.2 a větev release-2.0.x na původní místo.
- Cherry-pickneš ten opravný commit do větve release-2.0.x.
- Vydáš novou verzi (2.0.3 / 2.0.2a), tj. nový release commit a nový tag.
- Volitelně bys mohl vydání nové patch verze oznámit na Twitteru.
- Filip Procházka
- Moderator | 4668
Kdekoliv u konkurence, kde se objeví závažná chyba (symfony, doctrine, zend…) se vždy objeví okamžitě nový non-BC release a informuje o problému a vyzývá k updatu.
Ano, i kvůli jednomu commitu.
Právě jsem musel opravovat pullrequest, protože tam github namíchal nějaké nesouvisející commity a dokonce i komentáře. Předpokládám, že jsem se trefil do nějakého forcepushe.
Editoval HosipLan (3. 4. 2012 10:14)
- Jan Tvrdík
- Nette guru | 2595
ViPErCZ wrote: A zároveň by tam bylo i toto.
Pokud se David nemýlí, tak se jedná o BC break a jako takový nemá v setinkové / patch verzi nic dělat.
- Jan Tvrdík
- Nette guru | 2595
Takové hypotetické blábolení s nadsázkou, aby bylo jasnější, kde vidím problém.
Čistě hypoteticky, pokud by se ti podařilo vyrobit hodně moc špatný release (např. by obsahoval smrtící virus, který by vedl ke zkáze lidstva), tak můžeš tento release označit za zlý, zakázaný a prokletý, smazat jeho tag a force pushem odstranit jeho commity z release větve. Ale pak musíš vydat nový opravný release, který musí mít jiné číslo verze. Změnit obsah verze (tj. pohnout s tagem v Gitu) nesmíš ani v případě ohrožení existence lidstva.
Pokud se mýlím nebo něco zásadního přehlížím (to je samozřejmě možné), tak prosím o protiargumenty.
- Jan Tvrdík
- Nette guru | 2595
David Grudl wrote: Tak jsem vám tu 2.0.2 vrátil :-)
Díky za splnění bodu 1. Ještě prosím o body 2, 3 a případně 4 (viz výše) :-)
- David Grudl
- Nette Core | 8228
Tohle bych ještě do 2.0.3 rád dostal, tak to prosím otestujte, ať nenásleduje 2.0.4.
- Jan Tvrdík
- Nette guru | 2595
Majkl578 wrote: Zvláštní, že už je od odpoledne otagovaná.
Dokud nebyla vydaná (tj. nejde stáhnout v download sekci), tak to považuji za smutné, ale akceptovatelné.
- Jan Tvrdík
- Nette guru | 2595
David Grudl wrote:
Tohle bych ještě do 2.0.3 rád dostal, tak to prosím otestujte, ať nenásleduje 2.0.4.
A to já bych to radši odložil do 2.1.x. Nejde to udělat plně zpětně kompatibilní a uživatelům 2.0.x bych rád dopřál trochu stability. Přijde mi to jako příliš velká změna na to, aby byla v patch / setinkové verzi.
- Patrik Votoček
- Člen | 2221
proč se vlastně nevydávají RC i u setinek řekněme třeba na týden? mám takové tušení že by se to tím všechno vyřešilo…
- Jan Tvrdík
- Nette guru | 2595
Patrik Votoček wrote: proč se vlastně nevydávají RC i u setinek řekněme třeba na týden?
Ano, to by rozhodně pomohlo. Teď (imho) nová verze vzniká tak, že David se z ničeho nic rozhodne vydat verzi, cherry-pickne vybrané commity a bez toho, aby to z někým konzultoval nebo aby mu to někdo schválil, ji vydá, což pochopitelně vede k tomu, že občas si pár hodin po vydání něco rozmyslí nebo se na fóru něco dočte, a tak to jde zrebasovat a vydat „novou stejnou verzi“.
Ideálně by měl existoval nějaký standardní proces vydání každé (i setinkové) verze. Např. oficiální místo na připomínky k rc verzi, přičemž ostrá verze by mohla vyjít až po projití všech připomínek. Pěkně by na to šly použít třeba GitHub issues.
- kukulich
- Člen | 58
Souhlasím s Honzou, že mi to přijde jako změna do 2.1.0. Ale o tomhle jsme s Davidem měli debatu v sobotu. Zatím vycházejí jednou za měsíc bugfix releasy, ale kdy vyjde první feature release, tzn. zvýší se druhé číslo? Pokud to bude trvat rok, tak tuhle změnu asi nemá smysl držet a nevydávat, pokud je možné ji udělat bez BC breaku (což bych řekl, že jde).
Já bych třeba navrhoval, aby se ob měsíc střídaly bugfix releasy s feature releasy. Kdo bude chtít, tak bude schopen používat nové featury mnohem dříve, aniž by musel používat přímo vývojovou verzi.
Editoval kukulich (4. 4. 2012 11:36)
- Jan Tvrdík
- Nette guru | 2595
David Grudl wrote: Vždyť to je zpětně kompatibilní změna, jinak bych ji tam nedával.
Ne zcela. Configurator
je docela často děděná třída a
pokud někdo např. špatně
přetěžuje metodu getDefaultParameters()
, tak mu aplikace
přestane fungovat, protože bude chybět parametr debugMode
.