phase information removal.

This commit is contained in:
Johannes Findeisen 2026-11-06 14:12:22 +01:00
commit dd32143bf8
45 changed files with 325 additions and 330 deletions

View file

@ -1,6 +1,6 @@
# Build baseline
Phase 0 retains the existing layout: public C headers in `include/xtc`,
The existing layout is retained: public C headers in `include/xtc`,
C implementation modules under `src`, optional C++ GUI under `src/gui`, and
tests under `tests`. `src/main.c` is a minimal headless startup/shutdown check;
it does not initialize audio devices or open a GUI.
@ -40,8 +40,8 @@ the Makefile tries pkg-config first, then `fltk-config`.
## Dependencies and licensing
The offline core needs the C runtime and math library. Phase 2 adds optional
JACK support, selected with pkg-config; missing JACK does not prevent core/tests
The offline core needs the C runtime and math library. Optional JACK support is
selected with pkg-config; missing JACK does not prevent core/tests
from building. Realtime publication uses GCC/Clang lock-free atomic builtins in
C99. Tests also use POSIX threads. Backend consumers must link JACK explicitly;
backend objects are pulled from the static library only when used. The repository is MIT licensed. The optional GUI uses maintained
@ -52,7 +52,7 @@ traditional JACK client libraries use LGPL licensing. See decision 0004 for
the dependency choice and caveats. ALSA remains a future MIDI candidate. No packages or system settings
are changed by these build commands.
## Phase 2 verification
## Backend verification
```sh
make all test gui debug
@ -76,7 +76,7 @@ fault-injection tests cover those notification paths. No packages installed
or system/device configuration changed. Sanitizers are not enabled in the live
callback qualification run.
## Phase 3 verification
## GUI shell verification
```sh
make clean all test gui debug test-gui test-gui-jack
@ -92,7 +92,7 @@ exit-time font allocations; see tests/integration/README.md for the distinction
and command. No compiler warnings remain with GCC or Clang. Core/backend tests
pass with unsuppressed ASan/UBSan. No packages or system configuration changed.
## Phase 4 verification
## Graph editor verification
```sh
make clean all test gui debug test-gui test-gui-jack
@ -109,7 +109,7 @@ playback, reject cycles, reconnect and close active clients. Mouse/visual smoke
checks cover node creation, wiring, cycle rejection, dragging and deletion.
No physical routes, new dependencies or system changes are introduced.
## Phase 5 verification
## Project verification
```sh
make clean all test gui debug test-gui test-gui-jack
@ -125,12 +125,12 @@ The updated core and GUI tests pass Clang ASan/UBSan (the GUI uses the existing
fontconfig-only LSan suppression). An Xvfb/xdotool visual check created a track
and region, moved it one bar and zoomed the canvas. No dependencies were added.
Phase 6 will add audio assets and recording. Silent arrangement regions, fixed
Audio assets and recording are supported. Silent arrangement regions, fixed
tempo/4/4, no undo, no persisted GUI layout, and unverified physical-device
playback/endurance remain explicit limits.
## Phase 6 verification
## Audio verification
```sh
make all test gui debug test-gui test-gui-jack test-jack-audio
@ -155,7 +155,7 @@ LSan suppression). ThreadSanitizer passes the concurrent recorder and existing
realtime handoff tests. Hardware capture/playback, disk endurance and real server
loss during recording remain unverified. See AUDIO_FILES.md.
## Phase 7 verification
## MIDI verification
```sh
make all test gui debug test-gui test-gui-jack test-jack-audio test-jack-midi
@ -176,7 +176,7 @@ The no-JACK core/GUI suite and Clang ASan/UBSan core/GUI suite also passed; GUI
leak checking uses only the existing fontconfig suppression documented in the
integration README. Physical MIDI and audio devices remain unverified.
## Phase 8 verification
## Mixer verification
```sh
make all test gui debug test-gui test-gui-jack test-jack-audio test-jack-midi
@ -191,13 +191,13 @@ checks hard-right saved-note playback and output meter snapshots; mono audio
record/play acceptance remains covered. A native Xvfb mouse smoke check confirms
sliders and automation drawing. See MIXER.md for capacities and deferred features.
The fresh Phase 8 verification build, no-JACK core/GUI suite and Clang
The fresh verification build, no-JACK core/GUI suite and Clang
ASan/UBSan core/GUI suite passed without compiler warnings. GUI leak checking
retains only the existing fontconfig suppression. ThreadSanitizer also passed
the recorder concurrency and realtime publication tests. Physical devices and
long-running stereo performance remain unverified.
## Phase 9 release preparation
## Release preparation
```sh
make all test gui debug test-gui test-gui-jack test-jack test-jack-audio test-jack-midi
@ -216,14 +216,14 @@ forces a child-local write limit, checking complete finalized destinations and
explicit orphan temporaries. Performance timings are reported, not used as a
universal realtime guarantee. See RELEASING.md, RECOVERY.md and PERFORMANCE.md.
Phase 9 verification passed a fresh warning-enabled core/debug/GUI build, all
Verification passed a fresh warning-enabled core/debug/GUI build, all
software JACK targets, staged install/uninstall, recovery and performance tests.
No-JACK core/GUI/install checks and Clang ASan/UBSan core/GUI checks also passed
(the GUI retains only its existing fontconfig leak suppression). TSan recorder
and realtime-handoff checks passed. Two independent optimized source exports
and their repacked source archives were byte-identical on this toolchain.
## Phase 10 reliability audit
## Reliability audit
Run `make test-reliability` for the core suites, allocation-failure sweep,
callback allocation/free guard and native reclamation checks. Run
@ -233,21 +233,21 @@ tools; the allocation guard uses a GNU-compatible linker. See
[RELIABILITY.md](RELIABILITY.md) for ownership, audit findings,
full verification commands and remaining limits.
## Phase 11 workflow acceptance
## Workflow acceptance
`make test-workflow` requires FLTK/JACK development files, Xvfb and an existing
JACK-compatible server. It does not start/configure the server or connect
physical devices. See [WORKFLOW.md](WORKFLOW.md) for the full GUI composition
acceptance sequence and transport semantics.
## Phase 12 audio quality
## Audio quality
`make test-quality` runs exact timing, source-boundary, gain-ramp, event-order
and numeric/layout tests (also included in `make test`). `make quality-preview`
builds the C example and writes raw/smoothed listening WAVs into BUILD_DIR without
playing them or configuring devices. See [AUDIO_QUALITY.md](AUDIO_QUALITY.md).
Phase 14/15 checks: `make test-processor test-plugins test-gui-plugins`.
Parameter-processor and plugin checks: `make test-processor test-plugins test-gui-plugins`.
The latter two need the system LADSPA development header; real-plugin acceptance
is separate (`make test-plugins-real`, paths listed in PLUGIN_HOSTING.md). With no
`ladspa.h`, the ordinary core/GUI still builds and plugin operations return
@ -258,13 +258,13 @@ Link static consumers with `-lm -ldl` plus the backend dependencies when used.
See LICENSES.md for header/plugin licensing and decision 0009 for rationale.
Recording stress/recovery is available with `make test-recording`.
Phase 29 developer qualification: `make check-development` runs the core build,
Developer qualification: `make check-development` runs the core build,
regressions, scale/virtual endurance, benchmark-gate checks, Clang analysis and
ASan/UBSan. Run `make benchmark benchmark-project` separately without contention
or sanitizers for timing reports. Optional `make test-stress-plugins` requires
installed LADSPA headers; `make test-stress` supports minimal builds too.
## Phase 30 installation layouts
## Installation layouts
`make test-install test-install-layout` verifies default and custom layouts in
throwaway staging directories, C/C++ installed consumers, examples and exact
@ -273,14 +273,14 @@ removal. Override `PREFIX`, `exec_prefix`, `bindir`, `libdir`, `includedir`,
`desktopdir` as needed. `DESTDIR` adds staging separately; pass the same layout
to uninstall. See RELEASING.md for commands and RELEASE_NOTES.md for upgrades.
Phase 31 modern plugin adapters build in C99 using the pinned header-only CLAP
Modern plugin adapters build in C99 using the pinned header-only CLAP
and VST3 C APIs under third_party; there is no network build or SDK runtime.
VST2 compatibility uses original ABI declarations. `make test-modern-plugins`
runs original shared-library fixtures without a server; `make test-gui-modern-plugins`
adds GUI/browser/undo/reopen tests under Xvfb. The fixtures also run in `make test`
and therefore in sanitizer/release builds. Notices are installed with LICENSE.
Phase 33 uses a header-only FLTK theme and existing drawing primitives; no new
The GUI uses a header-only FLTK theme and existing drawing primitives; no new
GUI dependency or generated asset is required. `make test-gui-instruments` also
exercises sidebar track creation, rollback, undo/reopen and minimum/large layouts.
See WORKSPACE.md for the default size and manual visual verification.