mirror of https://github.com/pypa/pip
Compare commits
2 Commits
30af8074bf
...
f20ab575b9
Author | SHA1 | Date |
---|---|---|
Pradyun Gedam | f20ab575b9 | |
Tzu-ping Chung | f7c05a5124 |
|
@ -0,0 +1,3 @@
|
|||
Allow using a pre-release version to satisfy a build requirement. This helps
|
||||
manually populated build environments to more accurately detect build-time
|
||||
requirement conflicts.
|
|
@ -187,7 +187,7 @@ class BuildEnvironment:
|
|||
installed_req_str = f"{req.name}=={dist.version}"
|
||||
else:
|
||||
installed_req_str = f"{req.name}==={dist.version}"
|
||||
if dist.version not in req.specifier:
|
||||
if not req.specifier.contains(dist.version, prereleases=True):
|
||||
conflicting.add((installed_req_str, req_str))
|
||||
# FIXME: Consider direct URL?
|
||||
return conflicting, missing
|
||||
|
|
|
@ -5,7 +5,13 @@ import tomli_w
|
|||
|
||||
from pip._internal.build_env import BuildEnvironment
|
||||
from pip._internal.req import InstallRequirement
|
||||
from tests.lib import PipTestEnvironment, TestData, make_test_finder, path_to_url
|
||||
from tests.lib import (
|
||||
PipTestEnvironment,
|
||||
TestData,
|
||||
create_basic_wheel_for_package,
|
||||
make_test_finder,
|
||||
path_to_url,
|
||||
)
|
||||
from tests.lib.path import Path
|
||||
|
||||
|
||||
|
@ -232,6 +238,25 @@ def test_validate_conflicting_pep517_backend_requirements(
|
|||
assert result.returncode != 0 and msg in result.stderr, str(result)
|
||||
|
||||
|
||||
def test_pep517_backend_requirements_satisfied_by_prerelease(
|
||||
script: PipTestEnvironment,
|
||||
data: TestData,
|
||||
) -> None:
|
||||
create_basic_wheel_for_package(script, "myreq", "1.0a1")
|
||||
script.pip("install", "myreq==1.0a1", "--no-index", "-f", script.scratch_path)
|
||||
script.pip("install", "test_backend", "--no-index", "-f", data.backends)
|
||||
|
||||
project_dir = make_project(
|
||||
script.temp_path,
|
||||
requires=["test_backend", "myreq"],
|
||||
backend="test_backend",
|
||||
)
|
||||
project_dir.joinpath("backend_reqs.txt").write_text("myreq")
|
||||
|
||||
result = script.pip("install", "--no-index", "--no-build-isolation", project_dir)
|
||||
assert "Installing backend dependencies:" not in result.stdout
|
||||
|
||||
|
||||
def test_pep517_backend_requirements_already_satisfied(
|
||||
script: PipTestEnvironment, tmpdir: Path, data: TestData
|
||||
) -> None:
|
||||
|
|
Loading…
Reference in New Issue