Skip to content

Conversation

@denialhaag
Copy link
Member

@denialhaag denialhaag commented Oct 13, 2025

Description

This PR enables testing on Python 3.14.

Fixes #206

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.
  • 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 official Python 3.14 compatibility across the project.
  • Chores

    • Reordered and clarified dependency constraints to target Python versions more explicitly.
    • Introduced updated minimum versions for numpy, scipy, and pandas on newer Python releases.
    • Added an optional pydantic-core requirement for Python 3.14 and a dependency override for symengine to ensure compatibility.
    • Minor CI/CD artifact attestation formatting tweak with no functional impact.

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

coderabbitai bot commented Oct 13, 2025

📝 Walkthrough

Walkthrough

Updates to CI and packaging metadata: minor YAML formatting change in the CD workflow, Python 3.14 added to the nox test matrix, and conditional dependency constraints in pyproject.toml reordered and extended to explicitly cover Python 3.14.

Changes

Cohort / File(s) Summary of changes
CI workflow tweak
.github/workflows/cd.yml
Changed subject-path value in the Generate artifact attestation step from quoted "dist/*" to unquoted dist/*.
Test matrix update
noxfile.py
Appended "3.14" to PYTHON_ALL_VERSIONS enabling tests to run on Python 3.14.
Dependency constraints
pyproject.toml
Reordered and extended environment-marked dependency constraints (numpy, scipy, pandas) and added pydantic-core / symengine adjustments to explicitly cover Python 3.14. No public API/signature changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

Poem

Hoppity hop, I nudge the build anew,
Three point one four joins the testing crew. 🐇
Constraints arranged in tidy line,
A YAML tweak — the artifacts align.
Carrots counted, CI hums light and true.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning Most changes are in scope for enabling Python 3.14, but there is a minor unrelated formatting tweak in .github/workflows/cd.yml (changing a quoted "dist/" to unquoted dist/) that is not required by the linked issue. Either remove the unrelated cd.yml formatting change or move it to a separate housekeeping PR, and document any non-obvious reasons why that workflow edit is included in this 3.14 testing change.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The title "👷 Enable testing on Python 3.14" is concise and accurately summarizes the primary change (adding Python 3.14 testing support), matching the modifications to the noxfile and dependency updates in the PR.
Linked Issues Check ✅ Passed The changes implement the linked issue #206: the noxfile adds Python 3.14 to the test matrix and pyproject.toml includes dependency constraints and overrides to enable compatibility with Python 3.14, which satisfies the issue's proposed solution.
Description Check ✅ Passed The PR description follows the repository template by providing a summary, motivation, and the "Fixes #206" reference and includes a completed checklist, so it is largely complete and on-topic. It does not explicitly list the specific dependency/version changes introduced in pyproject.toml, which the template asks to include under dependencies.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 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.

@denialhaag
Copy link
Member Author

denialhaag commented Oct 13, 2025

This PR has to wait until a new version of qiskit-aer is released (see Qiskit/qiskit-aer#2378).

@denialhaag denialhaag marked this pull request as draft October 13, 2025 23:59
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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pyproject.toml (1)

60-64: Add the Python 3.14 trove classifier.

You’re declaring 3.14 support elsewhere, but the classifiers still stop at 3.13. Please add Programming Language :: Python :: 3.14 so the published metadata reflects the new support level.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dc13cfd and 8524097.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • pyproject.toml (3 hunks)

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

2 participants