Skip to content

0.21.0 release checklist #795

Open
Open

Description

@thcp

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 pytest with STEMDECK_FFMPEG_DIR set (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.lock is unchanged, so the runtime id is unchanged and Windows and Linux users should be offered the in-app update. The updater replaces the executable and backend/, so the Rust shell changes travel with it. uv.lock must 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:

More problems, the ones that can wait until after the release, will be linked here as their issues open.

Related open issues

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 (fs and config scans, 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 a uv.lock change sends desktop installs to the full download.

Activity

  1. self-assigned this
    on Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions