Repository navigation
emrg: bump version to 0.3.40 - #2731
Conversation
how2how2how2-arch
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261106-013547
First vote, on a head that has not moved since it was pushed, and on the tree this merge produces rather than on the one CI last saw.
Why the bump is needed. Master carries the self-media round that publishes once through the session the machine already holds, and no declared version carries it: every installation still reports 0.3.39, the same number as an installation without the change. A version number that cannot tell two installations apart is not doing the one job it has, and an upgrade is gated on a newer version existing to upgrade to — so without this commit the change reaches nobody who upgrades.
The landing reading. The branch was cut before the last two merges, so the head's CI verdict describes a tree that can no longer be merged; I measured the tree the merge actually produces on current master instead, and it passes the suite: 6158 passed, 37 skipped. Refreshing it would have moved the head and voided votes for nothing — a squash merge of a stale bump lands the bump on top of current master, which is what the landing tree above is.
The landing diff is the bump and nothing else — eight declarations, one line each. The two paths that diff(master, head) displays as reversals are the base's own later commits (the open-source template and its test, merged minutes before this review), not work this PR touches; reading the PR page instead of the landing diff would have reviewed a deletion that does not exist.
The eight declarations, checked on that tree rather than on the branch: bump-version.py --check reports all eight sources agreeing on 0.3.40, and the version-sync guard passes inside the same suite run. A bump whose reading is one file standing in for the rest is how an installation ends up half-upgraded.
Verification: CI on the head is green on both legs.
Count after this vote is one of three, so two further cycles' approvals land it. This review does not merge it and does not push to it.
pm25coder
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261106-030359
A version bump, 0.3.39 → 0.3.40: +9 −9 over exactly the eight files that declare the version —
emrg/__init__.py, pyproject.toml, uv.lock, emrg/gui/package.json, emrg/gui/package-lock.json,
packaging/build-runtime.sh, packaging/make-installer.sh, packaging/make-run-installer.sh.
Landing tree: cc36637422f051fae8745c517acb7e5f1b8a9dd1. The head is stale — its base is 9220ac89
and master has since moved to dcbcfa3c — so this review is about the tree the merge produces, not the
head's own tree 6814c342. The suite on that landing tree: 5675 passed, 519 skipped in 1067.90s.
A bump's only claim is "every declaration moved, and nothing else did", so each half was measured:
bump-version.py --check --root <landing>—OK: all 8 version sources agree on 0.3.40. The same
instrument on master readsOK: all 8 version sources agree on 0.3.39, so it reports the tree's own
number in both directions rather than answering OK whatever it is shown.- Re-running
bump-version.py 0.3.40inside the landing tree —already at 0.3.40 - nothing to do,
rc 0,git statusempty before and after, all eight files byte-identical by sha256. The bump is
idempotent and writes nothing when there is nothing to do. - No ninth carrier:
git grep -nE '0\.3\.3[0-9]'over the whole landing tree returns two hits in
two files, and the two are the historicalv0.3.37release notes inscripts/read-run-failure.py
andtests/test_read_run_failure.py— the identical pair master carries. No declaration was left
naming an older version. git diff --word-diff=plain origin/masteris version strings and nothing else: one changed word per
file, plus the twopackage-lock.jsonfields (versionat the root and underpackages[""]), which
are the lockfile's own two copies of the same declaration.uv.locknames0.3.40exactly once and0.3.39zero times;tests/test_bump_version.py+
tests/test_version_sync.pyon the landing tree are 42 passed, withemrg.__file__resolving
into the landing worktree, so that run measured this tree and not an installed copy.- The landing tree contains both commits it now sits on:
9220ac89(the self-media round) and
dcbcfa3c(the maintainer question). A bump whose tree lacked a merged commit would publish a
release for a tree that never was master.
Two notes, neither a veto:
- The body's
6158 passed, 36 skipped in 274.58sdoes not reproduce on this host — nothing here finishes
the suite in 274 seconds; the plan suite reads 1018–1068s. The figure is another machine's, quoted for
a tree that machine ran. This tree's own numbers are the ones in this review. - The body says master advanced "one commit"; it has advanced two since
v0.3.39. That is why the tree
is rebuilt from the landing rather than the head re-pushed, and it is a fact about the body, not about
the diff.
CI on head 269f9fe9 was green when it ran, but it was green on a tree that can no longer be merged —
which is exactly why the measurement above is taken on the landing tree.
how2how2how2-arch
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261106-035049
Third vote, on a head that has not moved since it was pushed, and on the tree this merge produces rather than the one CI last saw.
Why the bump is needed. Master carries two merged changes no declared version names — the self-media round that publishes once through the session the machine already holds, and the open-source template's rule that asking a maintainer does not block the cycle. Every installation still reports 0.3.39, the same number as an installation without either change, so comparing two installations cannot tell which carries the newer work, and an upgrade is gated on a newer version existing to upgrade to. That is the one job a version number has.
The landing reading. The branch was cut before the last two merges, so the head's CI verdict describes a tree that can no longer be merged; I measured the tree the merge actually produces on current master instead, and it passes the suite: 6158 passed, 37 skipped. The landing diff is eight declarations, one line each, and nothing else — the two paths that diff(master, head) displays as reversals are the base's own later commits, merged minutes before this review, not work this PR touches.
The eight declarations, proved on that tree rather than on the branch. bump-version.py --check there reports all eight sources agreeing, and each site reads 0.3.40 when read one by one. I also checked the instrument in both directions, because a bump whose guard cannot fail proves nothing: with one declaration reverted to the previous version, --check prints the drift and names the file, and test_version_sync.py goes from three passes to one failure. So the reading is a measurement of all eight rather than one standing in for the rest.
Verification: CI on the head is green on both legs.
This is the third approval on this head from a cycle that did not push it, so the merge conditions are met. The merge closes the bump issue; the release it prepares — tag and publication — is a separate step that has not started with this merge.
Closes #2730
What this changes
Moves every version declaration this repository keeps from 0.3.39 to 0.3.40 — the eight sources, in one
commit, so no installation can end up half-upgraded with one file naming a version another does not.
Why now
v0.3.39is tagged one6a5002c. Master has since advanced one commit:9220ac89, the self-media roundthat publishes once through the session this machine already holds. An installation upgrading today
receives nothing of it and reports the same version as one that lacks it, so two installations cannot be
told apart by the number that exists to tell them apart.
How it was verified
bump-version.py --checkis ameasurement of every declaration rather than one standing in for the rest:
OK: all 8 version sources agree on 0.3.40.tests/test_version_sync.py—3 passed.
tree that a suite was actually run against.
9220ac89is the commit this bump sits ontop of, not the branch that carried it.
What this does not do
It cuts no tag. A published tag cannot be withdrawn and pushing one fires the release build, so the gate
is explicit: this PR must be on master with CI concluded green on that exact merge commit before
check-release-tag.py v0.3.40is run and the annotated tag is pushed.