Mały update i… ZONK!

21 kwiecień 2007, autorstwa: kozik

Nie ma nic bardziej wkurzającego niż aktualizacja oprogramowania tylko z podniesieniem numerka “patch-level“, która nie jest kompatybilna ze starą wersją…

Wersje oprogramowania często oznacza się 3-ma lub 4-ma liczbami oddzielonymi kropkami: A.B.C.D. Kolejność liczb ma znaczenie:

  • na początku jest wersja główna (major)
  • później - drugorzędna (minor)
  • dalej - revision lub patch-level
  • na końcu - build

Przyjmuje się, że zmiana numerka w wersji “major” lub “minor” oznacza większą zmianę i może prowadzić do niekompatybilności API (czyli niekompatybilności z aplikacjami korzystającymi z danego softu). Dwa ostatnie składniki wersji zmieniają się zazwyczaj przy łataniu bugów i drobniejszych błędów. Zakłada się prawie zawsze, że zachowują zgodność z wersjami poprzednimi.

Do czego zmierzam? Za przeproszeniem, posrać się można, z aktualizacjami DojoToolkit. Aktualizowałem na PCF Dojo z 0.4.1 do 0.4.2. Jak pisze producent: 0.4.2 is a minor patch update to 0.4.1 and includes a tightly selected set of fixes for 0.4.1 issues. Niestety to nie było takie różowe - posypały mi się wszystkie “tooltipy” - bezpośrednio po aktualizacji wyglądały jakbym w ogóle stylów CSS nie użył. Po prostu zrobił się na nich “burdel”. Dlaczego?

Ponieważ postanowili sobie zmienić wartości domyślne konstruktora tooltipa. W wersji 0.4.1 był tylko jeden argument odpowiedzialny za wygląd tooltipa - templateCssPath i miał domyślną wartość src/widget/templates/TooltipTemplate.css. Ustawiając to pole na swój arkusz można dowoli kształtować wygląd tooltipa. W wersji 0.4.1, ale już nie w 0.4.2. Jakiś “dowcipniś” postanowił dodać dodatkowy argument templateCssString. Nie ma problemu - niech dodaje, póki jest pełna zgodność między 0.4.2 i 0.4.1. Otóż ten “geniusz” przypisał mu domyślną wartość na jakiś porąbany styl, który dodatkowo ma pierwszeństwo i w efekcie mój templateCssPath nie miał żadnego znaczenia. Wszystkie tooltipy, mówiąc brzydko, zjebane. Nie wystarczy “tylko” odszukać we wszystkich plikach instrukcji tworzenia tooltipów i wyzerować im na siłę templateCssString, o nie! Wyczyszczenie tej wartości jest psu na budę. Trzeba coś tam sensownego wprowadzić… np. zaimportowanie mojego templateCssPath (@import url(’/ajax/mój.css’))…

Pamiętam, że przy aktualizacji 0.3.7 do 0.4.1 też się tooltipy skopały, ale tam była inkrementacja drugorzędnej wersji. Tu - tylko patch-level. Najgorzej, że (mogę się o to założyć) przy kolejnej aktualizacji 0.4.2 -> 0.4.3 pewnie “poprawią” beznadziejne zachowanie “templateCssString” i znowu rozwalą mi tooltipy…

Wysłano w Blog - Web | Tags: , |

Adres dla trackback. RSS dla komentarzy w tym wpisie.
Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.