For the 3rd year running, I've been at GopherCon UK and am surprised to have survived the heat in London - highs of 36 degrees yesterday - but thankfully The Brewery is a lovely and cool event space. I'm writing this on the train home, with a slightly tired voice, and a little tired after a good time - thanks again to the organisers for putting it on! How to Stay Passionate in the Age of AI…
🤖 This post includes some LLM-derived content 🤖 In the Renovate project, we use the Merge Queue to merge PRs. If a PR fails its status checks, it will be pulled out of the Merge Queue, and a maintainer will need to re-queue it, if it is a transient error. For those of you unaware, GitHub are having a pretty hard time recently with outages , which means that we're seeing an increase in the number…
Ditto to last week: still not finished my Canada blog post Was a bit of a busier week with Anna in the office for a good chunk of the week And a pretty intense week at work on top of that 😬 Continuing to try and refine the plan Claude needs to implement for my Micropub rewrite Had a nice weekend down in London for my mum's birthday The a very bad drive down - took an extra ~90 minutes, including…
Ditto to last week: still not finished my Canada blog post Work's been particular busy this week with various bits going on, and an accidental major release And as it'd been a pretty intense week, Friday was a little bit more a "catch your breath" day where I worked on a couple of bits, got Claude Fable to investigate some things for me (and it got some pretty good investigations, similar to what…
🤖 This post includes some LLM-derived content 🤖 I've been recently thinking about how Open Source maintenance seems to be becoming a little more a slog recently - largely with the increased amount of contributions possible with AI agents - and how it impacts being a maintainer. I'm very fortunate that my literal job is to be an Open Source project maintainer (among other things) and that it's a…
When contributors raise PRs to Renovate , there are times where they'll merge main into their PR while they're waiting for a merge. Because we use a Merge Queue, we don't necessarily need this - as maintainers we'll manually merge main into a PR if we think it needs it, but it's mostly a case of waiting for the Merge Queue to handle it. Although we have a label that we add if we notice the author…
A busy week at work Got accepted to the Claude for Open Source program I've been looking, again, at rewriting my Micropub endpoint - it's been a long time on my list but I've never sat down with the time to do so - I'd like to get it into a nice place, but the time is always the difficulty. With that in mind, today I've been seeing if Claude can dig through my codebase, get some bits together to…
🤖 This post includes some LLM-derived content 🤖 I've recently been using the pattern I described to combine Renovate and Vendir to sync files in a number of repos, as a means to track OpenAPI spec dependencies. However, one thing I've found a bit painful is that when using Vendir to track these dependencies, the directory structure gets very nested. For instance, with config such as: # via…
A busy week back at work, catching up on what I'd missed, doing some decision making + Product-y thinking A fair bit of stuff to catch up did make it a slightly stressful start to the week, though Had a fun time at the GitHub Secure Open Source Fund's "Red Team - Repository Under Attack" event GitHub Secure Open Source Fund: Red Team - Repository Under Attack: A Hands-On Incident Response Exercise…
(Full Canada holiday writeup to come) Got ~1 hour sleep on the plane, and ~1 hour in the cab home, so didn't get going to pick up Cookie right away from Anna's parents - but after some caffeine I was ready to drive us to pick up Cookie Then Cookie decided to be rather alert during the night, so didn't catch up on sleep particularly well, and then last night Morph was the annoying pet 😅 So hoping…
(Full Canada holiday writeup to come) Reading: Tiamat's Wrath Leviathan Falls Watched: The Drama (2026) Fantastic Beasts: The Secrets of Dumbledore (2022) Switzerland vs Algeria (World Cup 2026) Canada vs Morocco (World Cup 2026)
A busy week before our trip to Canada 🎉 (Full Canada holiday writeup to come) It was very toasty this week As a way to reduce the overall heat, I ended up leaving my PC off while working, and found that worked quite well - but does mean I need to listen to music through my phone, which isn't ideal Sainsburys had the shutters down over their fridges But people didn't put them back after perusing -…
Enjoyed the last of the Selkirk Bannock A busy week catching up, dealing with a bit of fallout while I was OOO, picking up a few high-priority bits and doing some product-y evaluation of our backlog Some more good work on rootly-go this week oapi-codegen 's now - on main - got initial OpenAPI 3.1 support, which we'll release in a few weeks One night, Morph was wailing at something - it turns out…
🤖 This post includes some LLM-derived content 🤖 Let's say that you're trying to determine what percentage of your work is using AI - for instance as part of a performance review - how would you go about doing that? I've written before about how I personally attribute code and content from a Large Language Model . I still very much appreciate myself following the practice, and find it useful -…
A lovely week in Scotland at No. 2 Braefoot Cottage , which I very much recommend! Was lovely to get more chilled time with my parents, catching up and having some chill time I didn't bing my laptop charger with me by mistake, and fortunately nothing went wrong that needed it! Had some good walks and got some pretty awesome views - and mostly good weather, very impressively considering it was…
A busy week ahead of a holiday away in Scotland Thinking about pausing my Changelog++ subscription, as right now there's not really much happening Changelog wise, which is a shame A nice dinner at Everyday People with Carol, Alan and Nisha - a bit loud (with it being busier due to Restaurant Week) but good food 😋 A pretty good drive up to Scotland and some pretty great views and beautiful nature…
A nice relaxed Bank Holiday Monday We spent the day mostly trying to hide from the heat - highs of ~32 made it rather toasty Glad I did the decking on Saturday/Sunday, as it was so toasty And playing Clair Obscur: Expedition 33 almost all the day - continuously until the game crashed in the evening 🫣 A pretty busy work week One very good thing is that we're back to being able to publish npm…
My friend Alan wrote yesterday in a thread on Bluesky : In my end-of-year review I was described as a 'craft engineer' more than once. I don't disagree with this, but I have to wonder if this approach (one that has been comfortable for me for more than 10 years) is totally incompatible with modern AI tooling and a 'deliver it' mindset in a team? I want to split this across what I do; use the new…
It's heating up this week, and tomorrow is going to be ~33! Spent some time digging into how Renovate's caches work, to write up some more in-depth docs, and learned a number of interesting things I'm looking forward to finish writing up KvK vs 521 was fun We smashed them in prep, but they lasted longer than us for the battle Was interesting joining the Discord during the battle, and hearing the…
Got my job title changed at work, covering the role I do have and the work I'm doing (but no update to /salary/ ) which is cool! It's also a lot easier to say: -Senior Developer and Open Source Project Maintainer +Renovate Project Lead Another busy week with a lot of stuff going on, but some good bits done Preparing for a webinar I'm doing next-next week Still waiting for GitHub/npm support to…
This week I joined Kris Brandow on the Fallthrough podcast , talking about a mix of things . It was another fun episode, and I'm looking forward to listening back to it to hear about some fo the things we talked about. Hope y'all enjoy it!
Over the last few years, I've spent time working on projects like dependency-management-data with the intent that I could provide visibility into organisational usage of dependencies and insight into how outdated they are, which continues with working upstream on Renovate and Mend's enterprise offerings. Over the last few years of work, I've spent time looking at some of the great metrics the…
In the last month I've found I've been hyper aware of noticing folks writing open-source everywhere I look, which feels like there's something slightly larger at play. Where I've had access and means to, I'll correct references to correctly call it either open source or Open Source as appropriate, but there's a lot out there I don't really have the time to try and correct for everyone, so here's a…
A very short workweek, with Bank Holiday Monday, the GitHub Maintainers Summit and Matt's funeral on Thursday Had a chilled Bank Holiday Monday Was nice to be invited to the GitHub Maintainers Summit, and found it a good time! I didn't end up writing many notes that are worth sharing publicly, in particular because there were a number of confidential sessions where lot of the interesting things…
Earlier today I was working with a Yarn codebase for the first time on one of my machines, and I hit an awkward error I'd not seen before: % yarn install yarn install v1.22.22 error Error: Failed to replace env in config: ${NPM_TOKEN} at /usr/lib/node_modules/yarn/lib/util/env-replace.js:19:13 at String.replace (<anonymous>) at envReplace (/usr/lib/node_modules/yarn/lib/util/env-replace.js:14:16)…
A fairly busy week at work, and a mix of getting stuff done across the Open Source world In Renovate: Finished off the ability to make it so Renovate only provides updates to Go modules within your go directive , which we've wanted for oapi-codegen - already been very useful! With it being the start of Maintainer Month, I've been thinking about what we can do to support maintainers who use…
In the Go ecosystem, there are two key parts of the go.mod to note (aside from the dependencies themselves) which are the go and toolchain directives. The go directive allows specifying the minimum version of the Go language that needs to be used to work with this module. The toolchain directive allows specifying the minimum version of the Go toolchain that needs to be run to build the module,…
A pretty intense environment this week, so not too much else done outside of work Another episode of Fallthrough - this time a bit more random in what we covered, but good Tried making sweet and spicy Korean chicken - wasn't quite right in terms of measurements (and a little too little gochujang) but was good Listening to How Did This Get Made? 's episode on Master of Disguise reminded me of…
This week I joined Kris Brandow on the Fallthrough podcast , somehow talking about even more topics than last week. This was a fun episode, and one of the alternate titles I'd proposed - on the removal of Claude Opus from GitHub Copilot Pro and maybe no more Claude Code on the Pro plan - was: The Opus was the shareholder value we've delivered along the way. Hope y'all enjoy it - it was shorter…
Last week, I was tagged in a LinkedIn post, where one of the Python Core developers was noting that Astral's setup-uv GitHub Action was not being updated by either Renovate or Dependabot, and a note to users that they would need to manually update. I was a bit surprised about this - as it was the first time I'd heard about it - and this is never the scenario I'd want Renovate users to be in -…
A busy week at work Was pretty chuffed with myself when I saw a nudge about astral-sh/setup-uv not being updated by Renovate (since the move to Immutable Releases) and I was able to solve it pretty quickly, showing some good speed of reaction compared to alternative products But, alas, it ended up being a little more complicated and breaking a few things, and I probably could've taken a breath to…
This week I joined Kris Brandow and Ian Lopshire on the Fallthrough podcast to talk about a tonne of topics , including AI, Claude Mythos, why frontend engineering is harder than backend engineering, a preview of a proposed talk to GopherCon UK "A little dependency is better than a little copying", and a whole load of other things. This was a really fun episode, and we covered quite a few…
As I've been working more with Typescript - especially with Renovate - I've been feeling the need to finally invest in getting a debugger set up. Although I've been a fan of either console.log s and/or using OpenTelemetry tracing for debugging how things have been working in the project, there's been a few things this week that would be more convenient if I could i.e. interactively check some of…
A 3 day week, with Easter Monday and a recharge day at work A busy week at work, continuing on protecting our users from malicious packages Including a short-term fix using OSV data, and a longer-term solution planned that I'm working through which will provide some strong extension points in the future Some oapi-codegen work Including some improvements to Renovate to allow not updating…
Something I've been meaning to write about since November 2024 is how to create an external command for diffing between files with git diff . I found that while I was implementing renovate-packagedata-diff that there seemed to be a lack of documentation around how to do it, so it would be worthwhile me blogging about it. (I've since found that there is some documentation in the Git Diffs man page…
I work with quite a few OpenAPI specs, and have found it useful to be able to keep an eye on what's changed over time. Although I'm familiar with the YAML (or JSON) representation of a given OpenAPI spec, it's nicer to have a summary that's human-readable . This especially is the case in my work maintaining rootly's Go SDK , where there's a lot of change! I've recently been using oasdiff a lot…
Week Notes are later than usual because we were binging Last One Laughing UK , and enjoyed going to bed late with it being a bank holiday A fairly busy week at work, getting some more things in place to block malicious packages from being picked up by Renovate With the end of the tax year coming up, spent some time sorting out ISA allowances, paying into personal pension, calculating an estimate…
A fairly busy week back at work, catching up on what I'd missed, some follow-ups to last week's Trivy supply chain attack, and pushing forward with a number of plans Pretty awful weather this week - storm earlier in the week, and as we went down to London, we had gorgeous sunshine and heavy rain and hail 😬 A good result at the Jam Cafe quiz, coming 4th place with 2 points in it! Had a nice…
A nice, mostly restorative, week off for my birthday: Definitely feel a lot more reset, having worked on various bits of life admin, and not doing any Open Source (bar one PR), not doing any tech-related reading or listening (although maybe I lie - it turns out on Monday I did listen to some pods) Was good having a few "admin" days and a few "nothing" days planned Had a nice walk around Blidworth…
As I did an update earlier on my Neovim plugins, I noticed a breaking change from codecompanion.nvim hadn't yet been addressed upstream with mcphub.nvim , but fortunately a couple of options were contributed by the community. Until the PRs are merged, I wanted a way to pull the changes into my local setup with lazy.nvim, so I could continue using MCPHub. As I'd posted about on one of the PRs , we…
A busy week trying to close out my ongoing TODOs ahead of being off next week Sorting through ~50 of my raised-but-not-yet-merged PRs on Renovate Clearing out things in my TODO list, some of which needed issues raising and/or thinking about bigger strategy decisions As I've been doing this, I've spent some more of this week doing "big picture thinking" and planning out a lot of things that will be…
A busy week at work After daycare on Tuesday, Cookie was too tired to close her eyes 🥰 (which we're very much a fan of) She was very cutely leaning against me and falling asleep, still slightly sitting up Cookie hurt her dewclaw on Thursday, with it bent at a very painful looking angle We took her to the vets as soon as we could, and they did well to remove it (and bandage her up) and she was…
Over the years, I've been a heavy user of Renovate , and I think it's fair to argue I can describe myself as a "power user". As someone who enjoys the faster feedback of tests, I've spent a good chunk of time honing the process of validating more complex configuration changes before they're merged - especially on repositories where CI builds can take some time, or (understandably) not everyone in…
In the Overcommitted community Discord, we've had some discussion recently about using analytics on our sites. In response to a question about how I use it, and whether it changes my behaviour, I thought I may as well get another blog post out of it! You may also be interested in reading my annual "site in review" posts , which over the years go into some of the specifics, and might be an…
A busy week but less so than last week, thankfully After starting to look into how to sync files with Renovate, I spent a bit of time with Vendir, and after a couple of tweaks, managed to get it sorted + blogged about Got oapi-codegen v2.6.0 out - still a few things we wanted to get in, but didn't get round to them in time for the 7th birthday A couple of LLM-y posts this week, which led to some…
A number of releases ago, I introduced a JSON Schema for oapi-codegen 's configuration file format, to aid with editor-driven autocomplete. It's best if you pin this, so you're not trying to use features that don't yet exist, like so: # yaml-language-server: $schema=https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/configuration-schema.json package : api # ... But if so, how do…
Prompted by Joe and Marcus after my last post about AI , I thought I'd share how I'm currently using locally-hosted Large Language Models (LLMs), as I'd teased it a little bit in the post. The TL;DR is "not that much". Why did I start? Before I get into how I'm using them now, it's worth explaining how I got started using them. In late 2024, some things were happening at work that made me feel…
For a few years, I've been trying to get a perfect workflow for keeping vendored files in sync between repos. Especially with oapi-codegen , where it's our recommendation to vendor the OpenAPI specification and your generated code , there can be a bit of awkwardness in place to try and keep your copy of some other repo's OpenAPI spec in sync with yours. I've written before about how I've used…
As I've written about before, I'm a self-described "cautious skeptic" of AI and Large Language Models , and I'm trying to do more with AI where makes sense. One thing I've noticed I do differently to other users of AI-generated code is that I work hard to document usage of AI tools much more visibly than other folks, going as far as documenting this at the commit level. This may be because I have…
A particularly busy and overwhelming week - juggling what seemed like two dozen things in and out of work Enjoyed my leftover Miss Korea from Sunday night 😋 Got v0.7.0 out for rootly-go , with some future-proof changes that should make it easier for folks in the future Was able to finally speak about oapi-codegen 's time in the GitHub Secure Open Source Fund and had some good responses from the…