Études / S5
Qui publie des attestations sur PyPI et npm — et qui a arrêté ?
Résumé
Les attestations PEP 740 permettent à chacun de vérifier qu'un fichier PyPI a été construit par un dépôt et un workflow identifiés. Ne pas attester est la norme. Nous avons mesuré, le 2026-10-02 :
- l'historique complet des téléversements des 15 000 projets PyPI les plus téléchargés (liste de hugovk du 2026-10-01) ;
- l'identité de l'éditeur de chaque projet attesté (PyPI Integrity API) ;
- un échantillon de 1 500 paquets npm.
Sur les 14 995 projets que nous avons pu analyser, 11 336 (75,6 %) n'ont jamais téléversé de fichier attesté.
Adoption. La dernière version est attestée pour 3 479 des 14 995 projets (23,2 %), et pour 31,1 % de ceux dont la dernière version a été téléversée pour la première fois après le 2024-10-01. Par tranche de rang :
| rangs | dernière version attestée |
|---|---|
| 1–100 | 59,0 % |
| 10 001–15 000 | 20,3 % |
La part des projets dont la dernière version est attestée est passée de 4,0 % (fin novembre 2024) à 23,2 % (fin septembre 2026). Nos résultats concordent avec ceux de Are we PEP 740 yet? de Trail of Bits pour 359 de ses 360 paquets.
Projets qui ont arrêté. 148 projets ont téléversé un fichier attesté puis publié des versions sans attestation. Pour 138, la ligne qu'installe pip avait des attestations et sa dernière version n'en a aucune : 3,8 % des 3 659 projets ayant déjà attesté. Par cause :
| cause | projets |
|---|---|
| changement d'outil ou de workflow | 96 |
| une seule version isolée | 15 |
| attestation rétablie après la dernière version | 1 |
| inconnue | 26 |
Dans 53 des changements d'outil ou de workflow, le workflow de publication exécute désormais uv publish sans étape d'attestation. Exemples, chacun étayé par un commit dans paper.md §5.3 : fastapi, typer, fastmcp et supabase. Cesser d'attester relève d'un changement d'outillage de publication, et non d'un signe de compromission.
Changements d'éditeur. Au moins 307 projets attestés ont changé d'éditeur. Sur les 188 changements qui franchissent des dépôts ou des types d'éditeur :
- 160 sont confirmés par des données publiques ;
- 16 sont cohérents avec les propres métadonnées du projet ;
- 12, dans 5 projets, ne sont pas confirmés.
npm. 30,8 % des 1 000 premiers paquets publient leur provenance ; 4 des 459 paquets qui l'avaient déjà fait (0,9 %) ont arrêté.
Travaux antérieurs. La mesure existante la plus proche est le tableau de suivi de Trail of Bits, qui couvre la dernière version des 360 premiers paquets PyPI. Cette étude y ajoute la distribution au-delà de ces 360, l'historique, les arrêts et leurs causes, ainsi que l'audit des éditeurs (paper.md §2).
Automatisation et relecture. Des agents d'IA ont mené l'étude et rédigé le texte. Un relecteur IA indépendant l'a vérifiée (paper.md §4.1).
Citer cette étude
EasyxLab (2026). Who publishes attestations on PyPI and npm — and who stopped? Study S5. EasyByte Hub S. Coop. Mad. https://github.com/easybytehub/easyxlab/tree/main/studies/s5-pypi-attestations@techreport{easyxlab_s5,
title = {Who publishes attestations on PyPI and npm — and who stopped?},
author = {{EasyxLab}},
institution = {EasyByte Hub S. Coop. Mad.},
number = {S5},
year = {2026},
url = {https://github.com/easybytehub/easyxlab/tree/main/studies/s5-pypi-attestations}
}