Przygotuj się na Drupal 9
Już za kilka miesięcy światło dzienne ujrzy stabilne wydanie Drupala 9. Poprzednia wersja 8 ukazała się w 2015 roku. Jej premiera spowodowała wiele kontrowersji wśród dotychczasowych użytkowników. Głównym problemem była skomplikowana ścieżka aktualizacji, wynikająca z dużych różnic w stosunku do wersji 7. Doszło nawet do swojego rodzaju schizmy, gdy zwolennicy Drupala 7 stworzyli osobny projekt Backdrop.
Nic dziwnego więc, że web deweloperzy spoglądają na zbliżającego się Drupala 9 z dużą dozą niepokoju. Nasuwa się wiele pytań o wsteczną kompatybilność i o zakończenie wsparcia dla starszych wersji. Postaram się odpowiedzieć na nie w tym artykule.
Kiedy zostanie wydana wersja 9?
Jeśli wszystko pójdzie zgodnie z planem, Drupal 9 ujrzy światło dzienne 3 czerwca 2020 r. Nie jest to data przypadkowa. Już teraz każdego czerwca i października ukazuje się wersja major, zawierająca nowe funkcjonalności. Do poprzednich wydań dodawano przede wszystkim moduły takie, jak BigPipe, Migration, Content Moderation, Media i Layout Builder. Drupal 8 ewoluował w ten sposób do obecnej postaci, zyskując wiele ciekawych możliwości.
Co ze wsparciem dla poprzednich wersji?
Ważną kwestią przy wydawaniu kolejnych wersji oprogramowania jest zachowanie wsparcia dla wersji poprzednich. W przypadku Drupala sytuacja wygląda dość nietypowo. Otóż wsparcie dla wydań 7 i 8 zakończy się w tym samym czasie, czyli w listopadzie 2021 r. Developerzy dostaną nieco ponad rok na zaplanowanie i przeprowadzenie migracji. Nie jest to długi okres czasu, można jednak liczyć na obsługę LTS, którą do dziś objęty jest sędziwy Drupal 6. Polega ona w większości przypadków na płatnym utrzymaniu i aktualizacji strony, wraz z zewnętrznymi modułami.
Co ulegnie zmianie?
Tu odpowiedź jest zaskakująca. Gdy porównamy planowane w tym samym czasie wydanie 8.9 do wersji 9.0 - od strony funkcjonalnej nie zmieni się nic. Różnica pomiędzy 8 i 9 będzie polegała na odcięciu największej dotychczasowej zależności, czyli Symfony 3. Nastąpi pełne przejście na bezpieczniejsze i bardziej nowoczesne Symfony 4/5. Przestanie działać kod oznaczony jako deprecated.
Ewolucja, czy rewolucja?
Drupal 8 przyniósł prawdziwą rewolucję. Drupal 9 przyniesie za to ewolucję, tak płynną, na ile jest to tylko możliwe. W idealnym przypadku wystarczające będzie przestawienie wersji na "^9.0" w pliku composer.json i dokonanie pełnej aktualizacji. To, czy nasza strona zadziała na nowej wersji 9 bez żadnego problemu, zależy głównie od jakości kodu pisanego przez nas i przez twórców dodatkowych modułów.
Co z zewnętrznymi modułami?
To pytanie jest jedną z największych niewiadomych. Już teraz trwa wielkie sprawdzanie kodu pod kątem kompatybilności z wersją 9, bieżące postępy można śledzić na tej stronie. Sądząc po zaangażowaniu społeczności - możemy liczyć na gotowość najpopularniejszych modułów do działania z nowym wydaniem Drupala. Co istotne, obecnie trwa dyskusja nad parametrem core znajdującym się w pliku *.info.yml każdego modułu. Ewolucja zamiast rewolucji sprawi, że stanie się niepotrzebny, a nawet szkodliwy (bo w obecnej postaci zablokuje dla Drupala 9 moduły z Drupala 8). Decyzje jeszcze nie zapadły, ale można mieć pewność, że czekają nas znaczne zmiany w wersjonowaniu dodatków z drupal.org.
Czy warto czekać z migracją z wersji 6 i 7?
Posiadacze stron zbudowanych w oparciu o starsze wersje Drupala zastanawiają się zapewne, czy na chwilę obecną opłacalna jest migracja do wersji 8. Okazuje się, że tak! Na przeciągu ostatnich została wypracowana stabilna i działająca ścieżka aktualizacji. Strona przeniesiona na Drupal 8 będzie mogła zostać z łatwością zmigrowana do wersji 9 - zakładając oczywiście, że jej kod napiszemy od razu zgodnie z nowymi wytycznymi.
Jak przygotować się do migracji?
Przede wszystkim należy przejrzeć kod aplikacji i usunąć z niego elementy oznaczone jako deprecated. Przestarzałe fragmenty można namierzyć automatycznie za pomocą narzędzia drupal-check. Poniżej zamieszczam wynik jego działania podczas refactoringu naszego projektu Droopler:
Narzędzie drupal-check można zainstalować na kilka sposobów, polecamy dołączenie go do projektu za pomocą Composera:
composer require mglaman/drupal-check --dev
Dalsza dokumentacja odnośnie instalacji i uruchamiania znajduje się na stronie projektu.
Podsumowując - co nas czeka?
Po wersji 9 możemy spodziewać się samych dobrych rzeczy. Wzrośnie wydajność i bezpieczeństwo, zbliżymy się też o krok od odcięcia przestarzałych funkcjonalności. Już teraz warto sprawdzić swoje projekty pod kątem kompatybilności, aby "sądnego dnia" 3 czerwca 2020 roku cieszyć się nowoczesnymi i zaktualizowanymi bezboleśnie witrynami.