Migrate kolibri-installer-android into platforms/android/ - #15001
Conversation
Add release toggle to upload AAB to play store internal testing track. Download universal signed APK for reuse. Output versionCode for later promotion.
…ase build number.
Add error handling and retry behaviour.
…ipeline Build and release pipeline
Tweak README.md.
Fix command line tools setup
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…for_remoteshell Intent for remote shell
…bot/github_actions/actions/checkout-4 Bump actions/checkout from 3 to 4
Handle tracks with no releases key.
…_the_log Tweak logging to avoid repeated logging calls.
Build Artifacts
Smoke test screenshot |
rtibbles
left a comment
There was a problem hiding this comment.
Please finish the migration fully. Not sure why you're opening PRs when the work is half done.
We should also be bringing in the CLAUDE.md text and .claude skill from the source repository.
f5088f5 to
bbd46d7
Compare
|
Addressed both points and rebased onto Finish the migration fully — the CI wiring was the missing half, now done:
CLAUDE.md text and .claude skill — Two cleanups also went in: the imported build-infra commits whose subjects read |
bbd46d7 to
ef21840
Compare
rtibbles
left a comment
There was a problem hiding this comment.
Just one thing that stands out now.
| make avd # Recreate AVD | ||
| ``` | ||
|
|
||
| ## Contributing |
There was a problem hiding this comment.
Can remove everything from here on in the README, redundant with the repository documentation.
There was a problem hiding this comment.
Done in 9784485 — removed the Contributing/License/Support sections. The build/emulator instructions above them are kept; everything below is redundant with the repository documentation.
rtibbles
left a comment
There was a problem hiding this comment.
This is ready to go - we just need to clean up the commits that were added after the repository commits.
0fa038a to
021f2a7
Compare
|
Cleaned up the commits added on top of the imported repository history. The migration is now a single import merge (
The fixup/flip-flop commits are folded into the commit they correct. Imported history and |
rtibbles
left a comment
There was a problem hiding this comment.
You've added 3 more commits since you "collapsed" the commit history. Why do you keep adding things?
ae40d0a to
db1aa21
Compare
|
Folded those 3 follow-up commits back into the logical commits they belonged to (Makefile fix → the make/tar commit, YAML + workflow fixes → the pre-commit and CI-wiring commits). The branch is now the same 8 migration commits on top of the untouched imported repository history — no new commits on top. The working tree is byte-identical to the approved state ( |
… tree The five source workflows are re-authored at the monorepo root and the pre-commit / pull-request-target scaffolding collapses into the monorepo's existing workflows, so drop the migrated copies along with dependabot.yml.
Add the member to the workspace and fold its host tooling into the shared lock, dropping its standalone uv.lock. Bump the Play Store pins to align with Kolibri's google-auth==2.38.0 and marker-guard the 3.8+ host deps, and hold requires-python at >=3.7 so the member does not raise the workspace floor. The Chaquopy embedded runtime stays out of the lock (requirements.txt).
Repoint buildPython at the shared root .venv, pin it to Python 3.10 for Chaquopy, and derive versionName from the Kolibri version, dropping the hardcoded installer version.
Add a make target that stages the workspace-built Kolibri tar into platforms/android/tar/ instead of downloading it, and document opening platforms/android/ in Android Studio against the enclosing monorepo.
Allow multiple YAML documents in check-yaml so the multi-document Maestro flow validates, and reformat the flow to satisfy the monorepo hooks.
…onfig Move the migrated scripts' inline noqa comments into per-file-ignores and pin ruff's target-version to py310, so the exemptions live in one place and survive the monorepo's shared ruff run.
Carry the screenshot helper command and adjust .gitignore to keep committed .claude/commands while still ignoring transient sandbox artifacts.
Add the platform-android build_apk / release_apk reusables and repoint pr_build_kolibri.yml's apk job at the local build, feeding it the workspace-built tar. The non-blocking Maestro smoke test runs beside pi_smoke_test, with the flaky API 35 axis marked advisory.
db1aa21 to
065e8af
Compare
|
Rebased onto current No commits added — still the same import merge (second parent = original repo tip |
Summary
Kolibri's Android installer lived in a standalone repo consumed through a cross-repo
@v0.2.0workflow pin, so changes spanning the app and Kolibri core (needed for upcoming zeroconf/mDNS work) had to cross two repositories. This migrates the installer intoplatforms/android/as a uv workspace member with git history preserved, repointing the Gradle/Chaquopy build at the shared workspace.venvand derivingversionNamefrom the Kolibri version. It follows theplatforms/pattern established by the server and Pi migrations.References
Fixes #14997. Part of #13720. Prior migrations: #14964, #14967. Source: learningequality/kolibri-installer-android.
Reviewer guidance
The migration is complete: the workspace-tar make target (
platforms/android/Makefile), theplatform-android-*CI workflows and theirpr_build_kolibri.ymlwiring, and the Android Studio docs (platforms/android/README.md,AGENTS.md) are all on this branch.pyproject.toml:149— the member is picked up by theplatforms/*workspace glob, withplatforms/raspberry-pi(nopyproject.toml) explicitly excluded so uv doesn't error on it; confirmuv sync --group dev --all-packagesresolves with nogoogle-*conflict.uv.lockheader — confirmrequires-python = ">=3.7, <3.15"is unchanged, i.e. the new member did not narrow the workspace Python floor below Kolibri's 3.6/3.7 support..pre-commit-config.yaml:9— the generalcheck-yamlstays strict and instead excludes the Maestro flows; a separate scopedcheck-yamlhook carries--allow-multiple-documentslimited toplatforms/android/.maestro/*.yaml, so the multi-document relaxation cannot weaken YAML validation elsewhere.AI usage
Used Claude Code to execute the migration plan: the
git filter-repohistory rewrite, uv workspace registration withgoogle-*pin reconciliation, and the GradlebuildPython/versionNamerewire. Verified withuv lock,uv sync --group dev --all-packages, andprek run.@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
🟡 Waiting for feedback
Last updated: 2026-07-15 05:25 UTC