Aktualizacja GitHub do najnowszej wersji Ruby 2.7
Podążanie za najnowszymi wersjami jest niezwykle istotne podczas tworzenia aplikacji czy serwisów. Dlatego też programiści GitHub wdrożyli go do produkcji przy pomocy najnowszego wydania Ruby 2.7. Jest to unikalna aktualizacja GitHub, ponieważ samo wydanie Ruby 2.7 zawiera wiele zmian. Szybkie wprowadzanie zmian pozwala na lepsze dopracowywanie aplikacji.
Wprowadzenie Ruby 2.7
Jedną z ważniejszych zmian w tym wydaniu było wycofanie sposobu zachowania argumentów słów kluczowych. Oznacza to, że kolejne wersje Ruby nie będą akceptować przekazywania skrótu opcji, jeśli metoda czeka na argumenty słów kluczowych. Samo wprowadzenie nowej wersji Ruby nie było łatwe – trzeba było naprawić ponad 11 tysięcy ostrzeżeń.
Kroki podjęte przy aktualizacji
Po pierwsze programiści skonfigurowali aplikację, by działała zarówno w wersji 2.6, jak i nowej 2.7. Dzięki temu prościej było im wprowadzać zmiany kompatybilne wstecz, a także scalanie ich z główną gałęzią. Następnie zebrali przestarzałe ostrzeżenie w formie listy do naprawy dla każdego z zespołów. Przetworzenie tych ostrzeżeń pozwoliło na otworzenie problemów ze wskazówkami dotyczącymi uruchamiania aplikacji w nowej wersji Ruby. Ostrzeżenia, jakie się pojawiały, wyglądały przykładowo tak:
- [x] `app/jobs/delete_job.rb` - **warnings** - Line 16: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call - **test suites that trigger these warnings** - test/jobs/delete_job.rb
Po miesiącach pracy nad ostrzeżeniami nowa kompilacja była gotowa.
Zalety aktualizacji GitHub do Ruby 2.7
Aktualizacja 2.7 Ruby jest dość problematyczna. Wielu programistów wyrażało swoje opinie na temat tego wydania. Jednak wprowadzenie jej do GitHub spowodowało znaczną poprawę wydajności. Zgodnie z zapowiedziami zespołu Ruby Core, język jest na dobrej drodze do osiągnięcia nawet trzykrotnej poprawy prędkości.
Aktualizacja GitHub do Ruby 2.7 spowodowała istotną poprawę wydajności. Po pierwsze, aplikacja osiągnęła mniejszy czas potrzebny na uruchomienie aplikacji w trybie produkcyjnym. Kiedy ładowana jest cała aplikacja, czas spada z 90 sekund do prawie 70. Ta 20-sekundowa zmiana oznacza szybsze otrzymywanie przez użytkownika nowych funkcji czy poprawek błędów.
Drugą zmianą był spadek alokacji obiektów – z 780 tys. do 668 tys. alokacji. Alokacje obiektów wpływają na dostępną pamięć. Ważne jest więc, aby te liczby były jak najmniejsze.
Aktualizacja GitHub do Ruby 2.7 – wdrażanie
Programiści GitHub wprowadzają nową aktualizację stopniowo i obserwują pojawiające się błędy. Dzięki temu mniej użytkowników zauważyło nieścisłości. GitHub zainwestował w tworzenie procesów wdrażania aktualizacji Ruby i Rails, aby mieć pewność, że stanowią one najniższe możliwe ryzyko.
Podsumowanie
Opóźnianie aktualizacji języka Ruby ma negatywny wpływ na stabilność kodu użytkowników. Aktualizacja GitHub do Ruby 2.7 poprawia kondycję aplikacji, wydajność oraz naprawia błędy języka i frameworka.