Skąd wysoki przeskok wersji Rails z 1.2.5 do 2.0?
Posted by Jarosław Zabiełło Sun, 16 Dec 2007 02:28:00 GMT
Wiele osób jest zdziwionych że Rails przeskoczył z wersji 1.2.5 od razu do 2.0 mimo, że nie wprowadzono żadnych rewolucyjnych zmnian uzasadniających taki przeskok wersji. Zwykle przyjmuje się że chodzi o zabieg marketingowy i być może tak jest. Ale to nie wszystko.
Rails 2.0 nie jest (i najwyraźniej celowo nie będzie) w pełni kompatybilny z Rails 1.2.x. Dowodem tego jest np. zmiana składni dla migracji. Stara składnia w ogóle nie działa z Rails 2.0. To nie jest kwestia niezgodności w wewnętrznej implementacji frameworka. To jest zmiana funkcjonalna. Jeśli się mylę, to DHH powinien jak najszybciej wprowadzić jakiś switch albo stałą, która by przełączała rodzaj składni migracji. Tak byłoby najrozsądniej. Wszyscy byliby zadowoleni. Jeśli tego nie zrobią, to po prostu należy uważać z jakąkolwiek automatyczną aktualizacją kodu. Nie wystarczy zmienić wpis wersji Rails w pliku config/environment.rb. Najlepiej jest stworzyć nowy, czysty projekt Rails 2 i poprzenosić ostrożnie swoje kontrolery, modele i szablony.
Jeśli mam rację (nie tylko ja zresztą, bo spotkałem się z taką interpretacją), to wysoki przeskok wersji Railsów jest uzasadniany niezgodnością i utrudnieniem z migracją ze starszych wersji. Wysoki przeskok numeracji powinien włączyć światło ostrzegawcze, że aktualizacji starszych projektów trzeba przeprowadzić dokładnie i ostrożnie. Najlepiej tak jak mówię: nowy projekt i przenoszenie plików.
Update: stara składnia migracji działa z RoR 2.0.1.


Kanały IRC![[Dilber w Onecie]](/images/larry.png)


ja pracuje przy nie takim juz malym projekcie RoR i jakos udalo nam sie zmigrowac z 1.2.6 na 2.0.1 bez zakladania nowego projektu. troche to trwalo (ok. 3 osobodni), ale sie udalo. dziwne bylo to, ze mimo braku deprecation warnings mielismy kilkaset bledow w testach. ich rozwiazanie wymagalo m.in. poprawek w kodzie pluginow. na razie udalo nam sie zrobic deploy na srodowisko testowe i wszystko smiga. co najwazniejsze, aplikacja dziala ok. 30% szybciej :)