dev-requirements.txt is bad

2025-09-08

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.