eMule Broadband Edition 0.7.3 Release Checklist¶
This is the operator checklist for the 0.7.3 release train. RC1/RC2 rows are
historical where marked; active rows now target emulebb-v0.7.3-rc.3 and then
stable emulebb-v0.7.3.
Do not record stale proof here; every row must be refreshed on the selected
reviewed main commit.
Proof Status¶
Final proof resumed by operator direction on 2026-05-17. Stable 0.7.3 shipped
on 2026-07-05 after the operator waived the remaining stable live, soak, and
Windows-VM proof rows and authorized publication. Those waived rows are recorded
as waived, not passed. Stable package assets and hashes are recorded in
CI-035.
emulebb-v0.7.3-rc.3 is PUBLISHED (2026-06-21, app fd17a04, with the
amutorrent-v3.8.8-emulebb-v0.7.3-rc.3 companion). The relaxed-gate Fast
certification, package/SBOM/hash recording, the Pages install.ps1 dry-run
proof, the clean-worktree audit, and the operator tag instruction are all
complete; the authoritative recorded evidence is in
CI-035 and the
RC3 changelog. The stable final gate is now
historical; the remaining live/soak/VM rows were waived by the operator on
2026-07-05.
Release freeze is active. No new feature, refactor, UI polish, warning-debt, or
roadmap work enters RC3/final; only direct release-gate blockers, package/proof
fixes, and release-documentation corrections may land before tag readiness. The
2026-06-19 operator scope decision keeps RC3/final on the existing PowerShell
MFC+aMuTorrent bundle and excludes qBittorrentBB, emulebb-rust, TrackMuleBB,
uv, and the Python installer. Continue one gate at a time, record fresh
evidence, and do not create Git tags until the operator gives a separate tagging
instruction.
Stable closeout decision (2026-07-05): the operator accepted the remaining
stable live, soak, and VM proof rows as waived based on prior RC3 proof and
release confidence. These rows are not to be described as passed. Stable package
assets were generated by the GitHub release workflows with
--release-version 0.7.3 and published as emulebb-v0.7.3 plus the
amutorrent-v3.8.8-emulebb-v0.7.3 companion.
Gate Revalidation¶
- [x] RELEASE-0.7.3 has no open RC-blocking task without
item-level acceptance;
CI-035records the stable waiver. - [x] RELEASE-0.7.3-EXECUTION-PLAN has no unaccepted blocking item remaining after the 2026-07-05 waiver.
- [x] Every RC-blocking item doc records the implementation commit, validation evidence, or waiver disposition.
- [x] Any accepted inconclusive live-network result records the external condition or operator acceptance that blocked proof.
- [x] Pages
install.ps1is proven to resolve and invoke the GitHub ReleaseBootstrap-eMuleBBSuite.ps1asset, with hash-sidecar verification when the sidecar exists (stable-specific rerun waived 2026-07-05; RC3 proof passed, and the stable release publishesBootstrap-eMuleBBSuite.ps1plusBootstrap-eMuleBBSuite.ps1.sha256). - [x] qBittorrentBB is absent from RC3/final suite defaults, package proof, lifecycle scripts, Pages install claims, and generated release copy.
Required Campaign Gate¶
The canonical RC-blocking proof is the quick campaign execution. The rows under "Campaign Expanded Rows" are the leaf evidence commands that this gate tracks or executes; keep them visible so failures can be assigned to the correct phase.
Relaxed gate (operator decision 2026-06-12): for RC candidates the binding
proof is a passing test certification --profile fast for the shipped scope.
The live quick-campaign --execute row and the live-network expanded rows are
operator-accepted/non-blocking, and emulebb-rust preview tests are out of
ship scope. See CI-035 for the recorded proof. The campaign
report itself is warn-only; after the rc.3 reconciliation the campaign's five
binding rows are the Fast certification, the x64/ARM64/aMuTorrent package
gates, and the clean-worktree provenance check.
Final release gate (stable 0.7.3): the relaxed RC gate did not carry
over to the stable tag. The following final live/soak/VM rows were waived by the
operator on 2026-07-05:
- Run the quick-campaign live rows for real and require them to pass:
installer-controller-surface,release-expanded-quick,stabilization-stress-quick(for the uniquelocal-dumps-crash-smoke), and the aMuTorrent live trio (amutorrent-clean-startup/-emulebb-ui/-resilience), with--live-wire-inputs-file. - Run the
emulebb-0.7.3-overnightcampaign once as soak sign-off (overnight certification +cpu-heavy+live-process-monitor). - Run at least one Windows-VM matrix smoke on win10+win11 (
package-smokeandpackage-helper-install) to prove the installer on clean OS images. emulebb-ruststays out of0.7.xship scope (forward0.8.*only).
Run python -m emule_workspace ... commands from
$env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build. Use absolute
$env:EMULEBB_WORKSPACE_ROOT\... paths when passing local input files.
- [x]
python -m emule_workspace test release-campaign --campaign emulebb-0.7.3 - [x]
python -m emule_workspace test release-campaign --campaign emulebb-0.7.3 --execute(waived by operator 2026-07-05; not run for stable)
emulebb-0.7.3 is the stable quick campaign ID in emulebb-build-tests; RC1
release tags and assets still use 0.7.3-rc.1.
Campaign Expanded Rows¶
- [x]
python -m emule_workspace test certification --profile fast(2026-06-12,--test-network offline; passed shipped scope:validate+ all build steps;emulebb-rustpreview failures accepted out of scope) - [x]
python -m emule_workspace test live-e2e --profile release-expanded-quick --fail-fast --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile cpu-heavy-quick --fail-fast(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile stabilization-stress-quick --fail-fast --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test amutorrent-clean-startup --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json --rest-webserver-scheme https --keep-artifacts(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test amutorrent-emulebb-ui --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json --rest-webserver-scheme https --keep-artifacts(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test amutorrent-resilience --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json --rest-webserver-scheme https --keep-artifacts(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile ui-resource-depth --fail-fast - [x]
python -m emule_workspace package-release --config Release --platform x64 --release-version 0.7.3(GitHub Actions publish-release workflow run 28752898974) - [x]
python -m emule_workspace package-release --config Release --platform ARM64 --release-version 0.7.3(GitHub Actions publish-release workflow run 28752898974) - [x]
python -m emule_workspace package-amutorrent --config Release --platform x64 --release-version 0.7.3(GitHub Actions publish-release workflow run 28752899013) - [x]
powershell -NoProfile -ExecutionPolicy Bypass -File $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-pages\install.ps1 -DryRun -Bundle Full(stable-specific rerun waived 2026-07-05; RC3 dry-run passed) - [x]
python repos\emulebb-tooling\ci\check-clean-worktree.py
Run certification with the required local live inputs and Arr roots when those
are needed by the operator environment, for example
--live-wire-inputs-file, --radarr-movie-root, and --sonarr-series-root.
Record certification reports, command summaries, commits, log paths, package
paths, SBOM paths, and SHA-256 hashes in CI-035.
package-release is the package verification gate. It must fail instead of
writing accepted manifests when a ZIP is missing a required runtime/doc file,
does not contain the full stock language DLL set, contains a language DLL for
the wrong architecture, contains source/build/debug artifacts, or cannot record
per-file SHA-256 hashes and SPDX SBOM provenance in the package manifest.
Release-version note: stable publication used explicit --release-version 0.7.3
inputs through the GitHub Actions publish workflows, so no older
ACTIVE_EMULEBB_RELEASE_VERSION default can rename the final assets.
Current state: CI is green on current main (Nightly 2026-06-21; Controlled
Smoke and RC Package Proof 2026-06-20), and build commit fb6e286 (VPN Guard
config forwarding through certification) is pushed — emulebb-build main is now
a7e1aa4. The earlier blockers (the failed 2026-06-05 aggregate quick campaign
and the WinError 10051 outbound-network outage) are resolved. The default quick
campaign plans 18 commands: Hyper-V VM proof is on-demand/nonblocking, and the
long-running live-process-monitor is isolated behind
installer-controller-surface-soak. The RC3 candidate heads are recorded in
the RC3 changelog; the Fast certification and
package refresh on those locked heads are done and published (see
CI-035). The remaining stable live/soak/VM rows below were
waived by the 2026-07-05 operator decision.
The next required aggregate command is:
python -m emule_workspace test release-campaign --campaign emulebb-0.7.3 --execute --test-network all --continue-on-failure `
--live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json `
--vpn-guard-live-config $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\vpn-guard-live.local.json
Full overnight certification and real-profile monitoring are formal
overnight-full soak/confidence evidence for failure diagnosis and are not
part of the quick RC1 package gate.
Proof rows are head-sensitive: every stable-gate proof row must be rerun on the
locked stable 0.7.3 heads when that cut starts. Older package manifests are
rehearsal artifacts and must not be reused as final release hashes; recent live
reports are supporting signal only where CI-035 classifies
them. (The rc.2-era proof-invalidation notes for FEAT-058/059/060/061/071 are
now historical — those features shipped in rc.2.)
RC3 queue (DONE — published 2026-06-21):
- ~~Lock the RC3 candidate heads~~ — recorded in the RC3 changelog.
- ~~Run
test certification --profile faston the locked heads~~ — passed for shipped scope, recorded in CI-035. - ~~Regenerate the x64/ARM64/diagnostics (and aMuTorrent x64) packages~~ — SHA-256 + SBOM hashes recorded in CI-035 and the RC3 changelog.
- ~~Run the Pages
install.ps1dry-run wrapper proof~~ — passed. - ~~Rerun the tracked clean-worktree audit~~ — passed.
- ~~Finalize the RC3 changelog~~ — done.
- ~~Operator tag instruction~~ — given;
emulebb-v0.7.3-rc.3published.
Overnight-Full Campaign¶
These full-duration rows belong to the emulebb-0.7.3-overnight campaign.
Run them when diagnosing release-candidate failures or collecting deeper soak
confidence:
- [x]
python -m emule_workspace test certification --profile overnight(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test release-campaign --campaign emulebb-0.7.3-overnight --execute(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile release-expanded --fail-fast --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile cpu-heavy --fail-fast(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile installer-controller-surface-soak --fail-fast(waived 2026-07-05; not run for stable) - [x]
python -m emule_workspace test live-e2e --profile stabilization-stress --fail-fast --live-wire-inputs-file $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build-tests\live-wire-inputs.local.json(waived 2026-07-05; not run for stable)
The blocking release campaign uses the quick variants plus targeted aMuTorrent
proofs. The overnight-full campaign is tracked separately so long-duration
soak status cannot be confused with the repeatable RC package gate.
Release Identity¶
- [ ] Release notes use
eMule broadband editionas the public product name. - [ ] Release notes use
eMuleBBas the compact app/mod/API name. - [ ] RC2 release notes are refreshed only after the operator gives the RC2 go.
- [ ] RC2 changelog is maintained during RC2 preparation as
RELEASE-0.7.3-RC2-CHANGELOG.mdand finalized at RC2 go. - [ ] RC2 changelog includes a separate RC1-vs-stock/community-baseline section with the RC1 release date from the GitHub release record.
- [ ] Package-facing README identifies reviewed
mainas the 0.7.3 RC1 release source and does not depend on a broadband stabilization branch. - [ ] Annotated RC tag is
emulebb-v0.7.3-rc.1. - [ ] Annotated RC tag points at the selected reviewed
maincommit. - [x] x64 RC asset is
emulebb-0.7.3-rc.1-x64.zip. - [x] x64 RC manifest is
emulebb-0.7.3-rc.1-x64.manifest.json. - [x] ARM64 RC asset is
emulebb-0.7.3-rc.1-arm64.zip. - [x] ARM64 RC manifest is
emulebb-0.7.3-rc.1-arm64.manifest.json. - [x] Suite bootstrapper asset is
Bootstrap-eMuleBBSuite.ps1. - [x] Suite bootstrapper hash asset is
Bootstrap-eMuleBBSuite.ps1.sha256. - [x] Optional aMuTorrent x64 controller asset is
emulebb-0.7.3-rc.1-amutorrent-x64.zip. - [x] Optional aMuTorrent x64 controller manifest is
emulebb-0.7.3-rc.1-amutorrent-x64.manifest.json. - [x] qBittorrentBB is not an RC3/final asset.
- [x] emulebb-rust, TrackMuleBB,
uv, and the Python setup CLI are not RC3/final assets. - [x] Each ZIP contains exactly the full stock language DLL set under
eMule\lang. - [x] Each ZIP contains package-facing README, release notes, GPL text, third-party notices, SPDX SBOM, and REST docs. Legacy web templates are frozen baggage and must not be shipped in RC assets.
- [x] Package manifests record the ZIP hash, selected executable hash, expected language DLL list/count, SBOM hash, per-file package hashes, bootstrapper asset name, bootstrapper SHA-256, and bootstrapper SHA-256 path.
- [x] Package notes state that ZIPs are not code-signed, contain no debug
symbols, and do not bundle optional
MediaInfo.dll.
Final Operator Steps¶
- [x] Confirm no active workspace repo has unrelated uncommitted changes at the selected release heads.
- [x] Confirm fresh x64 and ARM64 package hashes are recorded in CI-035.
- [x] Confirm fresh x64 and ARM64 package SBOM hashes are recorded in CI-035.
- [x] Confirm the suite bootstrapper SHA-256 is recorded in CI-035.
- [x] Confirm the optional aMuTorrent x64 package hash is recorded in CI-035 if that asset is published.
- [x] Confirm the optional aMuTorrent x64 package SBOM hash is recorded in CI-035 if that asset is published.
- [x] Confirm release artifacts include or link the active candidate release notes and changelog before tag approval.
- [x] Create the annotated stable tag only after package verification, operator waiver, and separate operator instruction.
Tag closure: emulebb-v0.7.3 is created and published (2026-07-05). The
historical emulebb-v0.7.3-rc.3 tag remains published from 2026-06-21.