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.

The transfer of enthousiasm

2025-09-05

This episode of the REWORK podcast had a particular quote that deserved a bookmark.

The quote

Marketing is simply the transfer of enthousiasm.

It's gold on a lot of levels. Not only does it perfectly describes the rare sight of a developer advocate doing their work well but it also perfectly describes my frustration with a lot of tech influencers.

You can smell it when you're looking at feigned enthusiasm. It's when a product is promoted, but not celebrated. It's when you see somebody telling you to that something is great but cannot take the effort of showing you in their video. It's when you see a list of features, but not a community of people around the thing.

Real enthousiasm is the name of the game here.

Python can open a webbrowser for you

2025-09-04

I have a line in my justfile that goes like this:

# Quick HTTP server on port
serve port="8000":
    python3 -m http.server {{port}}

This is nice because this lets me host the current directory on a specific port by typing just serve 12345.

But ... we can do an upgrade!

# Quick HTTP server on port
serve port="8000":
    python3 -m webbrowser -t "http://localhost:{{port}}"
    python3 -m http.server {{port}}

This way, I don't have to manually go to the browser to open the served page in a new tab. It's a bit of an unknown fact, but Python ships with a webbrowser module that can handle this for you.

It's a minor edit, but automation is great! Go use it!