Первое крупное изменение релизного графика Node.js за десять лет. Начиная с Node.js 27 проект переходит на один major-релиз в год, номера версий по годам, каждый выпуск становится LTS, и появляется новый альфа-канал для раннего тестирования.
Проект Node.js объявил о первом крупном изменении релизного цикла за последние десять лет. С октября 2026 года Node.js переходит с двух major-релизов в год на один, номера версий будут соответствовать календарному году, каждый выпуск будет становиться LTS, и появится новый альфа-канал для раннего тестирования.
Если это звучит как много изменений — вот успокаивающая новость: если вы, как и большинство разработчиков, используете только LTS-версии, для вас почти ничего не меняется, кроме номеров версий. Но изменения продуманы, и их стоит понять, чтобы уверенно планировать обновления.
В этом обзоре мы разберём, что именно меняется, почему проект принял такое решение и что это значит на практике — для продакшена, для разработчиков библиотек и для тех, кто просто хочет знать, какая версия сейчас актуальна.
Если у вас есть минута — вот вся суть в шести пунктах:
27.0.0-alpha.1) даёт разработчикам библиотек шесть месяцев на тестирование breaking changes.Чтобы понять новую модель, стоит освежить в памяти текущую. Сегодня Node.js выпускает два major-релиза в год: один в апреле и один в октябре. Каждый новый major проводит шесть месяцев на линии Current — период стабилизации, когда разработчики библиотек проверяют совместимость.
После шести месяцев судьба версии зависит от одного правила: нечётные релизы (19, 21, 23, 25) достигают конца жизни и никогда не переводятся в LTS. Чётные релизы (20, 22, 24, 26) переводятся в Active LTS и поддерживаются 30 месяцев.
Если вам когда-либо приходилось объяснять это правило новичку, вы знаете проблему. Правило чётных/нечётных версий — настоящий барьер для входа в экосистему. Оно кажется очевидным, когда его знаешь, и совершенно произвольным, пока не узнал.
Новая модель сохраняет всё, что работало в старой — предсказуемый график, период стабилизации, длинные окна поддержки — и убирает то, что вызывало трудности. Рассмотрим четыре главных изменения.
Вместо двух major-релизов в год будет один. Ритм прост: новый major выходит в режиме Current в апреле и переводится в LTS в октябре того же года. Вдвое меньше версий для отслеживания, и даты никогда не меняются.
Самое заметное изменение. Номер major-версии теперь соответствует году выпуска: Node.js 27 выходит в 2027, Node.js 28 — в 2028, Node.js 29 — в 2029 и так далее. Номер версии сразу показывает возраст рантайма.
Есть и удачное совпадение: текущая версия (26) уже совпадает с последними двумя цифрами года (2026). Переход на один релиз в год закрепляет это совпадение навсегда.
С одним релизом в год больше нет необходимости в танцах с чётными и нечётными номерами. Каждый выпуск становится LTS. Node.js 27 станет LTS, Node.js 28 станет LTS — каждый год.
Это изменение отражает реальность. Команда Node.js открыто признала, что внедрение нечётных релизов исторически было очень низким — большинство пользователей просто ждали следующего LTS. Если релизы, которые люди реально используют — это LTS, то сделать каждый выпуск LTS — просто приведение модели в соответствие с реальностью.
Нечётные релизы служили не только для смены версий — у них была важная функция: они давали разработчикам библиотек реальные сборки для тестирования breaking changes. Просто убрать нечётные релизы означало бы потерять эту систему раннего оповещения.
Проект заменяет их кое-чем лучшим: выделенным альфа-каналом.
За шесть месяцев до того, как версия станет Current (октябрь–март), будут публиковаться
подписанные альфа-сборки в стандартном semver-формате — например,
27.0.0-alpha.1 и 27.0.0-alpha.2. Эти сборки допускают
semver-major (критические) изменения и проходят реальные проверки качества через CITGM.
Альфа-сборки категорически не предназначены для продакшена. Это тестовый полигон для тех, кому нужно выявлять критические изменения заранее.
Собирая всё вместе, каждый релиз теперь проходит через четыре фазы:
| Фаза | Длительность | Назначение |
|---|---|---|
| Новое Alpha | 6 месяцев (окт–март) | Раннее тестирование. Breaking changes ещё допускаются. |
| Current | 6 месяцев (апр–окт) | Стабилизация — та же роль, что и сегодня. |
| LTS | ~30 месяцев | Долгий стабильный период для продакшена. |
| End of Life | — | Проект прекращает предоставлять исправления. |
Примерно 36 месяцев от первого Current-релиза до конца жизненного цикла, что очень близко к текущим срокам поддержки.
Самый наглядный способ увидеть изменения — сравнить последний релиз старой модели с первым релизом новой:
| Веха | Node.js 26 Старая модель | Node.js 27 Новая модель |
|---|---|---|
| Начало альфа | — | Октябрь 2026 |
| Релиз | Апрель 2026 | Апрель 2027 |
| Переход в LTS | Октябрь 2026 | Октябрь 2027 |
| Обслуживание | Октябрь 2027 | Апрель 2029 |
| Конец жизни | Апрель 2029 | Апрель 2030 |
Благодаря регулярному каденсу, график можно просчитать на годы вперёд без календаря. Каждый major входит в альфа в октябре, становится Current в апреле, переходит в LTS в октябре и достигает конца жизни через три года после первого релиза:
| Версия | Alpha | Current | LTS | End of Life |
|---|---|---|---|---|
| 27.x | Окт 2026 | Апр 2027 | Окт 2027 | Апр 2030 |
| 28.x | Окт 2027 | Апр 2028 | Окт 2028 | Апр 2031 |
| 29.x | Окт 2028 | Апр 2029 | Окт 2029 | Апр 2032 |
| 30.x | Окт 2029 | Апр 2030 | Окт 2030 | Апр 2033 |
Такие изменения не принимают легкомысленно. Честная, неприглядная правда в том, что Node.js в основном поддерживается волонтёрами, и старая модель требовала от них многого. Поддержка исправлений безопасности на четырёх-пяти активных линиях одновременно — это огромный объём бэкпортинга, тестирования и координации. И большая часть этих усилий уходила на линии, которые сравнительно мало кто использовал.
Данные подтверждали это с разных сторон:
Проект, управляемый волонтёрами, который честно смотрит на то, куда уходит время мейнтейнеров, и решает сократить собственную рутину — это именно то ответственное решение, которое позволяет проекту жить ещё десятилетие.
Для вас почти ничего не меняется. Продолжайте делать то, что делаете сегодня: развёртывайте LTS, обновляйтесь до следующего LTS, когда есть время на тестирование, и радуйтесь, что больше не нужно запоминать правило чётных/нечётных номеров. Единственное, что стоит запомнить — номер версии теперь означает год.
Полный обзор того, что включает Node.js 26 — последний релиз по старой модели — с Temporal API, возможностями V8 14.6 и Undici 8, читайте в моём руководстве по Node.js 26.
Здесь у вас есть реальная задача. Подключите альфа-релизы в ваш CI как можно раньше. Смысл альфа-канала именно в том, чтобы выявлять критические изменения до того, как они достигнут пользователей, которые от вас зависят.
Добавьте альфа-версию в матрицу тестирования CI:
# .github/workflows/ci.yml
strategy:
matrix:
node-version:
- '22' # Текущий LTS
- '24' # LTS
- '26' # Последний LTS (после окт 2026)
- '27.0.0-alpha.1' # Альфа-канал
Подробнее о модели разрешений Node.js — ключевой функции безопасности, которая перешла из экспериментальной в стабильную в Node.js 26 — читайте в моём руководстве по модели разрешений Node.js. А для сравнения с альтернативными рантаймами — мой обзор Deno 2.8.
Планируете проект на Node.js или обновление существующего приложения? Я провожу бесплатные консультации — без давления и навязывания услуг.