Skip to content

Support Python 3.14, release 0.2.8, and simplify CI - #6

Merged
gauravharsha merged 2 commits into
Green-Phys:mainfrom
gauravharsha:python-314
Jul 8, 2026
Merged

Support Python 3.14, release 0.2.8, and simplify CI#6
gauravharsha merged 2 commits into
Green-Phys:mainfrom
gauravharsha:python-314

Conversation

@gauravharsha

@gauravharsha gauravharsha commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add CPython 3.14 support, cut release 0.2.8, and simplify CI.

Release / wheels (build_wheels.yml, pyproject.toml)

  • Fix scikit-build option cmake.verbosebuild.verbose.
  • Bump version 0.2.70.2.8.
  • Build cp314 wheels: the cp313/cp314 job (build_wheels_13) now uses pypa/cibuildwheel@v3.4.1, which ships CPython 3.14 as a stable default target. The cp38–cp312 job (build_wheels) is unchanged (cibuildwheel@v2.19.0).
  • Drop the manylinux2014 image override on the cp38–cp312 job so it uses manylinux_2_28 from pyproject.toml, matching the cp313/cp314 job. (manylinux2014's HDF5 1.8.12 is rejected by current h5py; the Linux baseline is glibc 2.28.)
  • Drop the retired macos-13 (Intel) runner — macOS wheels are now arm64-only.
  • Publish to PyPI only on a published GitHub Release. The workflow now listens for release: [published], and upload_pypi fires on github.event_name == 'release'on: and the if are consistent (Copilot flagged the previous mismatch). Uploading on a deliberate Release is safer than on any v* tag push.

Testing (python-package.yml)

  • Remove the green-mbtools downstream integration test. Having green-igen (a low-level dependency) clone and run green-mbtools' full suite pointed the wrong direction, created a bootstrap cycle on new Python versions, and was non-reproducible (floating master). green-mbtools covers this from the consumer side.
  • Repurpose python-package.yml as a simple build/install smoke test across 3.9 / 3.12 / 3.14 (actions/setup-python@v5), scaffolded for a future green-igen Python unit-test suite. green-igen's functional coverage today is the C++ ctest in test.yaml.

Notes

  • cp314 wheels are built by the "Continuation CI/CD" workflow (build_wheels.yml); the upload_pypi job publishes them to PyPI when a GitHub Release is published — independent of the smoke-test workflow. Wheels still build on every push/PR for CI (no upload).
  • To release: publish a GitHub Release for v0.2.8 (e.g. gh release create v0.2.8), which triggers the build + upload.
  • Part of an ecosystem-wide 3.14 rollout. green-igen and green-ac are independent (neither depends on the other); both should be released before green-mbtools.

🤖 Generated with Claude Code

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s packaging/CI configuration to produce wheels for Python 3.14 and prepares the next release by bumping the project version.

Changes:

  • Update scikit-build-core configuration key from cmake.verbose to build.verbose.
  • Extend CI wheel builds to include CPython 3.14 (cp314-*) and update pypa/cibuildwheel for the 3.13/3.14 wheel job.
  • Bump project version from 0.2.7 to 0.2.8.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
pyproject.toml Fixes scikit-build-core config key usage and bumps package version to 0.2.8.
.github/workflows/build_wheels.yml Adds cp314-* wheels and updates cibuildwheel for the 3.13/3.14 build job.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gauravharsha gauravharsha changed the title Support Python 3.14 and bump version to 0.2.8 Support Python 3.14, release 0.2.8, and repair CI Jul 7, 2026
@gauravharsha
gauravharsha force-pushed the python-314 branch 2 times, most recently from 2111870 to 964f31f Compare July 7, 2026 19:58
@gauravharsha
gauravharsha requested a review from Copilot July 7, 2026 22:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comment thread .github/workflows/python-package.yml
Comment thread .github/workflows/python-package.yml Outdated
Comment thread .github/workflows/build_wheels.yml
@gauravharsha

gauravharsha commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

Ready for your review @egull

The python 3.14 build / test is currently failing and that's because it is an integration test with Green-Phys/green-mbtools. We are essentially in a loop of errors: MBTOOLS has IGEN as a dependency, so a fully tested Python 3.14 PyPI release for MBTOOLS requires a 3.14 release for IGEN and vice versa.

The choice I make here is to ignore the failing 3.14 pipeline here. Next steps:

Alternative Solution I'm leaning toward:
Entirely remove the integration test - it is, in fact, a unit test in green-mbtools already. Any issue downstream would automatically bring us here to fix things.

@egull egull left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either strategy works. Don't overthink it

@gauravharsha gauravharsha changed the title Support Python 3.14, release 0.2.8, and repair CI Support Python 3.14, release 0.2.8, and simplify CI Jul 8, 2026
@gauravharsha
gauravharsha requested a review from Copilot July 8, 2026 15:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

Comment thread .github/workflows/build_wheels.yml Outdated
Comment thread .github/workflows/python-package.yml
gauravharsha and others added 2 commits July 8, 2026 12:59
- Fix scikit-build option cmake.verbose -> build.verbose
- Bump version 0.2.7 -> 0.2.8 for the next release
- Build cp314 wheels: the cp313/cp314 job uses cibuildwheel v3.4.1, which
  ships CPython 3.14 as a stable default target (the cp38-cp312 job is
  unchanged, cibuildwheel v2.19.0)
- Use manylinux_2_28 for the cp38-cp312 job (from pyproject.toml) instead
  of manylinux2014, whose HDF5 1.8.12 is rejected by current h5py
- Drop the retired macos-13 (Intel) runner from the wheel matrix
- Publish to PyPI only on a published GitHub Release (safer than uploading
  on any tag push); on: triggers and the upload_pypi if are consistent

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
green-igen was cloning green-mbtools and running its full suite as a
downstream gate. That points the wrong way (a low-level dependency
carrying its consumer's world), created a bootstrap cycle on new Python
versions, and was non-reproducible. green-mbtools already covers this
from the consumer side.

Remove it; leave python-package.yml as a simple build/install smoke test
across 3.9/3.12/3.14 (actions/setup-python v5), scaffolded for a future
green-igen Python unit-test suite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gauravharsha
gauravharsha merged commit fd13fdd into Green-Phys:main Jul 8, 2026
10 checks passed
@gauravharsha
gauravharsha deleted the python-314 branch July 8, 2026 18:27
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.

3 participants