VVersions.dev

Modernize Python

Operational guides for modernizing Python: the Python 3.14 upgrade hub, Python 2-to-3, 3.8-to-3.12, and 3.12-to-3.14 migration paths, setup.py-to-pyproject.toml packaging, and dependency-error fixes.

Last verified · Updated May 22, 2026

Python modernization spans the legacy 2-to-3 jump and the steady 3.x cadence: distutils removal (3.12), the PEP 594 "dead batteries" removals (3.13), and lazy annotations plus the officially supported free-threaded (no-GIL) build (3.14). This hub links every supported upgrade path plus the workflows for the errors those upgrades surface.

What this covers

Start at the Python 3.14 upgrade hub for the breaking-change picture, then pick the source-to-target page matching the version you are on. Each page includes a repo-inspection prompt, step-by-step migration, test plan, and rollback guidance.

Version timeline

  • 3.14 — current, active (released 2025-10-07 · EOL 2030-10-31)
  • 3.13 — active (released 2024-10-07 · EOL 2029-10-31)
  • 3.12 — security_only (released 2023-10-02 · EOL 2028-10-31)
  • 3.8 — eol (released 2019-10-14 · EOL 2024-10-07)
  • 2.7 — eol (released 2010-07-03 · EOL 2020-01-01)

Python migration paths

Frequently asked questions

Which Python version should I target?

Python 3.14 is the current stable release (3.14.0 shipped 2025-10-07) and the recommended target. Python 3.13 is also fully supported. Python 3.12 is now in security-only maintenance through October 2028. If you are still on Python 2.7, treat the move to Python 3 as a separate, high-risk project before chasing the latest 3.x.