Skip to content

Conversation

@denialhaag
Copy link
Member

@denialhaag denialhaag commented Oct 13, 2025

Description

This PR enables testing on Python 3.14.

Fixes #464

Checklist:

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.
  • I have added migration instructions to the upgrade guide (if needed).
  • The changes follow the project's style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

@denialhaag denialhaag self-assigned this Oct 13, 2025
@denialhaag denialhaag added dependencies Pull requests that update a dependency file continuous integration Anything related to the CI setup python Pull requests that update Python code labels Oct 13, 2025
@denialhaag
Copy link
Member Author

denialhaag commented Oct 14, 2025

This PR has to stay open until version 0.63.0 of numba is released.

Edit: We are now waiting for a multiprocess release. See uqfoundation/multiprocess#232.

@denialhaag denialhaag force-pushed the 314-testing branch 2 times, most recently from 16cd0a4 to acdd231 Compare January 9, 2026 00:48
@denialhaag denialhaag requested a review from burgholzer January 19, 2026 11:42
@denialhaag denialhaag marked this pull request as ready for review January 19, 2026 11:42
@denialhaag
Copy link
Member Author

As all dependencies are finally updated, this should be ready to go. 🎉

Copy link
Member

@burgholzer burgholzer left a comment

Choose a reason for hiding this comment

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

Nice! Cool to see this finally enabled 🙌

@coderabbitai
Copy link

coderabbitai bot commented Jan 19, 2026

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added support for Python 3.14.
  • Chores

    • Updated dependencies with Python 3.14-specific versions for compatibility.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

This PR enables Python 3.14 testing support by extending the nox test matrix to include version 3.14, adding Python 3.14-specific dependency constraints, updating the changelog, and correcting a GitHub Actions workflow syntax issue in the attestation step.

Changes

Cohort / File(s) Summary
Python 3.14 Version Matrix
noxfile.py
Extended PYTHON_ALL_VERSIONS constant from ["3.10", "3.11", "3.12", "3.13"] to ["3.10", "3.11", "3.12", "3.13", "3.14"]
Python 3.14 Dependencies
pyproject.toml
Added Python 3.14-specific dependency markers for numpy (≥2.3.2), numba (≥0.63.1), scipy (≥1.16.1), and multiprocess (≥0.70.19); also corrected author name spacing ("Peter-Jan H.S. Derks" → "Peter-Jan H. S. Derks")
CI/Workflow Configuration
.github/workflows/cd.yml
Changed subject-path argument in attestation step from "dist/*" (quoted) to dist/* (unquoted)
Documentation
CHANGELOG.md
Added entry to Unreleased > Added section: "Enable testing on Python 3.14" with corresponding PR reference

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • munich-quantum-toolkit/ddsim#674: Implements identical Python 3.14 enablement changes across noxfile.py, pyproject.toml, cd.yml, and CHANGELOG files.
  • munich-quantum-toolkit/core#1246: Modifies the same noxfile.py Python-version matrix addition and coordinates pyproject dependency updates for Python 3.14 support.
  • munich-quantum-toolkit/qmap#796: Makes matching code-level changes to cd.yml subject-path quoting, noxfile.py version matrix, and pyproject.toml Python 3.14 dependencies.

Poem

🐰 A nimble hop to futures bright,
Three-fourteen joins the testing flight,
Dependencies now aligned with care,
New versions floating through the air!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: enabling testing on Python 3.14, which is the primary objective of the PR.
Description check ✅ Passed The description includes a clear summary of the change, references the fixed issue (#464), and provides a completed checklist showing implementation of required tasks.
Linked Issues check ✅ Passed The PR fully implements the requirements from issue #464: adding Python 3.14 to the noxfile version matrix, adding Python 3.14-specific dependency entries, updating workflows, and documenting changes.
Out of Scope Changes check ✅ Passed Changes include a minor author name formatting fix in pyproject.toml and a workflow syntax adjustment that are both marginal and acceptable alongside the main Python 3.14 enablement work.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@pyproject.toml`:
- Around line 55-65: The pyproject entry pins "multiprocess>=0.70.19;
python_version >= '3.14'" which is not available for CPython 3.14 and will break
installs; update the multiprocess dependency in pyproject.toml by removing the
Python 3.14 conditional and keeping a single compatible requirement (e.g., keep
"multiprocess>=0.70.17" or simply "multiprocess>=0.70.17" replacing both
multiprocess lines), or if you need a newer feature, find a multiprocess release
that actually provides cp314 wheels and pin to that version instead; edit the
multiprocess lines in the dependency list to reflect the chosen compatible
requirement.

@denialhaag
Copy link
Member Author

Celebrated too early... 🫠

For the CI to pass also on Windows, we need a new release of pymatching and a subsequent update in ldpc.

Back to draft. 😞

@denialhaag denialhaag marked this pull request as draft January 19, 2026 12:38
@burgholzer
Copy link
Member

Celebrated too early... 🫠

For the CI to pass also on Windows, we need a new release of pymatching and a subsequent update in ldpc.

Back to draft. 😞

Damn. Can we open issue in both to drive this? Or PRs if that's even easier?

@denialhaag
Copy link
Member Author

denialhaag commented Jan 19, 2026

Celebrated too early... 🫠
For the CI to pass also on Windows, we need a new release of pymatching and a subsequent update in ldpc.
Back to draft. 😞

Damn. Can we open issue in both to drive this? Or PRs if that's even easier?

I have opened oscarhiggott/PyMatching#179 to address the first issue. Once this change is released, I'll follow up on the ldpc side!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

continuous integration Anything related to the CI setup dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

👷🏼🐍 Enable testing on Python 3.14

3 participants