I saw a repo the other day that had these files in it.
requirements.txt
requirements-in.txt
dev-requirements.txt
dev-requirements-in.txt
It threw me off.
Why this is bad
To be clear: requirements-in.txt
is great! It's a great feature from uv pip compile
and folks should feel free to use it. That's not an issue, but dev-requirements-in.txt
, just like dev-requirements.txt
... different story.
Why? Let's consider what it looks like in a project. It might look something like this:
...
dev-requirements.txt
dev-requirements-in.txt
Makefile
main.py
pyproject.tomlREADME.md
requirements.txt
requirements-in.txtd
...
See the issue? By calling it dev-requirements.txt
you now create a visual separation between requirement files that should be together. Requirements for development are still requirements that need to be installed, so why store those so far away from the rest?
Sure, it's "a detail", and calling it differently won't change the behavior of any of the uv pip install -r ...
commands. But it just looks wrong and it also has actual consequences. Somebody might see requirements.txt
and not spot that there's a dev-requirement.txt
around as well!
It's like having two half-full fruit baskets in the kitchen. One on the table and one on top of the fridge. It's just not normal.
This is better
We should keep things together when they should be, so let's rename them like this:
requirements.txt
requirements-in.txt
requirements-dev.txt
requirements-dev-in.txt
It won't add features but it will make the codebase better.