This repository has been archived by the owner on Aug 9, 2022. It is now read-only.
Short-circuit builders for C Extension wheels not using the default imageset #11
Labels
enhancement
New feature or request
For wheels that need an imageset that is a subset (e.g. #5), we can't head off builds in the
before_script
step as we do withstarforge wheel_type
, sincewheel_type
only inspects a package to determine whether it's universal, purepy, or c-extension. We either need a separate command that allows Travis to determine whether a given image is in a wheel's configured imageset, or one super-command that does bothwheel_type
and the image membership test. Currently, the membership test is done instarforge wheel
itself, which can't be run until the slow/expensive image setup steps (building a Docker image from manylinux1 (Linux) or installing Python (macOS)) are complete. Avoiding those costly steps when a particular builder wouldn't even be building anything was the whole reasonstarforge wheel_type
was implemented in the first place.This complexity is due in part to a Starforge design decision - prior to using CI, Starforge was intended to be run on a single host, so it was fully responsible for controlling the virtualization. With Travis there's a mixed state where some virtualization is still managed by Starforge (such as on Linux, where both 32- and 64-bit wheels are built on a single Travis builder, and in the case of Python 2.7, a total of 4 wheels due to
cp27m
andcp27mu
ABIs), but some is not (such as on macOS). In this hybrid environment, Starforge needs to know what images the current builder "supports" so that it knows what to/not to build. But Travis needs to know what images a wheel should be built on to supply these to Starforge...One possible solution to this would be to combine all C Extension builds in to two builders: one for Linux, and one for macOS. This is discussed (with some drawbacks) in #12.
The text was updated successfully, but these errors were encountered: