My Pants Build Journey

I embarked on my quest to Pantsify (as we call it in my team) our quite large monorepo in juli 2024. I’ve made some notes along the way; this is my Pants journey. Let me save you some time: Pants is brilliant if you keep close enough to the paved Python road. You can even walk in the grass next to it, but don’t go too far because you’ll need to learn new spells. Pants is still worth it forces a single way of working, and allows you to run all validations constantly and repeatably; because it knows what hasn’t changed and therefore can be skipped. ...

October 1, 2025 · 6 min · Rutger de Knijf

On Backward Compatibility

I recently had a colleague who suggested it might be a good idea to test our Python software against older versions of Python. And at first I was like: Yeah, good idea! It’s good practice, right? Support a whole range of versions! We see that all the time in the packages we fetch from Pypi. Supporting more versions is just good stewardship, right? But we were walking into a trap. We were discussing our own software, that we run, ourselves, in Kubernetes. We control the environment, all the way from development to production. There is simply nowhere where we don’t explicitly decide what Python version to use. On top of that most of that software is technically scripts, not installable packages. ...

September 16, 2022 · 2 min · Rutger de Knijf

On formatting in Google Spreadsheets

TLDR; Colors aren’t values. Yes, as a human you can quickly see what’s up, and that’s great if it’s automatically formatted, I’m all for that. But colorizing a line or cell by hand is possibly the slowest action you can do in a spreadsheet. And yet I see people doing it all the time! Do me a favor, and look at your keyboard. Take one finger and color a cell. Nope, you can’t. There are, however, 26 letters and 10 numbers, right there. No hotkeys, just dedicated buttons, just for those! ...

September 12, 2022 · 2 min · Rutger de Knijf

"No, I just use vim"

“No, I don’t use tool X. I do it manually with tool Y, because then I’ll have more grip on what’s happening.” Examples of this are: using git on the command line instead of a GUI using vim instead of an extensive IDE like IntelliJ or VSCode Yes, you’ll understand the lower level part of the problem you’re solving better. But logically this must cost brainpower, otherwise there wouldn’t be more understanding. However, no matter how smart you are, brainpower is a finite resource. ...

September 8, 2022 · 2 min · Rutger de Knijf

I made an online Github Actions upgrader!

TL;DR: gaup.deknijf.com Github Actions is absolutely great. It’s fast, clean, clear, and I’ve yet to encounter a task I can’t accomplish. The main advantage of Github Actions over something like BitBucket Pipelines is the sheer number of modules (called “actions”) that you can just use. Need a docker image built? - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1.6.0 - name: Login to GCR uses: docker/login-action@v1.12.0 with: registry: eu.gcr.io username: _json_key password: ${{ secrets.GOOGLE_SA_KEY }} - name: Build and push run image uses: docker/build-push-action@v2.8.0 with: push: true tags: | eu.gcr.io/<project>/image:${{ github.run_number }} eu.gcr.io/<project>/image:latest cache-from: eu.gcr.io/<project>/image:latest cache-to: type=inline Need some Terraform deployed? ...

January 31, 2022 · 2 min · Rutger de Knijf