Repository navigation
pre-release audit: test hygiene and README accuracy - #47
Merged
Merged
Conversation
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
make checkgreen.Checklist
go build ./...,go vet ./..., andgo test ./...passgofmt -l .is cleanGPL-3.0-or-later)