Scheduled CI: the Python 3.10 jobs could never pass - #34
Conversation
… a dependency
The Fresh Install matrix tests Python 3.10 and 3.14, and pyproject declares
requires-python = ">=3.10". The Build Wheel step then ran:
python -c "import tomllib; ..."
tomllib entered the stdlib in 3.11. So all three 3.10 jobs (ubuntu, macos,
windows) failed deterministically at that line, on every scheduled run since
2026-08-03, while 3.14 passed.
The wheel itself was never the problem. The log says "Successfully built
rigout-0.3.1-py3-none-any.whl" immediately before the traceback, and the
traceback frame is File "<string>", line 1 - the inline -c, not the build.
That matters because the auto-filed issue (#28) says a scheduled failure with
no code change is "almost certainly a newly published dependency" and points
at resolved dependency versions. Here that hypothesis was wrong and it is the
reason this sat for three weeks: anyone who followed it went looking through
dependency bounds for a break that was six lines away in our own workflow.
Fix is the standard fallback, with tomli installed only where it is needed.
Both branches were executed before pushing - tomllib present and tomllib
forced absent - and both return 0.3.1.
Note, deliberately not changed: scheduled-ci.yml has a second tomllib use in
Compare Caps Against Latest On PyPI. That job pins Python 3.12, so it is
correct today and touching it would widen this diff. It would break the same
way if that pin ever moved below 3.11.
Jules ReviewCOVERAGE: 028d246 1 files SummaryThe PR correctly resolves a scheduled CI failure on Python 3.10 jobs by conditionally installing VERDICT: approve This review never edits code or force-blocks a merge. No blocking issues were found, so this PR was auto-approved. |
|
Verified on this branch rather than argued for. Dispatched The three jobs that had failed on every scheduled run since 2026-08-03: The run as a whole still shows red, and not for a reason in this diff. That is the artifact upload failing to resolve GitHub's own endpoint. GitHub was mid-incident: So the change is proven and the remaining red is external. Re-running the affected jobs now that the API is responding again. |
Closes #28.
What is broken
The
Fresh Installmatrix tests Python 3.10 and 3.14, andpyproject.tomldeclaresrequires-python = ">=3.10". TheBuild Wheelstep then runs:tomllibentered the stdlib in 3.11. So all three 3.10 jobs (ubuntu, macos, windows) have failed deterministically at that line on every scheduled run since 2026-08-03, while 3.14 passed.The wheel was never the problem
From the log of run 32005130665, immediately before the traceback:
File "<string>", line 1is the inline-c, not the build.Why this sat for three weeks
The auto-filed issue says a scheduled failure with no code change is "almost certainly a newly published dependency" and directs the reader to compare resolved versions against the bounds in
pyproject.toml. That is a reasonable default and it was wrong here. Anyone following it went hunting through dependency bounds for a break that was six lines away in our own workflow. Worth knowing that the template can point away from the cause.The fix
The standard fallback, with
tomliinstalled only where it is needed:Both branches were executed before pushing,
tomllibpresent andtomllibforced absent so the fallback ran, and both return0.3.1. The exact string bash receives was also checked after YAML block-indent stripping, since the snippet is indentation-sensitive.Deliberately not changed
scheduled-ci.ymlhas a secondtomllibuse in Compare Caps Against Latest On PyPI. That job pins Python 3.12, so it is correct today and changing it would widen this diff. It would break the same way if that pin ever moved below 3.11.