feat: add support for py3-none-{platform} wheels (#1151)

* feature: add support for `py3-none-{platform}` wheels

This extends the mechanism introduced in #1091 for `abi3` wheels.
Most of the mentions to `abi3` have been removed and replaced by a more generic `compatible_wheel`.
This allows to build a wheel `foo-0.1-py3-none-win_amd64.whl` only once and still test with every configured python.

* Add integration test for py3-none abi wheels

* Fix expected_wheels for py3-none abi

* Limit test to three pythons and check for certain log messages

* chore: add some comments to explain filter process

Co-authored-by: Joe Rickerby <joerick@mac.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
This commit is contained in:
Matthieu Darbois
2022-07-03 14:00:00 -04:00
committed by GitHub
co-authored by Joe Rickerby Henry Schreiner
parent 075792473a
commit 9a537512c1
9 changed files with 284 additions and 100 deletions
+6 -6
View File
@@ -13,7 +13,7 @@ from .typing import OrderedDict, PathOrStr, assert_never
from .util import (
BuildSelector,
NonPlatformWheelError,
find_compatible_abi3_wheel,
find_compatible_wheel,
get_build_verbosity_extra_flags,
prepare_command,
read_python_configs,
@@ -180,13 +180,13 @@ def build_on_docker(
)
sys.exit(1)
abi3_wheel = find_compatible_abi3_wheel(built_wheels, config.identifier)
if abi3_wheel:
compatible_wheel = find_compatible_wheel(built_wheels, config.identifier)
if compatible_wheel:
log.step_end()
print(
f"\nFound previously built wheel {abi3_wheel.name}, that's compatible with {config.identifier}. Skipping build step..."
f"\nFound previously built wheel {compatible_wheel.name}, that's compatible with {config.identifier}. Skipping build step..."
)
repaired_wheels = [abi3_wheel]
repaired_wheels = [compatible_wheel]
else:
if build_options.before_build:
@@ -307,7 +307,7 @@ def build_on_docker(
docker.call(["rm", "-rf", venv_dir])
# move repaired wheels to output
if abi3_wheel is None:
if compatible_wheel is None:
docker.call(["mkdir", "-p", container_output_dir])
docker.call(["mv", *repaired_wheels, container_output_dir])
built_wheels.extend(