Repository navigation
0.21.0 release checklist #795
Description
What this tracks
0.21.0 is on the big-release branch (124 commits since v0.20.0, tip 1fd699b at the time of writing). It adds Karaoke Mode, Performance Mode (formerly Streamer), a stem choice and saved mix per mode, a GPU video encoder, a redesigned Settings dialog and a round of hardening. It is not released, and a draft pull request from big-release to main carries it. This issue lists what has to happen before the release, and links the problems found so far.
Merging the pull request publishes the Docker :edge image, so it is merged at release time only, as a merge commit and not a squash.
Before the release
Checks that need a person or a machine I do not have in the loop:
- One full Playwright run: 625 passed, 7 skipped (hardware or host gated), 0 failed, 0 flaky of 632 tests, on 2026-10-11 (
node scripts/test-e2e-parallel.mjs). It found and fixed two real bugs (a take-recorder race when the song reloads during a take, and a track-row overflow). - Full
pytestwithSTEMDECK_FFMPEG_DIRset (without it, 8 machine-local tests fail; the last full run on the tip gave 3178 passed, 5 skipped, 0 failed). - Desktop build on Windows, then install and run: save dialog, Show in folder, camera and microphone permission prompts, the updater.
- Desktop build on macOS (see the macOS tracking issue).
- Desktop build on Linux (see the Linux tracking issue).
- The encoder matrix on a Mac, an Intel PC, an AMD PC and a Linux machine with VAAPI (
scripts/encoder_matrix.py). - Real camera: record a take with a clap, export, and check picture and sound line up within one frame. All numbers so far use a fake camera.
- Listen to an exported file with a real instrument and the "I play" backing.
- Guide audit: point at every new control and confirm each shows its text.
- README updated for the new modes.
- Release notes written in the required shape (macOS Gatekeeper callout, download table, changes).
- Check the desktop update gate on the built release:
uv.lockis unchanged, so the runtime id is unchanged and Windows and Linux users should be offered the in-app update. The updater replaces the executable andbackend/, so the Rust shell changes travel with it.uv.lockmust stay unchanged unless a full download is intended. - Decide the open questions: hide or build the settings gear and the Templates tab; whether Auto GPU encoding stays on for hardware that was not tested.
Problems found (issue numbers to fill in)
Fix or decide before the release:
- The Guide has no entry for several new 0.21.0 controls #785 The Guide has no entry for several new controls
- The README and the release notes do not describe 0.21.0 #788 The README and release notes do not describe 0.21.0
- A refused Performance export deletes the earlier finished video #789 A refused export deletes the earlier finished video
- Cancelling, deleting or quitting during a video export does not always stop it #790 Cancelling, deleting or quitting during an export does not always stop it
- A disk error or a busy graphics card can switch the GPU encoder off or hide a working one #791 A disk error or a busy card can switch the GPU encoder off
- GPU video encoding is untested on Intel, AMD, Linux and macOS hardware #792 GPU encoding is untested on other hardware
- The Stems popover and Extract say nothing when an Apply does nothing, and say "applied" when it was not #793 The Stems popover says nothing when Apply does nothing
- Performance shows a settings gear and a Templates tab that do nothing #794 Performance shows a gear and a Templates tab that do nothing
More problems, the ones that can wait until after the release, will be linked here as their issues open.
Related open issues
- [Bug]: Transpose key is unsync when switch song back #781 transpose counter after switching songs: the per-mode saved mix should fix it. Verify, then close with the release.
- CPU-only Linux package ships the cu124 torchvision wheel: warmup fails with "operator torchvision::nms does not exist" #778 CPU-only Linux package ships the cu124 torchvision wheel.
- [Bug]: UI Scaling hides functionally on the bottom bar #774 bottom bar hidden when the window is not maximised.
- [Bug]: Behavior of Trash #773 Trash selection and Delete.
Verified by
The list of checks comes from the plan documents. The test numbers were run in the last pass: pytest 2970 passed, 8 failed (machine-local), 205 skipped; 56 Node test files, none failing.
- Trivy as CI runs it (
fsandconfigscans, HIGH and CRITICAL, unfixed ignored): exit 0 on 2026-10-11. Four uv.lock advisories (fsspec and hydra-core) are ignored with dated reasons in.trivyignore; the bump is deferred to a release that already needs a reinstall, because auv.lockchange sends desktop installs to the full download.
Activity