Layers for developers

Python 3.10 is end-of-life: plan the move off it

PEP 619 is explicit: as of October 1, 2026, Python 3.10 has reached end of life, 3.10.22 was the final security release, and no further updates will be provided. The next branch to go is 3.11, in October 2027.

Supported branches today

Branch Status End of life
3.15 bugfix (released Oct 9, 2026) 2031-10
3.14 bugfix 2030-10
3.13 security 2029-10
3.12 security 2028-10
3.11 security 2027-10
3.10 end-of-life 2026-10-01

Find what still runs 3.10

Illustrative example.

# base images and CI matrices
grep -rnE "python:3\.10|python-version:.*3\.10" --include=Dockerfile* --include=*.yml --include=*.yaml .

# declared minimums and pinned interpreters
grep -rnE "requires-python|python_requires" --include=pyproject.toml --include=setup.cfg --include=setup.py .
cat .python-version 2>/dev/null

Example: a two-week plan

Illustrative example. Moving straight to 3.13 or newer skips another migration in October 2027.

Task Days Depends on
1. Inventory of services, jobs and images on 3.10 2 —
2. Pick target (3.13+), update CI matrix 1 1
3. Upgrade dependencies, fix deprecations 5 2
4. Rebuild images, run on real data 3 3
5. Roll out, remove 3.10 from CI 1 4

Important. If your Python comes from an OS vendor's package rather than python.org or an official image, the vendor's own support policy applies — check it instead of assuming either way. For upstream builds and the official python:3.10 images there is nothing more coming.

Checklist

  • ☐ Every service, job and image on 3.10 listed, with an owner
  • ☐ Target version chosen (3.13 or newer for a longer runway)
  • ☐ requires-python and CI matrix updated
  • ☐ Tests and a run on real data passed on the new version
  • ☐ 3.10 removed from CI so it does not come back
  • ☐ Next review booked before 3.11 EOL in October 2027

Turn the list into a plan

The project plan sheet takes tasks, owners, start and finish dates and dependencies, and counts the workdays for you — enough to get the migration scheduled this sprint.

Open the project plan →

Sources: Python Developer's Guide, "Status of Python versions"; PEP 619 (Python 3.10 release schedule); PEP 790 (Python 3.15 release schedule).

Source