veilletech.fr
2 sept. Feed du jour
#05 RUST Article

pnpm 12 : réécrit en Rust, et sans SSH

La vitesse est gratuite. Le SSH, non.

pnpm 12 est une réécriture complète en Rust, rétrocompatible sur les commandes. Turborepo mesure 64 à 90 % de gain à l'installation sous Linux face à pnpm 10.28. Deux breaking changes attendent les pipelines : plus d'accès SSH à GitHub, GitLab et Bitbucket, et les clés inconnues de pnpm-workspace.yaml lèvent désormais une erreur.

2 min de lectureintermédiairevidéo 1:23
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Les deux ruptures à connaître
  3. Ce qui s'ajoute
  4. À retenir

Ce qui se passe

pnpm 12 est une réécriture complète du gestionnaire de paquets en Rust. Les commandes et les réglages restent rétrocompatibles ; ce sont les temps d'installation qui changent d'échelle.

L'équipe Turborepo, chez Vercel, a mesuré sous Linux des gains de 64 à 90 % face à pnpm 10.28. Corepack démarre 74 % plus vite avec un cache rempli, mais 11 % plus lentement avec un cache vide. Les testeurs préviennent : d'autres systèmes d'exploitation, avec d'autres méthodes de liens, donneront d'autres résultats.

Le réglage packageImportMethod: auto privilégie désormais les liens durs sous Linux, ce qui divise par deux les temps d'installation sous btrfs — sans bénéfice sur ext4.

Les deux ruptures à connaître

Plus de SSH. GitHub, GitLab et Bitbucket ne sont plus joignables qu'en HTTP. Pour un dépôt privé, il faut passer par la réécriture d'URL de git :

Terminal
git config --global url."git@github.com:".insteadOf https://github.com/

Plus de tolérance sur la configuration. Une clé inconnue dans pnpm-workspace.yaml n'est plus ignorée en silence : elle lève désormais ERR_PNPM_UNRECOGNIZED_WORKSPACE_SETTINGS. Au passage, l'option pnpm install --resolution-only disparaît.

Ce qui s'ajoute

pnpm 12 sait piloter les autres gestionnaires — npm, Yarn Classic, Yarn Berry, Yarn 6 et Bun — au lieu de les installer. pnpm add yarn n'installe plus le paquet Yarn dans le système : il enregistre Yarn comme packageManager pour l'utiliser ensuite comme outil pnpm.

devEngines.runtime permet en outre de fixer une version locale de Node, Deno ou Bun par projet, tout en gardant la version globale ailleurs.

À retenir

  1. Le gain de vitesse est réel mais dépend du système de fichiers : mesurez chez vous avant d'annoncer un chiffre à l'équipe.
  2. C'est le SSH qui cassera vos pipelines et vos images de build, pas la vitesse. Testez sur une branche.
  3. Une mise à jour 12.1 a suivi de peu ; le projet publie une page dédiée aux écarts avec la version 11.

Source : heise Developer