Skip to content

chore(py): start from 3.12#197

Merged
shenxiangzhuang merged 1 commit intomasterfrom
chore/start_with_312
Dec 18, 2025
Merged

chore(py): start from 3.12#197
shenxiangzhuang merged 1 commit intomasterfrom
chore/start_with_312

Conversation

@shenxiangzhuang
Copy link
Owner

@shenxiangzhuang shenxiangzhuang commented Dec 18, 2025

Summary by CodeRabbit

  • Chores
    • Updated minimum Python version requirement to 3.12 (dropped support for Python 3.10 and 3.11).
    • Updated CI/CD workflows to test against Python 3.12, 3.13, and 3.14.
    • Updated project configuration to reflect new Python version support matrix.

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

@shenxiangzhuang shenxiangzhuang self-assigned this Dec 18, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 18, 2025

Walkthrough

The changes drop support for Python 3.10 and 3.11, establish Python 3.12 as the minimum required version, and add experimental support for Python 3.14. Configuration files across CI workflows and project metadata are updated consistently to reflect the new version range.

Changes

Cohort / File(s) Summary
CI Workflow Configuration
.github/workflows/build_docs.yaml, .github/workflows/test.yaml
Build docs workflow: downgraded Python version from 3.13 to 3.12. Test workflow: removed Python 3.10, 3.11, 3.12 from matrix; added 3.12, 3.13, 3.14.
Project Metadata
pyproject.toml
Dropped Python 3.10, 3.11 classifiers; added 3.14 classifier. Bumped requires-python constraint from >= 3.10 to >= 3.12. Updated Ruff target-version from py310 to py312 in two tool configurations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Homogeneous changes following a consistent version-update pattern across multiple files with no logic modifications
  • Verify Python version consistency across all three configuration files
  • Confirm target-version changes in pyproject.toml align with the minimum supported version

Possibly related PRs

Suggested labels

github_actions

Poem

🐰 From three-ten springs forth no more,
Three-twelve now guards the door,
Fourteen's dawn on distant shore,
Workflows tested, version lore! ✨

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 title clearly and directly summarizes the main change: updating the project to start from Python 3.12 as the minimum version.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/start_with_312

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.

@codecov
Copy link

codecov bot commented Dec 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (119effa) to head (47b8c87).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #197   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            2         2           
  Lines            8         8           
=========================================
  Hits             8         8           

☔ 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.

Copy link

Copilot AI left a comment

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 minimum supported Python version from 3.10 to 3.12, removing support for Python 3.10 and 3.11 while adding support for Python 3.14.

  • Updates project classifiers and minimum Python requirement to 3.12
  • Updates CI/CD test matrix to test Python 3.12, 3.13, and 3.14
  • Updates Ruff linter target version to Python 3.12

Reviewed changes

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

File Description
pyproject.toml Removes Python 3.10 and 3.11 classifiers, adds 3.14 classifier, updates requires-python to >= 3.12, and updates ruff target-version to py312
.github/workflows/test.yaml Updates test matrix to run tests on Python 3.12, 3.13, and 3.14
.github/workflows/build_docs.yaml Changes documentation build Python version from 3.13 to 3.12

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

Copy link
Contributor

Copilot AI commented Dec 18, 2025

@shenxiangzhuang I've opened a new pull request, #198, to work on those changes. Once the pull request is ready, I'll request review from you.

@shenxiangzhuang shenxiangzhuang merged commit 8d68e13 into master Dec 18, 2025
21 of 22 checks passed
@shenxiangzhuang shenxiangzhuang deleted the chore/start_with_312 branch December 18, 2025 10:09
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: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 119effa and 47b8c87.

📒 Files selected for processing (3)
  • .github/workflows/build_docs.yaml (1 hunks)
  • .github/workflows/test.yaml (1 hunks)
  • pyproject.toml (2 hunks)
⏰ 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). (1)
  • GitHub Check: ci (3.13, macos-latest)
🔇 Additional comments (4)
pyproject.toml (3)

19-19: LGTM!

The minimum Python version is correctly updated to 3.12, aligning with the PR objectives and the updated classifiers.


107-108: LGTM!

The Ruff target-version is correctly updated to py312, ensuring the linter enforces syntax and features appropriate for Python 3.12+.


17-17: No special handling needed for Python 3.14 classifier.

Python 3.14 was released on 7 October 2025 and is fully stable. The GitHub Actions setup-python action includes Python 3.14, making the classifier addition straightforward and valid. This is standard forward-looking support for the latest Python version.

.github/workflows/test.yaml (1)

14-14: The Python 3.14 configuration in the test matrix is correct.

The GitHub Actions setup-python@v6 action includes Python 3.14 support and can provision it for all matrix OSes (ubuntu-latest, macos-latest, windows-latest). Python 3.14.2 binaries are available for darwin (macOS) and linux platforms, and Windows uses official Python executables downloaded from python.org. No verification action is required.

matrix:
python-version:
- "3.13"
- "3.12"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Documentation deployment will fail due to matrix mismatch.

The docs build matrix only includes Python 3.12, but the deploy condition on line 49 checks for Python 3.13. This mismatch means documentation will never be deployed because no job will satisfy the deployment condition.

🔎 Apply this diff to fix the deploy condition:

Update line 49 to match the matrix version:

-      - name: Deploy docs
-        if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && github.event_name == 'push' && github.ref == 'refs/heads/master'
-        run: uv run mkdocs gh-deploy --force
+      - name: Deploy docs
+        if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' && github.event_name == 'push' && github.ref == 'refs/heads/master'
+        run: uv run mkdocs gh-deploy --force

Alternatively, if you want to keep deploying with Python 3.13, add it to the matrix on line 15.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
.github/workflows/build_docs.yaml around line 15 (and adjust line 49): the build
matrix currently lists only Python "3.12" but the deploy condition checks for
"3.13", causing docs never to deploy; fix by making the matrix and deploy
condition match—either change the deploy condition at line 49 to "3.12" or add
"3.13" to the matrix on line 15 so the checked-for version exists; ensure both
the matrix entries and the if/deploy condition use the exact same version
string.

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