Repository navigation
Closed
Description
Hi 👋
@Siyet @provinzkraut @ofek Can we please make a new release? I need some of the changes in django-modern-rest, which depends on msgspec :)
I've never released a new version of msgspec yet, but I can see that trusted publishing is setup here:
msgspec/.github/workflows/ci.yml
Lines 192 to 224 in 593ec54
| build-wheels: | |
| name: Build wheels ${{ github.event_name == 'release' && 'for release' || '' }} | |
| needs: | |
| - test | |
| - prepare | |
| uses: ./.github/workflows/build-wheels.yml | |
| permissions: | |
| actions: read | |
| contents: read | |
| with: | |
| sdist-name: "${{ needs.prepare.outputs.sdist-name }}" | |
| build-all: ${{ github.event_name == 'release' }} | |
| upload-pypi: | |
| name: Upload artifacts to PyPI | |
| if: github.event_name == 'release' && github.event.action == 'published' | |
| needs: | |
| - prepare | |
| - build-wheels | |
| runs-on: ubuntu-latest | |
| permissions: | |
| actions: read | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| pattern: artifact-* | |
| merge-multiple: true | |
| path: dist | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 |
So, if this is fine, I can make one myself :)
Reacted by Thibaut Decombe and Edgar Ramírez Mondragón
Metadata
Metadata
Assignees
Labels
No labels
Activity
sobolevn commentedon Aug 11, 2026
Ok, since I did not recieve any "no", I will take an action and release a new version. I really need some of the bugfixes in my project :)
Wish me luck!
sobolevn commentedon Aug 11, 2026
Ok, it did not work :(
Fails consitently: https://github.com/msgspec/msgspec/actions/runs/31476259980/job/93742042390
sobolevn commentedon Aug 11, 2026
I propose skipping
riscvonmusllinuxfor now. The use-case seems VERY rare.gounthar commentedon Aug 11, 2026
Sorry, my matrix entry is what broke your release.
The manylinux riscv64 wheels all built and tested fine in that run. Only musllinux fails, and I think it's a stale image pin rather than anything riscv-specific.
pypa/manylinux used to skip installing uv in the musllinux riscv64 image, with the comment "uv doesn't provide musl riscv64 wheels due to Rust issues" in
finalize.sh. That was removed in pypa/manylinux#1969 on 11 July, and their image tests exercise uv there now. cibuildwheel 4.1.0 pins the2026.06.04-1image, which predates the fix, sobuild[uv]has no uv to find. 4.2.0 pins2026.08.04-1, which does.So bumping the two
cibuildwheel==4.1.0pins inbuild-wheels.ymlto 4.2.0 might be all that's needed, without dropping the wheels. If you'd rather not move cibuildwheel right before a release,musllinux-riscv64-imagein.cibuildwheel.tomlpins just that one image instead.I haven't run either yet. Happy to open a PR and let CI confirm. And no objection to skipping musllinux riscv64 in the meantime if you want 0.22.0 out today.
gounthar commentedon Aug 11, 2026
Opened #1146 with the cibuildwheel bump. Still untested, as I noted there, so skipping musllinux riscv64 remains the safer path if you want 0.22.0 out today.
Bump cibuildwheel to 4.2.0 to fix musllinux riscv64 wheels (msgspec#1146
Version 0.22.0 release, attempt 2 (msgspec#1147)
gounthar commentedon Aug 11, 2026
riscv64 came back green on the release run: all twelve wheels built and tested, including the six musllinux ones that failed before.
The run is still red, but it stopped further along, at
Upload artifacts to PyPI:The wheels are all attached to that run, so nothing needs rebuilding once the publisher config lines up.
sobolevn commentedon Aug 11, 2026
This still fails: https://github.com/msgspec/msgspec/actions/runs/31489076277/job/93783511854
sobolevn commentedon Aug 11, 2026
@ofek @jcrist can you please help me with this? I think that the publisher configuration is outdated or something? The release was not successful. I will delete the release / tag, so we can recreate it again.
ofek commentedon Aug 11, 2026
The issue is that the repository claim is no longer correct after the repo transfer. I just put in a request on PyPI for a dedicated
msgspecorganization and bumped it in Discord. Whenever Jim sees this, he can either create a new trusted publisher or if I reply before then he can transfer the project to the org and I can do that myself.gounthar commentedon Aug 11, 2026
Possibly relevant, though this is inference from dates rather than anything I can actually see on PyPI.
The last successful upload was 0.21.1 on 12 April, and the
msgspecorg was created on 24 May. So every release that has published through trusted publishing did so while the repo was stilljcrist/msgspec, and the claims now sayrepository_owner: msgspec. If the publisher registered on PyPI still listsjcristas the owner, that would give exactly this error.Worth a glance at
environmenttoo while you are in there, since the claim set shows it as MISSING andupload-pypihas noenvironment:key. That only bites if the publisher was configured with an environment name.If the publisher does predate the transfer, updating it may need whoever owns the project on PyPI rather than the GitHub side.
sobolevn commentedon Aug 29, 2026
friendly ping :)
Siyet commentedon Sep 4, 2026
@jcrist gentle ping on this one, since it has been sitting for a few weeks.
0.22.0 is ready apart from the upload. After #1146 the full wheel matrix builds and tests green, and the release run got all the way to
Upload artifacts to PyPIbefore failing on trusted publishing. The only thing nobody here can look at is the publisher configuration on the PyPI side.The claims from the failing run were:
repository:msgspec/msgspecrepository_owner:msgspecworkflow_ref:msgspec/msgspec/.github/workflows/ci.yml@refs/tags/0.22.0environment:MISSINGEither of these unblocks it, whichever suits you:
msgspec, repositorymsgspec, workflowci.yml, and no environment (ourupload-pypijob does not set one, so the environment field has to stay empty to match);msgspecPyPI organization @ofek requested, and he can configure it himself.No rush if you are busy, but a one-line answer on which way you would prefer would let us stop waiting or take it off your hands. Happy to redo the tag and the release run once the publisher is in place.
Add missing 0.22.0 changelog entries (msgspec#1171)
Build the full wheel matrix weekly, not only at release (msgspec#1174)
ofek commentedon Sep 28, 2026
The new trusted publisher is configured, feel free to create the release!
sobolevn commentedon Sep 29, 2026
Awesome, I will do this today! 🎉
Move the unreleased changes into the 0.22.0 changelog (msgspec#1211)
Siyet commentedon Sep 29, 2026
Thx @sobolevn for the quick reveiws and merges, and for taking care of the release!
sobolevn commentedon Sep 29, 2026
Having several more PRs in the release would be awesome:
__dataclass_fields__lookup for non-dataclass types #1196sobolevn commentedon Sep 29, 2026
Rolling the release! Wish me luck 🙏
sobolevn commentedon Sep 29, 2026
Release 0.22.0 is now live!
PyPI: https://pypi.org/project/msgspec/0.22.0/
GitHub: https://github.com/msgspec/msgspec/releases/tag/0.22.0
Job: https://github.com/msgspec/msgspec/actions/runs/36571319643
Thanks everyone for their help!