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
The release lags master: cut 0.3.40 so an upgrade carries the self-media publish round #2730
Master declares version 0.3.39, and v0.3.39 is already tagged on e6a5002c. Master has since
advanced one commit — 9220ac89, the self-media round that publishes once through the session the
machine already holds — which no declared version carries.
Why that is a problem
An installation that upgrades today receives the self-media change only if a newer version exists to
upgrade to; on 0.3.39 it lacks the change and still reports the same version number as an installation
that has it. Comparing two installations then cannot tell which carries the newer work, which is exactly
what a version number is for.
What the fix must satisfy
Every version declaration this repository keeps moves to 0.3.40 in one commit — no installation
may end up half-upgraded, with one file naming a version another does not, and the reading that proves
it must be a measurement of all of them rather than one standing in for the rest.
The version-sync test passes on the bumped tree, not on the tree before the bump.
The change being released is measured where it landed on master, not only on the branch that carried it.
No tag is pushed by the pull request that does this. A published tag cannot be withdrawn and
pushing one fires the release build, so the gate is explicit: the bump must be on master with CI
concluded green on that exact merge commit before anything is tagged.
Acceptance
python3 scripts/bump-version.py --check reports all eight declarations agreeing on 0.3.40.
tests/test_version_sync.py passes on the bumped tree.
The commit is on master.
python3 scripts/check-release-tag.py v0.3.40 passes on that commit, and only then is the annotated
tag pushed.
The bump landed on master as 6e70bc7d ("emrg: bump version to 0.3.40", PR #2731, merged 2026-11-05T19:56:31Z). All eight version declarations on master now read 0.3.40 — bump-version.py --check reports them agreeing, and the version-sync guard passes on the merged tree.
What this closes and what it does not. This issue names the lag between master and the declared version, and that lag is gone: an installation that upgrades from here on can see a newer version, and master no longer carries merged work under a version number that predates it. The release is the next stage and it has not started: no tag has been pushed, so nothing has been published, and the acceptance items that require check-release-tag.py on the tag commit and a published, non-draft, non-prerelease release are still ahead.
What remains, in order:
The Test run on 6e70bc7d concludes green — the gate is that exact merge commit, not the branch that carried it.
An annotated v0.3.40 tag is pushed, which is the only trigger of the release build.
The release build is read to its end, per platform leg.
scripts/check-release-published.py v0.3.40 reports the release published as Latest, not a draft and not a prerelease, with the full asset set.
Until step 4 passes, the version number is bumped but not shipped, and this issue should be read as tracking that second half rather than the bump.
The tag is cut.v0.3.40 is now an annotated tag on 6e70bc7d, pushed at 2026-11-05T22:5xZ, and
that is a claim with its own two readings rather than a statement about the merge:
git ls-remote --tags origin 'v0.3.40*' answers two lines — refs/tags/v0.3.40 = 64ebd080, and refs/tags/v0.3.40^{} = 6e70bc7d. The ^{} line is the peel, and it is what the release build
reads: build-release.yml refuses an object.type that is not tag, so a lightweight tag here would
have been a guaranteed red build and a version that shipped dead.
The API agrees from the other side: git/ref/tags/v0.3.40 answers type=tag, and the tag object
itself carries tagname=v0.3.40, target=commit 6e70bc7d.
Before any of that, the two gates this issue's own acceptance names:
The tree's Test concluded green on the commit being tagged — run 42098668735 on 6e70bc7d read completed / success with both legs finished (test, test-windows). The tag gates on that commit,
not on the branch that carried it.
The tag name resolves to the version the tagged tree declares — bump-version.py --check reads all
eight declarations agreeing on 0.3.40, and check-release-tag.py v0.3.40 answers OK: tag v0.3.40 names the version this tree declares.
What is left, and this issue stays open for it. Pushing the tag fired build-release.yml as run 42125656608, which read queued at the reading this cycle took — a park, never a pass. Nothing
here says 0.3.40 is published: no release object exists yet, no asset exists yet, and the four platform
legs (macOS signing and notarization among them) have not run. The release is closed by check-release-published.py v0.3.40 answering non-draft, non-prerelease, Latest and the full asset set —
and only then does this issue close. The installed copy is a further step after that: install/version.txt
still reading 0.3.39 is the host's upgrade, not a defect here.
Published.check-release-published.py v0.3.40 answers OK: v0.3.40 built green and is published -- not a draft, not a prerelease, 11 asset(s), and every acceptance item this issue named is now a
reading rather than a hope:
The build concluded green on the tagged commit — run 42125656608, completed / success, all
four platform legs finished success, the macOS leg (signing and notarization) among them. It ran
18 minutes, which is why the earlier reading said queued: a build that has not concluded is a park,
and nothing here was re-run to hurry it.
The release object exists and is the public one — draft=false, prerelease=false, 11 assets: EMRG-0.3.40-macos-arm64.pkg, EMRG-0.3.40-windows-x64.exe, EMRG-0.3.40-windows-x64.zip, the three
Linux bundles with their .tar.gz/.run, plus two AppImage and two .zsync.
GitHub's Latest points at this tag — releases/latest answers v0.3.40, so an installation
checking for updates sees 0.3.40 as the version to move to, which was the whole point of the bump.
What still is not true, and is nobody's defect here: the copy installed on this machine reads 0.3.39 in install/version.txt. A merge publishes nothing, a tag publishes nothing, and a green build
publishes nothing to a host — only the host's own upgrade moves the installed copy, and that is the
host's action to take.
Activity
argszero commentedon Nov 5, 2026
Handled by #2731
how2how2how2-arch commentedon Nov 5, 2026
The bump landed on master as
6e70bc7d("emrg: bump version to 0.3.40", PR #2731, merged 2026-11-05T19:56:31Z). All eight version declarations on master now read 0.3.40 —bump-version.py --checkreports them agreeing, and the version-sync guard passes on the merged tree.What this closes and what it does not. This issue names the lag between master and the declared version, and that lag is gone: an installation that upgrades from here on can see a newer version, and master no longer carries merged work under a version number that predates it. The release is the next stage and it has not started: no tag has been pushed, so nothing has been published, and the acceptance items that require
check-release-tag.pyon the tag commit and a published, non-draft, non-prerelease release are still ahead.What remains, in order:
6e70bc7dconcludes green — the gate is that exact merge commit, not the branch that carried it.v0.3.40tag is pushed, which is the only trigger of the release build.scripts/check-release-published.py v0.3.40reports the release published as Latest, not a draft and not a prerelease, with the full asset set.Until step 4 passes, the version number is bumped but not shipped, and this issue should be read as tracking that second half rather than the bump.
argszero commentedon Nov 5, 2026
The tag is cut.
v0.3.40is now an annotated tag on6e70bc7d, pushed at 2026-11-05T22:5xZ, andthat is a claim with its own two readings rather than a statement about the merge:
git ls-remote --tags origin 'v0.3.40*'answers two lines —refs/tags/v0.3.40=64ebd080, andrefs/tags/v0.3.40^{}=6e70bc7d. The^{}line is the peel, and it is what the release buildreads:
build-release.ymlrefuses anobject.typethat is nottag, so a lightweight tag here wouldhave been a guaranteed red build and a version that shipped dead.
git/ref/tags/v0.3.40answerstype=tag, and the tag objectitself carries
tagname=v0.3.40,target=commit 6e70bc7d.Before any of that, the two gates this issue's own acceptance names:
42098668735on6e70bc7dreadcompleted / successwith both legs finished (test,test-windows). The tag gates on that commit,not on the branch that carried it.
bump-version.py --checkreads alleight declarations agreeing on
0.3.40, andcheck-release-tag.py v0.3.40answersOK: tag v0.3.40 names the version this tree declares.What is left, and this issue stays open for it. Pushing the tag fired
build-release.ymlas run42125656608, which readqueuedat the reading this cycle took — a park, never a pass. Nothinghere says 0.3.40 is published: no release object exists yet, no asset exists yet, and the four platform
legs (macOS signing and notarization among them) have not run. The release is closed by
check-release-published.py v0.3.40answering non-draft, non-prerelease, Latest and the full asset set —and only then does this issue close. The installed copy is a further step after that:
install/version.txtstill reading
0.3.39is the host's upgrade, not a defect here.argszero commentedon Nov 5, 2026
Published.
check-release-published.py v0.3.40answersOK: v0.3.40 built green and is published -- not a draft, not a prerelease, 11 asset(s), and every acceptance item this issue named is now areading rather than a hope:
42125656608,completed / success, allfour platform legs finished
success, the macOS leg (signing and notarization) among them. It ran18 minutes, which is why the earlier reading said
queued: a build that has not concluded is a park,and nothing here was re-run to hurry it.
draft=false,prerelease=false, 11 assets:EMRG-0.3.40-macos-arm64.pkg,EMRG-0.3.40-windows-x64.exe,EMRG-0.3.40-windows-x64.zip, the threeLinux bundles with their
.tar.gz/.run, plus twoAppImageand two.zsync.releases/latestanswersv0.3.40, so an installationchecking for updates sees 0.3.40 as the version to move to, which was the whole point of the bump.
What still is not true, and is nobody's defect here: the copy installed on this machine reads
0.3.39ininstall/version.txt. A merge publishes nothing, a tag publishes nothing, and a green buildpublishes nothing to a host — only the host's own upgrade moves the installed copy, and that is the
host's action to take.