Le projet Node.js a publié le 29 octobre 2026 la première alpha de la version 27, 27.0.0-alpha.0.0.0, et avec elle une refonte complète du calendrier de publication. À partir de cette ligne, une seule version majeure sortira chaque année, en avril, et chacune deviendra une version LTS après six mois de stabilisation. La distinction entre versions paires et impaires, héritée de la fusion avec io.js il y a une décennie, disparaît — une bascule qui intervient quelques mois seulement après l’entrée de Node.js 26 « Lithium » en LTS.
Ce qui change concrètement
Le nouveau cycle introduit une phase Alpha de six mois, d’octobre à mars, pendant laquelle les changements avec rupture de compatibilité (semver-major) sont encore autorisés. Suit une phase Current de stabilisation jusqu’en octobre, puis l’entrée en LTS pour 30 mois. Au total, chaque ligne de version bénéficie de 36 mois de support, de la première version Current à la fin de vie.
Le nouveau canal Alpha
Contrairement aux builds nightly, générés automatiquement et non testés, les versions Alpha sont signées, taguées, et passées au crible de CITGM (Canary in the Goldmine), qui exécute les suites de tests des principaux paquets de l’écosystème contre la version à venir. L’équipe de release précise que ce canal s’adresse avant tout aux auteurs de bibliothèques et aux pipelines d’intégration continue qui veulent anticiper les ruptures de compatibilité, pas aux environnements de production.
Ancien et nouveau modèle, côte à côte
| Jalon | Node.js 26 (ancien modèle) | Node.js 27 (nouveau modèle) |
|---|---|---|
| Alpha | — | Octobre 2026 |
| Sortie Current | Avril 2026 | Avril 2027 |
| Entrée en LTS | Octobre 2026 | Octobre 2027 |
| Fin de maintenance | Octobre 2027 | — |
| Fin de vie | Avril 2029 | Avril 2030 |
Pourquoi ce changement
Le calendrier actuel date d’une dizaine d’années et avait été fixé, selon un contributeur du projet, sur la base d’une estimation des besoins des entreprises au moment de la fusion avec io.js. Les données d’usage montrent depuis longtemps que les versions impaires sont peu adoptées : la plupart des équipes attendent directement la LTS suivante. Maintenir en parallèle quatre ou cinq lignes de version actives pèse aussi sur une équipe de mainteneurs très majoritairement bénévole, en particulier pour le portage de correctifs de sécurité comme celui qui avait visé le décodeur Brotli fin octobre.
Pour tester une bibliothèque contre l’alpha dans une matrice CI, il suffit d’ajouter la ligne de version au fichier de workflow :
strategy:
matrix:
node-version: ['24', '26', '27.0.0-alpha.0.0.0']
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci && npm test
Chaque ligne de version devient désormais une ligne LTS : la distinction entre versions paires et impaires, qui déroutait les nouveaux arrivants, disparaît avec la 27.
27.0.0-alpha.1, alors que la première version publiée porte le tag v27.0.0-alpha.0.0.0. L’équipe de release précise elle-même que ce calendrier « peut être amendé » et renvoie au fichier schedule.json du dépôt Release comme source de référence.Ce qu’il faut retenir
Node.js 27 inaugure un rythme annuel où chaque version majeure devient, de fait, une LTS. Les équipes qui ne suivent que les lignes LTS ne changeront quasiment rien à leurs habitudes ; les mainteneurs de bibliothèques, eux, ont intérêt à intégrer le canal Alpha dans leur intégration continue dès maintenant pour anticiper les ruptures avant la sortie Current d’avril 2027.
Ce resserrement du calendrier va dans le bon sens. J’ai perdu plus d’une fois du temps à déboguer un comportement qui ne se manifestait que sur une version impaire qu’aucun client ne faisait tourner en production — simplifier à une ligne annuelle, toujours vouée à devenir LTS, réduit une charge de test qui n’apportait plus grand-chose. Reste à voir si le canal Alpha attire vraiment les mainteneurs de paquets, ou s’il restera, comme les nightlies avant lui, un outil réservé à une poignée d’habitués. — Simon Janvier
Pour aller plus loin : l’annonce officielle complète est disponible sur le blog de Node.js.
