diff --git a/.github/workflows/publish_wheels.yml b/.github/workflows/publish_wheels.yml index fa248ab6..72f63d0d 100644 --- a/.github/workflows/publish_wheels.yml +++ b/.github/workflows/publish_wheels.yml @@ -76,10 +76,15 @@ jobs: package-dir: . output-dir: wheelhouse + # Name the artifact after the platform tag, not the runner label. Several + # rows share a runner (manylinux and musllinux both build on ubuntu-24.04), + # so keying on the label makes their artifacts collide. The upload still + # succeeds, but `download-artifact` with merge-multiple then extracts them + # over each other and the publish job silently ships one platform short. - name: Upload wheel artifact uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 with: - name: dist-wheel-${{ matrix.python }}-${{ matrix.target[0] }} + name: dist-wheel-${{ matrix.python }}-${{ matrix.target[1] }} path: ./wheelhouse/*.whl build_sdist: diff --git a/RELEASING.md b/RELEASING.md index ef5e3db2..a30265ef 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -2,7 +2,8 @@ Releases are built and published by the **Build and Publish** workflow ([`.github/workflows/publish_wheels.yml`](.github/workflows/publish_wheels.yml)). -It produces 12 wheels — Python 3.11–3.14 for Linux, macOS (arm64) and Windows — +It produces 16 wheels — Python 3.11–3.14 for Linux (glibc and musl), macOS (arm64) +and Windows — plus a source distribution, and uploads them in a single step so a partial failure cannot leave a half-published release on the index. @@ -65,7 +66,7 @@ for approval; the build jobs run first regardless. pip index versions tenseal ``` -Or check [the project page](https://pypi.org/project/tenseal/) for 12 wheels and +Or check [the project page](https://pypi.org/project/tenseal/) for 16 wheels and one `.tar.gz`. Update [`CHANGELOG.md`](CHANGELOG.md) if it was not part of the version bump.