Skip to content

py(chore[floor]) Require Python 3.11 - #84

Merged
tony merged 2 commits into
mainfrom
py-3.11-floor
Nov 8, 2026
Merged

tony merged 2 commits into
mainfrom
py-3.11-floor

Conversation

@tony

@tony tony commented Nov 8, 2026

Copy link
Copy Markdown
Member

Summary

Python 3.10 reached end of life in October 2026. Every workspace package
now requires Python 3.11, and the Python 3.10 accommodations from #83 are
gone.

Changes

  • requires-python = ">=3.11" in the root and all packages, 3.10
    classifier removed, mypy and ruff targets set to 3.11
  • pillow and fastmcp lose their python_version >= '3.11' marker;
    tomli is dropped; the 3.10-only mypy overrides, docs/conftest.py
    and the PIL importorskip guard are removed
  • tomllib is imported directly in scripts/ci and docs/_ext
  • ruff check --fix under py311: TimeoutError, dt.UTC, an unused
    noqa: PERF203; Mode in sphinx-vite-builder is a StrEnum
  • CI matrix, .tool-versions, READMEs and one how-to drop 3.10
  • uv.lock collapses the 3.10 forks (coverage, sphinx, myst-parser,
    sphinx-design, sphinx-autobuild, watchdog, starlette, websockets,
    markdown-it-py); tomli and backports-asyncio-runner drop out; the
    soupsieve 2.10 entry for Python below 3.11.5 stays
  • CHANGES entry

Test plan

  • uv lock parsed before/after: only older fork entries removed
  • ruff check, ruff format --check, mypy . (no 3.10 overrides), check-versions on 3.15
  • uv run pytest: 2411 passed, 161 skipped
  • sphinx-build -W -b dirhtml docs
  • CI matrix 3.11-3.15

tony added 2 commits November 7, 2026 18:41
why: Python 3.10 reached end of life in October 2026. Requiring 3.11
lets the lock drop its 3.10-only forks and the markers #83 added for
pillow and fastmcp. `uv lock` collapses the coverage, sphinx,
myst-parser, watchdog, starlette and websockets pairs and removes tomli
and backports-asyncio-runner; the >=3.11 entries did not move. `ruff
check --fix` under py311 rewrote the asyncio.TimeoutError, dt.timezone.utc
and unused `noqa: PERF203` sites, and `Mode` in sphinx-vite-builder
became a `StrEnum` (its members are only compared, never formatted).

what:
- pyproject.toml, packages/*/pyproject.toml: requires-python >=3.11,
  drop the 3.10 classifier; root mypy and ruff targets set to 3.11
- pyproject.toml: pillow and fastmcp lose their python_version marker,
  tomli is dropped, and the 3.10-only mypy overrides are removed
- docs/conftest.py and the PIL importorskip are removed; tomllib is
  imported directly in scripts/ci and docs/_ext
- tests.yml, .tool-versions, README files, how-to: drop 3.10
- uv.lock: collapse the 3.10 forks
why: The floor moves from 3.10 to 3.11 in #84, a breaking change for
installs on 3.10.

what:
- CHANGES: add a Breaking changes entry to the unreleased section
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.50000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 93.42%. Comparing base (376e020) to head (5f1dbd2).

Files with missing lines Patch % Lines
packages/gp-sphinx/src/gp_sphinx/config.py 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #84      +/-   ##
==========================================
+ Coverage   93.41%   93.42%   +0.01%     
==========================================
  Files         279      278       -1     
  Lines       24130    24118      -12     
==========================================
- Hits        22540    22532       -8     
+ Misses       1590     1586       -4     

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

@tony
tony merged commit e9441ad into main Nov 8, 2026
44 checks passed
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