Wczoraj została wydana nowa wersja Node.js (v22.3.0). Tylko, że… raptem tydzień temu wersja 21.x została oznaczona jako End-of-Life. A Long Term Support jest wciąż na wersjach 18 i 20! Dlaczego zatem 22.3.0 nie jest LTS?! I co takiego złego było w 21?!
Wersjonowanie Node.js rządzi się ciekawymi prawami, warto sobie przypomnieć tych kilka reguł, żeby nie narazić się na niepotrzebny ból głowy.
Od kilkunastu godzin dysponujemy nową wersją oznaczoną jako “Current”. W wersjonowaniu Node.js oznacza to mniej więcej tyle, że rozpoczyna się okres 6 miesięcy adaptacji w środowisku. Autorom zaś pozwala na wprowadzanie poprawek i dostarczanie supportu.
Co ważne - taka wersja nie jest jeszcze gotowa do użytku produkcyjnego! Jeśli jednak wprowadza jakieś istotne dla nas zmiany, to możemy już naszą aplikację do niej dostosowywać, zgłaszając jednocześnie ewentualne uwagi.
Tutaj jednak następuje pewien plot twist. Dla wersji o numerach nieparzystych, zakończenie okresu 6 miesięcy oznacza jednocześnie zakończenie życia i wycofanie release’u (stąd End-of-Life na wersji 21 kilka dni temu).
Zebrane przez ten czas doświadczenia i poprawki m.in. owocują wydaniem wersji parzystej. Ta zaś jest głównym kandydatem do długoterminowego supportu.
Po regulaminowych 6 miesiącach, parzysta wersja wchodzi w etap aktywnego LTS (często oznaczana po prostu “Active”), żeby z niego przejść do “Maintenance LTS”. Takie oznaczenia wydań dają nam zielone światło do użycia produkcyjnego, ponieważ krytyczne błędy będą naprawiane przez kolejnych 30 miesięcy.
Podsumowując bieżący stan wersji Node.js: