feat(pypi): mkPyPiWheelPublishMulti — publish all versions per tag (#197)

Single-version mkPyPiWheelPublish made consumers ship only the default
version per tag. Add a multi-version builder that loops over a fixed
{version,wheel} list (version parsed from the wheel filename, idempotent
409-skip), plus shared parity_pypi_post/parity_wheel_version helpers.
This commit is contained in:
Oleks
2026-06-02 05:23:42 +03:00
parent 9107923c5a
commit cda7a190c0
4 changed files with 152 additions and 0 deletions
+7
View File
@@ -7,6 +7,13 @@ semantic versioning; the version is a conceptual tag (no git tag is created).
## Unreleased
- **Feature: `mkPyPiWheelPublishMulti` (cluster #197).** A multi-version PyPI
builder that publishes a fixed list of `{ version; wheel; }` per tag instead of
just the default — the pre-parity behaviour several `*-s390x` repos rely on.
Each wheel's real version is read from its filename (PEP 427), so
stage/publish/push-staged need no side-channel map and a re-run is idempotent
(409-skip per version). Shared `parity_pypi_post` / `parity_wheel_version`
helpers added to `ci/parity-lib.sh`. First consumer: `numpy-s390x` (5 versions).
- **Fix (safety): dev-tag guard was ineffective.** Every publish app body runs
`VERSION="$(parity_derive_version <default>)"` before `parity_devtag_guard`, so
by the time the guard checked `$VERSION` it was always non-empty (the derived