The only green Python

Today I learnt. Some fresh Python releases, including Python 3.13rc2 — which is the OK, I better had add it to the flows point for me at the moment 🤹

I get my Python from python.org, and I use Glyph’s great mopup tool to keep it updated.

I run it in a loop on all the versions I have installed:

#!/bin/bash

# Update installed Python versions.
python_versions=("python3.9" "python3.10" "python3.11" "python3.12" "python3.13t")
for PYTHON in "${python_versions[@]}"; do
    pipx run --python="$PYTHON" mopup
done

I was just staring at the output of this wondering why Python 3.9-3.11 weren’t updated when Hynek nicely pointed out to me that after PEP 602 — the new annual release cycle for Python — binary installers are only provided for the versions in Bugfix or Prerelease status.

Looking at the Status of Python Versions doc, currently that means that Python 3.12 is the only production version of Python that’s coloured green 🟢

Once we get there, to Python 3.13 and beyond, major versions will get two whole years of bugfix releases, so there should always be two production versions of Python available to you with the green status 🟢 — but until then we’re in this position where there’ll be only one.

This is good for helping people think about when they need to update — I’m not doing client work frequently now, but THEM — but I’m also thinking about it in terms of reducing the number of Python versions we support in CI. It feels like a lot of trees to support 5 full versions of Python for their entire life. 🌳