toolchain: auto resolve deps#3271
Merged
Merged
Conversation
T-Dynamos
force-pushed
the
minor-fixes
branch
from
December 13, 2025 13:55
58b358d to
7afd7da
Compare
T-Dynamos
force-pushed
the
minor-fixes
branch
7 times, most recently
from
December 20, 2025 11:40
87f16ae to
7152f01
Compare
T-Dynamos
force-pushed
the
minor-fixes
branch
from
December 20, 2025 12:49
7152f01 to
8ec52ce
Compare
T-Dynamos
marked this pull request as ready for review
December 20, 2025 14:00
AndreMiras
reviewed
Jan 1, 2026
AndreMiras
left a comment
Member
There was a problem hiding this comment.
Awesome work, looks good overall, pretty clear and nice feature thank you!
I just have a few remarks and concerns I'd like to discuss.
- It would be nice to have at least some basic unit tests for
is_wheel_platform_independent()(that one should be relatively easy) andprocess_python_modules()(that one is more tricky, but let's try to have at least some basic coverage). I noticed the code currently bypasses the new logic whenrecipe_build_orderis a Mock - having proper tests would let us remove that workaround. - Have we thought of having a
--no-auto-resolveor something like that for reproducible builds? - A bit tricky to integration test, I imagine that would mean having an app build with the requirements list not fully defined/pinned and test it runtime, but then we have some build reproducibility concerns. Do you have some ideas for how to make sure your changes don't get broken later on without us realising?
T-Dynamos
marked this pull request as draft
January 23, 2026 17:45
T-Dynamos
force-pushed
the
minor-fixes
branch
from
January 23, 2026 18:57
ff7a141 to
6ca4f29
Compare
Member
Author
I think an integration test would be overkill here. The modules list is highly variable, and all of this work is handled by pip itself. |
T-Dynamos
marked this pull request as ready for review
January 23, 2026 19:34
kuzeyron
approved these changes
Jan 24, 2026
5 tasks
PhaedrusFlow
added a commit
to qompassai/fieldsnek
that referenced
this pull request
May 26, 2026
Kivy 2.3.1 ships pre-generated Cython C that calls _PyLong_AsByteArray
with 5 args. Python 3.14 added a 6th `with_exceptions` parameter, so
buildozer dies during the Cython extension compile with:
error: too few arguments to function call, expected 6, have 5
note: '_PyLong_AsByteArray' declared here (... 6 params)
The p4a project tracked this in kivy/python-for-android#3274 and shipped
the auto-resolve recipe in PR #3271; on the user side, the documented
fix is to use Kivy master (which is built with Cython >= 3.1 that emits
the new 6-arg call) plus p4a develop + API 36 + NDK r29.
Changes:
- buildozer.spec: kivy==2.3.0 -> kivy==master; android.api 34 -> 36;
android.ndk 25b -> 29; android.sdk 34 -> 36; comment block rewritten
to document the new tested combination.
- build.sh: auto-resolve ANDROIDNDK from $ANDROID_SDK_ROOT/ndk/29.*;
auto-detect buildozer in ~/venv_p4a_develop/bin first (the venv
Buildozer docs require for the Python 3.14 path); ANDROIDAPI 34 -> 36;
NDKAPI 21 -> 26; ANDROIDNDKVER 25b -> 29.
- docs/ANDROID_BUILD.md: rewrite \u00a71 (pre-flight) for the python3.14 venv
install; \u00a72 (SDK) for platform 36 / build-tools 36 / ndk r29; \u00a74
(build) to source the venv first; expanded troubleshooting table
with the _PyLong_AsByteArray entry and links to upstream issues.
Refs:
- https://buildozer.readthedocs.io/en/latest/installation/
- kivy/python-for-android#3271
- kivy/python-for-android#3274
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 #3274
Package resolution is performed using the hostpython's
pipvia the--dry-runoption.Example
Output:
