Skip to content

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-035 records 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.ps1 is proven to resolve and invoke the GitHub Release Bootstrap-eMuleBBSuite.ps1 asset, with hash-sidecar verification when the sidecar exists (stable-specific rerun waived 2026-07-05; RC3 proof passed, and the stable release publishes Bootstrap-eMuleBBSuite.ps1 plus Bootstrap-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 unique local-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-overnight campaign once as soak sign-off (overnight certification + cpu-heavy + live-process-monitor).
  • Run at least one Windows-VM matrix smoke on win10+win11 (package-smoke and package-helper-install) to prove the installer on clean OS images.
  • emulebb-rust stays out of 0.7.x ship scope (forward 0.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-rust preview 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):

  1. ~~Lock the RC3 candidate heads~~ — recorded in the RC3 changelog.
  2. ~~Run test certification --profile fast on the locked heads~~ — passed for shipped scope, recorded in CI-035.
  3. ~~Regenerate the x64/ARM64/diagnostics (and aMuTorrent x64) packages~~ — SHA-256 + SBOM hashes recorded in CI-035 and the RC3 changelog.
  4. ~~Run the Pages install.ps1 dry-run wrapper proof~~ — passed.
  5. ~~Rerun the tracked clean-worktree audit~~ — passed.
  6. ~~Finalize the RC3 changelog~~ — done.
  7. ~~Operator tag instruction~~ — given; emulebb-v0.7.3-rc.3 published.

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 edition as the public product name.
  • [ ] Release notes use eMuleBB as 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.md and 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 main as 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 main commit.
  • [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.