<#22239 pants 2.26.0 lockfile issue with requireme...
# github-notifications
c
#22239 pants 2.26.0 lockfile issue with requirement using vcs-support url fragments Issue created by jcrobak Describe the bug Python generate-lockfiles fails for source requirements using
#subdirectory=
(ref: https://pip.pypa.io/en/stable/topics/vcs-support/#url-fragments) Pants version 2.26.0 OS MacOS, Linux Additional info Here's a minimal repro: set -e # Generate BUILD cat << 'EOF' > BUILD python_requirements( source="requirements.txt" ) EOF # Generate requirements.txt cat << 'EOF' > requirements.txt opentelemetry-resource-detector-container@ git+https://github.com/open-telemetry/opentelemetry-python-contrib.git@v0.53b1#subdirectory=resource/opentelemetry-resource-detector-container EOF # Generate pants.toml cat << 'EOF' > pants.toml [GLOBAL] pants_version = "2.26.0" backend_packages = ["pants.backend.python"] [python] enable_resolves = true interpreter_constraints = ["==3.12.*"] resolves = { python-default = "python-default.lock" } EOF pants generate-lockfiles Upon inspecting the sandbox for generate lockfiles, pex is invoked with:
Copy code
$'opentelemetry-resource-detector-container@ git+<https://github.com/open-telemetry/opentelemetry-python-contrib.git@v0.53b1>'
(Note the missing "#subdirectory=...`) When using Pants 2.25.0,
pants generate-lockfiles
succeeds. Similarly, when I inspect the sandbox, pex is invoked correctly:
Copy code
$'opentelemetry-resource-detector-container@ git+<https://github.com/open-telemetry/opentelemetry-python-contrib.git@v0.53b1#subdirectory=resource/opentelemetry-resource-detector-container>'
Workaround In my case, it seems that using:
Copy code
python_requirement(
     requirements=[
         "opentelemetry-resource-detector-container@ git+<https://github.com/open-telemetry/opentelemetry-python-contrib.git@v0.53b1#subdirectory=resource/opentelemetry-resource-detector-container>"
     ]
does work as expected. pantsbuild/pants