Studi / S5
Chi pubblica attestazioni su PyPI e npm — e chi ha smesso?
Sintesi
Le attestazioni PEP 740 consentono a chiunque di verificare che un file PyPI sia stato costruito da un repository e da un workflow identificati. Non attestare è la norma. Abbiamo misurato, il 2026-10-02:
- l'intera cronologia dei caricamenti dei 15.000 progetti PyPI più scaricati (elenco di hugovk del 2026-10-01);
- l'identità del publisher di ogni progetto attestato (PyPI Integrity API);
- un campione di 1.500 pacchetti npm.
Dei 14.995 progetti che abbiamo potuto analizzare, 11.336 (75,6%) non hanno mai caricato un file attestato.
Adozione. L'ultima versione è attestata per 3.479 progetti su 14.995 (23,2%) e per il 31,1% di quelli la cui ultima versione è stata caricata per la prima volta dopo il 2024-10-01. Per fascia di posizione:
| posizioni | ultima versione attestata |
|---|---|
| 1–100 | 59,0% |
| 10.001–15.000 | 20,3% |
La quota di progetti con l'ultima versione attestata è passata dal 4,0% (fine novembre 2024) al 23,2% (fine settembre 2026). Concordiamo con Are we PEP 740 yet? di Trail of Bits su 359 dei suoi 360 pacchetti.
Progetti che hanno smesso. 148 progetti hanno caricato un file attestato e in seguito hanno pubblicato versioni senza attestazione. Per 138, la linea che pip installa aveva attestazioni e la sua ultima versione non ne ha nessuna: il 3,8% dei 3.659 progetti che hanno attestato almeno una volta. Per causa:
| causa | progetti |
|---|---|
| cambio di strumento o di workflow | 96 |
| un'unica versione isolata | 15 |
| attestazione ripristinata dopo l'ultima versione | 1 |
| sconosciuta | 26 |
In 53 dei cambi di strumento o di workflow, il workflow di pubblicazione esegue ora uv publish senza alcun passaggio di attestazione. Esempi, ciascuno documentato da un commit in paper.md §5.3: fastapi, typer, fastmcp e supabase. Smettere di attestare è un cambio negli strumenti di rilascio, non un segno di compromissione.
Cambi di publisher. Almeno 307 progetti attestati hanno cambiato publisher. Dei 188 cambi che attraversano repository o tipi di publisher:
- 160 sono confermati da dati pubblici;
- 16 sono coerenti con i metadati del progetto stesso;
- 12, in 5 progetti, non sono confermati.
npm. Il 30,8% dei primi 1.000 pacchetti pubblica la provenienza (provenance); 4 dei 459 pacchetti che l'avevano fatto almeno una volta (0,9%) hanno smesso.
Lavori precedenti. La misurazione esistente più vicina è il tracker di Trail of Bits, che copre l'ultima versione dei primi 360 pacchetti PyPI. Questo studio aggiunge la distribuzione oltre quei 360, la cronologia, le interruzioni e le loro cause, e l'audit dei publisher (paper.md §2).
Automazione e revisione. Agenti di IA hanno condotto lo studio e scritto il testo. Un revisore IA indipendente lo ha verificato (paper.md §4.1).
Cita questo studio
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}
}