Repository navigation
Convention for packages to declare their own native (Android/iOS) requirements? #2999
Replies: 1 comment 2 replies
|
@ElliotGarbus Thanks for putting this together, and for reaching out. First impressions - this looks great. I'm sure when I pull out the fine-toothed comb, I'll have quibbles over details, but from what I've seen the broad direction looks solid to me. At the very least, I can completely agree there's a gap here - a library (such as Some initial thoughts based on what I've seen so far:
I'm sure I'll have more thoughts when I've had a chance to dig deeper into the example and spec; but I wanted to get you an initial response. From a logistical perspective - I'm happy to continue having a conversation here; but is there anywhere else that might be a more helpful/central location for this sort of discussion? This seems like the sort of conversation that should be centralised as much as possible. |
Uh oh!
There was an error while loading. Please reload this page.
I've been building a packaging tool for the Kivy ecosystem — KivyForge — that makes use of the Android and iOS platform-tagged wheel PEPs (738/730) for native binaries (thanks for your leadership!). Working on that surfaced a gap, and it looks like one Briefcase, Chaquopy, p4a, and KivyForge all share: there's no way for a package to declare what it needs from the native build — Gradle deps, permissions, entitlements, manifest entries, Info.plist keys — so app authors end up hand-transcribing that out of each package's README, and it silently drifts on every version bump.
I've drafted a spec for it: a package ships a small TOML sidecar in its wheel declaring its native requirements, a build tool discovers it via an entry point and reads it without importing the package. Deliberately toolchain-neutral, no new packaging standard, no build-backend plugin.
https://github.com/ElliotGarbus/native-integration
Don't start with the spec — it's ~17k words. README first, then one example: pystripe to see both halves of one integration. Appendix D is a one-line description of every key if you'd rather scan the surface.
I'd value your feedback on the concept itself — is this the right shape for the problem? @freakboy3742
All reactions