docs: archive Phase V (V1-V4) to COMPLETED; reconcile CLAUDE.md

Phase V landed: app_version module, ext-state version stamp, show-version
action, beta-in-isolation channel build. CLAUDE.md gains the module entry,
version key, test target, and beta-build note.
This commit is contained in:
2026-07-26 16:56:04 -04:00
parent 88e10c18c7
commit 6a6d305cf2
4 changed files with 113 additions and 56 deletions
-40
View File
@@ -238,46 +238,6 @@ CONTEXT.md §Prune (Settled forks).
---
# Phase V — Versioning & release (release-milestone pillar, own lettered namespace)
> **New pillar, own lettered namespace.** Version scheme + beta side-channel — the
> release-deployment path M11 forward-implies but that had no phase or points.
> Namespaced **`V` (Versioning)** alongside `M`/`D`/`B`/`R` because it is a distinct
> concern (build identity + channel isolation) that touches CMake, `main.cpp`'s
> forever-stable command-id contract, and the `"reasampler"` ext-state — not a
> capture step. Product framing + the full option analysis: `docs/product/versioning-
> and-release.md`. **Forks V1V4 SETTLED (Daniel, 2026-07-26)** — semver via
> `project(VERSION)` + ext-state version stamp prioritized first-wave; plain `-beta`
> suffix; console line + panel readout (about-box deferred); and **beta ships as a
> separate, fully isolated coexisting binary (beta-in-isolation)** — a reversal of the
> note's original one-at-a-time recommendation. Deploy/CD wiring (now two named
> artifacts per platform) hands off to dev-ops. Build-scoped points to be drawn up.
## Settled decisions (Daniel, 2026-07-26 — see `docs/product/versioning-and-release.md`)
- **V1 — version scheme: APPROVED as recommended.** Semver, single source of truth in
CMake `project(reaper_reasampler VERSION x.y.z)`, threaded into the binary. **The
`"reasampler"` ext-state writing-version stamp is prioritized to the first wave, not
deferred** — every project saved without the stamp is harder to migrate later, so
the migration seam lands early.
- **V2 — beta suffix: plain `-beta`.** `project(VERSION)` owns the release triple; beta
carries a `-beta` suffix. `git describe` decoration considered and rejected for
legibility.
- **V3 — user-visible home: recommendation accepted.** Startup console line
(`"ReaSampler x.y.z loaded"`) + a bank-panel version/channel readout; about-box
deferred. Panel placement is the residual polish call.
- **V4 — beta channel shape: BETA-IN-ISOLATION (full coexistence).** *Reverses the
original recommendation.* Beta ships as a **separate binary** (`reaper_reasampler_
beta`) with an **isolated ext-state namespace** (distinct from stable's
`"reasampler"` — a beta cannot corrupt a stable project's saved state) and an
**isolated forever-stable command-id prefix** (beta/stable keybindings don't
collide), so both install and run side-by-side. Built through a compile-time channel
flag (`-DREASAMPLER_CHANNEL=beta`) as the mechanism. **Two permanent commitments
locked in:** a second forever-stable command-id prefix and a second ext-state
namespace. **Dev-ops:** the build now produces two named artifacts (stable + beta)
per platform.
---
# Phase S — MIDI-playback instrument (native VST3 sampler; a second build artifact)
> **New pillar, own lettered namespace, and — uniquely — a second build artifact.**