Skip to content

build: Remove support for Python 3.10 - #414

Merged
Oliver Borchert (borchero) merged 4 commits into
mainfrom
remove-py310
Oct 9, 2026
Merged

Oliver Borchert (borchero) merged 4 commits into
mainfrom
remove-py310

Conversation

@borchero

Copy link
Copy Markdown
Member

Motivation

Python 3.10 is EOL.

@codecov

codecov Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2bd5100) to head (be49475).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #414   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           46        46           
  Lines         2616      2584   -32     
=========================================
- Hits          2616      2584   -32     

☔ View full report in Codecov by Harness.
📢 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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The CI matrix runs Python 3.11 twice on every operating system, creating redundant jobs.

1 open finding
What changed in this PR

Raises the minimum supported Python version to 3.11 across packaging, builds, tooling, and compatibility code.

Changes:

  • Updates package metadata, Pixi environments, PyO3 ABI, and build configuration.
  • Removes Python 3.10 compatibility imports and dependency.
  • Moves linting and CI coverage to Python 3.11+.
File Description
pyproject.toml Requires Python 3.11 and removes compatibility dependency.
pixi.toml Replaces Python 3.10 environments with 3.11.
dataframely/​schema.py Imports Self directly from typing.
dataframely/​filter_result.py Imports NamedTuple directly from typing.
dataframely/​config.py Imports Unpack directly from typing.
dataframely/​columns/​_mixins.py Removes conditional Self import.
dataframely/​columns/​_base.py Removes conditional Self import.
dataframely/​collection/​filter_result.py Removes conditional NamedTuple import.
dataframely/​collection/​collection.py Removes conditional Self import.
dataframely/​collection/​_base.py Removes conditional Self import.
dataframely/​_rule.py Removes conditional Self import.
dataframely/​_deprecation.py Removes the typing_extensions decorator path.
dataframely/​_base_schema.py Removes conditional Self import.
Cargo.toml Raises the PyO3 stable ABI baseline to 3.11.
.lefthook.yaml Runs mypy in the Python 3.11 environment.
.github/​workflows/​ci.yml Updates CI environments to Python 3.11+.
.github/​workflows/​build.yml Builds wheels using Python 3.11.
.copier-answers.yml Records Python 3.11 as the project minimum.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml Outdated
Removed duplicate Python version from environment matrix.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@borchero
Oliver Borchert (borchero) merged commit b2e81fd into main Oct 9, 2026
29 checks passed
@borchero
Oliver Borchert (borchero) deleted the remove-py310 branch October 9, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants