Studies / S5
Wie publiceert attestaties op PyPI en npm – en wie is ermee gestopt?
Samenvatting
Attestaties volgens PEP 740 laten iedereen controleren dat een bestand op PyPI is gebouwd door een bij naam genoemde repository en workflow. Niet attesteren is de norm. We hebben op 2026-10-02 gemeten:
- de volledige uploadgeschiedenis van de 15.000 meest gedownloade PyPI-projecten (de lijst van hugovk van 2026-10-01);
- de identiteit van de publisher van elk geattesteerd project (PyPI Integrity API);
- een steekproef van 1.500 npm-pakketten.
Van de 14.995 projecten die we konden analyseren, hebben er 11.336 (75,6%) nooit een geattesteerd bestand geüpload.
Adoptie. De nieuwste versie is geattesteerd voor 3.479 van de 14.995 projecten (23,2%), en voor 31,1% van de projecten waarvan de nieuwste versie voor het eerst na 2024-10-01 is geüpload. Per rangschikkingsband:
| rangen | nieuwste versie geattesteerd |
|---|---|
| 1–100 | 59,0% |
| 10.001–15.000 | 20,3% |
Het aandeel projecten met een geattesteerde nieuwste versie steeg van 4,0% (eind november 2024) naar 23,2% (eind september 2026). Voor 359 van de 360 pakketten van Are we PEP 740 yet? van Trail of Bits komen we tot hetzelfde resultaat.
Projecten die zijn gestopt. 148 projecten hebben een geattesteerd bestand geüpload en later een release zonder attestatie uitgebracht. Bij 138 had de lijn die pip installeert attestaties en heeft de nieuwste versie er geen: 3,8% van de 3.659 projecten die ooit attesteerden. Per oorzaak:
| oorzaak | projecten |
|---|---|
| wijziging van tool of workflow | 96 |
| één losse release | 15 |
| hersteld na de nieuwste release | 1 |
| onbekend | 26 |
Bij 53 van de wijzigingen van tool of workflow voert de publicatieworkflow nu uv publish uit zonder attestatiestap. Voorbeelden, elk onderbouwd met een commit in paper.md §5.3: fastapi, typer, fastmcp en supabase. Stoppen is een wijziging van de releasetooling, geen teken van compromittering.
Wijzigingen van publisher. Ten minste 307 geattesteerde projecten zijn van publisher veranderd. Van de 188 wijzigingen die over repository's of soorten publisher heen gaan:
- 160 worden bevestigd door openbare data;
- 16 zijn consistent met de eigen metadata van het project;
- 12, in 5 projecten, zijn niet bevestigd.
npm. 30,8% van de top 1.000 publiceert provenance; 4 van de 459 pakketten die dat ooit deden (0,9%) zijn ermee gestopt.
Eerder werk. De meest verwante bestaande meting is de tracker van Trail of Bits, die de top 360 van PyPI-pakketten op basis van hun nieuwste release behandelt. Deze studie voegt daaraan toe: de verdeling voorbij die 360, de geschiedenis, de stops en hun oorzaken, en de audit van publishers (paper.md §2).
Automatisering en review. AI-agents hebben de studie uitgevoerd en de tekst geschreven. Een onafhankelijke AI-reviewer heeft hem gecontroleerd (paper.md §4.1).
Deze studie citeren
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}
}