You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Cut v0.3.37: every version declaration moves together #2706
Master now carries work that v0.3.36 — the latest published release — does not, so the next release needs its version declarations moved before a tag can name it.
What must hold for this to be finished:
every version declaration in the tree names 0.3.37, and scripts/bump-version.py --check exits 0 on it
tests/test_version_sync.py proves those declarations agree rather than assuming they do
the tag v0.3.37 is cut after the merge, by a later run, and only once master's Test run on the merge commit has concluded green
The tag is deliberately not part of this issue. build-release.yml fires on the tag and on nothing else, so a tag pushed onto a tree whose CI has not concluded ships a signed release nobody has verified — and a published tag cannot be taken back.
v0.3.34 is a tag with no release behind it and stays that way; it is not a version to bump from.
Reopened: the merge satisfied the bump, not the issue.
cd7ba6ad moved all eight declarations to 0.3.37, and that half is met — bump-version.py --check answers OK: all 8 version sources agree on 0.3.37 on master, and tests/test_version_sync.py proves the agreement rather than assuming it (3 passed on the merged tree).
What is still open is the last acceptance item, and it is the one this issue itself deferred: the tag does not exist.v0.3.37 is -- absent, so no release is published against this tree and nothing is installed from it.
What remains, in order:
master's Test run on the merge commit cd7ba6ad concludes green, both legs — run 41855249030 is in_progress at this reading, so this is not yet satisfied;
the annotated tag v0.3.37 is cut and pushed, which is the only trigger of build-release.yml;
that Build Release run concludes green across the whole platform matrix;
scripts/check-release-published.py v0.3.37 reports it published as Latest — not draft, not prerelease — with the full asset set.
Installing on the host is the host's own action and is not an acceptance item here.
Closing this issue on the merge alone would assert a release that does not exist, which is exactly why its body kept the tag out of the PR.
The tag is cut. The release is not published, so this issue stays open. Recording exactly what happened.
The tag: annotated v0.3.37 on cd7ba6ad7f756b1576107aaa0c0036f539862ddc, pushed and unmoved since (same sha locally and remotely). It was cut only after all four prechecks passed: bump-version.py --check → all eight sources on 0.3.37; check-release-tag.py v0.3.37 → green; v0.3.37 absent on both sides; tree clean. The Test run on that exact commit was completed/success (both legs) before the tag was pushed.
The build: run 41862508461 on cd7ba6ad, concluded failure, in two attempts.
job
attempt 1
attempt 2
verify-tag
success, 7s
success
verify-credentials
cancelled, 15m02s, no runner, 0 steps
cancelled, 15m02s, no runner, 0 steps
build ubuntu-24.04 x86_64
success, 10m12s
success, 11m08s
build ubuntu-24.04-arm aarch64
success, 10m12s
success, 10m04s
build windows-2025 x64
success, 14m53s
success, 11m41s
build macos-15 arm64
success, 8m25s
success, 8m12s
release
skipped
skipped
So all four platform artifacts were produced in both attempts — 414 MB Windows, 141 MB macOS, 263 MB and 244 MB Linux — and release never ran, because a cancelled job in the run leaves it skipped. gh release view v0.3.37 answers "release not found", and scripts/check-release-published.py v0.3.37 reports FAULT with rc 1.
The failing leg:verify-credentials. It requests a macos-15 runner and never acquired one: zero steps executed, no runner assigned, cancelled at exactly 15m02s on both attempts. Other macos-15 jobs in the same runs did acquire runners within minutes (the macOS build job started 11 minutes after the cancellation and finished in about 8), so this is specific to that job rather than to macOS capacity as a whole. The rerun reproduced it exactly, which is why a third attempt is not worth spending: the outcome is deterministic, not a flake.
What it leaves, and what would finish it:
A release build whose verify-credentials job actually acquires a runner, so the four built artifacts reach release and a v0.3.37 release object exists as Latest with the full asset set.
The tag must not be moved, deleted or re-cut. The same tag with a working build is the finish; a second tag would only spend another version number.
Since the job never ran, no credential verdict was reached. This says nothing about whether the notarization credentials are still accepted — that question is open, not answered.
One diagnostic gap observed while reading this, filed here rather than as its own issue because the tracker already has two live subjects: check-release-published.py's remedy for this failure points at scripts/read-run-failure.py, and that tool answers no failed job in run 41862508461 - nothing to explain because neither job failed — one was cancelled and one skipped. A run whose only non-success work was cancelled cannot be explained by the tool the reading recommends.
Third attempt, same result. Recording it because the number of identical attempts is the reading, not the repetition.
gh run rerun 41862508461 --failed was fired again about three hours after the second attempt, on the chance that this was runner capacity that had since changed. verify-credentials was queued at 19:05:01, never acquired a runner, and was cancelled at 19:20:03 — 15m02s, exactly as in attempts 1 and 2 — while all four build legs then acquired macos-15/ubuntu-24.04/windows-2025 runners within four seconds of each other and succeeded. release was skipped again. The tag is still on cd7ba6ad and no release exists.
So this is deterministic, not a flake, and it is not macOS capacity as a whole: the macOS build leg got a runner one minute later. The same verify-credentials job succeeded on 2026-11-03 in the v0.3.36 release (runner 1000013813, label macos-15), so the job's definition is not the variable either.
What would finish this is unchanged: a verify-credentials job that acquires a runner, so the four built artifacts reach release under this same tag. No second tag.
One thing this cycle did change, so the next attempt is cheaper to read: scripts/read-run-failure.py now explains a run that concluded failure with no failed job, naming the cancelled job, how long it held, and that no runner was ever assigned — where before it answered "nothing to explain". That is #2710 / #2711.
OK: v0.3.37 built green and is published -- not a draft, not a prerelease, 11 asset(s)
and GitHub's Latest is v0.3.37.
build run 41862508461, attempt 4, completed/success
tag v0.3.37 (annotated object caec3bac, commit cd7ba6ad)
11 assets: the two AppImages each with its .zsync, the two Linux .run/.tar.gz pairs,
and the macOS .pkg
The three attempts before this one failed identically, and the cause was never this tag
or this tree.verify-credentials requested macos-15, was never assigned a runner
(runner_name: null, zero steps executed), and was cancelled at 15m02s; release is
downstream of it, so it was skipped each time while all four builds succeeded. On attempt 4
the same job was assigned a runner and held 11 seconds — 21:44:28Z to 21:44:39Z. So the
notarization credentials were valid throughout, nothing in the repository changed between
attempt 3 and attempt 4, and the block was runner-pool capacity for one pinned label. That
is worth knowing the next time this job does not appear: a job that is never scheduled is
indistinguishable from a repository fault unless the runner field is read.
One fact stated plainly rather than left implied: v0.3.37 is cut at cd7ba6ad and does
not contain #2709, which landed after the bump. A release carrying it needs its own version
bump — a separate decision, not taken here.
Activity
how2how2how2-arch commentedon Nov 4, 2026
Handled by #2707
argszero commentedon Nov 4, 2026
Reopened: the merge satisfied the bump, not the issue.
cd7ba6admoved all eight declarations to0.3.37, and that half is met —bump-version.py --checkanswersOK: all 8 version sources agree on 0.3.37on master, andtests/test_version_sync.pyproves the agreement rather than assuming it (3 passed on the merged tree).What is still open is the last acceptance item, and it is the one this issue itself deferred: the tag does not exist.
v0.3.37is--absent, so no release is published against this tree and nothing is installed from it.What remains, in order:
cd7ba6adconcludes green, both legs — run41855249030isin_progressat this reading, so this is not yet satisfied;v0.3.37is cut and pushed, which is the only trigger ofbuild-release.yml;scripts/check-release-published.py v0.3.37reports it published as Latest — not draft, not prerelease — with the full asset set.Installing on the host is the host's own action and is not an acceptance item here.
Closing this issue on the merge alone would assert a release that does not exist, which is exactly why its body kept the tag out of the PR.
how2how2how2-arch commentedon Nov 4, 2026
The tag is cut. The release is not published, so this issue stays open. Recording exactly what happened.
The tag: annotated
v0.3.37oncd7ba6ad7f756b1576107aaa0c0036f539862ddc, pushed and unmoved since (same sha locally and remotely). It was cut only after all four prechecks passed:bump-version.py --check→ all eight sources on0.3.37;check-release-tag.py v0.3.37→ green;v0.3.37absent on both sides; tree clean. The Test run on that exact commit wascompleted/success(both legs) before the tag was pushed.The build: run
41862508461oncd7ba6ad, concluded failure, in two attempts.verify-tagverify-credentialsbuildubuntu-24.04 x86_64buildubuntu-24.04-arm aarch64buildwindows-2025 x64buildmacos-15 arm64releaseSo all four platform artifacts were produced in both attempts — 414 MB Windows, 141 MB macOS, 263 MB and 244 MB Linux — and
releasenever ran, because a cancelled job in the run leaves it skipped.gh release view v0.3.37answers "release not found", andscripts/check-release-published.py v0.3.37reportsFAULTwith rc 1.The failing leg:
verify-credentials. It requests amacos-15runner and never acquired one: zero steps executed, no runner assigned, cancelled at exactly 15m02s on both attempts. Othermacos-15jobs in the same runs did acquire runners within minutes (the macOS build job started 11 minutes after the cancellation and finished in about 8), so this is specific to that job rather than to macOS capacity as a whole. The rerun reproduced it exactly, which is why a third attempt is not worth spending: the outcome is deterministic, not a flake.What it leaves, and what would finish it:
verify-credentialsjob actually acquires a runner, so the four built artifacts reachreleaseand av0.3.37release object exists as Latest with the full asset set.One diagnostic gap observed while reading this, filed here rather than as its own issue because the tracker already has two live subjects:
check-release-published.py's remedy for this failure points atscripts/read-run-failure.py, and that tool answersno failed job in run 41862508461 - nothing to explainbecause neither job failed — one was cancelled and one skipped. A run whose only non-success work was cancelled cannot be explained by the tool the reading recommends.how2how2how2-arch commentedon Nov 4, 2026
Third attempt, same result. Recording it because the number of identical attempts is the reading, not the repetition.
gh run rerun 41862508461 --failedwas fired again about three hours after the second attempt, on the chance that this was runner capacity that had since changed.verify-credentialswas queued at 19:05:01, never acquired a runner, and was cancelled at 19:20:03 — 15m02s, exactly as in attempts 1 and 2 — while all fourbuildlegs then acquiredmacos-15/ubuntu-24.04/windows-2025runners within four seconds of each other and succeeded.releasewas skipped again. The tag is still oncd7ba6adand no release exists.So this is deterministic, not a flake, and it is not macOS capacity as a whole: the macOS build leg got a runner one minute later. The same
verify-credentialsjob succeeded on 2026-11-03 in thev0.3.36release (runner1000013813, labelmacos-15), so the job's definition is not the variable either.What would finish this is unchanged: a
verify-credentialsjob that acquires a runner, so the four built artifacts reachreleaseunder this same tag. No second tag.One thing this cycle did change, so the next attempt is cheaper to read:
scripts/read-run-failure.pynow explains a run that concludedfailurewith no failed job, naming the cancelled job, how long it held, and that no runner was ever assigned — where before it answered "nothing to explain". That is #2710 / #2711.how2how2how2-arch commentedon Nov 4, 2026
Released.
scripts/check-release-published.py v0.3.37reads:and GitHub's Latest is
v0.3.37.41862508461, attempt 4,completed/successv0.3.37(annotated objectcaec3bac, commitcd7ba6ad).zsync, the two Linux.run/.tar.gzpairs,and the macOS
.pkgThe three attempts before this one failed identically, and the cause was never this tag
or this tree.
verify-credentialsrequestedmacos-15, was never assigned a runner(
runner_name: null, zero steps executed), and was cancelled at 15m02s;releaseisdownstream of it, so it was skipped each time while all four builds succeeded. On attempt 4
the same job was assigned a runner and held 11 seconds — 21:44:28Z to 21:44:39Z. So the
notarization credentials were valid throughout, nothing in the repository changed between
attempt 3 and attempt 4, and the block was runner-pool capacity for one pinned label. That
is worth knowing the next time this job does not appear: a job that is never scheduled is
indistinguishable from a repository fault unless the runner field is read.
One fact stated plainly rather than left implied:
v0.3.37is cut atcd7ba6adand doesnot contain #2709, which landed after the bump. A release carrying it needs its own version
bump — a separate decision, not taken here.