feat(manager/pip-compile): add full support for lock files #26814
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.
Changes
As this is a draft PR, the list below is a planned scope.
requirements.in
is handled at the moment.pip-compile --upgrade-package
for indirect dependencies that exist only inrequirements.txt
.CUSTOM_COMPILE_COMMAND
if it doesn't obstruct original arguments. See Feature request: pip-compile support #24725 (reply in thread)pip-compile
arguments, pass them without change as to not change command in the header.Context
Support for
pip-compile
is partial. It doesn't parse lock files like other implemented managers do. In turn it will ignore updates for dependencies in the lock file. It also "eats" arguments extracted from header in the lock file, for example when--no-emit-index-url
is dropped, this is very undesirable asPIP_INDEX_URL
can contain secrets like HTTP passwords. Lastly hard-codedpip-compile
command doesn't allow forCUSTOM_COMPILE_COMMAND
, and will not allow for setups that require docker containers that have system depenencies pre-installed.Discussion 2018-2022: #24725
Documentation (please check one with an [x])
How I've tested my work (please select one)
I have verified these changes via: