Aller au contenu

Node.js 27 alpha apporte V8 15.6 et abandonne l'ancien OpenSSL

La première alpha de Node.js 27, sortie le 29 octobre, passe V8 à la version 15.6, exige OpenSSL 3 ou plus récent et lance le nouveau rythme d'une version majeure par an.

Par

3 min de lecture

XLinkedIn

Traduit automatiquement de l'original anglais, vérifié et édité par Claire Whitmore. La version anglaise fait foi. Notre méthode

Screenshot of the Node.js blog post for 27.0.0-alpha.0.0.0, with the Node.js logo graphic and the release notes' table of contents beside it.

En chiffres

semver-major commits in the first alpha
~100
JavaScript engine, up from 14.6 in Node.js 26
V8 15.6
planned date for Node.js 27.0.0
April 2027
planned end of life for Node.js 27
April 2030

Le projet Node.js a publié le 29 octobre 2026 sa première alpha de Node.js 27, étiquetée 27.0.0-alpha.0.0.0. C'est le premier build du nouveau calendrier de Node, avec une version majeure par an. L'alpha met à jour le moteur JavaScript V8 à la version 15.6, exige OpenSSL 3 ou plus récent et contient environ 100 commits semver-major, c'est-à-dire des changements qui peuvent casser du code existant.

L'alpha n'est pas destinée à la production. Elle vise les auteurs de bibliothèques et les équipes qui veulent repérer les ruptures dans leurs pipelines de test, des mois avant la sortie de Node.js 27.0.0 en avril 2027.

Le nouveau calendrier de versions

Jusqu'ici, Node.js sortait deux versions majeures par an, et seules les versions paires recevaient un support à long terme (LTS). À partir de Node.js 27, il y a une version majeure par an et chacune devient LTS, selon l'article du projet sur le calendrier.

Chaque version passe désormais six mois en alpha, d'octobre à mars. Les changements semver-major restent autorisés pendant cette période. Contrairement aux builds nightly, les builds alpha sont signés, étiquetés et testés, mais leurs API peuvent changer d'une version à l'autre.

ÉtapeNode.js 27
Début de l'alphaoctobre 2026
27.0.0 (Current)avril 2027
Passage en LTSoctobre 2027
Fin de vieavril 2030

Le LTS dure toujours environ 30 mois, et chaque branche dispose de 36 mois entre sa première version Current et sa fin de vie. Node.js 26 est la dernière branche sous l'ancien modèle. Le projet précise que le calendrier « n'est pas définitif et peut être modifié ».

Ce changement vient d'une proposition que Rafael Gonzaga, membre du TSC, a ouverte en juillet 2025, a rapporté InfoQ. L'objectif était d'alléger la charge des mainteneurs, qui devaient rétroporter des correctifs vers des branches que peu de gens utilisaient. Gonzaga a aussi écrit l'article sur la version alpha.

Ce qui casse dans l'alpha

Les notes de version listent de nombreux changements. Voici ceux qui touchent le plus probablement de vraies applications :

  • OpenSSL 3 ou plus récent est obligatoire. Node.js embarque désormais OpenSSL 4.1.0, qui est sorti le 23 octobre avec DTLS 1.3. La prise en charge des moteurs OpenSSL est terminée.
  • Les addons natifs doivent être recompilés. NODE_MODULE_VERSION vaut maintenant 153.
  • Nouvelle limite de mémoire par défaut. Sans --max-old-space-size, la limite du tas est la moitié de la mémoire physique, entre 256 Mo et 4 Go. La mémoire des Buffer et des ArrayBuffer compte désormais dans cette limite.
  • Un nouveau format de sérialisation. Les données écrites par v8.serialize(), structuredClone() et postMessage() ne peuvent pas être lues par les anciennes versions de Node.js.
  • Les valeurs HTTP par défaut ont changé. La valeur par défaut de keepAliveTimeout passe à 65 secondes, et req.headers a maintenant un prototype nul.
  • Les Mac Intel sont désormais expérimentaux. Le binaire macOS Intel est indiqué « Coming soon ».
  • npm 12.1.0 est inclus.

V8 15.6 modifie aussi quelques petits comportements. Les fonctions Math utilisent maintenant la bibliothèque libm de LLVM, donc les résultats peuvent différer sur le dernier bit. Les grands tableaux sont triés avec un nouvel algorithme, mais le tri reste stable. Parmi les nouveautés figurent Math.sumPrecise() et Iterator.zip().

Le module domain est désormais déprécié à l'exécution, et un indicateur de permission, --allow-env, a été ajouté.

Les images Docker ne sont pas encore prêtes

Les équipes qui testent dans des conteneurs devront attendre que ce point soit réglé. Les mainteneurs des images Docker officielles ont fermé leur ticket de suivi pour Node.js 27 le 30 octobre, en expliquant qu'ils n'avaient pas assez d'informations pour se préparer à temps. Ils prévoient d'ouvrir un nouveau ticket pour décider comment les images alpha seront étiquetées.

Le numéro de version diffère aussi du plan. Les documents de planification donnaient des exemples comme 27.0.0-alpha.1, mais le premier build est sorti sous le nom 27.0.0-alpha.0.0.0.

Ce que cela change pour les développeurs

  • Ajoutez l'alpha à votre CI maintenant, pas en avril. Le projet a demandé aux auteurs de bibliothèques de le faire le plus tôt possible. Un job alpha en échec vous laisse six mois pour corriger les problèmes avant la 27.0.0.
  • Recompilez et vérifiez vos modules natifs. La nouvelle version de module oblige chaque addon natif à être recompilé pour Node.js 27.
  • Testez tout ce qui stocke des données sérialisées. Si un service écrit avec v8.serialize() et qu'un service plus ancien lit, le nouveau format cassera ce chemin.
  • Définissez explicitement les limites de tas dans les conteneurs. La nouvelle valeur par défaut lie la mémoire à la RAM physique de l'hôte, qui peut ne pas correspondre à la limite de votre conteneur.
  • Si vous n'utilisez que le LTS, peu de choses changent pour l'instant. Node.js 26 est la branche LTS, en version 26.13.0 à la sortie de l'alpha. Continuez à appliquer ses correctifs, comme pour la mise à jour de sécurité d'octobre qui a corrigé 10 failles.

Sources

  1. Node.js 27.0.0-alpha.0.0.0 (Alpha) - Node.js
  2. Evolving the Node.js Release Schedule - Node.js
  3. Node.js Moves to Annual Major Releases - InfoQ
  4. Prepare for Node.js 27 pre-release (Alpha) / release - GitHub (nodejs/docker-node)

Articles liés