beeware / Python-Apple-support

A meta-package for building a version of Python that can be embedded into a macOS, iOS, tvOS or watchOS project.
MIT License
1.08k stars 155 forks source link

Instructions unclear. 'make wheels' fails #209

Open noelmullankuzhy opened 4 months ago

noelmullankuzhy commented 4 months ago

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

  1. Follow the Instructions to Install the Python-Apple-Support
  2. 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

Logs

make wheels-iOS
make: *** No rule to make target `wheels-iOS'.  Stop.

Additional context

No response

freakboy3742 commented 4 months ago

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.