-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
verify
command doesn't ensure that .txt
files continue to include all transitive dependencies
#410
Comments
Related to #336 |
Hi @vergenzt, probably |
Can annotations in *.txt files be parsed to determine results of the resolver, without having to run the resolver again? If |
That would be a feature request for the underlying pip-tools project. Pip-compile-multi doesn't resolve dependencies |
I don't think updating the behaviour of I wasn't suggesting that |
Sorry, I misread your previous message. Let me clarify:
Was this version bump performed by Another solution (that I've implemented in a closed-source codebase, and could open-source in the future) is to automatically generate a report using |
I think the version bump was performed manually.
I agree, partially. I think a reword like you suggest would not be a bad thing. However I think there is also room for automated assistance with enforcing such an organizational norm. Perhaps... a pre-commit hook? 🙂 Would you be open to a PR that adds something like the following to - id: pip-compile-multi-recompile
name: pip-compile-multi
language: python
entry: pip-compile-multi --no-upgrade
files: ^requirements/.*\.txt$
pass_filenames: false
require_serial: true
types: [file, non-executable, text] This hook will trigger a recompile any time |
I'm a bit hesitant to add that, as I can see a potential confusion. |
Sometimes a simple version bump in a requirements
.txt
file means that a new transitive dependency has been added, andpip-compile-multi --no-upgrade
should be re-run to ensure all transitive dependencies are snapshotted.Example: Apache Superset, which uses pip-compile-multi to manage requirements, bumped flask-appbuilder from 4.2.0 to 4.3.0. This new version of flask-appbuilder added a new dependency, which had its own tree of new dependencies. These new dependencies were omitted from
requirements/*.txt
and thus left unpinned for some time, including making in a released version.This led to me being very confused why
requirements/*.txt
files were changing dramatically when I ranpip-compile-multi --no-upgrade
on a released version of the superset project, when I hadn't even made any changes torequirements/*.in
yet! Took me a number of days to figure out the source of the issue. 😕The current
verify
command, while presumably better than nothing, seems to me to give a somewhat false sense of security, given this issue.Would you be open to a new pre-commit hook being added (and/or the existing hook modified) to re-run
pip-compile-multi --no-upgrade
entirely ifrequirements/*.txt
has changed? Or maybepip-compile-multi verify
should itself runpip-compile-multi --no-upgrade
if it detects that...? 🤔Thoughts?
The text was updated successfully, but these errors were encountered: