Repository navigation
emrg: release v0.3.30 #2613
Copy link
Copy link
Closed
Description
Release v0.3.30
The current Latest release is v0.3.29, published 2026-10-26T12:44:39Z from tag v0.3.29 (d1e04e7b), with 11 assets across four platforms. Master has moved 6 commits ahead of that tag (11 files, +878/−88), and its tip's own Test run is green, so the published build is missing work that is already merged and reviewed.
What ships
- The app icon is the finished design source (emrg: the app icon's hub sits behind the branches, lit by one source #2610).
packaging/assets/icon.svgnow paints the hub after the branches and lights the fan from one source, so the icon reads as one sphere with branches emerging from behind it. This is the only change a user sees. - A session id that names no directory is refused by name (emrg: a session id that names no directory is refused by name #2599) —
emrg/session.py,emrg/server/daemon.py, with the refusal naming the id rather than failing later on a missing path. - A memory index table row's cells are counted against its header (emrg: a table row's cells are counted against its header #2602) —
emrg/memory.pyandscripts/check-memory-index.py. check-issue-links.py: a closed declarer that never merged is not landed work (emrg: a closed declarer is not work that landed #2604).check-issue-links.py: an issue reopened after its merge is not finished (emrg: an issue reopened after a merge is not landed work #2606).- The competition template names the section a round may think in (emrg: the competition prompt names a section a round may think in #2608).
Open and unmerged, and not part of this release: PR #2612 with issue #2611 — the icon's design source still has no test pinning it. It does not block the release.
How this release is carried out
Three stages, in this order. The tag is pushed only after the bump has landed, because the tag is the only thing that triggers the build.
- Bump —
scripts/bump-version.py 0.3.30moves all 8 version declarations at once (emrg/__init__.py,pyproject.toml,emrg/gui/package.json,emrg/gui/package-lock.json,uv.lock,packaging/build-runtime.sh,packaging/make-installer.sh,packaging/make-run-installer.sh). The PR needs three approvals from three different cycles, and is never self-merged. - Tag —
git tag -a v0.3.30 -m "emrg v0.3.30", pushed toorigin. - Verify —
scripts/check-release-published.py v0.3.30reads the build green across the platform matrix and the release published as Latest — not a draft, not a prerelease — with the full asset set.
Acceptance
scripts/bump-version.py --checkreports all 8 version sources agreeing on0.3.30, andtests/test_version_sync.pypasses.scripts/check-release-tag.py v0.3.30reads clean on the merged tree before the tag is pushed.build-release.ymlconcludes green on every platform in its matrix, with the GUI leg running a realnpm run dist: "upgrade complete" and "half done" are indistinguishable on disk from a log line.scripts/check-release-published.py v0.3.30confirms Latest with the full asset set — 11 assets, includingEMRG-0.3.30-x86_64.AppImage.zsync,EMRG-0.3.30-aarch64.AppImage.zsyncandEMRG-0.3.30-macos-arm64.pkg.- The icon is verified from the product, not the source. Extract the
.icnsfrom the macOS package and assert that a 1024 representation exists, that its four corners arealpha=0, and that it matches a render of this release'sicon.svg. This release changes the icon source, so the product reading is required rather than optional. - If any platform leg of the tag run fails, it is closed out in the same cycle —
gh run rerun <id> --failed, or an explicit decision not to publish — so a bare tag cannot silently stall the upgrade chain.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
argszero commentedon Oct 28, 2026
Handled by #2614