Python-Apple-support
Python-Apple-support copied to clipboard
Instructions unclear. 'make wheels' fails
Describe the bug
In the instructions it is shown that make wheels
should be run to generate the dependencies for Mobile-Forge, and these dependancies should be placed in the Dist
folder. But when make wheels
is run it shows the following output.
make wheels-iOS
make: *** No rule to make target `wheels-iOS'. Stop.
Later while exploring the logs, I found that these dependencies are available in the downloads folder after make all
is run. This can be copied to the Dist
folder of Mobile-Forge.
So we should probably update the instructions?
Steps to reproduce
- Follow the Instructions to Install the Python-Apple-Support
- Try to build the wheels for Mobile-Forge dependancies as per instructions
Expected behavior
Wheels are built after the make wheels
is run.
Screenshots
No response
Environment
- Operating System: Mac OS Sonoma Version 14.3.1 (23D60)
- Python version: 3.11
- Software versions:
- Python-Apple-Support: branch 3.11
Logs
make wheels-iOS
make: *** No rule to make target `wheels-iOS'. Stop.
Additional context
No response
My apologies - you've definitely been bitten by some stale documentation, combined with some project changes that are in flight.
We're in the process of upstreaming BeeWare's iOS patches for CPython to the core report - the aim is the iOS will be an official Tier 3 supported platform in Python 3.13. This has necessitated making some structural changes to how we build packages.
One of those changes is that the CPython dependencies are being maintained in a standalone repository, and aren't being distributed as wheels - they're tarballs containing "include" and "bin" directories.
Unfortunately, it looks like as part of this process, we've removed the code that was generating the wheels. The wheel target has been completely removed from both projects. The wheels from the most recent builds are available on the BeeWare package repo (e.g., https://anaconda.org/beeware/libffi/files) which is what mobile forge is using to satisfy requirements - but we've lost the ability to generate new wheels. It's not hard to resurrect the old logic, but it's not there right now.
The good news is that you shouldn't need to build new dependency wheels unless you're actually testing those wheels. Just having a support package build of Python should be sufficient; you should be able to ignore the instructions referring to the make wheels
target.
The documentation has been updated; references to building wheels now direct to the Mobile Forge project.