cool-easter-32542
11/22/2024, 8:40 AMdocker_environment to build pex_binary targets. We are running on mac arm architecture, but are building for linux amd. This has been working for some time using a combination of the complete_platforms and resolve_local_platform fields.
Since 2.22.0, the resolve_local_platforms field has been deprecated, and there are warnings showing that it is unused and should be disabled. However, when we disable it, our building process breaks. With resolve_local_platforms=True (on 2.22.0 and 2.23.0) we can build the pex for the right platform. But with the flag set to false, we get errors like these:
stderr:
No pre-built wheel was available for thrift 0.16.0.
Successfully built the wheel thrift-0.16.0-cp39-cp39-linux_x86_64.whl from the sdist thrift-0.16.0.tar.gz but it is not compatible with the requested foreign target complete platform cp311-cp311-manylinux_2_35_x86_64.
You'll need to build a wheel from thrift-0.16.0.tar.gz on the foreign target platform and make it available to Pex via a `--find-links` repo or a custom `--index`.
It seems that it is trying to build the distribution from the sdist, but it is not doing it for the right platform. When we prebuild the wheel, the error goes away. But we would really like to be able to depend on sdists and not have to prebuild every wheel.
Pants version
2.22.0 & 2.23.0
OS
Both
Additional info
Environment & pex binary targets:
local_environment(
name="macos_arm64",
compatible_platforms=["macos_arm64"],
fallback_environment="linux_amd64",
)
local_environment(
name="linux_amd64",
compatible_platforms=["linux_x86_64"],
fallback_environment="docker_linux_amd64",
)
docker_environment(
name="docker_linux_amd64",
platform="linux_x86_64",
image="<our_linux_image>",
python_bootstrap_search_path=["<PATH>"],
)
pex_binary(
name="deps",
dependencies=[
"./definitions.py",
],
include_tools=True,
include_sources=False,
environment="linux_amd64",
complete_platforms=["pants-utils/platforms:linux-amd64"],
)
The platforms json file``` { "compatible_tags": [ "cp311-cp311-manylinux_2_35_x86_64", "cp311-cp311-manylinux_2_34_x86_64", "cp311-cp311-manylinux_2_33_x86_64", "cp311-cp311-manylinux_2_32_x86_64", "cp311-cp311-manylinux_2_31_x86_64", "cp311-cp311-manylinux_2_30_x86_64", "cp311-cp311-manylinux_2_29_x86_64", "cp311-cp311-manylinux_2_28_x86_64", "cp311-cp311-manylinux_2_27_x86_64", "cp311-cp311-manylinux_2_26_x86_64", "cp311-cp311-manylinux_2_25_x86_64", "cp311-cp311-manylinux_2_24_x86_64", "cp311-cp311-manylinux_2_23_x86_64", "cp311-cp311-manylinux_2_22_x86_64", "cp311-cp311-manylinux_2_21_x86_64", "cp311-cp311-manylinux_2_20_x86_64", "cp311-cp311-manylinux_2_19_x86_64", "cp311-cp311-manylinux_2_18_x86_64", "cp311-cp311-manylinux_2_17_x86_64", "cp311-cp311-manylinux2014_x86_64", "cp311-cp311-manylinux_2_16_x86_64", "cp311-cp311-manylinux_2_15_x86_64", "cp311-cp311-manylinux_2_14_x86_64", "cp311-cp311-manylinux_2_13_x86_64", "cp311-cp311-manylinux_2_12_x86_64", "cp311-cp311-manylinux2010_x86_64", "cp311-cp311-manylinux_2_11_x86_64", "cp311-cp311-manylinux_2_10_x86_64", "cp311-cp311-manylinux_2_9_x86_64", "cp311-cp311-manylinux_2_8_x86_64", "cp311-cp311-manylinux_2_7_x86_64", "cp311-cp311-manylinux_2_6_x86_64", "cp311-cp311-manylinux_2_5_x86_64", "cp311-cp311-manylinux1_x86_64", "cp311-cp311-linux_x86_64", "cp311-abi3-manylinux_2_35_x86_64", "cp311-abi3-manylinux_2_34_x86_64", "cp311-abi3-manylinux_2_33_x86_64", "cp311-abi3-manylinux_2_32_x86_64", "cp311-abi3-manylinux_2_31_x86_64", "cp311-abi3-manylinux_2_30_x86_64", "cp311-abi3-manylinux_2_29_x86_64", "cp311-abi3-manylinux_2_28_x86_64", "cp311-abi3-manylinux_2_27_x86_64", "cp311-abi3-manylinux_2_26_x86_64", "cp311-abi3-manylinux_2_25_x86_64", "cp311-abi3-manylinux_2_24_x86_64", "cp311-abi3-manylinux_2_23_x86_64", "cp311-abi3-manylinux_2_22_x86_64", "cp311-abi3-manylinux_2_21_x86_64", "cp311-abi3-manylinux_2_20_x86_64", "cp311-abi3-manylinux_2_19_x86_64", "cp311-abi3-manylinux_2_18_x86_64", "cp311-abi3-manylinux_2_17_x86_64", "cp311-abi3-manylinux2014_x86_64", "cp311-abi3-manylinux_2_16_x86_64", "cp311-abi3-manylinux_2_15_x86_64", "cp311-abi3-manylinux_2_14_x86_64", "cp311-abi3-manylinux_2_13_x86_64", "cp311-abi3-manylinux_2_12_x86_64", "cp311-abi3-manylinux2010_x86_64", "cp311-abi3-manylinux_2_11_x86_64", "cp311-abi3-manylinux_2_10_x86_64", "cp311-abi3-manylinux_2_9_x86_64", "cp311-abi3-manylinux_2_8_x86_64", "cp311-abi3-manylinux_2_7_x86_64", "cp311-abi3-manylinux_2_6_x86_64", "cp311-abi3-manylinux_2_5_x86_64", "cp311-abi3-manylinux1_x86_64", "cp311-abi3-linux_x86_64", "cp311-none-manylinux_2_35_x86_64", "cp311-none-manylinux_2_34_x86_64", "cp311-none-manylinux_2_33_x86_64", "cp311-none-manylinux_2_32_x86_64", "cp311-none-manylinux_2_31_x86_64", "cp311-none-manylinux_2_30_x86_64", "cp311-none-manylinux_2_29_x86_64", "cp311-none-manylinux_2_28_x86_64", "cp311-none-manylinux_2_27_x86_64", "cp311-none-manylinux_2_26_x86_64", "cp311-none-manylinux_2_25_x86_64", "cp311-none-manylinux_2_24_x86_64", "cp311-none-manylinux_2_23_x86_64", "cp311-none-manylinux_2_22_x86_64", "cp311-none-manylinux_2_21_x86_64", "cp311-none-manylinux_2_20_x86_64", "cp311-none-manylinux_2_19_x86_64", "cp311-none-manylinux_2_18_x86_64", "cp311-none-manylinux_2_17_x86_64", "cp311-none-manylinux2014_x86_64", "cp311-none-manylinux_2_16_x86_64", "cp311-none-manylinux_2_15_x86_64", "cp311-none-manylinux_2_14_x86_64", "cp311-none-manylinux_2_13_x86_64", "cp311-none-manylinux_2_12_x86_64", "cp311-none-manylinux2010_x86_64", "cp311-none-manylinux_2_11_x86_64", "cp311-none-manylinux_2_10_x86_64", "cp311-none-manylinux_2_9_x86_64", "cp311-none-manylinux_2_8_x86_64", "cp311-none-manylinux_2_7_x86_64", "cp311-none-manylinux_2_6_x86_64", "cp311-none-manylinux_2_5_x86_64", "cp311-none-manylinux1_x86_64", "cp311-none-linux_x86_64", "cp310-abi3-manylinux_2_35_x86_64", "cp310-abi3-manylinux_2_34_x86_64", "cp310-abi3-manylinux_2_33_x86_64", "cp310-abi3-manylinux_2_32_x86_64", "cp310-abi3-manylinux_2_31_x86_64", "cp310-abi3-manylinux_2_30_x86_64", "cp310-abi3-manylinux_2_29_x86_64", "cp310-abi3-manylinux_2_28_x86_64", "cp310-abi3-manylinux_2_27_x86_64", "cp310-abi3-manylinux_2_26_x86_64", "cp310-abi3-manylinux_2_25_x86_64", "cp310-abi3-manylinux_2_24_x86_64", "cp310-abi3-manylinux_2_23_x86_64", "cp310-abi3-manylinux_2_22_x86_64", "cp310-abi3-manylinux_2_21_x86_64", "cp310-abi3-manylinux_2_20_x86_64", "cp310-abi3-manylinux_2_19_x86_64", "cp310-abi3-manylinux_2_18_x86_64", "cp310-abi3-manylinux_2_17_x86_64", "cp310-abi3-manylinux2014_x86_64", "cp310-abi3-manylinux_2_16_x86_64", "cp310-abi3-manylinux_2_15_x86_64", "cp310-abi3-manylinux_2_14_x86_64", "cp310-abi3-manylinux_2_13_x86_64", "cp310-abi3-manylinux_2_12_x86_64", "cp310-abi3-manylinux2010_x86_64", "cp310-abi3-manylinux_2_11_x86_64", "cp310-abi3-manylinux_2_10_x86_64", "cp310-abi3-manylinux_2_9_x86_64", "cp310-abi3-manylinux_2_8_x86_64", "cp310-abi3-manylinux_2_7_x86_64", "cp310-abi3-manylinux_2_6_x86_64", "cp310-abi3-manylinux_2_5_x86_64", "cp310-abi3-manylinux1_x86_64", "cp310-abi3-linux_x86_64", "cp39-abi3-manylinux_2_35_x86_64", "cp39-abi3-manylinux_2_34_x86_64", "cp39-abi3-manylinux_2_33_x86_64", "cp39-abi3-manylinux_2_32_x86_64", "cp39-abi3-manylinux_2_31_x86_64", "cp39-abi3-manylinux_2_30_x86_64", "cp39-abi3-manylinux_2_29_x86_64", "cp39-abi3-manylinux_2_28_x86_64", "cp39-abi3-manylinux_2_27_x86_64", "cp39-abi3-manylinux_2_26_x86_64", "cp39-abi3-manylinux_2_25_x86_64", "cp39-abi3-manylinux_2_24_x86_64", "cp39-abi3-manylinux_2_23_x86_64", "cp39-abi3-manylinux_2_22_x86_64", "cp39-abi3-manylinux_2_21_x86_64", "cp39-abi3-manylinux_2_20_x86_64", "cp39-abi3-manylinux_2_19_x86_64", "cp39-abi3-manylinux_2_18_x86_64", "cp39-abi3-manylinux_2_17_x86_64", "cp39-abi3-manylinux2014_x86_64", "cp39-abi3-manylinux_2_16_x86_64", "cp39-abi3-manylinux_2_15_x86_64", "cp39-abi3-manylinux_2_14_x86_64", "…
pantsbuild/pants