Repository navigation
build: pin one Python version in .python-version (3.14) - #239
Merged
Merged
Conversation
3 of 4 tasks
luca-belli
commented
Sep 28, 2026
| if current_index + 1 < len(self.question_order): | ||
| return self.question_order[current_index + 1] | ||
| except (ValueError, AttributeError): | ||
| except ValueError, AttributeError: |
Collaborator
Author
There was a problem hiding this comment.
weird flex but ok
Collaborator
Author
There was a problem hiding this comment.
Ha, agreed, it reads oddly. It is PEP 758: from 3.14 the parentheses are optional when an except lists several exceptions without as. Ruff 3.14 formatting drops them, so they stay gone as long as Ruff formats the code. If the team would rather keep them, the only way is to set Ruff's target back below 3.14, which brings back the second version number this PR removes.
luca-belli
force-pushed
the
ci/live-tests-job
branch
from
September 28, 2026 23:01
a5a8cad to
a0fc65f
Compare
luca-belli
force-pushed
the
ci/single-python-version
branch
from
September 28, 2026 23:01
63cdf4b to
2c18f67
Compare
luca-belli
force-pushed
the
ci/live-tests-job
branch
from
September 28, 2026 23:02
a0fc65f to
1847085
Compare
luca-belli
force-pushed
the
ci/single-python-version
branch
from
October 1, 2026 21:31
2c18f67 to
9c204cf
Compare
CI ran 3.11, local dev 3.13, and the Docker image 3.14, with nothing tying them together. `.python-version` is now the one place the version is set: - `uv sync` reads it, so the workflows drop their hardcoded `setup-python` steps. - `requires-python` becomes ">=3.14", and ruff's `target-version` is removed so ruff reads it from there. - The code-quality job fails if the Dockerfile's `FROM` line disagrees, since a `FROM` line cannot read the file. The lockfile loses the wheels and markers for Python < 3.14; no package version changes for a 3.14 environment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With the target now 3.14, ruff drops the parentheses around multi-exception `except` clauses (PEP 758). Formatting only; no behavior change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
luca-belli
force-pushed
the
ci/single-python-version
branch
from
October 1, 2026 21:32
9c204cf to
827e4ca
Compare
Resolve the live.yml conflict with the self-hosted runner change (#236). Keep main's runner comment, but drop the python-version: '3.11' that main added to setup-uv, so the live job uses .python-version like the rest of CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #236 → #235 → #234. Follows up the "why not 3.13?" thread on #235.
Summary
CI ran 3.11, local dev 3.13, and the Docker image 3.14, with nothing tying them together. Now
.python-version(3.14) is the one place the version is set, and there's a single supported version:uv syncreads.python-version, so every job loses its hardcodedsetup-pythonstep (3 inci.yml, 1 inlive.yml).pyproject.toml:requires-pythongoes from>=3.11to>=3.14. Ruff'starget-versionis removed, because Ruff falls back torequires-python.FROMline can't read a file, so a new code-quality step fails if the Dockerfile'sFROM python:X-slimdisagrees with.python-version.uv.lock: drops the wheels and markers for Python < 3.14. No package versions change for a 3.14 environment.except (A, B):asexcept A, B:(PEP 758). 13 lines across 7 files, formatting only.AGENTS.mdanddocs/ARCHITECTURE-SPINE.md.Breaking for anyone installing outside Docker on Python 3.11–3.13:
uv syncnow requires 3.14. Locally,uv syncrebuilds.venvon 3.14 and downloads it if needed.Test plan
uv run pytest -m "not live"on Python 3.14.6: 1173 passedruff format --check .andruff check .passFROM python:3.14-slim🤖 Generated with Claude Code