Fix local file sub-dependencies not being recorded in lockfile #6498
+18
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #6119
Problem
When a package (A) installed from a local path depends on another package (B) also installed from a local path, the sub-dependency (B) was not being properly recorded in
Pipfile.lock. The lockfile entry for B would be empty ({}) instead of containing the file/path information.Expected Result:
Actual Result (before fix):
Root Cause
The
format_requirement_for_lockfile()function inpipenv/utils/locking.pywas settingentry["file"] = req.link.urlfor all file:// URLs. However:path(with a relative path) instead offile(with a URL)Solution
This fix:
path) and archive files (usefile) for file:// URLs usingreq.link.is_existing_dir()ensure_path_is_relative()versionandindexentries for file/path dependencieseditableflag if set on the requirementTesting
To test this fix, you can use the reproduction repository from the issue:
Pull Request opened by Augment Code with guidance from the PR author