pypa/gh-action-pypi-publish (pypa/gh-action-pypi-publish)
### [`v1.12.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.12.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.12.1...v1.12.2)
#### π What's Fixed
The fix for signing legacy zip sdists turned out to be incomplete, so [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) promptly produced another follow-up that updated `pypi-attestations` from v0.0.13 to v0.0.15 in [#297](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/297). This is the only change since the previous release.
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.12.1...v1.12.2
**π§ββοΈ Release Manager:** [@webknjaz](https://redirect.github.com/sponsors/webknjaz) [πΊπ¦](https://stand-with-ukraine.pp.ua)
### [`v1.12.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.12.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.12.0...v1.12.1)
#### π 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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/294), [@webknjaz](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/webknjaz) improved the self-hosted runner experience by pre-installing Python if it's not there, and with [#293](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) also managed to squeeze in a last-minute fix for detecting legacy `.zip` sdists while producing attestations via [#295](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/295).
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.12.0...v1.12.1
**π§ββοΈ Release Manager:** [@webknjaz](https://redirect.github.com/sponsors/webknjaz) [πΊπ¦](https://stand-with-ukraine.pp.ua)
**π Huge Thanks** to all the bug reporters for posting the logs, helping inspect the problems and verify the regression fixes!
[`pypi-publish`]: https://redirect.github.com/marketplace/actions/pypi-publish
### [`v1.12.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.12.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.11.0...v1.12.0)
#### β‘οΈ 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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/58)) and a little over half a year ago [@br3ndonland](https://redirect.github.com/br3ndonland)[π°](https://redirect.github.com/sponsors/br3ndonland) stepped up and offered a very comprehensive solution to the limitation I was hoping to overcome: [#230](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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.
> \[!CAUTION]
> Known quirks:
>
> - This seems to not work on self-hosted runners without a `python` executable: [#289](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/289). The workaround could be installing it prior to running the action.
> - \~Pinning to commit hashes does not work: [#290](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/290). Workaround: postpone updating until it's fixed or switch to Git tags for now. Subscribe to that issue to follow the progress.~ *UPD:* This was an issue during the first 12 hours post release and it has been addressed upstream by publishing a commit SHA-tagged image for the release on Nov 12, 2024 at 10:27 UTC+1.
> - Calling `pypi-publish` from another nested repo-local composite action might be breaking file paths: [#291](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/291). Workaround: postpone updating until it's fixed. Subscribe to that issue to follow the progress.
> - Running within GitHub Enterprise fails on the action repo clone: [#292](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/292). Workaround: postpone updating until it's fixed. Subscribe to that issue to follow the progress.
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.11.0...v1.12.0
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
[`pypi-publish`]: https://redirect.github.com/marketplace/actions/pypi-publish
### [`v1.11.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.11.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.3...v1.11.0)
#### π Helping you become a trusted supply chain link π
Two months ago, in [v1.10.0](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.0), [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/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β](https://redirect.github.com/marketplace/actions/pypi-publish#generating-and-uploading-attestations). 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](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) flipped the respective toggle in [#277](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/277) with the possibility to opt-out.
#### π οΈ Internal Dependencies
[@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) bumped `sigstore` to v3.5.1 and `pypi-attestations` to v0.0.13 in lock files via [#276](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/276).
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.3...v1.11.0
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/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](https://redirect.github.com/pypi/warehouse/issues/15871)/15871.
[PEP 740]: https://peps.python.org/pep-0740/
### [`v1.10.3`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.3)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.2...v1.10.3)
#### π Cosmetic Output Improvements
In [#270](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/270), [@facutuesca](https://redirect.github.com/facutuesca)[π°](https://redirect.github.com/sponsors/facutuesca) made a follow-up to their previous PR [#250](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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](https://redirect.github.com/mosfet80)[π°](https://redirect.github.com/sponsors/mosfet80) updated a few internal linter versions in [#266](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/266), [#267](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/267), and [#271](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/271), no user impact. This is usually automated otherwise.
#### πͺ New Contributors
- [@mosfet80](https://redirect.github.com/mosfet80) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/266](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/266)
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.2...v1.10.3
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
### [`v1.10.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.1...v1.10.2)
#### π Cosmetic Output Improvements
In [#250](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/250) and [#258](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/258), [@facutuesca](https://redirect.github.com/facutuesca)[π°](https://redirect.github.com/sponsors/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](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) bumped `pypi-attestations` to v0.0.12 in [#262](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/262), ~hopefully fixing [#263](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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.
#### πͺ New Contributors
[@facutuesca](https://redirect.github.com/facutuesca) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/258](https://redirect.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 πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
**π Special Thanks** to [@henryiii](https://redirect.github.com/henryiii)[π°](https://redirect.github.com/sponsors/henryiii) for promptly pointing up possible fixes for [#263](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/263).
### [`v1.10.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.0...v1.10.1)
#### ππ 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 https://github.com/pypa/gh-action-pypi-publish/commit/0ab0b79, though. So everything's good!
\-- [@webknjaz](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/webknjaz)
> \[!IMPORTANT]
> β¨ Despite this minor hiccup, we invite you to still opt into trying this feature out early. [It can be enabled](https://redirect.github.com/marketplace/actions/pypi-publish#generating-and-uploading-attestations) like this:
>
> ```yml
> with:
> attestations: true
> ```
>
> Leave feedback in [the v1.10.0 release discussion](https://redirect.github.com/pypa/gh-action-pypi-publish/discussions/255) or [the PR](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/236).
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.0...v1.10.1
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
**π Special Thanks** to [@hugovk](https://redirect.github.com/hugovk)[π°](https://redirect.github.com/sponsors/hugovk) for [promptly validating the bug fix](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/256#issuecomment-2325925847), mere minutes after I pushed it β I even haven't finished writing this text by then!
### [`v1.10.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.9.0...v1.10.0)
#### π Anything fancy, eh?
This time, [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) implemented support for [PEP 740] attestations functionality in [#236](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/236) and [#245](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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.
> \[!IMPORTANT]
> β¨ Please, do opt into trying this feature out early. [It can be enabled](https://redirect.github.com/marketplace/actions/pypi-publish#generating-and-uploading-attestations) as follows:
>
> ```yml
> with:
> attestations: true
> ```
>
> Leave any feedback on this in [this release discussion](https://redirect.github.com/pypa/gh-action-pypi-publish/discussions/255) or [the PR](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/236).
π 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](https://redirect.github.com/pypi/warehouse/issues/15871)/15871, by the way.
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.9.0...v1.10.0
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
[PEP 740]: https://peps.python.org/pep-0740/
### [`v1.9.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.9.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.14...v1.9.0)
##### π Cosmetic Output Improvements
- [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) updated the tense on password nudge in [#234](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/234)
- [@shenxianpeng](https://redirect.github.com/shenxianpeng)[π°](https://redirect.github.com/sponsors/shenxianpeng) helped us disable the progress bar that was being produced by the `twine upload` command via [#231](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/231)
- [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) also linked the PyPI status dashboard in the trusted publishing error message via [https://github.com/pypa/gh-action-pypi-publish/pull/243](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/243)
##### π οΈ Internal Dependencies
- pre-commit linters got auto-updated @ [#225](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/225)
- some notable dependency bumps include
- `cryptography == 42.0.7`
- `id == 1.4.0`
- `idna == 3.7` via [#228](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/228)
- `requests == 2.32.0` via [#240](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/240)
- `Twine == 5.1.0`
##### βοΈ Secret Stuff
In [#241](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/241), [@br3ndonland](https://redirect.github.com/br3ndonland)[π°](https://redirect.github.com/sponsors/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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/230).
##### πͺ New Contributors
- [@shenxianpeng](https://redirect.github.com/shenxianpeng) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/231](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/231)
- [@br3ndonland](https://redirect.github.com/br3ndonland) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/241](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/241)
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.14...v1.9.0
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
**π Special Thanks** to [@pradyunsg](https://redirect.github.com/pradyunsg)[π°](https://redirect.github.com/sponsors/pradyunsg) for promptly unblocking this release to Marketplace as GitHub started asking for yet another developer agreement signature from the organization admins.
### [`v1.8.14`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.14)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.13...v1.8.14)
#### π οΈ 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](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/webknjaz).
*Enjoy!*
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.13...v1.8.14
**π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
### [`v1.8.13`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.13)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.12...v1.8.13)
#### π What's Fixed
This action is now able to consume and publish distribution packages with `Metadata-Version: 2.3` embedded.
#### π οΈ Internal Dependencies
[@SigureMo](https://redirect.github.com/SigureMo)[π°](https://redirect.github.com/sponsors/SigureMo) sent us a bump of `pkginfo` version to version 1.10.0 in [#219](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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`](https://packaging.python.org/en/latest/specifications/core-metadata/). In particular, it is known to affect distributions built with `Maturin >= 1.5.0`.
Following that, [@webknjaz](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/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`
#### πͺ New Contributors
[@SigureMo](https://redirect.github.com/SigureMo) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/219](https://redirect.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 πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
### [`v1.8.12`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.12)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.11...v1.8.12)
#### π Cosmetic Output Improvements
[@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) replaced the notice annotations with simplified debug messages related to authentication methanism selection via [#196](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/196). The also improved the error clarity during OIDC exchange on PRs from forks via [#203](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/203).
#### π What's Documented
[@virtuald](https://redirect.github.com/virtuald)[π°](https://redirect.github.com/sponsors/virtuald) updated the docs and pointer messages were updated to mention that reusable workflows aren't supported right now in [#186](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/186) and [@xuanzhi33](https://redirect.github.com/xuanzhi33)[π°](https://redirect.github.com/sponsors/xuanzhi33) later corrected the markdown syntax there via [#216](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/216).
#### π οΈ Internal Dependencies
- pre-commit linters got autoupdated @ [#204](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/204)
- Cryptography was bumped from 41.0.6 to 42.0.4 @ [#210](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/210), [#213](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/213) and [#214](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/214)
#### βοΈ Secret Stuff
[@woodruffw](https://redirect.github.com/woodruffw) proactively updated the OIDC minting API endpoint used during the exchange via [#206](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/206). Nothing you should be too concerned about, promise!
#### πͺ New Contributors
- [@virtuald](https://redirect.github.com/virtuald) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/186](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/186)
- [@xuanzhi33](https://redirect.github.com/xuanzhi33) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/216](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/216)
**πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.11...v1.8.12
**:man_beard: Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz)
### [`v1.8.11`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.11)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.10...v1.8.11)
#### :nail_care: Cosmetic output improvements
[@woodruffw](https://redirect.github.com/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](https://redirect.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.
#### :memo: What's Documented
[@di](https://redirect.github.com/di) linked the configuration docs for Trusted Publishing in README via [https://github.com/pypa/gh-action-pypi-publish/pull/179](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/179).
#### :hammer_and_wrench: Internal dependencies
- Cryptography was bumped from 41.0.3 to 41.0.6 @[https://github.com/pypa/gh-action-pypi-publish/pull/194](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/194)ll/194
- Pip was bumped from 22.3.1 to 23.3 @[https://github.com/pypa/gh-action-pypi-publish/pull/189](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/189)ll/189
- pre-commit linters got autoupdated @[https://github.com/pypa/gh-action-pypi-publish/pull/184](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/184)ll/184
- Urllib3 was bumped from 2.0.3 to 2.0.7 @[https://github.com/pypa/gh-action-pypi-publish/pull/183](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/183)ll/18[https://github.com/pypa/gh-action-pypi-publish/pull/185](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/185)ll/185
#### :muscle: New Contributors
- [@di](https://redirect.github.com/di) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/179](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/179)
**:mirror: Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.10...v1.8.11
### [`v1.8.10`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.10)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.9...v1.8.10)
#### :bug: What's Fixed
[@woodruffw](https://redirect.github.com/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](https://redirect.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
### [`v1.8.9`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.9)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.8...v1.8.9)
#### :nail_care: Cosmetic output improvements
- [@woodruffw](https://redirect.github.com/woodruffw) added debug output to the trusted publishing OIDC exchange on failures in [https://github.com/pypa/gh-action-pypi-publish/pull/174](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/174)
- [@woodruffw](https://redirect.github.com/woodruffw) implemented Markdown semantic callouts in README via [https://github.com/pypa/gh-action-pypi-publish/pull/175](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/175)
#### :hammer_and_wrench: Internal dependencies
- Certifi was bumped from 2023.5.7 to 2023.7.22 @[https://github.com/pypa/gh-action-pypi-publish/pull/171](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/171)ll/171
- Cryptography was bumped from 41.0.2 to 41.0.3 @[https://github.com/pypa/gh-action-pypi-publish/pull/172](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/172)ll/172
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.8...v1.8.9
### [`v1.8.8`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.8)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.7...v1.8.8)
#### :nail_care: Cosmetic output improvements
- In [https://github.com/pypa/gh-action-pypi-publish/pull/167](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/167), [@woodruffw](https://redirect.github.com/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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/164), collaborating with [@di](https://redirect.github.com/di).
*:bulb: 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/.
#### :hammer_and_wrench: Internal dependencies
- [@pquentin] bumped the runtime dependency pins to the recent versions @[https://github.com/pypa/gh-action-pypi-publish/pull/168](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/168)ll/168.
#### :muscle: New Contributors
- [@pquentin](https://redirect.github.com/pquentin) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/168](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/168)
**:mirror: Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.7...v1.8.8
[@pquentin]: https://redirect.github.com/sponsors/pquentin
[@sethmlarson]: https://redirect.github.com/sponsors/sethmlarson
### [`v1.8.7`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.7)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.6...v1.8.7)
#### :nail_care: Cosmetic output impovements
- [@woodruffw](https://redirect.github.com/woodruffw) fixed OIDC the multiline annotations by escaping LF through urlencoding it in [https://github.com/pypa/gh-action-pypi-publish/pull/156](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/156).
- [@jaap3](https://redirect.github.com/jaap3) noticed and promptly removed extraneous `}` from a non-OIDC log annotation in [https://github.com/pypa/gh-action-pypi-publish/pull/161](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/161).
- [@hugovk](https://redirect.github.com/hugovk) made pip ignore that it runs under the root user and suppress its warning output in [https://github.com/pypa/gh-action-pypi-publish/pull/159](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/159).
#### :hammer_and_wrench: Internal dependencies
- Cryptography was bumped from 39.0.1 to 41.0.0 @[https://github.com/pypa/gh-action-pypi-publish/pull/160](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/160)ll/160
- Requests was bumped from 2.28.1 to 2.31.0 @[https://github.com/pypa/gh-action-pypi-publish/pull/157](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/157)ll/157
#### :muscle: New Contributors
- [@jaap3](https://redirect.github.com/jaap3) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/161](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/161)
**:mirror: Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.6...v1.8.7
### [`v1.8.6`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.6)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.5...v1.8.6)
#### What's Updated
- [@woodruffw] dropped the references to a βprivate betaβ from the project docs and runtime in [https://github.com/pypa/gh-action-pypi-publish/pull/147](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/147). He also clarified that the API tokens are still more secure than passwords in [https://github.com/pypa/gh-action-pypi-publish/pull/150](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/150).
- [@asherf] noticed that the action metadata incorrectly marked the `password` field as required and contributed a correction in [https://github.com/pypa/gh-action-pypi-publish/pull/151](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/151)
- [@webknjaz] moved the Trusted Publishing example to the top of the README in hopes that new users would default to using it via https://github.com/pypa/gh-action-pypi-publish/commit/f47b34707fd264d5ddb1ef322ca74cf8e4cf351b
#### New Contributors
- [@asherf] made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/151](https://redirect.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
[@asherf]: https://redirect.github.com/sponsors/asherf
[@webknjaz]: https://redirect.github.com/sponsors/webknjaz
[@woodruffw]: https://redirect.github.com/sponsors/woodruffw
### [`v1.8.5`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.5)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.4...v1.8.5)
#### What's Improved
[@woodruffw](https://redirect.github.com/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](https://redirect.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](https://redirect.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
### [`v1.8.4`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.4)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.3...v1.8.4)
#### What's Improved
- [@hugovk](https://redirect.github.com/hugovk) cleaned up the double whitespaces in the OIDC flow logging in [https://github.com/pypa/gh-action-pypi-publish/pull/140](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/140)
- [@woodruffw](https://redirect.github.com/woodruffw) added a title and a docs link to the OIDC error output in [https://github.com/pypa/gh-action-pypi-publish/pull/139](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/139)
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.3...v1.8.4
### [`v1.8.3`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.3)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.2...v1.8.3)
#### 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](https://redirect.github.com/woodruffw) in [https://github.com/pypa/gh-action-pypi-publish/pull/136](https://redirect.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
### [`v1.8.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.1...v1.8.2)
#### What's Changed
This release started printing out full OIDC error messages to console, instead of just one line -- by [@woodruffw](https://redirect.github.com/woodruffw) in [https://github.com/pypa/gh-action-pypi-publish/pull/134](https://redirect.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
### [`v1.8.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.0...v1.8.1)
#### π 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](https://redirect.github.com/njzjz) who promptly spotted it and [@zhongjiajie](https://redirect.github.com/zhongjiajie) who sent a bugfix.
#### π New Contributors
- [@zhongjiajie](https://redirect.github.com/zhongjiajie) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/131](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/131)
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.0...v1.8.1
### [`v1.8.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.7.1...v1.8.0)
#### The Coolest Release Ever!
In this release, [@woodruffw](https://redirect.github.com/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](https://redirect.github.com/pypi/warehouse/issues/12965)5~
#### New Contributors
- [@woodruffw](https://redirect.github.com/woodruffw) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/123](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/123)
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.7.1...v1.8.0
### [`v1.7.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.7.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.7.0...v1.7.1)
#### 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**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.7.0...v1.7.1
### [`v1.7.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.7.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.5...v1.7.0)
#### 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](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/125).
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.5...v1.7.0
### [`v1.6.5`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.5)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.4...v1.6.5)
#### What's Changed
- Added an explicit warning when the password passed into the action is empty β thanks [@colindean]
#### New Contributors
- [@colindean](https://redirect.github.com/colindean) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/122](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/122)
[@colindean]: https://redirect.github.com/sponsors/colindean
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.4...v1.6.5
### [`v1.6.4`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.4)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.3...v1.6.4)
#### 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 `$HOME` from the external env into the container and that tricked the Python's `site` module to think that the home directory is elsewhere, adding non-existent paths to the env vars. See [#115](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/115).
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.3...v1.6.4
### [`v1.6.3`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.3)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.2...v1.6.3)
### Another Release!? Why?
In [https://github.com/pypa/gh-action-pypi-publish/issues/112#issuecomment-1340133013](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/112#issuecomment-1340133013), it was discovered that passing a `$PATH` variable even breaks the shebang. So this version adds more safeguards to make sure it keeps working with a fully broken `$PATH`.
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.2...v1.6.3
### [`v1.6.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.1...v1.6.2)
#### What's Fixed
- Made the `$PATH` and `$PYTHONPATH` environment 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/112](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/112)
#### Internal Maintenance Improvements
- Added a devpi-based smoke-test GitHub Actions CI/CD workflow by [@sesdaile-varmour](https://redirect.github.com/sesdaile-varmour) in [https://github.com/pypa/gh-action-pypi-publish/pull/111](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/111)
#### New Contributors
- [@sesdaile-varmour](https://redirect.github.com/sesdaile-varmour) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/111](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/111)
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.1...v1.6.2
### [`v1.6.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.0...v1.6.1)
#### 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 `$PYTHONPATH` to point to a correct location of the user-global `site-packages/` directory.
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.0...v1.6.1
### [`v1.6.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.5.2...v1.6.0)
#### 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**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.2...v1.6.0
### [`v1.5.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.5.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2)
#### What's Improved
- Implemented the Twine transitive dependency tree pinning using pip-tools-generated constraint files. See [https://github.com/pypa/gh-action-pypi-publish/issues/107](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/107) and [https://github.com/pypa/gh-action-pypi-publish/issues/101](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/101) for details.
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2
### [`v1.5.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.5.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.5.0...v1.5.1)
#### What's Changed
- Fixed printing out the dist hashes when `packages_dir` is a wildcard value. β by [@dukecat0](https://redirect.github.com/dukecat0) in [https://github.com/pypa/gh-action-pypi-publish/pull/91](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/91)
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.0...v1.5.1
### [`v1.5.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.5.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.4.2...v1.5.0)
#### What's Changed
- Added an action input `print_hash` for showing the hash values of files to be uploaded β by [@meowmeowmeowcat](https://redirect.github.com/meowmeowmeowcat) in [https://github.com/pypa/gh-action-pypi-publish/pull/87](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/87)
#### New Contributors
- [@pllim](https://redirect.github.com/pllim) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/55](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/55)
- [@meowmeowmeowcat](https://redirect.github.com/meowmeowmeowcat) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/87](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/87)
**Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.4.2...v1.5.0
### [`v1.4.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.4.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.4.1...v1.4.2)
- Upgraded the runtime Python to v3.9
- Upgraded pip so that it'd understand the manylinux2010 tag (bug [#56](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/56))
- Made pip prefer wheels over sdists whenever possible (this helps with
the publishing race conditions like [#50](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/50)/[#51](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/51))
### [`v1.4.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.4.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.4.0...v1.4.1)
- Fixed referring to an undefined `$VERBOSE` var contributed earlier in PR [#39](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/39) (bug report [#41](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/41))
### [`v1.4.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.4.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.3.1...v1.4.0)
- Exposed `verbose` setting useful for debugging the upload issues (PR [#39](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/39)) -- by [@sub-mod](https://redirect.github.com/sub-mod)
### [`v1.3.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.3.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.3.0...v1.3.1)
- Improved `packages_dir` validation warnings
### [`v1.3.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.3.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.2.2...v1.3.0)
- Exposed `skip_existing` setting
### [`v1.2.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.2.2)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.2.1...v1.2.2)
- Fixed outputting `$INPUT_PACKAGES_DIR` in the warning message
- Clarified "titles" of the warnings
### [`v1.2.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.2.1)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.2.0...v1.2.1)
- Converted stderr warning output into GitHub Checks API annotations
via [GitHub Actions Workflow Commands].
- Migrated Docker env to use Python 3.8.
[GitHub Actions Workflow Commands]: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message
### [`v1.2.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.2.0)
[Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.1.0...v1.2.0)
Implement dists metadata validation by running `twine check` before upload.
This is enabled by default and can be disabled using `verify_metadata` input:
```yml
with:
verify_metadata: false
```
This feature has been contributed by [@henryiii](https://redirect.github.com/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.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
v1.1.0
->v1.12.2
Release Notes
pypa/gh-action-pypi-publish (pypa/gh-action-pypi-publish)
### [`v1.12.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.12.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.12.1...v1.12.2) #### π What's Fixed The fix for signing legacy zip sdists turned out to be incomplete, so [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) promptly produced another follow-up that updated `pypi-attestations` from v0.0.13 to v0.0.15 in [#297](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/297). This is the only change since the previous release. **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.12.1...v1.12.2 **π§ββοΈ Release Manager:** [@webknjaz](https://redirect.github.com/sponsors/webknjaz) [πΊπ¦](https://stand-with-ukraine.pp.ua) ### [`v1.12.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.12.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.12.0...v1.12.1) #### π 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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/294), [@webknjaz](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/webknjaz) improved the self-hosted runner experience by pre-installing Python if it's not there, and with [#293](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) also managed to squeeze in a last-minute fix for detecting legacy `.zip` sdists while producing attestations via [#295](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/295). **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.12.0...v1.12.1 **π§ββοΈ Release Manager:** [@webknjaz](https://redirect.github.com/sponsors/webknjaz) [πΊπ¦](https://stand-with-ukraine.pp.ua) **π Huge Thanks** to all the bug reporters for posting the logs, helping inspect the problems and verify the regression fixes! [`pypi-publish`]: https://redirect.github.com/marketplace/actions/pypi-publish ### [`v1.12.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.12.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.11.0...v1.12.0) #### β‘οΈ 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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/58)) and a little over half a year ago [@br3ndonland](https://redirect.github.com/br3ndonland)[π°](https://redirect.github.com/sponsors/br3ndonland) stepped up and offered a very comprehensive solution to the limitation I was hoping to overcome: [#230](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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. > \[!CAUTION] > Known quirks: > > - This seems to not work on self-hosted runners without a `python` executable: [#289](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/289). The workaround could be installing it prior to running the action. > - \~Pinning to commit hashes does not work: [#290](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/290). Workaround: postpone updating until it's fixed or switch to Git tags for now. Subscribe to that issue to follow the progress.~ *UPD:* This was an issue during the first 12 hours post release and it has been addressed upstream by publishing a commit SHA-tagged image for the release on Nov 12, 2024 at 10:27 UTC+1. > - Calling `pypi-publish` from another nested repo-local composite action might be breaking file paths: [#291](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/291). Workaround: postpone updating until it's fixed. Subscribe to that issue to follow the progress. > - Running within GitHub Enterprise fails on the action repo clone: [#292](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/292). Workaround: postpone updating until it's fixed. Subscribe to that issue to follow the progress. **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.11.0...v1.12.0 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) [`pypi-publish`]: https://redirect.github.com/marketplace/actions/pypi-publish ### [`v1.11.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.11.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.3...v1.11.0) #### π Helping you become a trusted supply chain link π Two months ago, in [v1.10.0](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.0), [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/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β](https://redirect.github.com/marketplace/actions/pypi-publish#generating-and-uploading-attestations). 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](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) flipped the respective toggle in [#277](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/277) with the possibility to opt-out. #### π οΈ Internal Dependencies [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) bumped `sigstore` to v3.5.1 and `pypi-attestations` to v0.0.13 in lock files via [#276](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/276). **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.3...v1.11.0 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/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](https://redirect.github.com/pypi/warehouse/issues/15871)/15871. [PEP 740]: https://peps.python.org/pep-0740/ ### [`v1.10.3`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.3) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.2...v1.10.3) #### π Cosmetic Output Improvements In [#270](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/270), [@facutuesca](https://redirect.github.com/facutuesca)[π°](https://redirect.github.com/sponsors/facutuesca) made a follow-up to their previous PR [#250](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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](https://redirect.github.com/mosfet80)[π°](https://redirect.github.com/sponsors/mosfet80) updated a few internal linter versions in [#266](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/266), [#267](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/267), and [#271](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/271), no user impact. This is usually automated otherwise. #### πͺ New Contributors - [@mosfet80](https://redirect.github.com/mosfet80) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/266](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/266) **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.2...v1.10.3 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) ### [`v1.10.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.1...v1.10.2) #### π Cosmetic Output Improvements In [#250](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/250) and [#258](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/258), [@facutuesca](https://redirect.github.com/facutuesca)[π°](https://redirect.github.com/sponsors/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](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) bumped `pypi-attestations` to v0.0.12 in [#262](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/262), ~hopefully fixing [#263](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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. #### πͺ New Contributors [@facutuesca](https://redirect.github.com/facutuesca) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/258](https://redirect.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 πΊπ¦](https://redirect.github.com/sponsors/webknjaz) **π Special Thanks** to [@henryiii](https://redirect.github.com/henryiii)[π°](https://redirect.github.com/sponsors/henryiii) for promptly pointing up possible fixes for [#263](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/263). ### [`v1.10.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.10.0...v1.10.1) #### ππ 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 https://github.com/pypa/gh-action-pypi-publish/commit/0ab0b79, though. So everything's good! \-- [@webknjaz](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/webknjaz) > \[!IMPORTANT] > β¨ Despite this minor hiccup, we invite you to still opt into trying this feature out early. [It can be enabled](https://redirect.github.com/marketplace/actions/pypi-publish#generating-and-uploading-attestations) like this: > > ```yml > with: > attestations: true > ``` > > Leave feedback in [the v1.10.0 release discussion](https://redirect.github.com/pypa/gh-action-pypi-publish/discussions/255) or [the PR](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/236). **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.10.0...v1.10.1 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) **π Special Thanks** to [@hugovk](https://redirect.github.com/hugovk)[π°](https://redirect.github.com/sponsors/hugovk) for [promptly validating the bug fix](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/256#issuecomment-2325925847), mere minutes after I pushed it β I even haven't finished writing this text by then! ### [`v1.10.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.10.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.9.0...v1.10.0) #### π Anything fancy, eh? This time, [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) implemented support for [PEP 740] attestations functionality in [#236](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/236) and [#245](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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. > \[!IMPORTANT] > β¨ Please, do opt into trying this feature out early. [It can be enabled](https://redirect.github.com/marketplace/actions/pypi-publish#generating-and-uploading-attestations) as follows: > > ```yml > with: > attestations: true > ``` > > Leave any feedback on this in [this release discussion](https://redirect.github.com/pypa/gh-action-pypi-publish/discussions/255) or [the PR](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/236). π 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](https://redirect.github.com/pypi/warehouse/issues/15871)/15871, by the way. **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.9.0...v1.10.0 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) [PEP 740]: https://peps.python.org/pep-0740/ ### [`v1.9.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.9.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.14...v1.9.0) ##### π Cosmetic Output Improvements - [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) updated the tense on password nudge in [#234](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/234) - [@shenxianpeng](https://redirect.github.com/shenxianpeng)[π°](https://redirect.github.com/sponsors/shenxianpeng) helped us disable the progress bar that was being produced by the `twine upload` command via [#231](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/231) - [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) also linked the PyPI status dashboard in the trusted publishing error message via [https://github.com/pypa/gh-action-pypi-publish/pull/243](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/243) ##### π οΈ Internal Dependencies - pre-commit linters got auto-updated @ [#225](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/225) - some notable dependency bumps include - `cryptography == 42.0.7` - `id == 1.4.0` - `idna == 3.7` via [#228](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/228) - `requests == 2.32.0` via [#240](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/240) - `Twine == 5.1.0` ##### βοΈ Secret Stuff In [#241](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/241), [@br3ndonland](https://redirect.github.com/br3ndonland)[π°](https://redirect.github.com/sponsors/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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/230). ##### πͺ New Contributors - [@shenxianpeng](https://redirect.github.com/shenxianpeng) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/231](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/231) - [@br3ndonland](https://redirect.github.com/br3ndonland) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/241](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/241) **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.14...v1.9.0 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) **π Special Thanks** to [@pradyunsg](https://redirect.github.com/pradyunsg)[π°](https://redirect.github.com/sponsors/pradyunsg) for promptly unblocking this release to Marketplace as GitHub started asking for yet another developer agreement signature from the organization admins. ### [`v1.8.14`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.14) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.13...v1.8.14) #### π οΈ 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](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/webknjaz). *Enjoy!* **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.13...v1.8.14 **π§ββοΈ Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) ### [`v1.8.13`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.13) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.12...v1.8.13) #### π What's Fixed This action is now able to consume and publish distribution packages with `Metadata-Version: 2.3` embedded. #### π οΈ Internal Dependencies [@SigureMo](https://redirect.github.com/SigureMo)[π°](https://redirect.github.com/sponsors/SigureMo) sent us a bump of `pkginfo` version to version 1.10.0 in [#219](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/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`](https://packaging.python.org/en/latest/specifications/core-metadata/). In particular, it is known to affect distributions built with `Maturin >= 1.5.0`. Following that, [@webknjaz](https://redirect.github.com/webknjaz)[π°](https://redirect.github.com/sponsors/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` #### πͺ New Contributors [@SigureMo](https://redirect.github.com/SigureMo) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/219](https://redirect.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 πΊπ¦](https://redirect.github.com/sponsors/webknjaz) ### [`v1.8.12`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.12) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.11...v1.8.12) #### π Cosmetic Output Improvements [@woodruffw](https://redirect.github.com/woodruffw)[π°](https://redirect.github.com/sponsors/woodruffw) replaced the notice annotations with simplified debug messages related to authentication methanism selection via [#196](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/196). The also improved the error clarity during OIDC exchange on PRs from forks via [#203](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/203). #### π What's Documented [@virtuald](https://redirect.github.com/virtuald)[π°](https://redirect.github.com/sponsors/virtuald) updated the docs and pointer messages were updated to mention that reusable workflows aren't supported right now in [#186](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/186) and [@xuanzhi33](https://redirect.github.com/xuanzhi33)[π°](https://redirect.github.com/sponsors/xuanzhi33) later corrected the markdown syntax there via [#216](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/216). #### π οΈ Internal Dependencies - pre-commit linters got autoupdated @ [#204](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/204) - Cryptography was bumped from 41.0.6 to 42.0.4 @ [#210](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/210), [#213](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/213) and [#214](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/214) #### βοΈ Secret Stuff [@woodruffw](https://redirect.github.com/woodruffw) proactively updated the OIDC minting API endpoint used during the exchange via [#206](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/206). Nothing you should be too concerned about, promise! #### πͺ New Contributors - [@virtuald](https://redirect.github.com/virtuald) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/186](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/186) - [@xuanzhi33](https://redirect.github.com/xuanzhi33) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/216](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/216) **πͺ Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.11...v1.8.12 **:man_beard: Release Manager:** [@webknjaz πΊπ¦](https://redirect.github.com/sponsors/webknjaz) ### [`v1.8.11`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.11) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.10...v1.8.11) #### :nail_care: Cosmetic output improvements [@woodruffw](https://redirect.github.com/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](https://redirect.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. #### :memo: What's Documented [@di](https://redirect.github.com/di) linked the configuration docs for Trusted Publishing in README via [https://github.com/pypa/gh-action-pypi-publish/pull/179](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/179). #### :hammer_and_wrench: Internal dependencies - Cryptography was bumped from 41.0.3 to 41.0.6 @[https://github.com/pypa/gh-action-pypi-publish/pull/194](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/194)ll/194 - Pip was bumped from 22.3.1 to 23.3 @[https://github.com/pypa/gh-action-pypi-publish/pull/189](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/189)ll/189 - pre-commit linters got autoupdated @[https://github.com/pypa/gh-action-pypi-publish/pull/184](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/184)ll/184 - Urllib3 was bumped from 2.0.3 to 2.0.7 @[https://github.com/pypa/gh-action-pypi-publish/pull/183](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/183)ll/18[https://github.com/pypa/gh-action-pypi-publish/pull/185](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/185)ll/185 #### :muscle: New Contributors - [@di](https://redirect.github.com/di) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/179](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/179) **:mirror: Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.10...v1.8.11 ### [`v1.8.10`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.10) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.9...v1.8.10) #### :bug: What's Fixed [@woodruffw](https://redirect.github.com/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](https://redirect.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 ### [`v1.8.9`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.9) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.8...v1.8.9) #### :nail_care: Cosmetic output improvements - [@woodruffw](https://redirect.github.com/woodruffw) added debug output to the trusted publishing OIDC exchange on failures in [https://github.com/pypa/gh-action-pypi-publish/pull/174](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/174) - [@woodruffw](https://redirect.github.com/woodruffw) implemented Markdown semantic callouts in README via [https://github.com/pypa/gh-action-pypi-publish/pull/175](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/175) #### :hammer_and_wrench: Internal dependencies - Certifi was bumped from 2023.5.7 to 2023.7.22 @[https://github.com/pypa/gh-action-pypi-publish/pull/171](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/171)ll/171 - Cryptography was bumped from 41.0.2 to 41.0.3 @[https://github.com/pypa/gh-action-pypi-publish/pull/172](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/172)ll/172 **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.8...v1.8.9 ### [`v1.8.8`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.8) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.7...v1.8.8) #### :nail_care: Cosmetic output improvements - In [https://github.com/pypa/gh-action-pypi-publish/pull/167](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/167), [@woodruffw](https://redirect.github.com/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](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/164), collaborating with [@di](https://redirect.github.com/di). *:bulb: 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/. #### :hammer_and_wrench: Internal dependencies - [@pquentin] bumped the runtime dependency pins to the recent versions @[https://github.com/pypa/gh-action-pypi-publish/pull/168](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/168)ll/168. #### :muscle: New Contributors - [@pquentin](https://redirect.github.com/pquentin) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/168](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/168) **:mirror: Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.7...v1.8.8 [@pquentin]: https://redirect.github.com/sponsors/pquentin [@sethmlarson]: https://redirect.github.com/sponsors/sethmlarson ### [`v1.8.7`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.7) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.6...v1.8.7) #### :nail_care: Cosmetic output impovements - [@woodruffw](https://redirect.github.com/woodruffw) fixed OIDC the multiline annotations by escaping LF through urlencoding it in [https://github.com/pypa/gh-action-pypi-publish/pull/156](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/156). - [@jaap3](https://redirect.github.com/jaap3) noticed and promptly removed extraneous `}` from a non-OIDC log annotation in [https://github.com/pypa/gh-action-pypi-publish/pull/161](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/161). - [@hugovk](https://redirect.github.com/hugovk) made pip ignore that it runs under the root user and suppress its warning output in [https://github.com/pypa/gh-action-pypi-publish/pull/159](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/159). #### :hammer_and_wrench: Internal dependencies - Cryptography was bumped from 39.0.1 to 41.0.0 @[https://github.com/pypa/gh-action-pypi-publish/pull/160](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/160)ll/160 - Requests was bumped from 2.28.1 to 2.31.0 @[https://github.com/pypa/gh-action-pypi-publish/pull/157](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/157)ll/157 #### :muscle: New Contributors - [@jaap3](https://redirect.github.com/jaap3) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/161](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/161) **:mirror: Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.6...v1.8.7 ### [`v1.8.6`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.6) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.5...v1.8.6) #### What's Updated - [@woodruffw] dropped the references to a βprivate betaβ from the project docs and runtime in [https://github.com/pypa/gh-action-pypi-publish/pull/147](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/147). He also clarified that the API tokens are still more secure than passwords in [https://github.com/pypa/gh-action-pypi-publish/pull/150](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/150). - [@asherf] noticed that the action metadata incorrectly marked the `password` field as required and contributed a correction in [https://github.com/pypa/gh-action-pypi-publish/pull/151](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/151) - [@webknjaz] moved the Trusted Publishing example to the top of the README in hopes that new users would default to using it via https://github.com/pypa/gh-action-pypi-publish/commit/f47b34707fd264d5ddb1ef322ca74cf8e4cf351b #### New Contributors - [@asherf] made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/151](https://redirect.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 [@asherf]: https://redirect.github.com/sponsors/asherf [@webknjaz]: https://redirect.github.com/sponsors/webknjaz [@woodruffw]: https://redirect.github.com/sponsors/woodruffw ### [`v1.8.5`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.5) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.4...v1.8.5) #### What's Improved [@woodruffw](https://redirect.github.com/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](https://redirect.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](https://redirect.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 ### [`v1.8.4`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.4) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.3...v1.8.4) #### What's Improved - [@hugovk](https://redirect.github.com/hugovk) cleaned up the double whitespaces in the OIDC flow logging in [https://github.com/pypa/gh-action-pypi-publish/pull/140](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/140) - [@woodruffw](https://redirect.github.com/woodruffw) added a title and a docs link to the OIDC error output in [https://github.com/pypa/gh-action-pypi-publish/pull/139](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/139) **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.3...v1.8.4 ### [`v1.8.3`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.3) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.2...v1.8.3) #### 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](https://redirect.github.com/woodruffw) in [https://github.com/pypa/gh-action-pypi-publish/pull/136](https://redirect.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 ### [`v1.8.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.1...v1.8.2) #### What's Changed This release started printing out full OIDC error messages to console, instead of just one line -- by [@woodruffw](https://redirect.github.com/woodruffw) in [https://github.com/pypa/gh-action-pypi-publish/pull/134](https://redirect.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 ### [`v1.8.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.8.0...v1.8.1) #### π 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](https://redirect.github.com/njzjz) who promptly spotted it and [@zhongjiajie](https://redirect.github.com/zhongjiajie) who sent a bugfix. #### π New Contributors - [@zhongjiajie](https://redirect.github.com/zhongjiajie) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/131](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/131) **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.0...v1.8.1 ### [`v1.8.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.8.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.7.1...v1.8.0) #### The Coolest Release Ever! In this release, [@woodruffw](https://redirect.github.com/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](https://redirect.github.com/pypi/warehouse/issues/12965)5~ #### New Contributors - [@woodruffw](https://redirect.github.com/woodruffw) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/123](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/123) **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.7.1...v1.8.0 ### [`v1.7.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.7.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.7.0...v1.7.1) #### 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**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.7.0...v1.7.1 ### [`v1.7.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.7.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.5...v1.7.0) #### 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](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/125). **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.5...v1.7.0 ### [`v1.6.5`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.5) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.4...v1.6.5) #### What's Changed - Added an explicit warning when the password passed into the action is empty β thanks [@colindean] #### New Contributors - [@colindean](https://redirect.github.com/colindean) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/122](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/122) [@colindean]: https://redirect.github.com/sponsors/colindean **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.4...v1.6.5 ### [`v1.6.4`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.4) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.3...v1.6.4) #### 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 `$HOME` from the external env into the container and that tricked the Python's `site` module to think that the home directory is elsewhere, adding non-existent paths to the env vars. See [#115](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/115). **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.3...v1.6.4 ### [`v1.6.3`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.3) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.2...v1.6.3) ### Another Release!? Why? In [https://github.com/pypa/gh-action-pypi-publish/issues/112#issuecomment-1340133013](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/112#issuecomment-1340133013), it was discovered that passing a `$PATH` variable even breaks the shebang. So this version adds more safeguards to make sure it keeps working with a fully broken `$PATH`. **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.2...v1.6.3 ### [`v1.6.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.1...v1.6.2) #### What's Fixed - Made the `$PATH` and `$PYTHONPATH` environment 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/112](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/112) #### Internal Maintenance Improvements - Added a devpi-based smoke-test GitHub Actions CI/CD workflow by [@sesdaile-varmour](https://redirect.github.com/sesdaile-varmour) in [https://github.com/pypa/gh-action-pypi-publish/pull/111](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/111) #### New Contributors - [@sesdaile-varmour](https://redirect.github.com/sesdaile-varmour) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/111](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/111) **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.1...v1.6.2 ### [`v1.6.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.6.0...v1.6.1) #### 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 `$PYTHONPATH` to point to a correct location of the user-global `site-packages/` directory. **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.0...v1.6.1 ### [`v1.6.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.6.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.5.2...v1.6.0) #### 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**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.2...v1.6.0 ### [`v1.5.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.5.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2) #### What's Improved - Implemented the Twine transitive dependency tree pinning using pip-tools-generated constraint files. See [https://github.com/pypa/gh-action-pypi-publish/issues/107](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/107) and [https://github.com/pypa/gh-action-pypi-publish/issues/101](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/101) for details. **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2 ### [`v1.5.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.5.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.5.0...v1.5.1) #### What's Changed - Fixed printing out the dist hashes when `packages_dir` is a wildcard value. β by [@dukecat0](https://redirect.github.com/dukecat0) in [https://github.com/pypa/gh-action-pypi-publish/pull/91](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/91) **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.0...v1.5.1 ### [`v1.5.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.5.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.4.2...v1.5.0) #### What's Changed - Added an action input `print_hash` for showing the hash values of files to be uploaded β by [@meowmeowmeowcat](https://redirect.github.com/meowmeowmeowcat) in [https://github.com/pypa/gh-action-pypi-publish/pull/87](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/87) #### New Contributors - [@pllim](https://redirect.github.com/pllim) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/55](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/55) - [@meowmeowmeowcat](https://redirect.github.com/meowmeowmeowcat) made their first contribution in [https://github.com/pypa/gh-action-pypi-publish/pull/87](https://redirect.github.com/pypa/gh-action-pypi-publish/pull/87) **Full Diff**: https://github.com/pypa/gh-action-pypi-publish/compare/v1.4.2...v1.5.0 ### [`v1.4.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.4.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.4.1...v1.4.2) - Upgraded the runtime Python to v3.9 - Upgraded pip so that it'd understand the manylinux2010 tag (bug [#56](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/56)) - Made pip prefer wheels over sdists whenever possible (this helps with the publishing race conditions like [#50](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/50)/[#51](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/51)) ### [`v1.4.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.4.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.4.0...v1.4.1) - Fixed referring to an undefined `$VERBOSE` var contributed earlier in PR [#39](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/39) (bug report [#41](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/41)) ### [`v1.4.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.4.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.3.1...v1.4.0) - Exposed `verbose` setting useful for debugging the upload issues (PR [#39](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/39)) -- by [@sub-mod](https://redirect.github.com/sub-mod) ### [`v1.3.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.3.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.3.0...v1.3.1) - Improved `packages_dir` validation warnings ### [`v1.3.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.3.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.2.2...v1.3.0) - Exposed `skip_existing` setting ### [`v1.2.2`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.2.2) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.2.1...v1.2.2) - Fixed outputting `$INPUT_PACKAGES_DIR` in the warning message - Clarified "titles" of the warnings ### [`v1.2.1`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.2.1) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.2.0...v1.2.1) - Converted stderr warning output into GitHub Checks API annotations via [GitHub Actions Workflow Commands]. - Migrated Docker env to use Python 3.8. [GitHub Actions Workflow Commands]: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message ### [`v1.2.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.2.0) [Compare Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.1.0...v1.2.0) Implement dists metadata validation by running `twine check` before upload. This is enabled by default and can be disabled using `verify_metadata` input: ```yml with: verify_metadata: false ``` This feature has been contributed by [@henryiii](https://redirect.github.com/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.