Skip to content

Test with Python 3.14#567

Merged
jan-janssen merged 5 commits intomainfrom
py314
Oct 22, 2025
Merged

Test with Python 3.14#567
jan-janssen merged 5 commits intomainfrom
py314

Conversation

@jan-janssen
Copy link
Copy Markdown
Member

@jan-janssen jan-janssen commented Oct 21, 2025

Summary by CodeRabbit

  • Chores
    • CI workflows updated to target Python 3.14 across testing matrices and OS configurations.
    • Project metadata expanded to allow Python <3.15 (enables Python 3.14 compatibility).
    • CI environment definitions adjusted to use Python 3.14 for docs and environment builds.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Oct 21, 2025

Walkthrough

CI and packaging python version bounds were bumped: GitHub Actions matrices and setup steps updated from Python 3.13 to 3.14, a CI conda environment file updated to 3.14, and pyproject.toml's requires-python upper bound increased from <3.14 to <3.15.

Changes

Cohort / File(s) Summary
CI workflow updates
\.github/workflows/pipeline\.yml
Replaced Python 3.13 with 3.14 across matrix entries and conda/setup steps used by multiple jobs.
Conda CI environment
\.ci_support/environment-docs\.yml
Updated conda python dependency from 3.13 to 3.14.
Project metadata
pyproject\.toml
Raised [project] requires-python upper bound from >=3.9, <3.14 to >=3.9, <3.15.

Sequence Diagram(s)

(Skipped — changes only update version constraints and do not alter runtime control flow.)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped from three-thirteen to three-fourteen clear,
I nudged the bounds a smidge so future tests can cheer,
Pipelines now step lightly, conda nods in tune,
A carrot for the CI — we’ll run the suite at noon! 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "Test with Python 3.14" is concise, clear, and directly related to the main changes in the changeset. The PR updates GitHub Actions workflow configurations, project dependencies, and CI/CD support files to bump Python version from 3.13 to 3.14, and adjusts the upper Python version constraint in pyproject.toml from <3.14 to <3.15. The title accurately captures the primary objective of enabling testing and support for Python 3.14, which is evident across all modified files. A teammate scanning the commit history would clearly understand that this changeset is focused on Python 3.14 compatibility.
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 py314

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.

@jan-janssen jan-janssen changed the title Py314 Test with Python 3.14 Oct 21, 2025
Copy link
Copy Markdown
Contributor

@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: 0

🧹 Nitpick comments (1)
pyproject.toml (1)

14-26: Add Python 3.14 classifier to reflect support declaration.

The requires-python constraint allows 3.14 (via <3.15), but the classifiers list ends at 3.13. Adding the Python 3.14 classifier ensures package metadata accurately reflects supported versions.

Apply this diff to add the classifier:

 classifiers = [
     "Development Status :: 5 - Production/Stable",
     "Topic :: Scientific/Engineering :: Physics",
     "License :: OSI Approved :: BSD License",
     "Intended Audience :: Science/Research",
     "Operating System :: OS Independent",
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
 ]
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e0a0414 and f8cc76e.

📒 Files selected for processing (2)
  • .github/workflows/pipeline.yml (12 hunks)
  • pyproject.toml (1 hunks)
🔇 Additional comments (1)
.github/workflows/pipeline.yml (1)

58-58: Comprehensive Python 3.14 CI/CD updates look good.

Python 3.14 was released on 7 October 2025, and the workflow updates are timely and thorough. The matrix strategy correctly adds 3.14 testing across macOS, Ubuntu, and Windows platforms (lines 160–166), while preserving backwards compatibility testing with older versions (3.13, 3.12, 3.11). Specialized jobs (GPAW, MACE, QE, etc.) all consistently target 3.14.

Also applies to: 89-89, 113-113, 139-139, 160-172, 217-217, 245-245, 271-271, 295-295, 322-322, 371-371, 401-401

Copy link
Copy Markdown
Contributor

@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: 0

🧹 Nitpick comments (1)
.github/workflows/pipeline.yml (1)

113-113: Minor: Inconsistent quote style for python-version value.

Line 113 uses double quotes ("3.14"), while all other python-version values in the file use single quotes ('3.14'). This is a minor style inconsistency.

      - name: Setup Mambaforge
        uses: conda-incubator/setup-miniconda@v3
        with:
-         python-version: "3.14"
+         python-version: '3.14'
          miniforge-version: latest
          channels: conda-forge
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 81fefd3 and b35a660.

📒 Files selected for processing (2)
  • .ci_support/environment-docs.yml (1 hunks)
  • .github/workflows/pipeline.yml (8 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .ci_support/environment-docs.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
  • GitHub Check: unittest_matrix (ubuntu-latest, 3.11)
  • GitHub Check: unittest_qe
  • GitHub Check: unittest_matrix (windows-latest, 3.14)
  • GitHub Check: unittest_matrix (ubuntu-latest, 3.13)
  • GitHub Check: unittest_matrix (ubuntu-latest, 3.14)
  • GitHub Check: unittest_matrix (ubuntu-latest, 3.12)
  • GitHub Check: unittest_matrix (macos-latest, 3.14)
  • GitHub Check: notebooks
  • GitHub Check: unittest_gpaw
  • GitHub Check: unittest_sphinxdft
  • GitHub Check: coverage
🔇 Additional comments (1)
.github/workflows/pipeline.yml (1)

58-58: Comprehensive and systematic Python 3.14 upgrade across CI matrix.

The changes consistently bump Python to 3.14 across primary jobs (coverage, minimal, notebooks, pip_check, gpaw, sphinxdft, qe) and expand the unittest_matrix to test 3.14 on three operating systems while maintaining backward compatibility testing (3.13, 3.12, 3.11 on ubuntu). The approach is well-coordinated with pyproject.toml (upper bound <3.15) and aligns with the stated PR objectives.

Jobs pinned to 3.13 (unittest_abinit, unittest_mace, unittest_orb, unittest_siesta) and 3.12 (unittest_grace) suggest intentional constraints, likely due to external tool version requirements.

Can you confirm that Python 3.14 is compatible with the external packages/tools (ABINIT, MACE, ORB, SIESTA) used in the specialized CI jobs? If those tools don't yet support 3.14, leaving those jobs at 3.13 is appropriate; if they do support it, those jobs may want to be upgraded as well for consistency.

Also applies to: 89-89, 113-113, 139-139, 160-160, 163-163, 166-166, 169-169, 172-172, 175-175, 245-245, 271-271, 371-371

@codecov
Copy link
Copy Markdown

codecov bot commented Oct 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.46%. Comparing base (9f68e1a) to head (b35a660).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #567      +/-   ##
==========================================
- Coverage   85.71%   85.46%   -0.26%     
==========================================
  Files          43       43              
  Lines        2591     2545      -46     
==========================================
- Hits         2221     2175      -46     
  Misses        370      370              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jan-janssen jan-janssen merged commit 60572fc into main Oct 22, 2025
49 of 51 checks passed
@jan-janssen jan-janssen deleted the py314 branch October 22, 2025 03:58
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.

1 participant