Skip to content

Drop support for end-of-life Python 3.10 - #505

Merged
d33bs merged 5 commits into
mainfrom
chore/drop-python-310
Oct 8, 2026
Merged

d33bs merged 5 commits into
mainfrom
chore/drop-python-310

Conversation

@d33bs

@d33bs d33bs commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Raise the Python minimum from 3.10 to 3.11; retain the existing <3.15 upper bound.
  • Remove obsolete 3.10 dependency branches and update CI, publishing, and docs jobs to 3.11.
  • Regenerate uv.lock for the new supported range.

Python 3.10 reached end of life on October 1, 2026 (Python Developer Guide). Python 3.11 remains security-supported.

Verification

  • Python 3.11.11: uv sync --python /Users/buntend/.pyenv/versions/3.11.11/bin/python --all-extras --group docs --group dev --frozen passed.
  • Python 3.11.11: pytest -m "not large_data_tests" -q — 135 passed, 1 skipped, 1 deselected.
  • Python 3.11.11: Sphinx doctest build with -W passed (0 doctests).
  • uv lock --check and git diff --check passed.

Large-data tests and cross-platform CI remain unverified locally.

Summary by CodeRabbit

  • Compatibility

    • Python 3.10 is no longer supported; Python 3.11 or newer is required.
  • Maintenance

    • Updated development, testing, documentation, and publishing workflows to use Python 3.11. Testing now covers Python 3.11, 3.12, and 3.13.
    • Updated the default Python version for pre-commit hooks to 3.12 and normalized string types in test data for compatibility with current dependencies.

@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 04a14751-045a-465e-863c-c4cc1ea89511
📥 Commits

Reviewing files that changed from the base of the PR and between ff021ba and b740e75.

📒 Files selected for processing (1)
  • tests/conftest.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The project now requires Python 3.11 or newer. Workflow and pre-commit Python versions were updated, and dependency constraints for earlier Python versions were removed. A test fixture now converts Arrow large-string fields to string fields.

Changes

Python version support

Layer / File(s) Summary
Project Python requirement and dependencies
pyproject.toml
The minimum Python version is now 3.11. The Python 3.10 classifier and dependency constraints for earlier Python versions were removed.
Workflow and hook Python versions
.github/workflows/*, .pre-commit-config.yaml
Workflow setup uses Python 3.11, the test matrix covers Python 3.11, 3.12, and 3.13, and the pre-commit default is now Python 3.12.
Fixture Arrow field conversion
tests/conftest.py
The fixture converts large_string fields to string and preserves other field types.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to b740e

No actionable merge risk was identified. CI includes the fixture’s equality test, though it could not be run in this environment.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: removing support for end-of-life Python 3.10.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@d33bs
d33bs marked this pull request as ready for review October 6, 2026 19:34
@d33bs
d33bs requested a review from gwaybio as a code owner October 6, 2026 19:34
Comment thread .pre-commit-config.yaml
@d33bs

d33bs commented Oct 8, 2026

Copy link
Copy Markdown
Member Author

Thanks @gwaybio !

@d33bs
d33bs merged commit edef25e into main Oct 8, 2026
9 checks passed
@d33bs
d33bs deleted the chore/drop-python-310 branch October 8, 2026 12:12
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.

2 participants