Update pypa/gh-action-pypi-publish action to v1.12.4#1817
Merged
AndreMiras merged 1 commit intomasterfrom Jan 24, 2025
Merged
Conversation
cec298d to
8223e1c
Compare
8223e1c to
4418bc8
Compare
4418bc8 to
de5b342
Compare
de5b342 to
b523ba1
Compare
b523ba1 to
3cecf11
Compare
3cecf11 to
d9dd3fc
Compare
7d246ed to
bfc9318
Compare
bfc9318 to
2453506
Compare
2453506 to
bcd28b9
Compare
bcd28b9 to
33fb012
Compare
AndreMiras
approved these changes
Jan 24, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.1.0->v1.12.4Release Notes
pypa/gh-action-pypi-publish (pypa/gh-action-pypi-publish)
v1.12.4Compare Source
Be nice to FOSS maintainers.
✨ What's Changed
The main theme of this patch release that the support for uploading PEP 639 licensing metadata to PyPI has been fixed in #327.
🛠️ Internal Updates
A few smaller updates include the attestation existence being checked earlier in the process now, listing all the violating files together, not just one (PR #315).
And the lock file with the software available in runtime has been re-pinned in #329.
Additionally, the CI now runs the smoke-tests against both Ubuntu 22.04 and 24.04 explicitly via
da900af.🪞 Full Diff: pypa/gh-action-pypi-publish@v1.12.3...v1.12.4
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Special Thanks to @woodruffw💰 for releasing the license metadata support fix in Twine!
💬 Discuss on Bluesky 🦋, on Mastodon 🐘 and on GitHub.
v1.12.3Compare Source
✨ What's Improved
With the updates by @woodruffw💰 and @webknjaz💰 via #309 and #313, it is now possible to publish distribution packages that include core metadata v2.4, like those built using maturin. This is done by bumping
Twineto v6.0.1 andpkginfoto v1.12.0.📝 Docs
We've made an attempt to clarify the runtime and workflow shape that are expected to be supported for calling this action in: https://github.com/marketplace/actions/pypi-publish#Non-goals.
🛠️ Internal Updates
@br3ndonland💰 improved the container image generation automation to include Git SHA in #301. And @woodruffw💰 added the
workflow_refcontext to Trusted Publishing debug logging in #305, helping us diagnose misconfigurations faster. #313 also extends the smoke test in the CI to check against the maturin-made dists. Additionally,jeepneyandsecretstoragetransitive deps have been added to the pip constraint-based lock file, as Dependabot seems to have missed those earlier.🪞 Full Diff: pypa/gh-action-pypi-publish@v1.12.2...v1.12.3
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Special Thanks to @samuelcolvin💰 for nudging me to cut this release sooner and for sponsoring me via @pydantic💰!
🔌 Shameless Plug: The other day I've made this 🦋 Bluesky 🇺🇦 FOSS Maintainers Starter Pack subscribe to read news from people like me :)
💬 Discuss on Bluesky 🦋, on Mastodon 🐘 and on GitHub.
v1.12.2Compare Source
🐛 What's Fixed
The fix for signing legacy zip sdists turned out to be incomplete, so @woodruffw💰 promptly produced another follow-up that updated
pypi-attestationsfrom v0.0.13 to v0.0.15 in #297. This is the only change since the previous release.🪞 Full Diff: pypa/gh-action-pypi-publish@v1.12.1...v1.12.2
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.12.1Compare Source
🐛 What's Fixed
Version v1.12.0 hit several rare corner cases we never considered fully supported, and this release fixes a few of those.
In #294, @webknjaz💰 improved the self-hosted runner experience by pre-installing Python if it's not there, and with #293 the ability to use the action on GitHub Enterprise instances has been restored. The latter should've also fixed the ability to invoke [
pypi-publish][pypi-publish] from nested in-repo composite actions — another exotic use-case that was never tested in our CI.@woodruffw💰 also managed to squeeze in a last-minute fix for detecting legacy
.zipsdists while producing attestations via #295.🪞 Full Diff: pypa/gh-action-pypi-publish@v1.12.0...v1.12.1
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Huge Thanks to all the bug reporters for posting the logs, helping inspect the problems and verify the regression fixes!
v1.12.0Compare Source
⚡️ Why Should You Update?
This is a minor version bump, but it does not add any new user-facing interfaces. Still, I felt like it should not be a patch-release: this update brings significant changes to the action invocation and internal release process.
Previously, each invocation of [
pypi-publish][pypi-publish] required building a container image in the invoking CI job. This was inefficient and added about 30 seconds to the publishing jobs at their startup just to build the container.I wanted to improve this for over three years (#58) and a little over half a year ago @br3ndonland💰 stepped up and offered a very comprehensive solution to the limitation I was hoping to overcome: #230.
Going forward, I'm going to pre-build per-version containers prior to cutting each release. And the action invocations will just pull the image from GitHub Container registry.
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.11.0...v1.12.0
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.11.0Compare Source
🔏 Helping you become a trusted supply chain link 🔗
Two months ago, in v1.10.0, @woodruffw💰 integrated support for generating and uploading PEP 740 digital attestations that can be used as provenance objects when analyzing dependency chains for the integrity.
To make sure it works well, it was implemented as an opt-in, so a relatively small subset of projects was able to try it out, and a few issues have been determined and fixed during this time.
That changes today! This version changes the feature toggle to “on by default”. This means that from now on, every project making use of Trusted Publishing will start producing and publishing digital attestations without having to do any modifications to how they use this action.
@woodruffw💰 flipped the respective toggle in #277 with the possibility to opt-out.
🛠️ Internal Dependencies
@woodruffw💰 bumped
sigstoreto v3.5.1 andpypi-attestationsto v0.0.13 in lock files via #276.🪞 Full Diff: pypa/gh-action-pypi-publish@v1.10.3...v1.11.0
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Special Thanks to William for working on improving the supply chain provenance in the ecosystem! The overall effort is tracked @&#https://github.com/pypi/warehouse/issues/15871/15871.
v1.10.3Compare Source
💅 Cosmetic Output Improvements
In #270, @facutuesca💰 made a follow-up to their previous PR #250, making the hints show up more granularly. This effectively makes sure that the suggestion to enable Trusted Publishing does not get displayed when it's already in use. It also makes the message nicer in a few places on the UI.
🛠️ Internal Dependencies
@mosfet80💰 updated a few internal linter versions in #266, #267, and #271, no user impact. This is usually automated otherwise.
💪 New Contributors
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.10.2...v1.10.3
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.10.2Compare Source
💅 Cosmetic Output Improvements
In #250 and #258, @facutuesca💰 added a nudge message with a magic link to pre-fill the creation of new Trusted Publishers configurations on PyPI. The users are now suggested to configure tokenless publishing by clicking a link printed in the job summary when it's detected that they publish to PyPI or TestPyPI. Just like magic! 🦄
🛠️ Internal Dependencies
@woodruffw💰 bumped
pypi-attestationsto v0.0.12 in #262, fixing #263.💪 New Contributors
@facutuesca made their first contribution in https://github.com/pypa/gh-action-pypi-publish/pull/258
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.10.1...v1.10.2
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Special Thanks to @henryiii💰 for promptly pointing up possible fixes for #263.
v1.10.1Compare Source
🚑🔏 Oopsie... We missed a tiny bug in the attestations feature the other day
The problem was that the distribution file validity check was failing on any valid distribution being present and ready to be signed. What a silly mistake! It's now been fixed via pypa/gh-action-pypi-publish@0ab0b79, though. So everything's good!
-- @webknjaz💰
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.10.0...v1.10.1
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Special Thanks to @hugovk💰 for promptly validating the bug fix, mere minutes after I pushed it — I even haven't finished writing this text by then!
v1.10.0Compare Source
🔏 Anything fancy, eh?
This time, @woodruffw💰 implemented support for PEP 740 attestations functionality in #236 and #245. This is a big deal, as it is a huge step forward to replacing what the deprecated GPG signatures used to provide in a more meaningful way.
🙏 And please, thank William for working on this amazing improvement for the ecosystem! The overall effort is tracked @&#https://github.com/pypi/warehouse/issues/15871/15871, by the way.
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.9.0...v1.10.0
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.9.0Compare Source
💅 Cosmetic Output Improvements
twine uploadcommand via #231🛠️ Internal Dependencies
cryptography == 42.0.7id == 1.4.0idna == 3.7via #228requests == 2.32.0via #240Twine == 5.1.0⚙️ Secret Stuff
In #241, @br3ndonland💰 added a Docker label linking the container image to this repository for GHCR to display it nicely. This is preparatory work for a big performance-focused refactoring he's working on in #230.
💪 New Contributors
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.14...v1.9.0
🧔♂️ Release Manager: @webknjaz 🇺🇦
🙏 Special Thanks to @pradyunsg💰 for promptly unblocking this release to Marketplace as GitHub started asking for yet another developer agreement signature from the organization admins.
v1.8.14Compare Source
🛠️ Internal Dependencies
Nothing changed feature-wise. The only notable update is that the underlying container runtime now uses Python 3.12 and pip has been updated to v24.0 there.
This is should go unnoticed in terms of behavior. It's just a bit of maintenance burden to be done occasionally by @webknjaz💰.
Enjoy!
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.13...v1.8.14
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.8.13Compare Source
🐛 What's Fixed
This action is now able to consume and publish distribution packages with
Metadata-Version: 2.3embedded.🛠️ Internal Dependencies
@SigureMo💰 sent us a bump of
pkginfoversion to version 1.10.0 in #219. It's a transitive dependency for us and is not an API-level change but upgrading it has a side effect of letting Twine recognize distribution packages declaringMetadata-Version: 2.3. In particular, it is known to affect distributions built withMaturin >= 1.5.0.Following that, @webknjaz💰 upgraded other transitive and direct dependency pins, including, among others, the following notable bumps:
cryptography == 42.0.5id == 1.3.0readme-renderer == 43.0Twine == 5.0.0💪 New Contributors
@SigureMo made their first contribution in https://github.com/pypa/gh-action-pypi-publish/pull/219
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.12...v1.8.13
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.8.12Compare Source
💅 Cosmetic Output Improvements
@woodruffw💰 replaced the notice annotations with simplified debug messages related to authentication methanism selection via #196. The also improved the error clarity during OIDC exchange on PRs from forks via #203.
📝 What's Documented
@virtuald💰 updated the docs and pointer messages were updated to mention that reusable workflows aren't supported right now in #186 and @xuanzhi33💰 later corrected the markdown syntax there via #216.
🛠️ Internal Dependencies
⚙️ Secret Stuff
@woodruffw proactively updated the OIDC minting API endpoint used during the exchange via #206. Nothing you should be too concerned about, promise!
💪 New Contributors
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.11...v1.8.12
🧔♂️ Release Manager: @webknjaz 🇺🇦
v1.8.11Compare Source
💅 Cosmetic output improvements
@woodruffw added a nudge suggesting the users storing passwords in a GitHub Actions repository secrets to switch to using secretless publishing in https://github.com/pypa/gh-action-pypi-publish/pull/190. This also reminds people that PyPI will start mandating two-factor authentication to perform uploads in 2024.
📝 What's Documented
@di linked the configuration docs for Trusted Publishing in README via https://github.com/pypa/gh-action-pypi-publish/pull/179.
🛠️ Internal dependencies
💪 New Contributors
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.10...v1.8.11
v1.8.10Compare Source
🐛 What's Fixed
@woodruffw fixed decoding OIDC claims in debug output on failure by applying correct padding to the encoded payload via https://github.com/pypa/gh-action-pypi-publish/pull/177.
Full Diff: pypa/gh-action-pypi-publish@v1.8.9...v1.8.10
v1.8.9Compare Source
💅 Cosmetic output improvements
🛠️ Internal dependencies
Full Diff: pypa/gh-action-pypi-publish@v1.8.8...v1.8.9
v1.8.8Compare Source
💅 Cosmetic output improvements
In https://github.com/pypa/gh-action-pypi-publish/pull/167, @woodruffw introduced a nudge-warning encouraging people to start using secretless publishing to PyPI, as suggested by @sethmlarson in https://github.com/pypa/gh-action-pypi-publish/issues/164, collaborating with @di.
💡 Tip: The OIDC-based trusted publishing integration details can be found in the action README at https://github.com/marketplace/actions/pypi-publish#trusted-publishing and on the PyPI docs page at https://docs.pypi.org/trusted-publishers/. It's gone GA on April 20, 2023, during PyCon: https://blog.pypi.org/posts/2023-04-20-introducing-trusted-publishers/. And the Trail Of Bits blog post has some deeper explanation here: https://blog.trailofbits.com/2023/05/23/trusted-publishing-a-new-benchmark-for-packaging-security/.
🛠️ Internal dependencies
💪 New Contributors
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.7...v1.8.8
v1.8.7Compare Source
💅 Cosmetic output impovements
}from a non-OIDC log annotation in https://github.com/pypa/gh-action-pypi-publish/pull/161.🛠️ Internal dependencies
💪 New Contributors
🪞 Full Diff: pypa/gh-action-pypi-publish@v1.8.6...v1.8.7
v1.8.6Compare Source
What's Updated
passwordfield as required and contributed a correction in https://github.com/pypa/gh-action-pypi-publish/pull/151New Contributors
Full Diff: pypa/gh-action-pypi-publish@v1.8.5...v1.8.6
v1.8.5Compare Source
What's Improved
@woodruffw improved the user-facing documentation and logging to make use of the Trusted Publishing flow terminology cohesive with PyPI in https://github.com/pypa/gh-action-pypi-publish/pull/143. Trusted Publishing used to be referred to as OpenID Connect (OIDC) — the underlying technology that is being used to make it work. He also made the action display the cause of the Trusted Publishing flow being selected by the action via https://github.com/pypa/gh-action-pypi-publish/pull/142.
Full Diff: pypa/gh-action-pypi-publish@v1.8.4...v1.8.5
v1.8.4Compare Source
What's Improved
Full Diff: pypa/gh-action-pypi-publish@v1.8.3...v1.8.4
v1.8.3Compare Source
What's New
This release improves the logging detalization of which authentication mode is selected when the action runs. It surfaces this detail to the workflow run summary page as annotations. The change was contributed by @woodruffw in https://github.com/pypa/gh-action-pypi-publish/pull/136.
Full Diff: pypa/gh-action-pypi-publish@v1.8.2...v1.8.3
v1.8.2Compare Source
What's Changed
This release started printing out full OIDC error messages to console, instead of just one line -- by @woodruffw in https://github.com/pypa/gh-action-pypi-publish/pull/134.
Full Diff: pypa/gh-action-pypi-publish@v1.8.1...v1.8.2
v1.8.1Compare Source
🐛 What's Fixed
💔 Unfortunately, a tiny mistake in v1.8.0 caused a far-reaching regression for the most used code path.
❗ But don't worry, it's fixed now thanks to @njzjz who promptly spotted it and @zhongjiajie who sent a bugfix.
🙌 New Contributors
Full Diff: pypa/gh-action-pypi-publish@v1.8.0...v1.8.1
v1.8.0Compare Source
The Coolest Release Ever!
In this release, @woodruffw implemented support for secretless OIDC-based publishing to PyPI-like package indexes. The OIDC flow is activated when neither username nor password action inputs are set.
The OIDC “token exchange”, is an authentication technique that PyPI (and TestPyPI, and hopefully some future others) supports as an alternative to long-lived username/password combinations or long-lived API tokens.
Setup prerequisites: https://github.com/marketplace/actions/pypi-publish#trusted-publishing
PyPI's documentation: https://pypi.org/help/#trusted-publishers
~Beta test enrollment:https://github.com/pypi/warehouse/issues/129655~
New Contributors
Full Diff: pypa/gh-action-pypi-publish@v1.7.1...v1.8.0
v1.7.1Compare Source
Regression?
There was a small setback with v1.7.0 — the snake_case fallbacks didn't work because the check for the kebab-case env vars with default values set was always truthy. This bugfix release promptly fixes that.
Full Diff: pypa/gh-action-pypi-publish@v1.7.0...v1.7.1
v1.7.0Compare Source
What should I care about?
TL;DR The action input names have been converted to use kebab-case and marked deprecated. But the old names still work.
This is made to align the public API with the de-facto conventions in the ecosystem. We've used snake_case names, which the maintainer considers a historical mistake. New kebab-case inputs will make the end-users' workflows look more consistent and and visually distinguishable from other identifiers one may encounter in YAML.
There is no timeline for removing the old names, but it will happen in v3 or later versions of the action. If the maintainer doesn't forget to do this, that is.
The patch is here: https://github.com/pypa/gh-action-pypi-publish/pull/125.
Full Diff: pypa/gh-action-pypi-publish@v1.6.5...v1.7.0
v1.6.5Compare Source
What's Changed
New Contributors
Full Diff: pypa/gh-action-pypi-publish@v1.6.4...v1.6.5
v1.6.4Compare Source
oh, boi! again?
This is the last one tonight, promise! It fixes this embarrassing bug that was actually caught by the CI but got overlooked due to the lack of sleep.
TL;DR GH passed
$HOMEfrom the external env into the container and that tricked the Python'ssitemodule to think that the home directory is elsewhere, adding non-existent paths to the env vars. See #115.Full Diff: pypa/gh-action-pypi-publish@v1.6.3...v1.6.4
v1.6.3Compare Source
Another Release!? Why?
In https://github.com/pypa/gh-action-pypi-publish/issues/112#issuecomment-1340133013, it was discovered that passing a
$PATHvariable even breaks the shebang. So this version adds more safeguards to make sure it keeps working with a fully broken$PATH.Full Diff: pypa/gh-action-pypi-publish@v1.6.2...v1.6.3
v1.6.2Compare Source
What's Fixed
$PATHand$PYTHONPATHenvironment variables resilient to broken values passed from the host runner environment, which previously allowed the users to accidentally break the container's internal runtime as reported in https://github.com/pypa/gh-action-pypi-publish/issues/112Internal Maintenance Improvements
New Contributors
Full Diff: pypa/gh-action-pypi-publish@v1.6.1...v1.6.2
v1.6.1Compare Source
What's happened?!
There was a sneaky bug in v1.6.0 which caused Twine to be outside the import path in the Python runtime. It is fixed in v1.6.1 by updating
$PYTHONPATHto point to a correct location of the user-globalsite-packages/directory.Full Diff: pypa/gh-action-pypi-publish@v1.6.0...v1.6.1
v1.6.0Compare Source
Anything's changed?
The only update is that the Python runtime has been upgraded from 3.9 to 3.11. There are no functional changes in this release.
Full Changelog: pypa/gh-action-pypi-publish@v1.5.2...v1.6.0
v1.5.2Compare Source
What's Improved
Full Diff: pypa/gh-action-pypi-publish@v1.5.1...v1.5.2
v1.5.1Compare Source
What's Changed
packages_diris a wildcard value. — by @dukecat0 in https://github.com/pypa/gh-action-pypi-publish/pull/91Full Diff: pypa/gh-action-pypi-publish@v1.5.0...v1.5.1
v1.5.0Compare Source
What's Changed
print_hashfor showing the hash values of files to be uploaded — by @meowmeowmeowcat in https://github.com/pypa/gh-action-pypi-publish/pull/87New Contributors
Full Diff: pypa/gh-action-pypi-publish@v1.4.2...v1.5.0
v1.4.2Compare Source
the publishing race conditions like #50/#51)
v1.4.1Compare Source
$VERBOSEvar contributed earlier in PR #39 (bug report #41)v1.4.0Compare Source
verbosesetting useful for debugging the upload issues (PR #39) -- by @sub-modv1.3.1Compare Source
packages_dirvalidation warningsv1.3.0Compare Source
skip_existingsettingv1.2.2Compare Source
$INPUT_PACKAGES_DIRin the warning messagev1.2.1Compare Source
via GitHub Actions Workflow Commands.
v1.2.0Compare Source
Implement dists metadata validation by running
twine checkbefore upload.This is enabled by default and can be disabled using
verify_metadatainput:This feature has been contributed by @henryiii.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.