4 points par GN⁺ 2025-03-26 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le comité de pilotage technique (TSC) de Node.js a officiellement décidé par vote de ne plus inclure Corepack dans les distributions de Node.js
  • Ce changement s’appliquera à partir de Node.js 25, tandis que Corepack continuera d’être proposé comme fonctionnalité expérimentale dans Node.js 24 et les versions antérieures

Rôle et limites de Corepack

  • Corepack est un outil expérimental introduit dans Node.js 16.9.0, qui permet d’utiliser des gestionnaires de paquets comme Yarn et pnpm sans installation séparée
  • Il aide aussi à imposer une version précise du gestionnaire de paquets dans un projet
  • Mais il n’a pas été largement adopté, en raison d’un manque de compréhension chez les utilisateurs et d’idées reçues sur son objectif
  • Il existe par ailleurs un certain scepticisme quant au fait d’inclure dans Node.js des gestionnaires de paquets censés fonctionner indépendamment du runtime

Le processus ayant conduit à la suppression de Corepack

  • Les discussions sur l’avenir de Corepack se poursuivent depuis plusieurs années, et en novembre 2023, une proposition visant à l’activer par défaut a suscité la controverse
  • En février 2024, des inquiétudes ont été exprimées sur le fait que Corepack pourrait servir à dissocier npm de Node.js
  • En mars 2024, tout en précisant que npm continuerait d’être inclus dans Node.js, l’idée d’une suppression de Corepack a commencé à émerger
  • Le TSC a délégué la décision au Package Maintenance Working Group (PMWG)
  • Le PMWG a présenté la feuille de route suivante pour la suppression :
    • mettre en avant sur la page de téléchargement de Node.js des outils de gestion de versions comme nvm et fnm
    • séparer la documentation de Corepack de la documentation de l’API Node.js pour la déplacer vers un dépôt distinct
    • retirer Corepack des distributions Node.js à partir de la prochaine version majeure
  • Cette feuille de route a reçu un fort soutien au sein du PMWG, ce qui a conduit au vote final

Pourquoi Corepack va être retiré

  • Faible taux d’adoption : de nombreux développeurs préfèrent installer eux-mêmes leur gestionnaire de paquets favori plutôt que d’utiliser Corepack
  • Préoccupations liées à la distribution : certains estiment qu’il est inutile d’inclure Corepack dans le binaire Node.js
  • Problème de maintenance à long terme : si Corepack est séparé de Node.js, les gestionnaires de paquets pourront évoluer de façon plus indépendante
  • Le résultat du vote a entériné la proposition de « suppression progressive à l’avenir »
  • D’autres propositions, comme le maintien en mode désactivé par défaut, n’ont pas obtenu un soutien suffisant
  • Certains développeurs considèrent cette décision comme un recul, car ils utilisaient Corepack avec pnpm à la place de npm
  • L’équipe Node.js souligne que Corepack n’a jamais été pensé comme une fonctionnalité permanente et qu’il est préférable de le maintenir séparément

Ce qui va changer

  • À l’avenir, Corepack ne sera plus inclus par défaut dans Node.js
  • En cas de besoin, il faudra l’installer manuellement avec la commande suivante :
    • npm install -g corepack
  • Les projets qui utilisent Corepack devront mettre à jour leur documentation et leurs workflows
  • Cette décision ne signifie toutefois pas la fin du support de Corepack, mais seulement son retrait de Node.js
  • La maintenance de Corepack se poursuivra jusqu’à la fin de vie de Node.js 24.x

Contexte historique entre Node.js et les gestionnaires de paquets

  • Par le passé, il y a déjà eu des débats sur les composants qui devaient être inclus dans Node.js, et la présence de npm en faisait partie
  • L’arrivée de gestionnaires de paquets alternatifs comme Yarn et pnpm a élargi les options disponibles
  • La suppression de Corepack s’inscrit dans une volonté de rendre les distributions Node.js plus légères et plus simples
  • Cela s’inscrit aussi dans une tendance observable dans d’autres écosystèmes, qui séparent le runtime du gestionnaire de paquets
  • Les développeurs doivent désormais préparer leur environnement en tenant compte du fait que Corepack ne sera plus inclus dans Node.js

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.