Node.jsのバージョン管理といえば「偶数番号だけがLTS」というルールを思い浮かべる人が多いはずだ。このルールが、v27からなくなる。

何が変わるのか

新方式では、メジャーリリースは年1回、4月のみになる。奇数・偶数という区別自体が撤廃され、代わりにすべてのメジャーバージョンが「Alpha(10月〜3月、6カ月)」→「Current(4月〜10月、6カ月)」→「LTS(30カ月)」という一本道をたどる。Current期間を終えたバージョンは例外なくLTSに昇格するため、これまでのように「非LTSの奇数版を選んでしまった」という失敗が起こりようがなくなる。

v27でいえば、Alpha開始が2026年10月、正式リリースが2027年4月、LTS移行が2027年10月、EOLが2030年4月の予定だ。Alpha開始からEOLまで数えると、1つのメジャーバージョンの生涯はおよそ3年半に及ぶ。

なぜ一本化するのか

背景として挙げられているのは、奇数リリースの実採用率の低さ、ユーザーの大半がLTS版に集中する傾向、そして複数リリースラインを同時に保守する負荷がボランティア中心の運営を圧迫していたことだ。裏を返せば、これまでの「半年ごとに新バージョン、うち半分だけLTS」という体制は、実態としてほとんどのユーザーに使われない非LTS版を維持し続けるコストを払っていたとも言える。

他言語のリリース管理との比較

年1回のメジャーリリースという型は、Ubuntuの年2回リリースやPythonの年1回リリースなど、他のOSSプロジェクトでも採用例がある枠組みだ。LTSの実質的なサポート期間自体(30カ月)は従来とほぼ変わらないため、今回の変更は「サポート期間の長さ」ではなく「入り口をどう設計するか」の整理だと捉えるのが正確だろう。LTS版だけを使ってきた開発者への影響はバージョン番号の刻み方が変わる程度だが、ライブラリのメンテナーはAlpha期間のうちに動作確認をしておかないと、正式リリース後に破壊的変更へ後手で対応することになりかねない。詳細はNode.js公式ブログで確認できる。