Record the namespace convention's real state, and the family's open divergences - #6
Merged
Merged
Conversation
…ivergences The namespace table claimed a `tap::<library>` CMake alias for every library, but only DspTap and RatioTap actually exported one. The other five now do too (separate commits in those repos), so the table is updated to say what is true: namespaces and CMake aliases are done everywhere, and the older alias spellings stay alongside the new ones so existing consumers keep working. Split the header path out into its own column, because that is the part still lagging and for a real reason -- renaming include/mutap/x.h to include/tap/mu/x.h breaks every #include in every consumer, so it stays a migrate-when-touched item. Adds RatioTap, which already complied on all three counts and was simply missing from the table, and notes that the absent repos (the Max/Pd packages) are host packages rather than libraries with a namespace of their own. Adds a "Known divergences" section recording the remaining unevenness with the known fix and the reason it has not been taken: option prefixes (cosmetic, renaming breaks each repo's own CI invocations), install/export rules present in only two of six (the other four are consumed via add_subdirectory, so install rules would be dead CMake), the Catch2-vs-GoogleTest split (a real difference in kind, not an accident), the GoogleTest version split, the C ABI's missing export decoration outside DspTap (which is why the Windows CI legs cannot gate it), and PythonTap's C++17 targets. Written down so they are decided rather than rediscovered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JhhQ93r2E1QTnCx46YfX8j
This was referenced Jul 28, 2026
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 this changes
Updates the namespace-convention section of
README.mdto say what is actually true across the family, and adds a Known divergences section recording the remaining unevenness with its known fix and the reason it has not been taken.Why
The convention table claimed a
tap::<library>CMake alias for every library, but only DspTap and RatioTap had ever created one. A table that documents a target as if it were current state is worse than no table: five repos looked compliant and were not. The companion PRs in AmbiTap, MuTap, SampleRateTap, TapTools and OscTap add the missing aliases, so the table can now be a description rather than an aspiration.The rest of the unevenness found during the audit had no home. Written into a section here, it is decided; left in a session transcript, it gets rediscovered.
Verification
Documentation only — no build, and nothing here is consumed at build time or drift-checked (
README.mdis not inscripts/sync.sh's copy set, so no consumer re-sync is implied).Every claim in the new text was checked against the repos rather than recalled:
tap::<library>alias now present in all seven libraries — greppedadd_library(tap::… ALIAS …)across eachCMakeLists.txt.tap/dsp/andtap/ratio/comply;ambitap/,srt/,mutap/,taptools/,osctap/do not.tap::ambi,tap::dsp,tap::mu,tap::osc,tap::ratio,tap::samplerate,tap::tools).install()+ config package in AmbiTap, 6 in TapTools, zero in DspTap/MuTap/RatioTap/SampleRateTap.include/, one Max external (MIN_EXTERNAL(python)), min-api submodule.Notes for the reviewer
README.md, which is deliberately outside the guarded set, so this needs no tag and no consumer re-sync. Merge order still matters for the reading of it: the ten companion PRs are what make the alias column true.include/mutap/x.h→include/tap/mu/x.hbreaks every#includein every consumer. It stays a migrate-when-touched item, with a forwarding header during transition.add_subdirectory, so the rules would be dead CMake) and the Catch2-vs-GoogleTest split (a real difference in kind — converting either way would discard working tests).arm64vsaarch64— unverifiable without Max).Generated by Claude Code