PyPI makes release attestations easier to find with new security tab
The Python Package Index (PyPI) has added a security tab to its project pages, giving developers a place to check where individual release files came from.

The Python Package Index (PyPI) has added a security tab to its project pages, giving developers a place to check where individual release files came from.
The Security tab shows whether release files have digital attestations, which provide verifiable information about how a file was published or built.
A release has full provenance when every file has at least one attestation.
PyPI warns users when only some files in a release have attestations or when files in the same release come from different repositories or build systems.
Warnings appear when a release comes from a different repository or workflow than a previous version, or when a project that previously provided attestations stops doing so.
An example provenance warning on PyPI, showing a release with incomplete provenance (Source: PyPI) The redesigned project page displays provenance warnings at the top, alongside notices for yanked releases, archived projects and pre-releases.
Users can review the attestation details in the tab or open the linked transparency log.
A change in workflow often has a legitimate explanation, such as an organization renaming itself or moving its repository, though it may signal a compromised pipeline or an account takeover.
In those cases, developers can look at maintainer history, release patterns and repository activity when assessing a package.
The Release History tab shows the file count, provenance status and any applicable release status for each version, so users can compare releases from the same page.
A PyPI Publish attestation identifies the Trusted Publisher that uploaded the file, while a SLSA Build Provenance attestation links the file to its source commit, build platform and build instructions.
A release has no provenance when none of its files has an attestation.
Nicole Harris, PyPI design contributor, said this is common for older releases and projects that have yet to configure Trusted Publishing.
She stressed that such a release isn’t necessarily malicious, since the missing attestation only means its origin can’t be cryptographically verified.
What happened
The Python Package Index (PyPI) has added a security tab to its project pages, giving developers a place to check where individual release files came from.
The Security tab shows whether release files have digital attestations, which provide verifiable information about how a file was published or built.
A release has full provenance when every file has at least one attestation.
What changed
PyPI warns users when only some files in a release have attestations or when files in the same release come from different repositories or build systems.
Warnings appear when a release comes from a different repository or workflow than a previous version, or when a project that previously provided attestations stops doing so.
An example provenance warning on PyPI, showing a release with incomplete provenance (Source: PyPI) The redesigned project page displays provenance warnings at the top, alongside notices for yanked releases, archived projects and pre-releases.
Who is affected
Users can review the attestation details in the tab or open the linked transparency log.
A change in workflow often has a legitimate explanation, such as an organization renaming itself or moving its repository, though it may signal a compromised pipeline or an account takeover.
Why it matters
In those cases, developers can look at maintainer history, release patterns and repository activity when assessing a package.
The Release History tab shows the file count, provenance status and any applicable release status for each version, so users can compare releases from the same page.
Technical details
A PyPI Publish attestation identifies the Trusted Publisher that uploaded the file, while a SLSA Build Provenance attestation links the file to its source commit, build platform and build instructions.
A release has no provenance when none of its files has an attestation.
Response
Nicole Harris, PyPI design contributor, said this is common for older releases and projects that have yet to configure Trusted Publishing.
She stressed that such a release isn’t necessarily malicious, since the missing attestation only means its origin can’t be cryptographically verified.