Repository navigation
Remove superplayer-ui, which nothing will now fill - #390
Merged
Merged
Conversation
The module was a placeholder for an optional Compose player surface, unscheduled by `PRD.md` Part 4 and empty since Phase 0. That UI work is now planned as a Media3 UI kit in a repository of its own, alongside a showcase app: none of its three modules would depend on `superplayer-core`, so the `superplayer-` prefix would have been branding rather than architecture. Keeping an empty module costs more than it looks. It reads as a fifteenth built module in the layout, it carries a published coordinate and a tracked API surface file, and ADR-0017 rule 1 would tie it to every future release at one version. #383 excludes it from the Maven Central release as "a promise of a UI that does not exist"; deleting it makes that exclusion permanent rather than provisional. Three references are deliberately left alone. ADR-0014 and ADR-0015 argue in their *Alternatives considered* that the TV controls and the debug HUD were rejected from this module because it was unscheduled — a true record of what was reasoned at the time, and an accepted ADR is amended by addendum rather than edited to erase a mention. `ModulePhaseRuleTest` and `CompatibilityDocumentTest` keep the name as synthetic fixture data, alongside `superplayer-ads`, which has never existed; the unscheduled-module rule they exercise is untouched. And `docs/compatibility.md` keeps the **Empty** status with no row carrying it, since it remains one of the four answers an adopter needs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HeTWwmK1KcFMrfSAre23GS
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.
superplayer-uiwas a placeholder for an optional Compose player surface: unscheduled byPRD.mdPart 4, and empty since Phase 0 apart from apackage-info.kt.The UI work it was reserved for is now planned as a Media3 UI kit in a repository of its own, beside a showcase app. The deciding fact is dependency direction: tokens would depend on nothing, browse components on nothing, and the playback overlay only on
androidx.media3:media3-commonfor the stablePlayerinterface. Not one of them would depend onsuperplayer-core— so thesuperplayer-prefix would have been branding rather than architecture, and the kit is usable by anyone on Media3 rather than only by this library's adopters.Keeping the empty module was not free. It read as a fifteenth built module in every layout, carried a published coordinate and a tracked API surface file, and under ADR-0017 rule 1 would have been tied to every future release at one version. #383 already excludes it from the Maven Central release as "a promise of a UI that does not exist"; this makes that exclusion permanent rather than provisional.
What changed
settings.gradle.ktsinclude(...)linesuperplayer-ui/package-info.kt, and the emptyapi/superplayer-ui.apiCLAUDE.mdPRD.mdREADME.mdTHIRD_PARTY.mddocs/api-surface.mddocs/compatibility.mddocs/modules.md†footnote explaining its absent phase numberThree deliberate non-changes
ADR-0014 and ADR-0015 keep their references. Both argue in Alternatives considered that the TV controls and the debug HUD were rejected from
superplayer-uibecause it was unscheduled. That is a true record of what was reasoned at the time, andCLAUDE.mdmakes an accepted ADR amendable by addendum rather than by editing. Nothing here contradicts either record, so neither needs one.ModulePhaseRuleTestandCompatibilityDocumentTestkeep the name as synthetic fixture data — the same files inventsuperplayer-ads, which has never existed. The unscheduled-module rule they exercise is untouched, and only its one live instance is gone.docs/compatibility.mdkeeps theEmptystatus although no row now carries it, andVerifyCompatibilityDocument's allowed list is unchanged. It is one of the four answers an adopter needs and a legitimate future state.Verification
./gradlew assemble check --max-workers=2on this branch:GRADLE_EXIT=0, 1213 tests, 0 failures, 0 errors, 0 skipped across 15 modules, read from**/build/test-results/**/TEST-*.xmlrather than off theBUILD SUCCESSFULline.verifyCompatibilityDocumentandverifyModulePhaseRuleboth pass, which is what holds the two documents tosettings.gradle.kts.No emulator or demo run — this removes an empty module and changes no behaviour.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HeTWwmK1KcFMrfSAre23GS