fix: don't constrain build-system.requires with our dependency-versions (#2583)
* Don't constrain build-system.requires with dependency-versions * Remove setting of VIRTUALENV_PIP (it doesn't appear to have any effect) * Alter tests to assert the versions in before_build, not setup.py * Skip the util-test on linux --------- Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
This commit is contained in:
co-authored by
Henry Schreiner
parent
8c5b02f42c
commit
1f2f8b28d5
@@ -34,9 +34,7 @@ from ..util.file import (
|
||||
)
|
||||
from ..util.helpers import prepare_command, unwrap_preserving_paragraphs
|
||||
from ..util.packaging import (
|
||||
combine_constraints,
|
||||
find_compatible_wheel,
|
||||
get_pip_version,
|
||||
)
|
||||
from ..venv import constraint_flags, virtualenv
|
||||
from .macos import install_cpython as install_build_cpython
|
||||
@@ -462,7 +460,6 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
build_frontend=build_frontend.name,
|
||||
xbuild_tools=build_options.xbuild_tools,
|
||||
)
|
||||
pip_version = get_pip_version(env)
|
||||
|
||||
compatible_wheel = find_compatible_wheel(built_wheels, config.identifier)
|
||||
if compatible_wheel:
|
||||
@@ -490,11 +487,6 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
build_frontend, build_options.build_verbosity, build_options.config_settings
|
||||
)
|
||||
|
||||
build_env = env.copy()
|
||||
build_env["VIRTUALENV_PIP"] = pip_version
|
||||
if constraints_path:
|
||||
combine_constraints(build_env, constraints_path, None)
|
||||
|
||||
match build_frontend.name:
|
||||
case "pip":
|
||||
# Path.resolve() is needed. Without it pip wheel may try to
|
||||
@@ -509,7 +501,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
f"--wheel-dir={built_wheel_dir}",
|
||||
"--no-deps",
|
||||
*extra_flags,
|
||||
env=build_env,
|
||||
env=env,
|
||||
)
|
||||
case "build":
|
||||
call(
|
||||
@@ -520,7 +512,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
"--wheel",
|
||||
f"--outdir={built_wheel_dir}",
|
||||
*extra_flags,
|
||||
env=build_env,
|
||||
env=env,
|
||||
)
|
||||
case _:
|
||||
assert_never(build_frontend)
|
||||
@@ -538,9 +530,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
elif config.arch != os.uname().machine:
|
||||
log.step("Skipping tests on non-native simulator architecture")
|
||||
else:
|
||||
test_env = build_options.test_environment.as_dictionary(
|
||||
prev_environment=build_env
|
||||
)
|
||||
test_env = build_options.test_environment.as_dictionary(prev_environment=env)
|
||||
|
||||
if build_options.before_test:
|
||||
before_test_prepared = prepare_command(
|
||||
|
||||
@@ -32,7 +32,7 @@ from ..util.file import (
|
||||
move_file,
|
||||
)
|
||||
from ..util.helpers import prepare_command, unwrap
|
||||
from ..util.packaging import combine_constraints, find_compatible_wheel, get_pip_version
|
||||
from ..util.packaging import find_compatible_wheel, get_pip_version
|
||||
from ..venv import constraint_flags, find_uv, virtualenv
|
||||
|
||||
|
||||
@@ -464,12 +464,6 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
)
|
||||
|
||||
build_env = env.copy()
|
||||
if pip_version is not None:
|
||||
build_env["VIRTUALENV_PIP"] = pip_version
|
||||
if constraints_path:
|
||||
combine_constraints(
|
||||
build_env, constraints_path, identifier_tmp_dir if use_uv else None
|
||||
)
|
||||
|
||||
match build_frontend.name:
|
||||
case "pip":
|
||||
|
||||
@@ -32,7 +32,7 @@ from ..util.file import (
|
||||
move_file,
|
||||
)
|
||||
from ..util.helpers import prepare_command, unwrap, unwrap_preserving_paragraphs
|
||||
from ..util.packaging import combine_constraints, find_compatible_wheel, get_pip_version
|
||||
from ..util.packaging import find_compatible_wheel, get_pip_version
|
||||
from ..util.python_build_standalone import (
|
||||
PythonBuildStandaloneError,
|
||||
create_python_build_standalone_environment,
|
||||
@@ -419,17 +419,13 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
build_frontend, build_options.build_verbosity, build_options.config_settings
|
||||
)
|
||||
|
||||
build_env = env.copy()
|
||||
if constraints_path:
|
||||
combine_constraints(build_env, constraints_path, identifier_tmp_dir)
|
||||
build_env["VIRTUALENV_PIP"] = pip_version
|
||||
call(
|
||||
"pyodide",
|
||||
"build",
|
||||
build_options.package_dir,
|
||||
f"--outdir={built_wheel_dir}",
|
||||
*extra_flags,
|
||||
env=build_env,
|
||||
env=env,
|
||||
)
|
||||
built_wheel = next(built_wheel_dir.glob("*.whl"))
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ from ..util import resources
|
||||
from ..util.cmd import call, shell
|
||||
from ..util.file import CIBW_CACHE_PATH, copy_test_sources, download, extract_zip, move_file
|
||||
from ..util.helpers import prepare_command, unwrap
|
||||
from ..util.packaging import combine_constraints, find_compatible_wheel, get_pip_version
|
||||
from ..util.packaging import find_compatible_wheel, get_pip_version
|
||||
from ..venv import constraint_flags, find_uv, virtualenv
|
||||
|
||||
|
||||
@@ -468,13 +468,6 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
shell("graalpy -m pip install setuptools wheel", env=env)
|
||||
extra_flags = [*extra_flags, "-n"]
|
||||
|
||||
build_env = env.copy()
|
||||
if pip_version is not None:
|
||||
build_env["VIRTUALENV_PIP"] = pip_version
|
||||
|
||||
if constraints_path:
|
||||
combine_constraints(build_env, constraints_path, identifier_tmp_dir)
|
||||
|
||||
match build_frontend.name:
|
||||
case "pip":
|
||||
# Path.resolve() is needed. Without it pip wheel may try to fetch package from pypi.org
|
||||
@@ -488,7 +481,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
f"--wheel-dir={built_wheel_dir}",
|
||||
"--no-deps",
|
||||
*extra_flags,
|
||||
env=build_env,
|
||||
env=env,
|
||||
)
|
||||
case "build" | "build[uv]":
|
||||
if (
|
||||
@@ -506,7 +499,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
"--wheel",
|
||||
f"--outdir={built_wheel_dir}",
|
||||
*extra_flags,
|
||||
env=build_env,
|
||||
env=env,
|
||||
)
|
||||
case _:
|
||||
assert_never(build_frontend)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import shlex
|
||||
from collections.abc import Mapping, MutableMapping, Sequence
|
||||
from collections.abc import Mapping, Sequence
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path, PurePath
|
||||
from typing import Any, Literal, Self, TypeVar
|
||||
@@ -178,30 +178,3 @@ def find_compatible_wheel(wheels: Sequence[T], identifier: str) -> T | None:
|
||||
return wheel
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def combine_constraints(
|
||||
env: MutableMapping[str, str], /, constraints_path: Path, tmp_dir: Path | None
|
||||
) -> None:
|
||||
"""
|
||||
This will workaround a bug in pip<=21.1.1 or uv<=0.2.0 if a tmp_dir is given.
|
||||
If set to None, this will use the modern URI method.
|
||||
"""
|
||||
|
||||
if tmp_dir:
|
||||
if " " in str(constraints_path):
|
||||
assert " " not in str(tmp_dir)
|
||||
tmp_file = tmp_dir / "constraints.txt"
|
||||
tmp_file.write_bytes(constraints_path.read_bytes())
|
||||
constraints_path = tmp_file
|
||||
our_constraints = str(constraints_path)
|
||||
else:
|
||||
our_constraints = (
|
||||
constraints_path.as_uri() if " " in str(constraints_path) else str(constraints_path)
|
||||
)
|
||||
|
||||
user_constraints = env.get("PIP_CONSTRAINT")
|
||||
|
||||
env["UV_CONSTRAINT"] = env["PIP_CONSTRAINT"] = " ".join(
|
||||
c for c in [our_constraints, user_constraints] if c
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user