Debugger 2.0.2 nefunguje, 2.0-dev funguje

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

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?

David Grudl
Nette Core | 8228
+
0
-

Mezi oběma verzemi nevidím v adresáři Diagnostics žádný rozdíl.

hubipe
Člen | 26
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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ů

Patrik Votoček
Člen | 2221
+
0
-

a to jsem zrovna před 2 dny https://github.com/…n/issues/102

Jan Tvrdík
Nette guru | 2595
+
0
-

David Grudl: Doufám v následující nápravu:

  1. Force-pushem vrátíš tag 2.0.2 a větev release-2.0.x na původní místo.
  2. Cherry-pickneš ten opravný commit do větve release-2.0.x.
  3. Vydáš novou verzi (2.0.3 / 2.0.2a), tj. nový release commit a nový tag.
  4. Volitelně bys mohl vydání nové patch verze oznámit na Twitteru.
Filip Procházka
Moderator | 4668
+
0
-

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)

hrach
Člen | 1838
+
0
-

Navrhuji vydat 2.0.3 zaroven s timto, bohuzel jsem pri refactoringu zanesl bug.

ViPEr*CZ*
Člen | 817
+
0
-

Taky se přimlouvám za 2.0.3. A zároveň by tam bylo i toto.

22
Člen | 1478
+
0
-

btw nemohlo by se při výpisu laděnky zobrazovat, jaká je dostupná poslední verze Nette nebo i v debug baru u title loga Nette?? Libí se mi v adminerovi, že v závorce uvádí nejnovější verzi hned vedle používané.

Editoval 22 (3. 4. 2012 11:43)

Jan Tvrdík
Nette guru | 2595
+
0
-

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
+
0
-

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.

David Grudl
Nette Core | 8228
+
0
-

Tak jsem vám tu 2.0.2 vrátil :-)

Jan Tvrdík
Nette guru | 2595
+
0
-

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) :-)

hrach
Člen | 1838
+
0
-

Chudák David, jste na něj tak přísní! :)

Jan Tvrdík
Nette guru | 2595
+
0
-

David Grudl: díky!

David Grudl
Nette Core | 8228
+
0
-

Verzi 2.0.3 vydám někdy v noci.

Majkl578
Moderator | 1364
+
0
-

David Grudl napsal(a):

Verzi 2.0.3 vydám někdy v noci.

Zvláštní, že už je od odpoledne otagovaná:

A větev release-2.0.x force pushovaná:

:)

David Grudl
Nette Core | 8228
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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.

David Grudl
Nette Core | 8228
+
0
-

Vždyť to je zpětně kompatibilní změna, jinak bych ji tam nedával.

kukulich
Člen | 58
+
0
-

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
+
0
-

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.