Skip to content

pre-release audit: test hygiene and README accuracy - #47

Merged
vynulldev merged 2 commits into
mainfrom
v050-audit
Oct 3, 2026
Merged

vynulldev merged 2 commits into
mainfrom
v050-audit

Conversation

@vynulldev

@vynulldev vynulldev commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

What & why

The v0.5.0 pre-release audit: behavior-neutral cleanups plus a documentation accuracy pass, so the release ships with tests where their subjects live and a README that describes the shipped engine.

Test hygiene: the part-3c encoder relocation stranded the real-audio diagnostic harnesses in link/prolink. bpm_test.go is split - beat/phrase detection harnesses move to analysis/realaudio_test.go (also fixed: they called the lossy-default DetectBeats, silently shifting lossless files' printed grids by the 25ms MP3 compensation), encoder dumps stay in prolink as encoders_realaudio_test.go. bench_test.go is renamed pipeline_timing_test.go with an honest doc comment. proto/dbmessage_test.go drops two tests skipped since the initial commit (they exercised a marshal→parse combination that doesn't exist on the wire: responses are field-framed, deck requests raw-framed) and documents that real coverage needs golden fixtures captured from a deck session. All env-gated; zero CI behavior change.

Housekeeping: go mod tidy is a no-op - dependencies were already clean; the TODO sweep found exactly one, a legitimate backlog marker.

README accuracy: serve-a-rekordbox-USB (the release headline) had zero README presence - new feature bullet plus the old "Rekordbox USB Mode" section rewritten with what decks and the web UI actually get, the read-only rule, the OneLibrary dual-format note, and no more unnecessary sudo in its example. The colour-waveform bullet claimed "FFT spectral analysis" (PWV4/PWV5 moved to time-domain Butterworth filter banks long ago), and the BPM/beat-grid bullets described the pre-tempogram engine. The cue-management bullet now mentions hot AND memory cues (post-#48).

Hardware testing

  • Tested on: N/A: test relocations (env-gated, skipped in CI) and README text. No code behaviour change; make check green.

Checklist

  • go build ./..., go vet ./..., and go test ./... pass
  • gofmt -l . is clean
  • New source files carry an SPDX header (GPL-3.0-or-later)
  • Tested on real hardware (deck + firmware noted above), or this change doesn't affect deck behaviour
  • I agree my contribution is licensed under the project's GPLv3

v0.5.0 audit, test-hygiene pass. The part-3c encoder relocation
dragged the real-audio diagnostic harnesses into link/prolink because
they touched the encoders, leaving detector diagnostics in the wire
package under a misleading name.

- bpm_test.go is split: the TEST_MUSIC_DIR / TEST_AUDIO_FILE beat and
  phrase harnesses move to analysis/realaudio_test.go; the PSSI/beat
  grid/PQT2 encoder dumps stay in prolink as
  encoders_realaudio_test.go. The moved harnesses also switch to the
  format-aware encoder delay - the old ones called DetectBeats (the
  lossy default), silently shifting lossless files' printed grids by
  the 25ms MP3 compensation.
- bench_test.go becomes pipeline_timing_test.go with a doc comment:
  it is a whole-pipeline profile table (and deliberately stays in
  prolink, which can time both the DSP and the encoders), not a Go
  benchmark.
- proto/dbmessage_test.go drops two tests skipped since the INITIAL
  commit: they exercised a marshal->parse combination that does not
  exist on the wire (responses are field-framed, deck requests are
  raw-framed). A note marks what real coverage needs: golden fixtures
  captured from a deck session. TestUTF16Encoding stays.

All moved/renamed tests remain env-gated; zero CI behavior change.
- Serve-a-rekordbox-USB had zero README presence despite being the
  v0.5.0 headline: new feature bullet plus the old 'Rekordbox USB
  Mode' section rewritten as 'Serve a rekordbox USB' - no sudo (it
  works in default rekordbox mode), what the deck/web UI actually get
  (stick playlists, rekordbox's grids/waveforms/cues, one shared
  track-ID space, read-only), and a OneLibrary note (dual-format
  sticks work via their classic export half; the encrypted OneLibrary
  database is not yet supported).
- Colour-waveform bullet claimed 'FFT spectral analysis'; PWV4/PWV5
  moved to time-domain Butterworth filter banks long ago.
- BPM/beat-grid bullets described the pre-tempogram engine; now match
  the shipped pipeline (tempo prior + coherence-verified snap;
  multiband tempogram phase with windowed clarity weighting and the
  gated half-beat correction).
@vynulldev
vynulldev marked this pull request as ready for review October 3, 2026 20:39
@vynulldev
vynulldev merged commit d3eaf1d into main Oct 3, 2026
1 check passed
@vynulldev
vynulldev deleted the v050-audit branch October 3, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant