From 59eccba0a0e6ed6fa075b005dde71034a52bab5a Mon Sep 17 00:00:00 2001 From: Jean-Pierre Martineau Date: Mon, 21 Sep 2026 21:14:52 -0400 Subject: [PATCH] Every build runs on 3.14 JP builds with 3.14 now, so the workflows do too. The lint job moves from 3.10, the packaging build job and the release's site rebuild and PyPI build from 3.12, and the installers from 3.10. The test matrix is untouched: it still runs every version from 3.10 up, because 3.10 is still the floor. The installers' comment said the oldest Python was chosen on purpose, for reach. The reach that matters on Linux comes from glibc, and that comes from the runner, so the Linux legs stay on ubuntu-22.04 and the comment now says that. The binaries carry 3.14 from the next release; 0.9.0's were built on 3.10. The changelog gains the 3.14 entry JP wrote in another session, plus a line for the downloads. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 4 ++-- .github/workflows/github-release.yml | 2 +- .github/workflows/installers.yml | 7 ++++--- .github/workflows/release.yml | 2 +- CHANGELOG.md | 7 +++++++ 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 238e9ca..30dce6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.14" cache: pip cache-dependency-path: pyproject.toml @@ -98,7 +98,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - run: pip install build twine diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml index dcec08f..f8d6d16 100644 --- a/.github/workflows/github-release.yml +++ b/.github/workflows/github-release.yml @@ -243,7 +243,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Rebuild the site from this release run: | diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index d13ddd5..16b8818 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -59,9 +59,10 @@ jobs: - uses: actions/setup-python@v5 with: - # Oldest supported version on purpose: a binary built against an older glibc - # and an older Python runs on more machines than one built against the newest. - python-version: "3.10" + # The Python the project builds with, bundled into every binary. How widely a + # Linux binary runs is set by the runner's glibc, which is why the Linux legs + # stay on ubuntu-22.04 rather than ubuntu-latest. + python-version: "3.14" - run: pip install . pyinstaller diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0cd786a..eae06c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - run: pip install build twine diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e776ef..fb0b84f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,13 @@ one caveat SemVer makes for a leading zero: while the major version is still `0` ## [Unreleased] +### Added + +- **Python 3.14 is supported.** The full test suite passes on it, and CI now tests it on + Linux, Windows and macOS. Python 3.10 is still the oldest version MeshTerm runs on. +- **The standalone downloads are built with Python 3.14**, and carry it inside them in + place of 3.10. Nothing changes for how you run them. + ### Changed - **A type-1 node is a companion everywhere.** 0.9.0 called it three different things: