beeware / mobile-forge

A tool to manage building cross-platform binary wheels for mobile devices
BSD 3-Clause "New" or "Revised" License
20 stars 13 forks source link

Add support for building all versions of a package #8

Closed freakboy3742 closed 11 months ago

freakboy3742 commented 1 year ago

What is the problem or limitation you are having?

The meta.yaml file allows you to specify a single build version; however, for backfilling purposes, it can be useful to build other versions with the same recipe.

forge allows you to override the specific version with forge iOS package:version (e.g., forge iOS pillow:10.0.1), and as long as patches and the recipe are valid, it will build the wheel.

However, we should have the option to build all versions in one command.

Describe the solution you'd like

A new option to forge: forge iOS --all-versions numpy would build all versions of the named package, rather than just the current package version named in the meta.yaml.

Describe alternatives you've considered

The older chaquopy-based wheel-builder had support for backfilling all versions of a package.

Additional context

The versions.py script contains the tooling return all versions of a package published in a given year.

The make.sh script contains an entry point that iterates over versions.

It should be possible to do this a lot cleaner with an extra iteration loop in the forge mainline.