Skip to content

Manifest drives Android ABI list (per-minor android_abis)#21

Merged
FeodorFitsner merged 1 commit into
mainfrom
android-abis-from-manifest
Jun 18, 2026
Merged

Manifest drives Android ABI list (per-minor android_abis)#21
FeodorFitsner merged 1 commit into
mainfrom
android-abis-from-manifest

Conversation

@FeodorFitsner

Copy link
Copy Markdown
Contributor

Summary

  • Add an android_abis array per Python minor in manifest.json — 3.12 ships ["arm64-v8a", "x86_64", "armeabi-v7a"], 3.13/3.14 are 64-bit-only (PEP 738). Ordering keeps the 64-bit list as a prefix of the 32-bit one.
  • Replace the hardcoded version_int < 313 then armeabi-v7a shell block in .github/workflows/build-python-version.yml with a jq read of pythons.<short>.android_abis, looped into package-for-dart.sh. Fails loudly if the manifest has no entry.
  • README schema example + paragraph for the new field.

The intent is one-line-edit support for future minors: drop the android_abis line in the manifest and the build/publish/Gradle/CLI consumers (serious_python's gen_version_tables, flet's manifest-driven registry) flow it through automatically.

Test plan

  • CI matrix runs against the branch; the Android job log shows package-for-dart.sh install <full_version> <abi> invoked once per ABI listed in the manifest for each minor (3 for 3.12, 2 for 3.13/3.14).
  • jq '.pythons."3.12".android_abis' manifest.json returns ["arm64-v8a", "x86_64", "armeabi-v7a"].
  • After merge: cut a date-keyed release via workflow_dispatch and verify the published manifest.json asset carries android_abis on every row.

Each `pythons.<short>` entry in manifest.json now carries an
`android_abis` array (64-bit first, `armeabi-v7a` trailing on 3.12 only —
PEP 738 dropped 32-bit Android from 3.13). The Android build step in
build-python-version.yml reads it via `jq` and loops
`package-for-dart.sh` once per ABI, replacing the hardcoded
`if version_int < 313 then armeabi-v7a` shell check.

Adding or bumping a Python minor's ABI set is now a one-line manifest
edit; the workflow + downstream consumers (serious_python's
gen_version_tables, flet's manifest-driven registry) flow it through
automatically.

README schema note + the `android_abis` line added to the example.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@FeodorFitsner FeodorFitsner merged commit 69fd887 into main Jun 18, 2026
16 of 28 checks passed
@FeodorFitsner FeodorFitsner deleted the android-abis-from-manifest branch June 18, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant