-
-
Notifications
You must be signed in to change notification settings - Fork 636
Description
What's the problem this feature will solve?
It can be useful to replicate the pip-compile environment previously used to autogenerate a requirements.txt file. In particular: re-using the same version of pip-compile is likely to minimise the effect of any other local changes applied.
To phrase that conversely: when people attempt to regenerate a requirements.txt file using a much more recent version of pip-tools, it's likely that the output will include extraneous differences that may make it more difficult to notice any unrelated/unexpected changes.
It is currently not readily apparent from the contents of a pip-compile'd requirements.txt file what version of pip-tools was used to compile it.
An optional header can be added, but it contains only the major/minor Python version used, but not the pip-tools version.
Describe the solution you'd like
I'd like to suggest adding the pip-tools version to the header output when the --header option is provided to pip-compile.
As a real-world example, to support some commentary in #2245 I'd like to try replicating the docs/requirements.txt file used in this repository. It is non-trivial for me to figure out what version of pip-tools was used, and that makes it more difficult for me to respond in a timely and accurate manner.
The version number could be the same one produced by pip-compile --version -- e.g. the 7.5.1.dev42+dirty below:
$ pip-compile --version
pip-compile, version 7.5.1.dev42+dirtyAlternative Solutions
Add pip-tools to pyproject.toml and suggest/require that developers use this version when updating autogenerated files.
This could be supported by a continuous integration check that notifies when the compiled requirements.txt content diverges from the version committed to the source repository.
Additional context
Somewhat similar to #2168, except that that issue suggests adding a timestamp; I think that could be useful in some circumstances, but for the use case here I would prefer a version number.