Repository navigation
ADFA-174: Flip application id and namespace to org.appdevforall.codeonthego (Phase 3) - #2179
Draft
jimturner-adfa wants to merge 6 commits into
Draft
jimturner-adfa wants to merge 6 commits into
jimturner-adfa wants to merge 6 commits into
Conversation
Pre-formats the files the Phase 3 rename touches that were still identical to origin/stage, so the rename commit carries no formatter noise. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nthego Phase 3 of ADR 0017. BuildConfig.PACKAGE_NAME is now org.appdevforall.codeonthego, which moves the application id (and the app data dir), every module namespace, the Gradle plugin ids and the Maven group. Mechanical follow-through, scripted: - imports of the generated classes that move with the namespace: R, BuildConfig, data binding, the eventbus indexes and the generated lexers - gradle-plugin package declarations (its sources were already under org/appdevforall/codeonthego), the init-script template in GenerateInitScriptTask, and the QuickBuildPlugin class-name string - hidden copies of the id: TermuxConstants.TERMUX_PACKAGE_NAME, the data-dir constants ANDROIDIDE_HOME / MAVEN_LOCAL_REPOSITORY, the shizuku starter, logsender/quickbuild IDE package, hardcoded /data/data paths in code, tests and string resources Unchanged by design: vendored build logic and forks in composite-builds, the buildinfo template package, android-tree-sitter, and the external gradle-tooling-api artifact. Requires the matching terminal packages (appdevforall/terminal-packages#3) and a Firebase client registered for the new id. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CLAUDE.md and ARCHITECTURE.md said the namespace stays com.itsaky.androidide; ADR 0017 gains implementation notes on what keeps the old name and the hidden copies of the id the device test found. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gradle sync caches live in the project on shared storage and hold absolute paths into the app data dir. After the id change they point into the old app's /data/data dir, yet checkSyncNeeded accepted them because only the schema version and watched build files are compared - so carried-over projects kept a classpath of missing jars (no kotlin-stdlib, AndroidX) for code intelligence until a manual sync. Bump SYNC_META_VERSION so those caches are discarded and resynced once. Found on a device with a project synced by the old app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 22, 2026
…DFA-174-phase3-application-id
…DFA-174-phase3-application-id
Collaborator
|
Filed ADFA-6792 (subtask of ADFA-174): rebuild appdevforall/dev-assets bootstraps and the plugin template for the new application id. |
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.
ADFA-174
Important
Stacked on #2136; do not merge before it. Merge together with appdevforall/terminal-packages#3: its packages have
/data/data/org.appdevforall.codeonthegobaked in, and this PR is what moves the app there.Irreversible for existing installs. Android treats the new application id as a different app, so current users don't get this as an update (ADR 0017).
Phase 3 of ADR 0017. It moves the application id and the Gradle/AGP namespace to
org.appdevforall.codeonthego.Blockers before merge
org.appdevforall.codeonthegoand update thegoogle-services.jsonCI uses. Without it,process…GoogleServicesfails the build, and the app crashes inAnalyticsManageron first use.com.itsaky.androidideapp that tells users to install the new one. It goes in a separate PR onstage, and is waiting on the wording and on where users get the new app.apt/codeonthego-main, rebuildingtermux-toolsfirst so itssources.listpoints there.Review by commit
9be0a165aspotlessApplyon the 35 files the rename touches that were still identical tostage- formatting only1a0b5adc1f681108969488ecd24SYNC_META_VERSION2 -> 3, so projects carried over from the old app re-sync onceb2ff0485b,d5c84d377apiCheckand doc-path fixes; the namespace flip leaves the API dump unchangedNotes for reviewers:
9be0a165a: the non-whitespace lines are formatter reflow. String resources were compared value by value and render identically (76 values differ only in raw whitespace). The init scriptGenerateInitScriptTaskwrites differs only in indentation, andTermuxConstantsis whitespace-only, with its constants in the same order.1a0b5adc1:BuildConfig.PACKAGE_NAMEdrives the application id, every namespace, the Gradle plugin ids and the Maven group. The script moves everything tied to it:R,BuildConfig, data binding, the eventbus indexes and the generated lexers;gradle-plugin's package declarations, the init-script template and theQuickBuildPluginclass-name string;TermuxConstants.TERMUX_PACKAGE_NAME, the data-dir constantsANDROIDIDE_HOME/MAVEN_LOCAL_REPOSITORY, the Shizuku starter, the logsender / quickbuild IDE package, and the/data/datapaths in code, tests and strings.These keep
com.itsaky.androidideon purpose:composite-builds;buildinfotemplate package;android-tree-sitter;gradle-tooling-apiartifact.The offline Maven repos need no republishing:
localMvnRepository.ziphas no artifacts under the app's group, andplugin-maven-repo.zipalready usesorg/appdevforall/codeonthego.9488ecd24: a project's Gradle sync cache lives in the project, on shared storage, and holds absolute paths into the app's data dir.checkSyncNeededcompared only the schema version and the watched build files, so caches written by the old app passed. Carried-over projects then kept a classpath of missing jars (nokotlin-stdlib, no AndroidX) for code intelligence. The new testa cache synced under the old application id is resyncedfails without the bump.Verification
testV8DebugUnitTestin every module,:plugin-api:testDebugUnitTest, the JVM modules, and:gradle-plugin:test.spotlessCheckand:plugin-api:apiCheckpass.bash,git,python3andjava/javac21 (javac --release 17) run from the new prefix;NEED_SYNC: sync meta version mismatch: expected=3, actual=2), its cache is rewritten with new-dir paths only, and it builds to an APK in-app.apt installinside the terminal, which needs the new repository published;🤖 Generated with Claude Code