Skip to content

Approved Python Versions

Status: 🟢 Active  |  Owner: Python Guild

Current Standard

Version Status Notes
Python 3.12 ✅ Recommended All new projects
Python 3.11 ✅ Supported Acceptable for new projects
Python 3.10 ⚠️ Minimum No new projects; existing services must plan upgrade
Python 3.9 and below ❌ Deprecated End-of-life; must migrate

Python follows an annual release cycle. The enterprise standard tracks the latest stable release (N) and the previous release (N-1).

Version Pinning

Pin the exact Python version in all service configurations:

# pyproject.toml
[tool.poetry]
python = "^3.12"

[tool.poetry.dependencies]
python = "^3.12"

In Docker builds, pin to the patch release:

FROM python:3.12.3-slim AS base

In CI, pin via the setup action:

- uses: actions/setup-python@v5
  with:
    python-version: '3.12.3'
    cache: 'poetry'

Using pyenv Locally

Developers should use pyenv to manage multiple Python versions:

pyenv install 3.12.3
pyenv local 3.12.3  # creates .python-version file (commit this)
python --version    # 3.12.3

The .python-version file must be committed to the repository so all developers and CI use the same version.

Upgrade Policy

  • Patch releases (3.12.2 → 3.12.3): Apply within 30 days of release.
  • Minor upgrades (3.11 → 3.12): Required within 2 quarters of the new version becoming the recommended standard.
  • Major upgrades (3.x → 3.x+1): Managed via a guild-coordinated migration campaign.

References


Last reviewed: 2025-Q4  |  Owner: Python Guild