Repository navigation
Move the Android builds under android/ - #525
Merged
Merged
Conversation
The fifteen superplayer-* modules, build-logic, demo, benchmark, the released API surface, the wrapper, gradle/ and the root settings, build script and properties move as they are. Nothing points at the new layout yet; the next commit flips the two locations #519 and #520 named. Kept as its own commit so rename detection carries git log --follow and blame across the move. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe
… commands work from the root The flip #519 and #520 left for this move: superplayer.repositoryRoot is `..`, devicelab's GRADLE_DIR and both workflows' are `android`. Around it, everything else that named the old layout by path: .gitignore's anchored build outputs and benchmark runs, Dependabot's three Gradle directories, the Swift test that reads the Kotlin goldens, and devicelab's plant cases against a scratch repository that is its own Gradle build, which now say so rather than inheriting the repository's `android`. The Spotless exclude for agent worktrees goes: they sit beside android/ rather than under it, so no target can reach them. The iOS fixtures' header names the update command as it is run from the repository root, and the fixtures are regenerated with it. The benchmark's run conditions are handed the library's Gradle build and now name it so. CLAUDE.md's command lines run from the root. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe
…unt the benchmark's build in Dependabot's note, and align the command comments Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe
ios-baseline/ and ios-phase3/ are the iOS port's reports, measured on the simulator against AVPlayer, and came under android/ with benchmark/. They go beside the iOS runner that writes them, as baseline/ and phase3/; the next commit points the runner and its links there. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe
…hmark/ --baseline writes into ios/Benchmark/phase3, where the reports now sit; the writer's links to PRD.md and the telemetry schema are a level deeper, and the two committed reports carry the same lines it would write now. The READMEs and ios/CLAUDE.md name the new place. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe
4 tasks
ramesh130
added a commit
that referenced
this pull request
Oct 14, 2026
CLAUDE.md's orientation names the four Gradle builds under android/ beside the Swift package, and every document that named a pre-move path or a root ./gradlew now names the path under android/ and the command in the form #525 chose, (cd android && ./gradlew ...). ADR bodies are records and are untouched; the committed benchmark reports are generated records and are too. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe
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.
Closes #521
Every Android build now lives under
android/. The repository root holds what is shared or has to sit there:docs/, the root documents,config/,.github/,devicelab/,third-party/,Package.swiftandios/. Published coordinates and Gradle project paths are unchanged.Contributors: move your untracked
local.propertiesintoandroid/. The Gradle root is nowandroid/, so the file is no longer read from the repository root.Commits
Please merge with
--rebaseso the two rename commits land unchanged.Move the Android builds under android/, renames only: 880 files, allR100, no content change. It moves the fifteen modules,build-logic/,demo/,benchmark/,api/, the wrapper,gradle/,settings.gradle.kts,build.gradle.ktsandgradle.properties.superplayer.repositoryRoot=..(Name the repository root apart from the Gradle root (#519) #524)GRADLE_DIR="android"indevicelab/lib/common.sh(Scripts and CI find the Gradle build through one location #523)GRADLE_DIR: androidinci.ymlanddevice-run.yml(Scripts and CI find the Gradle build through one location #523).gitignore's anchored build outputs and/android/benchmark/out/..claude/worktrees/**exclude is removed, since worktrees now sit besideandroid/and no target reaches them.SessionTraceTests, which reads the Kotlin goldens and now reads them atandroid/superplayer-telemetry/....RunConditions:repoRootis renamed togradleRoot, because it is handed the Gradle build. git answers for the whole repository from there anyway.GRADLE_DIR=explicitly instead of inheritingandroid. The nested case keeps covering this repository's layout.## Commandsblock, and the emulator recipe under it, now run from the root as(cd android && ./gradlew …),(cd android/demo && …)andandroid/benchmark/bench.Move the iOS benchmark's reports to ios/Benchmark/, renames only:ios-baseline/becomesios/Benchmark/baseline/andios-phase3/becomesios/Benchmark/phase3/. These are iOS reports that came along withbenchmark/. Leaving them would have put iOS data in the Android tree, andios/Benchmark/bench --baselinewould have silently created a new rootbenchmark/ios-phase3/.--baseline's output, the report writer's relative links (one level deeper now), the two committed reports' matching lines, and the links that named the old place.Argued decisions
(cd android && ./gradlew updateIosFixtures). That is the same form as CLAUDE.md, and it is correct from the repository root, which is where Name the repository root apart from the Gradle root (#519) #524 decided command lines are written from. The.readingsfixtures were regenerated withupdateIosFixturesrun alone, and the SwiftThroughputTraceFixturesTestswrites the same header.GoldenFile.UPDATE_COMMANDstays./gradlew updateGoldenTraces. It is testkit's public API, and the message reaches consumers who run it from their own Gradle root.androidtoo, because the Swift side cannot readGRADLE_DIR. Thecommon.shandci.ymlcomments now say so..editorconfigstays at the root. It also governs md, yml and bat files, and ktlint and IDEs find it by walking up from a file.Verification
(cd android && ./gradlew assemble check --max-workers=1): green. The XML results show 1238 tests with 0 failures and 0 errors;verifyDevicelaband the build-logic tests are included. It was re-run green after the review commits.(cd android && ./gradlew updateIosFixtures)run alone: only the eight.readingsheaders changed, and they are committed.publishToMavenLocal, then(cd android/demo && ./gradlew assembleDebug spotlessCheck)and(cd android/benchmark && ./gradlew assemble test spotlessCheck): green.devicelab/test/selftest: devicelab 161, jank 20, leak-hunt 34, startup 16, all passed.android/benchmark/bench --helpworks.git log --follow android/superplayer-core/src/main/kotlin/com/superplayer/core/SuperPlayer.ktreaches back to the first commit.git ls-files | grep -v '^android/'lists only what the issue keeps at the root.Review
Standards: no hard findings. These soft ones are fixed:
GRADLE_DIRwas the only spelling.GoldenFile.UPDATE_COMMANDwas flagged as inconsistent and is left as argued above.Spec: one hard finding, now fixed: the iOS benchmark reports had moved into the Android tree, and
ios/Benchmark/bench --baselinepointed at a path that no longer existed. That is commits 4 and 5. The soft findings are prose and belong to Documents describe the android/ layout #522.Left to #522
Prose and KDoc that name moved paths. This covers:
README.md,CONTRIBUTING.mdanddocs/android/benchmark/bench's usage commentref:comments in Swift sources pointing at Kotlin files../PRD.mdlinks, which were already wrong before the moveAlso pre-existing and out of scope: CI's iOS change filter does not cover the Kotlin goldens or
superplayer-testkit.Skipped
ios/check: not run locally. The disk had 6.6 GB free, and a simulator plus DerivedData costs about that much on a shared host. The macOS CI job runs it on this PR, becauseios/andandroid/superplayer-testmedia/both changed.CI flakes unrelated to the move: #526 (attempts 1 and 2) and #499 (attempt 3). Merged on that basis at the user's decision; the full check passed locally on this branch.
🤖 Generated with Claude Code
https://claude.ai/code/session_01MJAhQmFgdRRAKUaMHibQLe