learningequality / kolibri-installer-android

Android wrapper for Kolibri.
MIT License
26 stars 22 forks source link

Create gradle build configuration #212

Open rtibbles opened 6 months ago

rtibbles commented 6 months ago

A big advantage of Chaquopy will be to make more of our build system more reproducible through Android Studio for dev purposes.

However, for the first pass integration it may be simpler to continue to do our custom unbundling/modifying of the Kolibri tar file outside of the scope of the Gradle build.

Therefore, for the first pass of Chaquopy build, we should be specifying the source of the installation for Kolibri from the patched tar file that we already create. Looking at the example for endless: https://github.com/endlessm/kolibri-installer-android/blob/develop/app/build.gradle.kts#L201 we would only install Kolibri, and do so differently, based on the patched tar source folder.

The endless build explicitly extracts migration folders to support Django's discovery. As this work will happen after Kolibri has been upgraded to Django 3.2, it is possible that this is no longer needed, but will need validation to be sure: https://github.com/endlessm/kolibri-installer-android/blob/develop/app/build.gradle.kts#L207

Lastly, looking at the example in the endless fork: https://github.com/endlessm/kolibri-installer-android/blob/develop/app/build.gradle.kts#L102 it seems that we do not need to support the x86 ABI, but should support the other three.

### Tasks
- [ ] Setup chaquopy to install Kolibri from the patched tar directory
- [ ] Check if Django 3.2 still has issues with reading from the bundled package, if so, replicate the extractPackages logic
- [ ] Investigate if this can be achieved by introspection rather than hardcoding, but not a blocker
- [ ] Add ABI filter logic to have full device coverage but limit bundle size