Skip to content

Fix 3.0.0 publishing and add Python 3.14 wheels - #143

Merged
skilledwolf merged 5 commits into
ALPSim:masterfrom
skilledwolf:WIP/fix-v3-release-version
Sep 17, 2026
Merged

skilledwolf merged 5 commits into
ALPSim:masterfrom
skilledwolf:WIP/fix-v3-release-version

Conversation

@skilledwolf

@skilledwolf skilledwolf commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

The v3.0.0 tag originally built Python distributions with version 2.3.4b1, so PyPI rejected an existing filename. The C++ SDK also still reported 2.3.4. Set both versions to 3.0.0 and validate the SDK, Python package, and release tag before building. Check every distribution's filename and embedded metadata before publishing; prerelease tags are compared with their PEP 440 equivalents.

Add CPython 3.14 to the normal wheel builds using cibuildwheel 4.2.0, retaining Python 3.9–3.13. Publishing uses one path: build and test the triggering commit, validate all artifacts, and upload on version-tag pushes. Document version preparation and recovery from an incorrect release.

Run both workflows on pull requests to master, pushes to master, and release tags. Cancel superseded PR runs automatically; other runs have independent concurrency groups. Give native jobs unique names containing OS, compiler, Python, Boost, and C++ standard. All 34 native build configurations and their build/test commands are preserved.

Type of change

  • Bug fix
  • Build system / dependency update
  • Documentation or tutorial improvement

Testing

  • All 36 release-validation tests pass, covering the original mismatch via GITHUB_REF, prereleases, stale distributions, and renamed artifacts with incorrect metadata. The simplified tests retain the distinct regression scenarios.
  • The release CLI accepts GITHUB_REF=refs/tags/v3.0.0; source-distribution metadata, generated wheel metadata, and the CMake SDK version were verified as 3.0.0. The validator rejects the actual stale source distribution from the failed release.
  • Packaging workflow passes full actionlint; both workflows pass structure/expression validation. The native shell scripts retain the same 14 pre-existing ShellCheck diagnostics, confirmed against the previous commit. git diff --check passes.
  • Native matrix comparison confirms all 34 configurations and build/test commands are unchanged and all displayed job names are unique.
  • Clean macOS arm64 environments on Python 3.13 and 3.14 downloaded pyalps 3.0.0 wheels with unpinned pip install pyalps. Native HDF5/parameter checks, a bundled eight-spin loop simulation, result loading, all five Python tests, and pip check passed.
  • The published Python 3.14 wheels passed all five Python tests on Linux x86_64, macOS 15 arm64, and macOS 26 arm64. The locally installed wheel's SHA256 matches PyPI.

Fresh CI for ffc8c0536 is running: native builds and tests and Python packaging. The earlier runs were superseded; their cancellations are not counted as passing checks.

Checklist

  • CI passes (build + tests on all platforms)
  • Code follows the style of the surrounding code
  • Commit messages are descriptive and in the imperative mood

Release follow-up

PyPI now contains 3.0.0 with 18 wheels and one source distribution. The corrected tag remains at 1950cc6f682d7c4c1deae8b816f283857b1819d1. Initial publishing and Python 3.14 wheel publishing both succeeded. This PR brings the version correction, validation, Python 3.14 coverage, and permanent workflow cleanup into master.

Related issues

Fixes #142. Python 3.14 build settings also appear in #140.

@skilledwolf skilledwolf changed the title Fix release version drift and prepare 3.0.1 Fix 3.0.0 release versions and validate publishing Sep 16, 2026
@skilledwolf skilledwolf changed the title Fix 3.0.0 release versions and validate publishing Fix 3.0.0 publishing and add Python 3.14 wheels Sep 16, 2026
@skilledwolf
skilledwolf marked this pull request as ready for review September 16, 2026 03:40
@skilledwolf
skilledwolf merged commit f28d428 into ALPSim:master Sep 17, 2026
40 checks passed
@skilledwolf
skilledwolf deleted the WIP/fix-v3-release-version branch September 17, 2026 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/

3 participants