Skip to content

Conversation

denialhaag
Copy link
Contributor

@denialhaag denialhaag commented Oct 13, 2025

Description

This PR enables testing on Python 3.14.

Fixes #420

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.

Summary by CodeRabbit

  • New Features

    • Added support and testing for Python 3.14.
  • Documentation

    • Updated changelog to reflect Python 3.14 support.
  • Chores

    • Adjusted artifact attestation pattern in the release workflow for improved compatibility.
    • Refined NumPy version constraints to align with updated Python compatibility ranges.

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

coderabbitai bot commented Oct 13, 2025

📝 Walkthrough

Walkthrough

This PR enables Python 3.14 testing, updates NumPy version markers for Python 3.11–3.14, adds an Unreleased changelog entry referencing PR #488, and tweaks a GitHub Actions workflow input by removing quotes around a glob path.

Changes

Cohort / File(s) Summary
CI/CD Workflow
.github/workflows/cd.yml
Changed attest-build-provenance input subject-path from "dist/*" to dist/*.
Release Notes
CHANGELOG.md
Added Unreleased “Added” entry for enabling testing on Python 3.14 and linked PR [#488].
Nox Test Matrix
noxfile.py
Expanded PYTHON_ALL_VERSIONS to include "3.14".
Dependency Constraints
pyproject.toml
Reordered NumPy markers and added python_version >= '3.14' → numpy>=2.3.2; retained base numpy>=1.22.

Sequence Diagram(s)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Poem

A bunny taps the matrix key,
Adds 3.14 with glee.
NumPy markers hop in line,
Changelog notes now neatly shine.
CI nibbles on a path unquoted—
All tests burrow, greenly noted. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning The change to .github/workflows/cd.yml adjusting the subject-path input for the attest-build-provenance action is unrelated to enabling Python 3.14 testing as described in the linked issue. Please remove or separate the workflow modification into its own pull request, so this PR focuses solely on enabling Python 3.14 testing.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The title clearly and concisely summarizes the primary change of enabling testing on Python 3.14, making the main intent immediately apparent to reviewers. Although it includes an emoji, it remains focused and directly reflects the changeset’s goal.
Linked Issues Check ✅ Passed The pull request adds the Python 3.14 classifier to the noxfile as specified in linked issue #420, fulfilling the core requirement to enable testing on Python 3.14.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Description Check ✅ Passed The pull request description follows the repository’s template by providing a Description section with summary and issue reference, including “Fixes #420”, and includes a populated Checklist section indicating completed tasks. It clearly describes enabling Python 3.14 testing and references the linked issue for context. It also uses the checklist to show that the change is focused, tested, and reviewed.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 314-testing

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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a26b0e7 and 7e63231.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • .github/workflows/cd.yml (1 hunks)
  • CHANGELOG.md (2 hunks)
  • noxfile.py (1 hunks)
  • pyproject.toml (1 hunks)
🔇 Additional comments (5)
.github/workflows/cd.yml (1)

40-40: Clarify the connection to Python 3.14 support.

The removal of quotes around dist/* appears unrelated to enabling Python 3.14 testing. While both quoted and unquoted glob patterns are valid, this stylistic change is not mentioned in the PR description or objectives.

Could you clarify whether:

  1. This change is intentionally included as a related fix/improvement?
  2. There was a specific issue with quoted paths that this resolves?

If this is an unrelated change, consider moving it to a separate PR for clearer change tracking.

CHANGELOG.md (2)

12-14: LGTM!

The changelog entry properly documents the Python 3.14 testing enablement with correct formatting and attribution.


50-50: LGTM!

The PR reference link is correctly added to the links section.

noxfile.py (1)

31-31: LGTM!

The addition of Python 3.14 to PYTHON_ALL_VERSIONS correctly enables testing on this version for both the tests and minimums nox sessions.

pyproject.toml (1)

62-62: LGTM!

The Python 3.14 classifier is correctly added to the project metadata, aligning with the testing enablement.

Copy link

coderabbitai bot commented Oct 13, 2025

📝 Walkthrough

Walkthrough

Updates CI and packaging configs: adjusts artifact attestation glob in CD workflow, adds Python 3.14 to nox testing matrix, documents this in the changelog, and revises NumPy dependency markers in pyproject. No runtime code changes or public API modifications.

Changes

Cohort / File(s) Summary
CI Workflow
.github/workflows/cd.yml
Changed artifact attestation subject-path from "dist/*" to dist/* (unquoted glob).
Changelog
CHANGELOG.md
Added Unreleased note for enabling testing on Python 3.14 and inserted PR reference link [#488].
Testing Matrix (nox)
noxfile.py
Extended PYTHON_ALL_VERSIONS to include "3.14"; removed outdated TODO about pending 3.14 support.
Dependencies (build/packaging)
pyproject.toml
Reworked NumPy dependency markers/ordering; updated minimum versions per Python ranges; no other dependency changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Poem

A whisk of ears, a hop of cheer,
We’ve added 3.14 this year!
Nox now knows the path to tread,
NumPy markers neatly spread.
Artifacts glide through CD’s door—
My paws applaud: “Test some more!” 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning The changes to the CI artifact attestation step in cd.yml and the restructuring of numpy dependency guards in pyproject.toml are not mentioned in issue #420 and appear unrelated to simply enabling Python 3.14 testing, indicating out-of-scope modifications. Please remove or separate the unrelated workflow attestation and dependency constraint changes into a separate pull request or clearly document their necessity within this PR to maintain focus on the Python 3.14 testing objective.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The title clearly and concisely summarizes the main change of enabling testing on Python 3.14 and directly relates to the modifications in the changeset without introducing unrelated details or ambiguity.
Linked Issues Check ✅ Passed The update to the noxfile adds the Python 3.14 classifier as specified in issue #420, satisfying the primary requirement to enable testing on Python 3.14 without leaving the requested objective unaddressed.
Description Check ✅ Passed The description follows the required template by including the “## Description” and “## Checklist” sections, clearly summarizes the change, references the fixed issue, and aligns with the checklist format, making it mostly complete and consistent with repository guidelines.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 314-testing

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a26b0e7 and 7e63231.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • .github/workflows/cd.yml (1 hunks)
  • CHANGELOG.md (2 hunks)
  • noxfile.py (1 hunks)
  • pyproject.toml (1 hunks)
🔇 Additional comments (6)
.github/workflows/cd.yml (1)

40-40: LGTM! Correct glob pattern syntax.

Removing the quotes allows the glob pattern to be correctly interpreted by the attestation action, rather than being treated as a literal string.

CHANGELOG.md (2)

12-14: LGTM! Changelog entry follows the project conventions.

The entry is properly formatted and placed in the "Unreleased" section with appropriate references.


50-50: LGTM! PR reference link is correctly formatted.

noxfile.py (1)

31-31: LGTM! Python 3.14 added to testing matrix.

This change enables testing on Python 3.14 as stated in the PR objectives.

pyproject.toml (2)

62-62: LGTM! Python 3.14 classifier added.

The classifier correctly declares support for Python 3.14.


44-47: No updates needed for numpy version constraints. numpy 2.3.2 exists, supports Python 3.14, and has no relevant security advisories.


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

@denialhaag denialhaag marked this pull request as draft October 13, 2025 23:40
@denialhaag
Copy link
Contributor Author

denialhaag commented Oct 13, 2025

This PR has to stay open until version 2.9.0 of torch is released.

@denialhaag
Copy link
Contributor Author

denialhaag commented Oct 16, 2025

Version 2.9.0 of torch has been released. Now we are waiting for a qiskit-aer update (see Qiskit/qiskit-aer#2378).

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

1 participant