Tutkimukset / S5
Kuka julkaisee attestaatioita PyPI:ssä ja npm:ssä – ja kuka lopetti?
Tiivistelmä
PEP 740 -attestaatioiden avulla kuka tahansa voi tarkistaa, että PyPI:ssä oleva tiedosto on rakennettu nimetyssä repositoriossa ja työnkulussa. Tavallista on, ettei attestaatioita julkaista. Mittasimme 2026-10-02:
- 15 000 ladatuimman PyPI-projektin kaikkien PyPI:hin lähetettyjen tiedostojen historian (hugovkin lista, päivätty 2026-10-01);
- jokaisen attestaatioita julkaisevan projektin julkaisijan identiteetin (PyPI Integrity API);
- 1 500 npm-paketin otoksen.
Niistä 14 995 projektista, jotka pystyimme analysoimaan, 11 336 (75,6 %) ei ole koskaan lähettänyt tiedostoa, jolla on attestaatio.
Käyttöönotto. Uusimmalla versiolla on attestaatio 3 479 projektissa 14 995:stä (23,2 %) ja 31,1 %:ssa niistä projekteista, joiden uusin versio lähetettiin ensimmäisen kerran 2024-10-01 jälkeen. Sijoitusväleittäin:
| sijat | uusimmalla versiolla attestaatio |
|---|---|
| 1–100 | 59,0 % |
| 10 001–15 000 | 20,3 % |
Niiden projektien osuus, joiden uusimmalla versiolla on attestaatio, kasvoi 4,0 %:sta (marraskuun 2024 lopussa) 23,2 %:iin (syyskuun 2026 lopussa). Tuloksemme vastaavat Trail of Bitsin seurantaa Are we PEP 740 yet? 359:n paketin osalta sen 360 paketista.
Lopettaneet projektit. 148 projektia lähetti tiedoston, jolla oli attestaatio, ja julkaisi myöhemmin version ilman sitä. Niistä 138:ssa versiolinjalla, jonka pip asentaa, oli attestaatioita, mutta sen uusimmalla versiolla ei ole yhtään: 3,8 % niistä 3 659 projektista, jotka ovat joskus julkaisseet attestaatioita. Syittäin:
| syy | projekteja |
|---|---|
| työkalun tai työnkulun vaihto | 96 |
| yksittäinen julkaisu | 15 |
| palautettu uusimman julkaisun jälkeen | 1 |
| tuntematon | 26 |
Työkalun tai työnkulun vaihdoista 53:ssa julkaisutyönkulku ajaa nyt komennon uv publish ilman attestaatiovaihetta. Esimerkkejä, joista kunkin tueksi paper.md §5.3 esittää commitin: fastapi, typer, fastmcp ja supabase. Lopettaminen on julkaisutyökalujen vaihto, ei merkki vaarantumisesta.
Julkaisijan vaihdokset. Vähintään 307 attestaatioita julkaisevaa projektia on vaihtanut julkaisijaa. Niistä 188 vaihdoksesta, jotka tapahtuvat eri repositorioiden tai eri julkaisijatyyppien välillä:
- 160 on vahvistettu julkisten tietojen perusteella;
- 16 on sopusoinnussa projektin omien metatietojen kanssa;
- 12, jotka koskevat 5 projektia, ei ole vahvistettu.
npm. 1 000 suosituimmasta paketista 30,8 % julkaisee alkuperätiedot (provenance); niistä 459 paketista, jotka ovat joskus julkaisseet niitä, 4 (0,9 %) on lopettanut.
Aiempi tutkimus. Lähin olemassa oleva mittaus on Trail of Bitsin seuranta, joka kattaa 360 suosituinta PyPI-pakettia niiden uusimman julkaisun perusteella. Tämä tutkimus tuo lisäksi jakauman näiden 360 paketin ulkopuolelta, historian, lopettamiset ja niiden syyt sekä julkaisijoiden tarkastuksen (paper.md §2).
Automaatio ja tarkastus. Tekoälyagentit tekivät tutkimuksen ja kirjoittivat tekstin. Riippumaton tekoälyarvioija tarkisti sen (paper.md §4.1).
Viittaa tähän tutkimukseen
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}
}