|
Nowości Helionu
|
Blog > Komentarze do wpisu
Firefox x.5
Zainstalowałem FF 3 beta 5, ale czujnie, w zaproponowanym folderze ~beta 5. Oczywiście posypały się wszystkie rozszerzenia działające w beta 4, poza Remember The Milk for Gmail. Doceniam 750 kolejnych poprawek w nowej wersji, zwiększoną szybkość JavaScript itd., ale marzy mi się wersja "półgeneracyjna" x.5, w której znalazłbym tylko jedno, gigantyczne udoskonalenie - wsteczną zgodność dodatków. Nie jestem programistą, więc nie mogę ocenić skali trudności związanych z tym problemem, ale powtarza się on od samego początku chwalebnego żywota Firefoksa i ciągle nie znajduje należnego rozwiązania. To uciążliwość, która każe niejednokrotnie wstrzymywać się przed zainstalowaniem jakiejś świeżej aktualizacji, bo nie wiadomo, jak zareagują dodatki. No, teraz może wiadomo, bo nowa strona dodatków wykrywa wersję przeglądarki i informuje o zgodności lub niezgodności. Przedtem była to całkowita loteria albo też czekało się na jakiegoś kaskadera, który zaryzykuje, a potem poskarży się w swoim blogu, co mu padło. czwartek, 03 kwietnia 2008, prwimmer
TrackBack
Komentarze
Gość: l30n, gek78.internetdsl.tpnet.pl
2008/04/03 14:46:01
Tak to już jest, kiedy decyduje się używać bety czegokolwiek. Jako pocieszenie warto dodać, że pomijając detekcje zgodności z wersjami (wystarczy rozpakować dodatek bo xpi to zip i zmienić max version w jednym xmlu) znaczna część pluginów teoretycznie niezgodnych instaluje się i funkcjonuje poprawnie. Poza tym po wyjściu stabilnej wersji firefoxa do momentu gdy dany plugin staje się w pełni kompatybilny nie upływa wiele wody w rzece. Więc nie ma co narzekać...
2008/04/03 14:49:35
Przyznam się, że nie mam zaufania do hackingu. To nieraz się sprawdza, ale skoro autor nie chcial oficjalnie dać zgodności o oczko wyżej, to widać miał jakiś powód. Jestem zwolennikiem działań lege artis :-)
2008/04/03 15:30:18
No to masz rozszerzenie Nightly Tester Tools, które załatwia większość tego rodzaju problemów addons.mozilla.org/pl/firefox/addon/6543
2008/04/03 15:31:47
NTT jest generykiem, a protez tego rodzaju raczej nie lubię. Wolałbym systemowe rozwiązanie.
2008/04/03 15:39:31
Samemu można spróbować "poprawić" niektóre dodatki ;-) Wystarczy je ściągnąć, zapisać na dysk i zajrzeć do środka [to pliki ZIP]. Środku szukamy pliku install.rdf, a w nim taga em:targetApplication i jego podwęzła em:maxVersion, w którym wpisujemy 3.0.0.* i wszystko powinno działać. Chciałem zamieścić "źródło" zmiany, ale engine komentarzowy nie pozwala na wstawianie znaków mniejszości i większości ;-)
2008/04/03 15:42:16
@Mikmach - a czy niby ma się różnić beta od final, że mają nie działać dodatki? To kwestia systemowego rozwiązania.
Gość: Rafael, gryf.we.po.opole.pl
2008/04/03 16:05:57
Na dodatki przyjdzie czas, tj. w pewnym etapie prac nad Firefoksem, developerzy zostaną poproszeni o aktualizację swoich rozszerzeń. W okresie wczesnych beta-testów nie ma sensu cokolwiek poprawiać, bo wiele może się w kodzie zmienić. Jednak w wypadku sporej części rozszerzeń jest to kwestia zmiany numeracji w pliku instalacyjnym rozszerzenia. W końcu część kodu API dla rozszerzeń, jeśli została ukończona i zamrożona, raczej nie będzie się drastycznie zmieniać z wersji na wersję.
Gość: mt3o, dpp107.neoplus.adsl.tpnet.pl
2008/04/03 16:20:45
@prwimmer: Hackowanie to duże słowo
Gdy Ty tworzyłeś kompendium wiedzy o HTMLu, niektórzy tak w grach sobie dodawali $ :) Wtedy to było o tyle trudniejsze, że sejwy to binaria, a nie zzipowany XML 2008/04/03 16:20:55
Przecież to autor dodatku, a nie przeglądarka ustalają, jakie są zgodne wersje. Na przykład FireBug działa od zawsze na wszystkich wersjach alfa i beta, ale autor z premedytacją oznacza je jako niezgodne, żeby oszczędzić sobie ewentualnych zgłoszeń z problemami.
Gość: nbb, dynamic-81-168-168-155.ssp.dialog.net.pl
2008/04/03 18:11:14
Patrys dobrze mówi, ja zmieniam w install.rdf max wersje przeglądarki i działa większość. Często autorzy nie aktualizują bo nie są przetestowane, albo nie mają czasu/przestali rozwijać projekt. (wystarczy rozpakować plik .xpi (to zwykły zip), zmienić w pliku install.rdf maksymalną wersję (ładny xml, wiec nic trudnego), zapakować i zainstalować)
Gość: , chello087207229017.chello.pl
2008/04/03 18:25:21
Wersje Alfa Beta itd. są dla testerów developerów którzy wiedzą z czy to się wiąże. Pisząc "Zainstalowałem FF 3 beta 5, ale czujnie, w zaproponowanym folderze ~beta 5. Oczywiście posypały się wszystkie rozszerzenia...itd." świadczy że nie masz pojęcia po co są wydawane takie wersje. Pozdrawiam.
2008/04/03 18:42:28
@Gość - jeśli są dla tych "co wiedzą", to nie powinny być wystawiane publicznie, dla milionów ludzi.
Poza tym jakie to ma znaczenie, skoro w wersji finalnej dodatki także się posypią, bo niemal zawsze tak jest. Ja cały czas mówię o generalnej zasadzie zgodności w dół, a nie różnicach między alfą, betą i final.
Gość: , bbm24.neoplus.adsl.tpnet.pl
2008/04/03 21:05:50
"jeśli są dla tych "co wiedzą", to nie powinny być wystawiane publicznie, dla milionów ludzi"
No na litość, przecież do wewnętrznego testowania są alfy, a do publicznego bety. Jeśli się decydujesz na zabawę z betą, z definicji godzisz się z tym, że to i owo może się sypać. Ni cholery nie rozumiem, o co masz pretensje.
Gość: GL1zdA, 87-205-37-245.adsl.inetia.pl
2008/04/03 21:31:49
Jak już ktoś napisał o tym czy dodatek jest kompatybilny czy nie decydują autorzy dodatków. Są tacy, którzy wpisują od razu wysoką wersje w nadziei, że zadziała, inni postępują defensywnie i dopiero po stwierdzeniu, że działa wypuszczają update. Rozumiem, że zakładając, że jest API, które się nie zmienia można oczekiwać, że przy nowej wersji wszystko powinno nadal działać, ale często problem sprawiają sytuacje, które nie są wyspecyfikowne i w nowej wersji działają inaczej. Są też dodatki, które korzystają z niepublicznych interfejsów i przy takich nie można nawet zakładać, że z nową wersją zadziałają. Beta Firefox'a nie służy do normalnej pracy - dlatego nie powinno się nawet oczekiwać, że autorzy będą dostosowywać swoje dodatki do bet. (np. nie słyszałem o firmach tworzących plug-iny do bet Visual Studio). Jeśli zaczniemy testować bety z kilkudziesięcioma dodatkami, z których jeden czy dwa będą się sypać to takie testowanie jest bezcelowe.
2008/04/03 21:33:04
Staraj się uwazniej czytać. Wyraźnie napisałem, że brakuje mi mechanizmu zapewniającego wsteczną zgodność dodatków. I tyle.
Gość: GL1zdA, 87-205-37-245.adsl.inetia.pl
2008/04/03 22:06:33
Takiego mechanizmu żaden programista (przy zdrowych zmysłach) nie zapewni z podanych przeze mnie wyżej przyczyn. (przykład: Windows - supportowane jest API z czasów Windows 3.0 - zaś aplikacje pisane na ten system nie są automatycznie uznawane za kompatybilne z nową wersją - ten przykład chyba najlepiej ilustruje co chciałem wyrazić).
2008/04/03 23:55:17
Czym innym jest brak kompatybilności aplikacji z systemem po wielu latach, a czym innym sytuacja, gdy z wersji 2.05 na 2.06 wywala się połowa dodatków. No bez przesady - to jest chora sytuacja.
Gość: GL1zdA, router.ce3.com.pl
2008/04/04 10:18:29
Zgoda. Przy małych wersjach (2.0.0.x ale nie 1.5- 2.0 czy 2- 3) nie powinno coś takiego występować... Tylko nie pamiętam kiedy ostatnio taka sytuacja miała miejsce (używam około 40 rozszerzeń - trudno byłoby to przeoczyć). Jeśli dodatek rzeczywiście przy takich zmianach nie działa to na 90% jest to wina autora (w sensie rzeczywiście nie działa, a nie że jest wyłączony bo autor ustawił mu taką a nie inną obsługiwaną wersje, wtedy FF zachowuje się bardzo przytomnie wyłączając takie rozszerzenie) - gdyby przy małych wersjach API FF rzeczywiście psuł kompatybilność z dodatkami to już dawno byśmy masowe słyszeli skargi autorów dodatków.
Gość: kid, c113-144.icpnet.pl
2008/04/04 17:23:27
paweł: nie zapominaj o tym, że dodatki to nie jest *integralna* część firefoksa. wersje beta są do testowania *programu* jako takiego, a nie *dodatków*. więc wyjść z tej sytuacji jest kilka (o czym już wspomniano w komentarzach):
1) ingerujesz w dodatek i zmieniasz maksymalną wersję firefoksa z którą może współpracować 2) korzystasz i testujesz *samą* przeglądarkę 3) czekasz na wersję finalną ty wybierasz które rozwiązanie jest dla ciebie najbardziej korzystne. pozdrawiam, kid. 2008/04/04 22:05:57
Pawle, z jednej strony masz grupę programistów rozwijających Firefoksa (czy jakikolwiek inny opensource'owy projekt udostępniajacy dość skomplikowane API), a z drugiej - grupki programistów (a częściej - pojedyncze osoby) tworzące wtyczki w oparciu o dokumentację API.
Za zapewnienie zgodności wtyczki odpowiada autor wtyczki. W sytuacji, gdy są to ludzie, którzy udostępniają wtyczki nieodpłatnie, to jasne, że nie zawsze mają czas zająć się tym natychmiast po pojawieniu się nowej wersji kodu. Nie ma technicznie możliwości, żeby zrobił to ktoś inny za nich. Ba, czasami projekty padają, bo brak chętnych do opieki nad danym kawałkiem kodu. Używając porównania, które może zrozumiesz łatwiej: to, co zaproponowałeś, zabrzmiało tak, jakbyś się poskarżył, że strony pisane w HTML 3.2 z rozszerzeniami specyficznymi dla przegladarek nie walidują się jako HTML 4.01. Pamiętasz te wszystkie strony z niezamkniętymi elementami <p>, z elementami <marquee> czy atrybutami MARGINTOP i MARGINLEFT? Z hackowanymi arkuszami stylów, bo IE i NN miały różne pomysły w kwestii tego, jak należy implementować CSS czy DOM? Przejście na nowe wersje przegladarek wymagało rezygnacji z co starszych rozwiązań. Z punktu widzenia autorów stron to wyglądało tak, jakby twórcy HTML 4.01 nie zapewnili zgodności z 3.2. Tymczasem niektóre rozwiązanie już w 3.2 miały status "deprecated"... A tak naprawdę problem wygląda nieco inaczej - trochę tak, jak z wersjami Flasha. Parę lat temu, jak przez dłuższy czas na rynku był Flash bodajże 4.0, po zmianie numerka wersji okazało się, że kod na niektórych stronach sprawdzał, że wersja jest inna niż 4 (np. 5) ...i żądał zainstalowania czwórki. Wówczas wina leżała po stronie twórców stron, którzy nie przewidzieli zmiany wersji na wyższą (żądali konkretnie 4.0 zamiast = 4.0). W przypadku wtyczek do FF, jest trochę podobnie - autorzy wtyczek deklarują zgodność z wersjami od 1.0 do np. 2.0.0.12. Pojawienie się wersji 2.0.0.13 powoduje, że dana wtyczka jest oznaczana jako niezgodna. W przypadku wersji 2.0.0.x jest to stosunkowo mało prawdopodobny scenariusz, bo API jest na tyle stałe, że twórcy wtyczek mogą z góry założyć pewien zapas (i co najwyżej zaraz po ukazaniu się wersji szybko przetestować), albo po prostu pilnują wydań nowych wersji i dostosowują kod wtyczki jeszcze przed oficjalnym wypuszczeniem nowej wersji FF (np. ScrapBook instaluje co chwila różne poprawki - mam wrażenie, że polegają one m.in. na podbijaniu widełek, tj. zmianie z wyprzedzeniem numerka najpóźniejszej obsługiwanej wersji...) Jednak w przypadku wersji beta scenariusz wygląda inaczej. Twórcy wtyczek nie mogą mieć pewności, że kod jest stabilny i że API działa poprawnie. Wszystko jest dobiero testowane. Dlatego aktualizacja wtyczek dla wersji beta wymaga o wiele więcej zachodu. W tym wypadku spora część twórców wtyczek po prostu odpuszcza sobie aktualizację na bieżąco, wiedząc, że mogą nie zdążyć. I nie można ich za to winić. Znowu, używając bardziej webmasterskiego porównania - to tak, jakbyś żądał od twórców witryn, żeby już teraz, pomimo braku zatwierdzonej specyfikacji, zaczynali pisać kod w HTML 5 - i przerabiali go za każdym razem, gdy grupie zajmujacej się tą wersją przyjdzie do głowy zmienić roboczą specyfikację jakiegoś detalu... 2008/04/04 22:20:51
Powyżej miało być: "żądali konkretnie 4.0 zamiast >=4.0".
Prawda jest taka, że wersje beta służą testowaniu przeglądarki. W tym nowych funkcji API. Ponadto nie ma gwarancji, że jakaś zmiana w kodzie nie spowodowała, że jakaś funkcja API nie działa poprawnie - trzeba to dopiero stwierdzić i właśnie po to jest wypuszczana wersja beta. Dopiero wówczas autorzy wtyczek mogą zacząć sprawdzać, czy dana wtyczka działa. Dopiero po zakończeniu testów wersji beta, a własciwie po zatwierdzeniu którejś bety jako release candidate, można uznać, że API jest stabilne. I dopiero wtedy można zapewnić faktyczną (a nie tylko deklaratywną) zgodność wtyczek z nową wersją... 2008/04/05 00:04:39
@Godric - dzięki za obszerne wyjaśnienie. Mnie martwi tylko, że jest jakaś przyrodzona wrażliwość Firefoksa i wtyczek na zmiany, że przy małym upgradzie potrafi się to sypać. Brakuje mi właśnie odporności, większej "wytrzymałości" kodu. To mnie dziwi, stąd moje uwagi.
2008/04/05 13:41:14
No ale to się właśnie nie sypie! Wprost przeciwnie, działa tak, jak powinno. Wtyczka informuje przeglądarkę, że działa do wersji X.Y, więc przeglądarka po aktualizacji do wersji X.Y+1 informuje użytkownika, że wtyczka jest niezgodna. W przypadku wersji finalnej X, poszczególne podwersje Y na ogół oznaczają wypuszczenie poprawek łatających jakieś konkretne błędy implementacji różnych funkcji, ale nie zmienia sie interfejs API, udostępniający te funkcje wtyczkom. W tej sytuacji, o ile tylko wtyczka nie próbuje tych funkcji naprawiać, poprawiać czy w inny sposób hackować działania przeglądarki, to jej twórca może założyć, że wtyczka będzie działać ze wszystkimi możliwymi podwersjami X.y, X.Y+1 ... X.Y + n - i wtedy może zadeklarować nowych podwersji obsługę "na zapas".
W przypadku wersji beta takie postępowanie jest bardzo ryzykowne - pomiędzy poszczególnymi wersjami beta może się zmienić sposób działania funkcji API, a nawet - z jakichś ważnych powodów - sposób ich wywoływania. Twórcy wtyczek muszą przy każdej zmianie sprawdzać, czy wtyczka w tej wersji zadziała. I deklarowanie działania tylko do aktualnej wersji, bez zapasu, jest tu jedynym prawidłowym podejściem - gdyby autor wtyczki zadeklarował, że będzie działać z wszyztkimi możliwymi betami, to w większości przypadków byłoby wishful thinking, czyli de facto kłamstwo. Natomiast owszem, mógłby się w betach pojawić jeden mechanizm: włączanie/wyłączanie wtyczek zadeklarowanych jako niezgodne, na życzenie użytkownika. Tzn. jeśli ktoś, mimo ostrzeżenia autora o niezgodności, chce się wtyczką bawić - jego prawo, niech się bawi; byle nie miał potem pretensji, że wtyczka rzeczywiście nie działa albo działa błędnie...
Gość: , auy122.internetdsl.tpnet.pl
2008/04/07 18:25:00
Paweł - jak już inni pisali to jest beta. Nawet jeszcze nie Release Candidate. Wersje beta nie służą do normalnego korzystania a do testowania i zgłaszania błędów. Trzeba się cieszyć, że w ogóle działa jak należy i nie wiesza całego systemu.
2008/04/07 19:09:02
@Gość - problem jest znacznie szerszy, bo zjawisko występuje w upgrade'ach typu 0.01, a nie tylko w betach. O tym pisałem.
|