The blessed GitHub Action, for publishing your distribution files to PyPI: https://github.com/marketplace/actions/pypi-publish
BSD-3-CLAUSE License
Bot releases are hidden (Show)
Published by webknjaz 14 days ago
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.
@mosfet80π° updated a few internal linter versions in #266, #267, and #271, no user impact. This is usually automated otherwise.
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.2...v1.10.3
π§ββοΈ Release Manager: @webknjaz πΊπ¦
Published by webknjaz 27 days ago
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! π¦
@woodruffwπ° bumped pypi-attestations
to v0.0.12 in #262, hopefully fixing #263. π€ Nah.. that wasn't it.
[!TIP]
Please keep in mind that reusable workflows are not yet supported, even though they sometimes work, mostly by accident.
@facutuesca made their first contribution in https://github.com/pypa/gh-action-pypi-publish/pull/258
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.1...v1.10.2
π§ββοΈ Release Manager: @webknjaz πΊπ¦
π Special Thanks to @henryiiiπ° for promptly pointing up possible fixes for #263.
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 https://github.com/pypa/gh-action-pypi-publish/commit/0ab0b79, though. So everything's good!
-- @webknjazπ°
[!IMPORTANT]
β¨ Despite this minor hiccup, we invite you to still opt into trying this feature out early. It can be enabled like this:with: attestations: true
Leave feedback in the v1.10.0 release discussion or the PR.
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/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!
Published by webknjaz about 2 months ago
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.
π Please, thank William for working on this amazing improvement for the ecosystem! The overall effort is tracked @ https://github.com/pypi/warehouse/issues/15871, by the way.
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.9.0...v1.10.0
π§ββοΈ Release Manager: @webknjaz πΊπ¦
Published by webknjaz 4 months ago
twine upload
command via #231cryptography == 42.0.7
id == 1.4.0
idna == 3.7
via #228requests == 2.32.0
via #240Twine == 5.1.0
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.
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/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.
Published by webknjaz 7 months ago
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: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.13...v1.8.14
π§ββοΈ Release Manager: @webknjaz πΊπ¦
Published by webknjaz 7 months ago
This action is now able to consume and publish distribution packages with Metadata-Version: 2.3
embedded.
@SigureMoπ° sent us a bump of pkginfo
version 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 declaring Metadata-Version: 2.3
. In particular, it is known to affect distributions built with Maturin >= 1.5.0
.
Following that, @webknjazπ° upgraded other transitive and direct dependency pins, including, among others, the following notable bumps:
cryptography == 42.0.5
id == 1.3.0
readme-renderer == 43.0
Twine == 5.0.0
@SigureMo made their first contribution in https://github.com/pypa/gh-action-pypi-publish/pull/219
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.12...v1.8.13
π§ββοΈ Release Manager: @webknjaz πΊπ¦
Published by webknjaz 8 months ago
@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.
@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.
@woodruffw proactively updated the OIDC minting API endpoint used during the exchange via #206. Nothing you should be too concerned about, promise!
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.11...v1.8.12
π§ββοΈ Release Manager: @webknjaz πΊπ¦
Published by webknjaz 11 months ago
@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.
@di linked the configuration docs for Trusted Publishing in README via https://github.com/pypa/gh-action-pypi-publish/pull/179.
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.10...v1.8.11
Published by webknjaz about 1 year ago
@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: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.9...v1.8.10
Published by webknjaz about 1 year ago
Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.8...v1.8.9
Published by webknjaz over 1 year ago
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/.
πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.7...v1.8.8
Published by webknjaz over 1 year ago
}
from a non-OIDC log annotation in https://github.com/pypa/gh-action-pypi-publish/pull/161.πͺ Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.6...v1.8.7
Published by webknjaz over 1 year ago
password
field as required and contributed a correction in https://github.com/pypa/gh-action-pypi-publish/pull/151
Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.5...v1.8.6
Published by webknjaz over 1 year ago
@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: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.4...v1.8.5
Published by webknjaz over 1 year ago
Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.3...v1.8.4
Published by webknjaz over 1 year ago
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: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.2...v1.8.3
Published by webknjaz over 1 year ago
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: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.1...v1.8.2
Published by webknjaz over 1 year ago
π 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.
Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.0...v1.8.1
Published by webknjaz over 1 year ago
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.
IMPORTANT: The PyPI-side configuration is only available to participants of the private beta test. Please, only try out the zero-config mode if you are a beta test participant having followed the PyPI configuration instructions.
It's gone GA during Python 2023 and is available to everyone now.
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/12965
Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.7.1...v1.8.0