The Endless Quest for Simpler Workflows: Nox, tox, and direnv
Hello friend!
A few quick notes from me while I’m frantically getting ready for PyCon US (flying out on Tuesday already!) and trying to tie up as many knots as possible! I thought my pre-PyCon time would be chill if I didn’t give a talk, but life went like lmao.
It all started with a fun trip to Seattle for PyCascades where I had honor to stay with someone who owns not one but two Hugo Awards which made me go viral on both Mastodon and X:
But the combination of the trip (I’ve never been asked more often what I’m doing somewhere with a look of someone seeing a ghost – but yeah nine-hour jet lags aren’t fun), the latest video project ballooning, and an important project at work completely wrecked my past four weeks.
New Video!
But I have something to show for it!
It looks like I’ve landed in a bit of a topical niche around Python packaging and this time, I’ve gone self-sabotage-level niche-in-a-niche!
I’ve mentioned the tox and Nox tools many times in the past and kept having to explain them to empty looks, so I’ve decided to make “a quick video” on them and explain what they’re good for and contextualize them in my own Python life.
Well, it turned out to be the longest video so far, clocking in at over 26 minutes, and it took me more than two months to produce (again). I don’t expect it to do as well as the one on uv (that just passed 5,000 views 🎉), but I hope it might work well in the long tail, given how timeless it is. And I hope to make some fellow open-source maintainer’s life easier:
Please watch, like, subscribe, etc. Sadly, it’s crucial to gain visibility. Also, since I would hate to sue y’all for libel: it’s not a YouTube face on the video thumb; it’s (like all my videos so far) a still from the video!!!!1!
I still can’t believe the video took me over two months to produce and how it became the longest video! The writing was painful because it was difficult to structure, and to edit an (ultimately) 26 minutes-long video was a marathon. I’m also 100% convinced Final Cut Pro can smell my anxiety, given how often it crashed towards the end of the project. 😨
One exciting aspect of producing videos is that once it’s on YouTube, it’s done. Publishing an open-source package is only the first step towards regret, and even my blog posts are constantly in flux. But with videos? You can spend infinite time on them (and I wish I had more time polishing this one), but putting them out is a hard cap. Grammar blooper? Mispronounced something? Swallowed word? Tough luck; it’s out there. But it has the tremendous upside that publishing a video that I’m not happy with forces me to accept my fate and work on other stuff that needs to be done. 😅
Finally, I hope my sponsors (of which I know several are reading here 👋💛) appreciate the shoutouts. I always try to give back to those who make all this possible (Final Cut is not cheap 🫠). 💜 I won’t/can’t make any promises how I’ll handle it in the future, but this is something I’m thinking about constantly.
More On Virtualenv Management
I’ve also put out some text!
One of my first TILs was about in-project virtualenv management and since the situation improved, I’ve revisited the topic and documented how I manage and auto-activate them nowadays. I hope it’s helpful to some of you:
Python Project-Local Virtualenv Management Redux
Either way, my fandom for direnv is only growing! 🤩
FOSS
I have done a lot but have not released much! I was planning on doing a bunch of releases before leaving (my god is attrs overdue), but the video and crunch at work threw me off completely. I hope to get a bunch of releases out before flying out, though. You go and judge me on May 17th! 😅
I’d still like to point to build-and-inspect-python-package, which is about to grow build provenance attestation thanks to (of course) Hugo and Seth and my latest experiment setup-cached-uv which is kinda showing that GitHub/Microsoft is much better at networking than storing/retrieving caches, but still.
I hope to meet as many of you as possible in Pittsburgh; come and say hi, and ask me about svcs stickers! 🤓
Cheers,
—h