chore: drop Python 3.10/3.11 support#636
Conversation
Officially support Python 3.12-3.14, following the NumPy deprecation policy. - Bump requires-python to >=3.12,<3.15 and ruff target-version to py312 - Drop 3.10/3.11 from the CI test matrices - Rework the py310 minimum-version example into py312 (config, assertion, e2e test case) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #636 +/- ##
==========================================
- Coverage 78.15% 78.06% -0.09%
==========================================
Files 39 39
Lines 4632 4632
Branches 754 754
==========================================
- Hits 3620 3616 -4
- Misses 709 713 +4
Partials 303 303 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- Regenerate production.uv.lock and requirements.txt against >=3.12 (collapses the 3.10/3.11 version-conditional pins) - Use stdlib typing.Self now that 3.10 is dropped (UP035) - Ignore UP040/UP047 to avoid a PEP 695 modernization sweep; some type aliases are used at runtime (isinstance) and can't become `type` aliases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
CI is failing because test_jax_recipes pulls in the jax DEV dependency which is PINNED to 0.10.2 for Python>3.11. We should arguably replace this and other dev dependencies with a range/ceiling that we then pin to lower bounds along with the standard production dependencies. If we want to be lazy we could just bump numpy lower bound to 2.0 but we might run into similar issues in the future. |
|
Having second thoughts here. Tesseract is (also) a tool to wrap gnarly software, and as such should aim for a higher level of compatibility than your typical scientific Python project. I suggest we only drop versions when they're truly EOL. Closing until then (3.10 has a few more months on the clock). |
Bumps the minimum supported Python to 3.12 (supported: 3.12–3.14), in line with the NumPy deprecation policy.
requires-python→>=3.12,<3.15; rufftarget-version→py312.run_testsandtest_pip_installmatrices.py310minimum-version smoke example intopy312(configpython_version, thesys.version_infoassertion, and the end-to-end test case).Please confirm no runtime dependency or code path still relies on 3.10/3.11 before merging. Demo/showcase sub-projects keep their own
requires-pythonand are untouched.