To może być moje osobiste dziwactwo, ale lubię aktualizować kod w żywych projektach - w tym bibliotekach / frameworkach, których używają. Częściowo dlatego, że uważam, że aplikacja internetowa jest bezpieczniejsza, jeśli jest w pełni łatana i aktualna. Częściowo jest to po prostu dotyk obsesyjnej kompulsywności z mojej strony.
W ciągu ostatnich siedmiu miesięcy dokonaliśmy gruntownej przeróbki naszego oprogramowania. Porzuciliśmy platformę Xaraya, która była powolna i zasadniczo martwa jako produkt, i przekonwertowaliśmy na Cake PHP. (Wybraliśmy Cake, ponieważ dało nam to możliwość bardzo szybkiego przepisania naszego oprogramowania i dostatecznego zwiększenia wydajności w stosunku do Xaraya, aby było warto.)
Wdrożyliśmy testy jednostkowe za pomocą SimpleTest i przestrzegaliśmy wszystkich konwencji nazewnictwa plików i baz danych itp.
Ciasto jest teraz aktualizowane do wersji 2.0. Wydaje się, że nie ma realnej ścieżki migracji do aktualizacji. Konwencje nazewnictwa plików zmieniły się radykalnie i porzuciły SimpleTest na rzecz PHPUnit.
Zmusi nas to do pozostania w gałęzi 1.3, ponieważ, chyba że istnieje jakieś narzędzie do konwersji, nie będzie możliwe aktualizowanie Cake, a następnie stopniowe ulepszanie naszego starszego kodu, aby czerpać korzyści z nowej struktury Cake . Tak więc, jak zwykle, skończymy ze starym frameworkiem w naszym repozytorium Subversion i po prostu załatamy go w razie potrzeby.
I to mnie za każdym razem dostaje. Tak wiele produktów o otwartym kodzie źródłowym nie ułatwia aktualizacji projektów na ich podstawie. Kiedy deweloperzy zaczną bawić się nową błyszczącą zabawką, na starszych gałęziach zostanie wprowadzonych kilka krytycznych poprawek, ale większość ich uwagi skupi się na nowej podstawie kodu.
Jak radzisz sobie z radykalnymi zmianami w projektach open source, których używasz? A jeśli opracowujesz produkt typu open source, czy pamiętasz o ścieżkach aktualizacji podczas opracowywania nowych wersji?