Estudos / S5
Quen publica atestacións en PyPI e npm, e quen deixou de facelo?
Resumo
As atestacións PEP 740 permiten que calquera comprobe que un ficheiro de PyPI o construíu un repositorio e un fluxo de traballo identificados. O habitual é non publicalas. Medimos, o 2026-10-02:
- o historial completo de subidas dos 15.000 proxectos máis descargados de PyPI (a lista de hugovk do 2026-10-01);
- a identidade do publicador de cada proxecto con atestacións (PyPI Integrity API);
- unha mostra de 1500 paquetes de npm.
Dos 14.995 proxectos que puidemos analizar, 11.336 (75,6 %) nunca subiron un ficheiro con atestación.
Adopción. A última versión ten atestación en 3479 de 14.995 proxectos (23,2 %), e no 31,1 % daqueles cuxa última versión se subiu por primeira vez despois do 2024-10-01. Por tramo de posición:
| posicións | última versión con atestación |
|---|---|
| 1–100 | 59,0 % |
| 10.001–15.000 | 20,3 % |
A proporción de proxectos cuxa última versión ten atestación pasou do 4,0 % (finais de novembro de 2024) ao 23,2 % (finais de setembro de 2026). Coincidimos con Are we PEP 740 yet?, de Trail of Bits, en 359 dos seus 360 paquetes.
Proxectos que deixaron de facelo. 148 proxectos subiron un ficheiro con atestación e despois publicaron versións sen ela. En 138, a liña que instala pip tiña atestacións e a súa última versión non ten ningunha: o 3,8 % dos 3659 proxectos que algunha vez as publicaron. Por causa:
| causa | proxectos |
|---|---|
| cambio de ferramenta ou de fluxo de traballo | 96 |
| unha única versión illada | 15 |
| atestación restablecida despois da última versión | 1 |
| descoñecida | 26 |
En 53 dos cambios de ferramenta ou de fluxo de traballo, o fluxo de publicación executa agora uv publish sen ningún paso de atestación. Exemplos, cada un respaldado por un commit en paper.md §5.3: fastapi, typer, fastmcp e supabase. Deixar de publicar atestacións é un cambio nas ferramentas de publicación, non un indicio de compromiso de seguridade.
Cambios de publicador. Polo menos 307 proxectos con atestacións cambiaron de publicador. Dos 188 cambios que cruzan repositorios ou tipos de publicador:
- 160 están confirmados por datos públicos;
- 16 son coherentes cos propios metadatos do proxecto;
- 12, en 5 proxectos, non están confirmados.
npm. O 30,8 % dos 1000 paquetes principais publica procedencia (provenance); 4 dos 459 paquetes que algunha vez o fixeron (0,9 %) deixaron de facelo.
Traballos previos. A medición existente máis próxima é o panel de seguimento de Trail of Bits, que cobre a última versión dos 360 primeiros paquetes de PyPI. Este estudo engade a distribución máis alá deses 360, o historial, os abandonos e as súas causas, e a auditoría de publicadores (paper.md §2).
Automatización e revisión. Axentes de IA realizaron o estudo e redactaron o texto. Un revisor de IA independente comprobouno (paper.md §4.1).
Citar este estudo
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}
}