articles on Jamie Tanna | Software Engineer

Recent content in articles on Jamie Tanna | Software Engineer
https://www.jvt.me/kind/articles/ (RSS)
visit blog
Updating dependent branches when rebasing, automagically
25 Aug 2026 | original ↗

I'm regularly rewriting my history, often with the lens of improving my commit messages. On the Renovate project, we use a Merge Queue with Squash Merge, which means that if I do want to have atomic commits, I need to split them across PRs, which adds a bit of noise to manage them. Alternatively, I could bypass branch protection requirements to...

What commit did I branch off from?
23 Aug 2026 | original ↗

Sometimes, you create a branch off another branch, do some work on it, and want to know what the original branch was pointing at. For instance, if you're looking to clean up your Git history, but don't want to rebase off origin/HEAD as you know there are some gnarly conflicts you may have to deal with, you want to know the last known "good"...

I'm on Fallthrough: A Modest Proposal Proposal
22 Aug 2026 | original ↗

In this week's Fallthrough podcast episode, I joined Kris Brandow and Matthew Sanabria to talk about a few things, but mainly the new Go proposal proposal. I don't think this was a particularly good appearance from me - I'd been at GopherCon UK the few days before, and was very noticeably flagging 😅 This was very much on me for agreeing to try...

Announcing some improvements to `renovate-pretty-log-tui`
17 Aug 2026 | original ↗

As I've blogged about before, I've written a tool for improving the experience of working with Renovate's debug logs, providing a more targeted experience for viewing the logs. While there are a few options out there at the moment, including part of our products at Mend, it's also nice having an agnostic tool I can use across different products,...

Why I still hand write my commit messages
17 Aug 2026 | original ↗

For over a decade, I've been a proponent of writing detailed Git commit messages. I find it a valuable use of my time, and continue to double down on it, even in a world where you can get a Large Language Model (LLM) to write it for you. In the past, I've written about at least 89 strong feelings I have about Git commits, so I'm naturally biased...

Week Notes 26#33
16 Aug 2026 | original ↗

The main thing this week has been GopherCon UK - an expensive week, and unfortunately not as good as previous years - but you can see my writeup for more info On Tuesday night when I got in, I went over to Monohon Ramen which was nice Met some nice folks and had some good chats Went up to Smithfields Market to get a view of the eclipse, but as we...

GopherCon UK 2026
14 Aug 2026 | original ↗

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...

Finding which PRs have been taken out of the Merge Queue due to failed status checks
11 Aug 2026 | original ↗

🤖 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...

Week Notes 26#32
9 Aug 2026 | original ↗

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...

How much AI can a maintainer get away with using without losing their humanity?
2 Aug 2026 | original ↗

🤖 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...

Week Notes 26#30
26 Jul 2026 | original ↗

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...

Reducing overly nested Vendir paths
21 Jul 2026 | original ↗

🤖 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...

Week Notes 26#26
12 Jul 2026 | original ↗

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...

Week Notes 26#27
12 Jul 2026 | original ↗

(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)

Week Notes 26#28
12 Jul 2026 | original ↗

(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...

Week Notes 26#25
21 Jun 2026 | original ↗

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...

Determining adoption of AI through Git commits
18 Jun 2026 | original ↗

🤖 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...

Week Notes 26#24
14 Jun 2026 | original ↗

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...

Week Notes 26#23
7 Jun 2026 | original ↗

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...

Week Notes 26#22
31 May 2026 | original ↗

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 there space for 'craft' in the world of AI?
26 May 2026 | original ↗

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...

Week Notes 26#21
24 May 2026 | original ↗

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...

I'm on Fallthrough: He Who Controls the Source
16 May 2026 | original ↗

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!

I hate the recent open-source rise
12 May 2026 | original ↗

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...

Week Notes 26#19
10 May 2026 | original ↗

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...

Gotcha: Yarn may need an empty `NPM_TOKEN` set to run
5 May 2026 | original ↗

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 () at envReplace...

Week Notes 26#18
3 May 2026 | original ↗

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...

Configuring Renovate to only suggest updates that match your `go` directive.
2 May 2026 | original ↗

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...

Week Notes 26#17
26 Apr 2026 | original ↗

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...

I'm on Fallthrough: No Country for Old Maintainers
25 Apr 2026 | original ↗

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...

A deep dive into the wild world of GitHub Actions' tagging formats
24 Apr 2026 | original ↗

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...

Setting up Neovim with the Debug Adapter Protocol for Javascript/Typescript
17 Apr 2026 | original ↗

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.logs 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...

Week Notes 26#15
12 Apr 2026 | original ↗

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...

How to build a `git diff` driver
11 Apr 2026 | original ↗

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...

Using `oasdiff` for rich Git diffs of OpenAPI spec changes
11 Apr 2026 | original ↗

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...

Week Notes 26#14
6 Apr 2026 | original ↗

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,...

Week Notes 26#13
29 Mar 2026 | original ↗

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,...

Week Notes 26#12
22 Mar 2026 | original ↗

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...

Pointing lazy.nvim to a Pull Request
22 Mar 2026 | original ↗

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...

Week Notes 26#11
15 Mar 2026 | original ↗

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...

Does my site's analytics change how I write?
3 Mar 2026 | original ↗

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...

Week Notes 26#09
1 Mar 2026 | original ↗

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...

Automagically updating `oapi-codegen` JSON Schema version bumps with Renovate
1 Mar 2026 | original ↗

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:...

How I'm using Local Large Language Models
28 Feb 2026 | original ↗

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...

Automating the syncing of files between repos with Renovate and Venidr
27 Feb 2026 | original ↗

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...

How and why I attribute LLM-derived code
25 Feb 2026 | original ↗

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...

Week Notes 26#08
22 Feb 2026 | original ↗

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...

Breaking free from GitHub Discussions' limitations
20 Feb 2026 | original ↗

As I recently wrote about, we use GitHub Discussions for triaging user requests in the Renovate project. This process works really well for the maintainers (the team who have final say on new features, and whom have merge rights) and contributors (people who regularly contribute to Renovate's features, fix bugs, improve documentation and help...

GitHub Actions' `required` properties aren't always required
18 Feb 2026 | original ↗

Earlier today on Renovate we noticed that our documentation site had not been deploying for a couple of days. The root cause was down to a quirk of GitHub Actions, where a required property isn't actually always enforced to be required 😅 To explain this, let's look at the following composite action: # .github/actions/setup-node/action.yml name:...

Lessons learned from `oapi-codegen`'s time in the GitHub Secure Open Source Fund
17 Feb 2026 | original ↗

As noted in GitHub's post, oapi-codegen was one of the projects taking part in the third GitHub Secure Open Source Fund session. I'd like to take a moment to reflect on the program, and some learnings I've taken from it. One of the quotes I shared at the end of the program summed up my time: Having time dedicated to following best practices has...

Week Notes 26#06
8 Feb 2026 | original ↗

With Anna off these couple of weeks, we had Tuesday off together, and although we didn't get to the spa, we had a nice lunch out at Maki & Ramen, and then got some nice chocolates from Chocolate Utopia It was DMD's birthday on Monday, and a bit sad thinking about it, some of the interesting work Andrew Nesbitt is doing that may be things that...

Using Ledger, plain text accounting and a touch of AI to fill in my UK tax return
1 Feb 2026 | original ↗

A few weeks ago, I was reading Siddhant Goel's post about 10 years using plain text accounting, and I found it a really interesting read, but decided that this level of tracking was unfortunately not for me (and my ADHD brain. It wasn't until a few weeks later, where I was filling in my first UK self-assessment tax return, that I wondered if...

Week Notes 26#04
25 Jan 2026 | original ↗

A busy week at work, with a number of in-flight features and fixes, especially ahead of a Dev Platform release Been a fun week on Kingshot, burning through a lot of things with TC30 and Alliance Mobilization competing with one of the other alliance members Accidentally spent a lot of speedups getting to TC30 (more than I needed) as well as...

What I've learned building an agent for Renovate config (as a cautious skeptic of AI)
23 Jan 2026 | original ↗

This article was originally published on the Mend's HackerNoon blog. It's fairly likely that you've heard the term "AI Agent" or "Agentic" used in the last few months, and for a number of folks, it's possible that you've used an AI Agent before. But do you know how they work, and how straightforward it can be to implement a fairly basic version?...

The first 100 days as a Renovate maintainer: the shocking inside view of a popular Open Source project
21 Jan 2026 | original ↗

Roughly 100 days ago, I joined Mend to work on the Renovate project as a maintainer and community manager. In a vague homage to the style of politics' "first hundred days", I'll talk about some things that have happened since I've joined the project, and some of the interesting (and mundane) things I've learned since joining the project. This was...

Week Notes 26#03
18 Jan 2026 | original ↗

The Renovate "maintainer dashboard" has been super useful (running locally) to giving me a view of what user-submitted Discussions need a review It's already making it much easier for me to get insight into things, and being able to directly query the data is very handy I'm in the process of writing a blog post about it, and hoping to also get...

Getting access to rich-text data from the clipboard (on Mac)
13 Jan 2026 | original ↗

🤖 This post includes some LLM-derived content 🤖 Related to my post from last year around doing this on Linux, I've been trying to do the same on my work Mac. As with trying to copy rich text out of the clipboard, it's also painful to copy rich text into the clipboard. With thanks to GPT-4.1 (GitHub Copilot), we worked out the following...

Authoring Markdown externally and pasting the 'pretty' output into Slack (on Mac)
13 Jan 2026 | original ↗

🤖 This post includes some LLM-derived content 🤖 Related to my post from last year around doing this on Linux, I've been trying to do the same on my work Mac. As with trying to copy rich text out of the clipboard, it's also painful to copy rich text into the clipboard. With thanks to GPT-4.1 (GitHub Copilot), we worked out the following...

Creating a TUI for keeping an eye on GitHub Rate Limits
12 Jan 2026 | original ↗

In the last week, I've been doing some work to sync Renovate's Discussions to a local SQLite database, so I can provide a better query layer for maintainers and contributors to see what's going on. As part of this, I've been sending quite a few API requests to GitHub, and have naturally been eating up a fair bit of my API rate limits. I wanted a...

2025's podcasts in review
11 Jan 2026 | original ↗

(Aside: I'm considering moving this into a microsite powered by Evidence, like I do with my Music In Review, where I could graph some of this data more effectively - we'll see if I can get around to doing this, as well as adding previous years of listening data) Listening This year, according to Podcast Addict (the app I use) I listened to ~24.5...

Week Notes 26#02
11 Jan 2026 | original ↗

A very cold week, with snow starting on Monday, frozen pipes on Tuesday, and Storm Goretti later in the week We'd planned to have Monday off (as part of a nice 5-day weekend) but didn't realise until last weekend that doggy daycare was open - as we were able to book her in, instead of her usual Tuesday, it meant we could go into town on Monday...

Why the Renovate project uses GitHub Discussions as our triage process
7 Jan 2026 | original ↗

(Note that this is also posted on the Renovate project's Discussions, too) Over the weekend, there has been some good discussion on Hacker News about how the Ghostty project uses GitHub Discussions for triage purposes, and then promotes the feature request/bug reports into Issues when they're triaged effectively. When Mitchell Hashimoto looked to...

Week Notes 26#01
4 Jan 2026 | original ↗

A weird week being at work between Christmas and New Year's, but nice that we have a long weekend (Thur -> Mon) following it Work has been busy (for reasons that I'll share at some point soon) and not quite the more chill week we'd hoped Been very chilly this week Now I have a set of the new Pixel Buds Pro 2 - as a present from Anna - I've been...

2025's Music In Review
3 Jan 2026 | original ↗

This page has now moved into the separate "Music in Review" microsite, for 2025.

2025's Site In Review
2 Jan 2026 | original ↗

(Aside: I'm considering moving this into a microsite powered by Evidence, like I do with my Music In Review, where I could graph some of this data more effectively - we'll see if I get round to it by the end of the year!) Commentary As with last year, there's been another significant decline (~20%) in overall hits on my site. Not that this is a...

Week Notes 25#52
28 Dec 2025 | original ↗

Took a half day on Monday with Anna's family leaving, so I could help out, and pick up Morph Morph was very screamy when I went to collect him - very surprisingly, considering it was one of his shortest stints there On Monday/Tuesday Morph enjoyed coming upstairs - being very needy - and chilled behind me on my spare desk overlooking the garden...

Week Notes 25#51
21 Dec 2025 | original ↗

A busy week ahead of hosting the Dodsons this weekend for Christmas: A lovely weekend hosting the family and catching up We both had Friday off to do the last bits of sorting and tidying and getting bits ready in the house which was very much needed, on top of bits we've been doing on-and-off for a few weeks! Got some lovely gifts from my Secret...

Week Notes 25#50
14 Dec 2025 | original ↗

In the run up to Christmas (with Anna's family Christmas next weekend), I've made some good progress with my office to make it "guest ready", and got a few more presents sorted Well, 73 days is my new record for a re-org 😬 A very frustratingly slow haircut, being there for ~90 minutes (almost entirely waiting to be seen) and still not super...

I'm on Open Source Security: Updating open source dependencies
8 Dec 2025 | original ↗

A few weeks ago, I joined the Josh Bressers on the Open Source Security podcast to talk about the joys and difficulties of updating dependencies, and we had a great time. In particular, this focussed on Renovate, given my role as maintainer and community manager on the project, and talking about some of the difficulties of updating dependencies....

Week Notes 25#49
7 Dec 2025 | original ↗

At work, fairly busy continuing with OpenTelemetry, and finalising my agentic Renovate blog post My work to block significant levels of scraping on my website seems to have been in vain - so now I'm playing "cat and mouse" Had a nice, chill, weekend Had a nice walk with Carol and Alan this morning - and Cookie's been so sleepy this afternoon...

Week Notes 25#48
30 Nov 2025 | original ↗

Monday was very busy for two reasons: The v2 of Shai Hulud (Sha1-Hulud) worm landed, and so spent a fair bit of the day keeping an eye on internal + external discussions Some good discussions were had off the back of the Minimum Release Age work we've done recently But was also sad to not be able to look at how to detect + contain using DMD Made...

Week Notes 25#47
23 Nov 2025 | original ↗

Got my post about Open Source and LLMs out, which was good to get it off my mind And was in perfect time for it to be included in Changelog News! Not as much discussion about it, unfortunately Been seeing a lot of Capital One people checking my LinkedIn profile out, what's all that about? 👀 Our Rakki Rakkas order got recognised by my voice 🫣...

Worries about Open Source in the age of LLMs
17 Nov 2025 | original ↗

On Saturday, I was listening to an episode of Changelog and Friends and Jerod wondered whether Open Source would be needed/used in the world of Large Language Models (LLMs). He's mentioned this before - not necessarily "ooh this is great!" but considering whether that's the trend - so I've been noodling on it in the background for a bit. Then,...

Week Notes 25#46
16 Nov 2025 | original ↗

At Batch Bunch, I made some good progress on hacking together an agent for Renovate configuration changes - will see what shape I can get it in and then share it (and a blog post on the Mend blog) As I got home, Cookie was very excited to see me, then proceeded to throw up on me (with excitement) 😅 Came joint 4th with our other team in the...

November 2025's Desert Island Discs
15 Nov 2025 | original ↗

Just over a month ago, Carol asked at the pub about what our 8 desert island discs would be. After a month of deliberating, tweaking songs and ordering - but most importantly, trying to put down in words (a little) of why these songs make the list - I've finally finished. I found it surprisingly hard to actually describe the songs, without...

Week Notes 25#45
9 Nov 2025 | original ↗

Had a great chat with Josh on the Open Source Security podcast, talking about dependency management and some of the complexities that are involved with a project like Renovate A busy work week leading up to the Renovate v42 release, and my first Mend blog post David Flanagan asked if I had a public podcast subscription list, so I thought I may as...

Building a more secure npm ecosystem with Mend Renovate
6 Nov 2025 | original ↗

This article was originally published on the Mend blog. Over this last year, we've seen significant attacks like the Shai-Hulud worm, the Nx build system compromise, and secrets being leaked to public GitHub Actions logs via the tj-actions/changed-files compromise, but I could spend the entirety of this article only listing different attacks, let...

Week Notes 25#44
2 Nov 2025 | original ↗

A busy work week, in particular continuing towards the next major release of Renovate, this coming Thursday, with a number of things to get in with the release A slow Monday, after the drive, but got my Week Notes published before work A good week for swag! Got my new starter kit from Mend And the earliest delivery of a Hacktoberfest t-shirt,...

Week Notes 25#43
27 Oct 2025 | original ↗

A busy, productive, week at work this week, but a couple of slower brain days Was nice to catch up with Nikos and Michael In Kingshot, did well on Eternity's Reach based on a YouTube video shared in the Alliance chat With Anna speaking at Serverless Days in Cardiff, was just Cookie and Morph and I for a couple of days Got my first couple of...

Finding missing `releaseTimestamp`s in Renovate
24 Oct 2025 | original ↗

🤖 This post includes some LLM-derived content 🤖 As part of the work we're doing towards the upcoming Renovate 42 to improve minimumReleaseAge support, I thought it would be useful to straightforwardly identify cases where dependencies (or updates to existing dependencies) do not have release timestamps information. For instance, when...

Adding type hints to Renovate `config.js` files
21 Oct 2025 | original ↗

🤖 This post includes some LLM-derived content 🤖 I'm a fan of using Renovate's config.js file format for the global self-hosting configuration. One thing that's always caught me out, compared to the repo-level configuration, is that I don't get IDE autocomplete by default. Today, I ended up sitting down to look at how to get it working...

Week Notes 25#42
19 Oct 2025 | original ↗

A cold week, with the boiler replacement: It was a bit more involved than we predicted, so ended up getting a Miss Korea takeaway on Monday, which was very good and accidentally managed to have a good portion of food left over for lunch on Tuesday The house was in a state of disarray Monday to Wednesday, and so Cookie had an extra day at daycare...

Week Notes 25#41
12 Oct 2025 | original ↗

It's been pretty chilly this week - especially with the boiler broken - but glad that it's being fixed this week We've also got the electric blanket on the bed now, to cut through the cold I've not yet worked out my "desert island discs" (after the discussion at the pub) but I've: Been replatforming my "music in review" from hosted on my blog to...

Week Notes 25#40
5 Oct 2025 | original ↗

With most of my colleagues off for a public holidays, it's been a little quieter at work, but I've managed to still be fairly busy Spent a good chunk of time on the Open Source project, dealing with us hitting the npm registry's size limits for number of package versions, and carrying on with improvements around minimumReleaseAge to secure the...

Week Notes 25#39
28 Sept 2025 | original ↗

A pretty busy week, with my last few days before starting my new job 🚀 and trying to get a few things done first Reminding myself how to post my private Week Notes, and did some tweaks to fix up the infra Had a pre-work catch-up with Justin about a couple of bits Gousto was very late on Monday, so ended up having duck pancakes - which I'd...

Creating a `gh` CLI extension for creating GitHub Discussions via category forms
22 Sept 2025 | original ↗

As part of getting ready for my new job at Mend this week, working on Renovate, I've been thinking a little bit about my workflow. One of the choices the Renovate maintainers made a couple of years ago was that Q&A/feature requests should come through the GitHub Discussions on the project, then will be "promoted" into an Issue that then will get...

Week Notes 25#38
22 Sept 2025 | original ↗

A lovely week in sunny Tsilivi in Zakynthos (aka Zante) 🌞 We had such a lovely time, enjoying the sun, reading our books, and swimming in the pool and the sea We had some great food and drink at: Milos pub Arhontikon The food was really good! The portions were incredibly generous 😋 However, the best thing about the restaurant was that I had...

Week Notes 25#37
14 Sept 2025 | original ↗

My first between-jobs week: Generally trying to not push myself and give myself some space, given I'd gotten fairly burned out and my brain has been a little mushy Although it'd have been nice to get a load of stuff done, executive dysfunction is a bitch, and I didn't want to overload myself and inevitably make things worse Some absolutely awful...

Using `jqp` for interactive queries with `jq`
12 Sept 2025 | original ↗

I'm not particularly jq-savvy, so when I have to play with it, I find it a little difficult at times. (Yes, LLMs make the process a little less painful, as I can outsource some of the thinking to them) Although there are online tools like the JQ Playground, y'all know my thoughts on the fact that you shouldn't use online tools, so I wanted to...

Determining the digest for a GitHub Action
11 Sept 2025 | original ↗

When working with GitHub Actions, you may have encountered a Workflow that pins the digest of the Action being used: steps: - uses: release-drafter/release-drafter@09c613e259eb8d4e7c81c2cb00618eb5fc4575a7 # v5 So how do you go about determining the digest? We definitely don't want to manually update these over time, and so instead want to...

Setting up `govulncheck` in GitHub Actions with GitHub Code Scanning alerts
11 Sept 2025 | original ↗

With oapi-codegen, as many other folks in the ecosystem, we've been asked a few times in the past "can you please update this dependency as it has a CVE". I'll generally reach for govulncheck as a way to confirm the impact, given it validates - via static analysis - whether the dependency is actually called as part of your operation (sometimes...

Gotcha: referencing symlinks with `go:embed` result in `irregular file` errors
10 Sept 2025 | original ↗

Early in 2024, I hit an issue with Go not allowing me to use go:embed. (Aside: this is one of those posts that has been on the backburner and I'm finally getting around to it given I had a few minutes spare, and I want to test some new functionality in my blog-to-LinkedIn syndication.) I can't remember the full details for what I was exactly...

Week Notes 25#36
7 Sept 2025 | original ↗

My last week at Elastic, chilly with the boiler packing in and a nice weekend with my parents: Didn't sleep particularly well on Sunday night, and woke up ~0400 and noticed the WiFi was down 🤔 which was greatly concerning to me But also not great because we're both meant to be working later that day When I woke up later - for the usual start of...

Starless: How we accidentally vanished our most popular GitHub repos
5 Sept 2025 | original ↗

This article was originally published on the Elastic blog. What happens when automation makes a change based on assumptions without confirming the state of the real world? In October 2024, we found out in one of the worst ways possible — our most critical public repositories on GitHub were unintentionally marked as private, resulting in a...

Week Notes 25#35
31 Aug 2025 | original ↗

In new job: Announced my new job - that I'm joining Mend to work on Renovate (CLI + Enterprise) 🚀 I was able to get it published just before I left for the pub with C1 folks, but: A GitLab CI bug meant that the "deploy" agent was stuck, which I had to force a stop + unlocking of the deploy queue In the rush, I'd incorrectly copy-pasted some...

I'm joining Mend to work on Renovate full-time
27 Aug 2025 | original ↗

I'm very excited to announce that in September, I'll be joining Mend to work on the Mend Renovate CLI (the Open Source project commonly known as "Renovate") 🚀 Readers of my blog will be unsurprised that I was ecstatic to get the opportunity to join the team working on Renovate - Renovate is a project I've been working with for about ~6 years,...

Additional lessons learned running Renovate at scale
27 Aug 2025 | original ↗

I've written before about why I love Renovate for dependency management and some lessons learned self hosting Renovate. One thing I've not yet shared are some top tips for running Renovate "at scale" that I've found useful, in my own personal capacity. This post is primarily aimed to folks who operate Renovate as-a-service for other parts of...

Week Notes 25#33
24 Aug 2025 | original ↗

The weather's back to being chilly 🥶 On a dog walk with Cookie, I noticed that the leaves have started falling and being particularly crunchy - autumn is almost here 😅 Made some efforts to try and improve my LinkedIn cross-posting but it turns out none of the platforms do what I need, so I'm going to have to build it myself Tried out Pipedream...

Week Notes 25#34
24 Aug 2025 | original ↗

The weather's back to being chilly 🥶 On a dog walk with Cookie, I noticed that the leaves have started falling and being particularly crunchy - autumn is almost here 😅 Made some efforts to try and improve my LinkedIn cross-posting but it turns out none of the platforms do what I need, so I'm going to have to build it myself Tried out Pipedream...

Week Notes 25#32
17 Aug 2025 | original ↗

A fairly busy week with GopherCon UK: Had a nice lunch with Anna's parents on Monday as they brought Cookie back - including opening up the Costco margarita mix 🍸 (which we've been continuing on this week) Absolutely shattered this weekend after a good few - but tiring - days at GopherCon UK Cookie's been very cute this weekend 🥰 Getting some...

GopherCon UK 2025
15 Aug 2025 | original ↗

Starting this post as I'm on the way home from a great few days at GopherCon UK, I had a great time. This year's GopherCon UK was a little different than last year's given this year there were "tutorials" as a third session type. GopherCon UK runs both "workshops" and "tutorials" - the former is a pre-conference, all-day training, whereas...

Clearing Language Server Protocol (LSP) diagnostics in Neovim
15 Aug 2025 | original ↗

I've recently started to use vale for providing some editing improvements on my writing - I'll write up about that at a later point. As part of using Vale, I've had a few cases where Vale has been very angry with some of the pre-written content I'm amending, or on new content. In some of these cases, I'll disable Vale's language server i.e....

Running Docker images from other architectures, on Linux
12 Aug 2025 | original ↗

As I'd noted in Creating cross-compiled Docker images from Go binaries, I've been doing some work recently for container image builds. As I'm putting the finishing touches to my talk at GopherCon UK for the end of this week, I'm creating a pre-built container to simplify setup. However, to debug this issue with go install, I found that I needed...

Week Notes 25#31
11 Aug 2025 | original ↗

A big week - some big decisions to make, the main one of which is that I'm leaving Elastic 👀 There'll be more details coming soon, but: I'm leaving Elastic, with my last day on 2025-09-05 I'm very excited for my next gig I've got a good ~20 days between jobs to recharge, which I'm very much looking forward to I handed in my notice on Thursday +...

Week Notes 25#30
3 Aug 2025 | original ↗

A busy week with my workshop at Manchester Gophers and Anna's family staying for a long weekend: A busy week doing some final prep for my workshop at Manchester Gophers Had a panic in Wednesday after archiving my return train ticket, but blogumented a way around it Had a good catch-up with Chris Was a very close train on the way back on the...

Creating beautiful visualisations of dependency data with Evidence
31 Jul 2025 | original ↗

In a couple of weeks I'm speaking at GopherCon UK 2025, where I'll be facilitating a tutorial What story does your dependency tree tell you about your organisation?. (This would also be described as a "workshop", but GopherCon UK runs both "workshops" and "tutorials" - the former is a pre-conference, all-day training, whereas "tutorials" are...

Accessing (accidentally) 'used' tickets in The Trainline's app
31 Jul 2025 | original ↗

Last night I clicked "mark as used" on one of my tickets in The Trainline app. It was for the first part of a set of advance single tickets, and I wanted to remove the first leg of the journey from the app, so I only had the next day's tickets in the app. I clicked through the warning to say "you can't undo this", not realising until immediately...

Syncing the WAL with SQLite
29 Jul 2025 | original ↗

When you're working with SQLite, it's possible that you're using the Write Ahead Log (WAL) to improve performance of the database. As part of this, you may notice that your SQLite database goes from a single-file database like dmd.db to a multi-file setup: % ls -lrt dmd.db* ........................ 577536 Jul 29 11:47 dmd.db...

Week Notes 25#29
27 Jul 2025 | original ↗

The Eton Mess doughnuts at Lidl are very nice 😋 (and expectedly sweet) After last week's "format SQL code blocks inside Markdown files", I've now got my SQL files generally being auto-formatted which is nice Was fun to be on #define this week - did better than I thought, was a fairly good guest, and was good on a re-listen, too Had a good pub...

I'm on Changelog and Friends: `#define`: props to astronomer
25 Jul 2025 | original ↗

This week I was very excited to be on Changelog + Friends for a Changelog++ subscribers edition of #define, the gameshow all about words. I wasn't quite sure I'd be very good at it, and I think I'll leave y'all listeners to work out if you feel that held true 😅 But most importantly, I had a blast, and it was nice to meet some other Changelog++...

I'm on Fallthrough: Versioning: We Did It To Ourselves
21 Jul 2025 | original ↗

Last week I joined Kris Brandow, Matthew Sanabria and Steve Klabnik on the Fallthrough podcast to talk about versioning. This was a fun episode - some really interesting threads, tangents, I felt I was much better than I felt I was last week, and I'm amazed that we didn't even go into i.e. HTTP APIs and how you version them, which I thought we...

Week Notes 25#28
20 Jul 2025 | original ↗

Got my hair cut - felt very much needed, as it was getting a lil' unruly, and it's nicer for the video podcasts I've been on recently A busy-ish week at work: Lots of Decision Doc + Design Doc writing And bits of playing around with Argo Workflows Fallthrough was fun this week - I was much more prepared and also less brain fuzzy, and generally...

I'm on Fallthrough: Why You're Wrong About REST
14 Jul 2025 | original ↗

Last week I joined Kris Brandow, Matthew Sanabria and Steve Klabnik on the Fallthrough podcast to talk about REST, Hypermedia and more. This was a good episode, and really schooled me on a number of things - Kris and Steve had a wealth of knowledge to share, and if Steve didn't have to drop for a meeting, I feel this episode could've been 10...

Week Notes 25#27
13 Jul 2025 | original ↗

Although I felt rested after holiday, this week back at work has been busy with a few things going on and definitely felt my mind being distracted and low energy - didn't feel to be the best guest host on Fallthrough this week, which I'm a bit disappointed by Been a fairly toasty week again 🥵 Was nice to have Sarah here this weekend At...

A few tips for optimising Renovate for multi-team monorepos
7 Jul 2025 | original ↗

At Elastic, we're using Renovate (as it's the best) to keep a number of internal and external dependencies up-to-date across a lot of repositories in the organisation. As part of the hundreds of repositories using Renovate, we have a number of big multi-team monorepos. For these repos, we're using the default configuration from Renovate, and then...

Week Notes 25#26
6 Jul 2025 | original ↗

I had a fairly chilled (but toasty) start to the week Had Take a Moment playing a lot this week 🎶 A very bad night with foxes 😠 Found Morph in the garage, who seems to be enjoying the cool temperature in there, as well as being very naughty because he's not meant to be in there 😅 Spent ages looking for my notebook (which I've been planning for...

Week Notes 25#25
29 Jun 2025 | original ↗

An intense last week of work - before our week off - and a reminder of how much I/we need time off: TV got fixed 🚀 nice to have full audio back Realised that despite having a 4K TV for ~a year, we'd not upgraded our Netflix to 4K 😅 Our other streaming services all seem to be upgraded, at least, just not Netflix Found Pokerogue and am very...

Checking out the branch from a fork in GitHub Actions, when using `pull_request_target`
26 Jun 2025 | original ↗

This week, I've setting up a GitHub Actions Workflow which will: Look at modified file(s) on the PR Look up the owner of the files (based on an external HTTP API, using a GitHub Actions Secret) Comment back onto the PR to indicate that ownership On a private repo (that will never need to run on a public repo) This looked something like: on: ...

Disabling zsh history for a given shell session
26 Jun 2025 | original ↗

This last week I've been doing a few bits of working with secrets - some of which I've needed to store in local environment variables, or pass as arguments to commands, and I've been going in and scrubbing my ~/.zsh_history after the fact, to make sure the secrets don't retain in my history, on disk. However, I wondered if there was a way to...

Week Notes 25#24
22 Jun 2025 | original ↗

A very hot week 🥵 Given the fair's at Woodthorpe Park, I've been taking Cookie to Forest Rec (after dropping Anna at the tram) which has been nice Some mixed nights' sleep: one night we had awful shrieking foxes it's been super hot this week so been hard to stay cool one night - as I was reading - Morph started yeowling, and I was worried it was...

Week Notes 25#23
15 Jun 2025 | original ↗

Took Cookie to the vets on Monday - for a checkup and to get her tick removed - and she was good But as we got her vaccine boosters, she's unable to go to daycare for a couple of weeks A good Batch Bunch Got a few bits done, including updating my PR to add known Identifiers to endoflife.date Very good cupcakes 😋 And nice to see Louise, too! Got...

Week Notes 25#22
8 Jun 2025 | original ↗

Already June 😳 Had a great time chatting with Tessa on 99 Dev Problems on Monday An end-of-last-week conversation led to significant impact this week, but also led to a conversation that hopefully helps reduce pressure for the foreseeable On Saturday we went to see The Book of Mormon at the Theatre Royal Was really fun! Didn't have many...

Generating Go code from JSON Schema documents
5 Jun 2025 | original ↗

Folks familiar with me and my blog will know I'm one of the Core Maintainers for oapi-codegen, and am a big fan of generating code from schemas (in a "design first" manner). When I'm not documenting things with OpenAPI, I'll be documenting things with JSON Schema. Today I was discussing with a colleague how to generate Go code from JSON Schema,...

Creating cross-compiled Docker images from Go binaries
4 Jun 2025 | original ↗

I've recently been doing some work to improve the way a couple of Go services have their container images built, so they can be built by humans on either Intel or ARM based machines, and pushed to our container registry which will then be pulled by Intel-based infrastructure. Additionally, I'm doing some work at the moment that requires pushing...

Week Notes 25#21
1 Jun 2025 | original ↗

A lovely Monday at Cowley Manor Experimental Was a nice break from Cookie, until a dog barking and whining in a room a couple of doors down, very much not appreciating being left on its own We chilled by the pool, reading our books and generally had a chilled day Had a nice lunch with Anna's parents when they dropped off Cookie Going out in the...

Accessing your Renovate Dependency Dashboard, without GitHub/GitLab Issues enabled
30 May 2025 | original ↗

When working with Renovate, I heavily recommend having the Dependency Dashboard enabled. It's a great way to get a central view of all the in-flight, pending or ignored dependency updates, and provides great insight into what's going on under the hood. It even provides a list of "detected dependencies", so you don't have to use something like...

Generating a Renovate Report from someone else's repo
30 May 2025 | original ↗

As part of Accessing your Renovate Dependency Dashboard, without GitHub/GitLab Issues enabled, I've been trying to represent a Dependency Dashboard based on Renovate's Report functionality. As I wanted to explore a few more interesting scenarios, I wanted to see how I could get a Report based on i.e. Renovate's Dependency Dashboard or Backstage's...

Checking the digest for a Docker image, using `crane`
28 May 2025 | original ↗

When working with (Docker/OCI) container images, it's a good best practice to pin your digests. For instance, instead of: FROM ghcr.io/renovatebot/base-image:9.70.8 We should instead reference the exact digest of this image's layer, to provide a (more) reproducible build: FROM...

Week Notes 25#20
26 May 2025 | original ↗

A delayed week notes this week, as we were away for the long weekend: Had a random nosebleed on Monday, which wasn't great, and ended up significantly waking me up, so I was up from ~0400, and carefully showering later in the day seemed to trigger it again, so ended up having to be super careful all day Cleaned up and blogged about my library for...

What's the difference between Renovate's `depName` and `packageName`?
21 May 2025 | original ↗

Something I come up against, every so often, is trying to explain the difference between Renovate's depNames and packageNames. Looking back at previous times I've looked at this, I seem to have had mixed answers to this question, and so I thought this was the right time to sit down and get my mental model correctly. For instance, looking back at...

My experience as a maintainer
20 May 2025 | original ↗

This is a copy of a guest post I wrote for opensource.org, as part of 2025's Maintainer Month. Happy Maintainer Month 👋🏼 My name's Jamie Tanna and I've been contributing to Open Source for >11 years, which extends to before my professional career began. As with many others, my first foray into Open Source was a few spelling and grammar fixes,...

Creating nested fenced code blocks with Hugo
19 May 2025 | original ↗

As part of writing Taking more control over your Cobra CLI documentation, I needed to include a fenced code block which had a fenced code block inside it. Doing some searching around, it appears that it's possible to increment the number of backticks surrounding a code block to wrap it correctly. I.e. the inner-most code block needs to have three...

Taking more control over your Cobra CLI documentation
19 May 2025 | original ↗

Prompted by some discussions I've had recently around documenting Cobra CLIs, I realised that in November 2023 I wrote a library, cobra-doc-template and somehow I ended up not writing a blog post about it (how?? 😅) - so here it is! Inbuilt to Cobra is functionality to generate documentation from your CLI, which is a really great starting point...

Setting up SSH key signing with Git
19 May 2025 | original ↗

Every so often I hit a repo that requires Git commit signing, and I groan. As I hit it again recently, and wondered how to get it set up, I thought I'd write it up as a form of blogumentation. As I noted in 89 things I know about Git commits: If I have to sign my commits, SSH key signing makes it almost not awful So the option I will always want...

Week Notes 25#19
18 May 2025 | original ↗

Accidentally got Copilot enabled while writing these and it's been interesting trying to see it predicting somewhat correctly some of the things I Was going to say It was Elastic's Engineering All Hands this week - which I didn't go to due to the dire state of the US, and not feeling safe getting there/back - so a very quiet week at home for me...

Improving the experience of browsing Renovate debug logs
18 May 2025 | original ↗

Renovate's debug logs I spend a lot of my time working through Renovate's debug logs. This may be through Running Renovate in a number of places, such as at work (Elastic), or during my work on dependency-management-data, of which the best data can be collected through renovate-graph, a wrapper on top of Renovate. Sometimes it's a case of trying...

Looking back at `oapi-codegen`'s last year
15 May 2025 | original ↗

Note that this is a copy of the announcement on GitHub. Maintainer Month 2025 + a recap of the last year Hey folks! As you may be aware, May is Maintainer Month, which makes it a great time to think about how you're using Open Source. The Open Source we consume (and build) is never done in a vacuum - there are tonnes of people (maintainers and...

Overriding a Gradle project property which has `.` and `_` characters, without modifying the buildscript
14 May 2025 | original ↗

Yesterday I was working with a codebase which uses a gradle.properties, and for ✨ reasons ✨ I need to overwrite a given property, without modifying the codebase. This is something that the docs indicate is a common need: This feature is useful when you don’t have admin rights to a continuous integration server, and you need to set property values...

How to set up the 'Follow' button on LinkedIn
13 May 2025 | original ↗

Earlier today, a conversation on Open Source Pledge Slack came up with Chad Whitacre around LinkedIn visibility/connection settings, and making it possible to "Follow" someone, without connecting. I set this up a couple of years ago with LinkedIn's "Creator Mode", and have appreciated that it allows folks to follow me, without me needing to have...

Migrating secrets between two Vault instances
13 May 2025 | original ↗

I've got a number of secrets I need to move across two Vault instances, which could be done manually, but I wanted to try and simplify with a lil' bit of automation. As a starting point, I asked GPT-4o (via Copilot) which set me on the right track of being able to vault kv put ... @file.json, if the file.json is correctly set up. With this in...

Week Notes 25#18
11 May 2025 | original ↗

A busy-ish week at work, with the bank holiday, and finishing off things ahead of everyone else going to Elastic's Engineering All Hands Tried Nandos x Fanta which was nice but didn't get too much of the flavour Done some more good work on oapi-codegen, getting to the point that I'm nearing getting the next release out Although I'm still fighting...

Using type assertions in Go with concrete types
10 May 2025 | original ↗

As part of working to fix a bug with oapi-codegen today, I've been trying to work out how to call the String() method on a type, if it's set, without needing to use Reflection. To start with, we're trying to covert a UUID type (from Google's UUID library) to a string, from the following generated code: // via github.com/google/uuid type UUID =...

Getting Renovate to provide a changelog for digest updates to packages (on GitHub.com)
8 May 2025 | original ↗

When using Renovate to update digests of packages on GitHub, you'll notice that you'll see a PR with a header like: This PR contains the following updates: Package Type Update Change actions/setup-go action digest 0aaccfd -> d35c59a This is already useful, but can be a little awkward as you probably want to go and check in on what's changed...

Week Notes 25#17
4 May 2025 | original ↗

Tough going back to a 5 day week, but at least it's a long weekend! Had my first Lidl trip in weeks which was weird but nice Enjoying the Straight Shot Quads mode in Apex Legends Spent a good chunk of time fighting pylsp for some work stuff I was doing (on a poor brain day) and converting a Ruby script to Python (even though I dislike Python,...

Tricking `oapi-codegen` into working with OpenAPI 3.1 specs
4 May 2025 | original ↗

As has been noted before, oapi-codegen doesn't (yet) support OpenAPI 3.1. So how do you end up working with an API that's producing an OpenAPI 3.1 spec? This weekend, I've been migrating dependency-management-data to use the new V1 API for endoflife.date, which now requires OpenAPI 3.1. I started setting myself about to downgrade the spec from...

Week Notes 25#16
27 Apr 2025 | original ↗

Had an afternoon trip to Mcarthur Glen on Bank Holiday Monday - was a pretty rainy drive, but nice to get out and got the car washed One night my phone was on such low battery that - even though it was on wireless charge - when I ~10 minutes later restarted my Headspace, it then decided to die 😅 My "Daylist" Spotify playlist has been very good...

Gotcha: `docker inspect` can lie about the architecture of an image
25 Apr 2025 | original ↗

Today I've been working with some (internal) cross-compiled Docker images, while responding to an internal incident. As part of this, we followed some documentation (I had written a few weeks ago) around how to build an image ad-hoc, and noticed that the images weren't correctly working - a colleague using an ARM Mac wasn't able to correctly...

Rendering diffs for Go's testable examples
24 Apr 2025 | original ↗

Today I've been doing an Open Source day on oapi-codegen - thanks to my employer Elastic, who gives me 4 hours a month that I can work on the project in-hours - and have been doing some work towards the OpenAPI validation middleware for net/http-compatible servers. One of the main things we try and do for the top-level module is have 0...

Week Notes 25#15
20 Apr 2025 | original ↗

A fairly productive Batch Bunch, and nice to see folks Almost entirely SSH'd into my desktop - doing some work on trying to provide a better way to visualise the usage of a given dependency, based on some work Paddle have done Did some prep for my DMD talk on Thursday Fixed an issue with oapi-codegen within ~30 minutes of it being raised (as an...

Authoring Markdown externally and pasting the 'pretty' output into Slack (on Linux)
19 Apr 2025 | original ↗

As someone with someone with ADHD, I find that introducing context switching for my "muscle memory" to be a little jarring, and is why I've found in the past that using something "with Vim keybindings" to be not-quite-the-same as actual Vim/Neovim. I'll also find that when writing longer docs or messages, I'll lean on using Neovim (for the...

Things I've learned about building + delivering software for other engineers while working in Engineering Productivity
17 Apr 2025 | original ↗

Roughly 18 months I joined Elastic and started working on Engineering Productivity for the first time in my career. This is a role I've been gravitating towards throughout my career and has been something I've done unofficially several times, so it's been very enjoyable working on it as part of my "day job". For the last ~12 months I've been in...

Week Notes 25#14
13 Apr 2025 | original ↗

Was nice to have a day to focus on oapi-codegen on Monday (time leftover from Jan/Feb) Focussed on the middleware repos, and an issue that some teams at work need solving, but took a bit of time to get there as I needed to look into a few things But need to have a follow-up day soon, as I still didn't get round to actually solving the one thing I...

Properly patching packages: persistently producing patches for published projects, particularly practically prevented by `patch-package` policy
12 Apr 2025 | original ↗

One thing I've been building for a few years is renovate-graph, a lightweight shim on top of Renovate (aka Mend Renovate CLI) to extract package data from repositories, primarily for use with dependency-management-data. For the most part, you can use vanilla Renovate for this functionality, but renovate-graph gives you some better defaults if you...

Automagically migrating `golangci-lint` configuration to v2 with Renovate
10 Apr 2025 | original ↗

As mentioned in Using Renovate to manage updates to golangci-lint versions I very much recommend using Renovate to update your golangci-lint versions. With the release of golangci-lint v2 a couple of weeks ago, consumers need to perform a one-time migration of their configuration. (I'd meant to post this last week, but yay ADHD, I forgot 🫣)...

I'm on Fallthrough: APIs: Design Imperfectly, Improve Relentlessly
7 Apr 2025 | original ↗

A couple of weeks ago, I joined the lovely Kris Brandow and Ian Wester-Lopshire on the Fallthrough podcast to talk some more about API design. As I mentioned in I'm on Fallthrough: An Exploration of APIs, Versioning, & HTTP this was a planned follow-up, as we didn't quite chat through everything we'd planned to. And in a similar vein, we're also...

Week Notes 25#13
6 Apr 2025 | original ↗

Confirmed that I'll be speaking at Golang Birmingham which has restarted 👏🏼 Enjoyed attending Developers Developers Developers Some very good demos - in particular Lu Wilson's incredibly enthralling and chaotic (positive) Nice to meet some new folks On the way, made a start writing a "things I've learned working in Engineering Productivity"...

Week Notes 25#12
30 Mar 2025 | original ↗

A busy week back to work: Lots of things to catch up on Been feeling the 'whelms, and had some weird concentration towards the end of the week Definitely been feeling the obligations (in and out of work) Ended up working on something that was super valuable, causing a lot of toil, but not necessarily the time to do it, as I couldn't concentrate...

Logging into Hashicorp Vault via a GitHub token in the environment
28 Mar 2025 | original ↗

I've been working with Hashicorp Vault a fair bit over the years, and with one Vault instance I use, it requires login via a GitHub token. When logging in, it defaults to requiring this to be interactive: $ vault login -method github GitHub Personal Access Token (will be hidden): This is a bit of a pain, as then I need to go and fetch my GitHub...

Performing `group_concat` queries over distinct values, with a custom delimiter, with SQLite
25 Mar 2025 | original ↗

Let's say that we have the following query: select package_name, version, count(*), group_concat(distinct owner) as owners from renovate left join owners on renovate.platform = owners.platform and renovate.organisation = owners.organisation and renovate.repo = owners.repo where package_name like 'github.com/oapi-codegen/%' group by ...

Updating `apk add` definitions in Dockerfiles
24 Mar 2025 | original ↗

As I've written about before, I'm a big fan of Renovate. Recently at Elastic, we've been using the excellent Chainguard Images to provide zero CVE base image containers, and using Renovate to update those base images as Chainguard ship new updates. Once we'd set up Renovate to update our base image updates, my colleague Mattias did some great...

Week Notes 25#11
23 Mar 2025 | original ↗

A very restorative week off in Wales Had a very restorative week off, being a bit more chilled Managed to very intentionally switch off Didn't read any tech posts, touch LinkedIn, listen to any podcasts, or think about work or side projects (aside from a couple of random thoughts I pushed out) On our last day, I did get an issue raised for...

Week Notes 25#10
23 Mar 2025 | original ↗

My Fallthrough API episode came out, and we've got some follow-ups planned 👀 A tough final week of work before next week's holidays Ahead of being on holiday, there were quite a few things I needed to look into, close off and otherwise hand over But also being on call (with the 12 hour shifts) and a busy week of stuff going on meant I didn't...

I'm on Fallthrough: An Exploration of APIs, Versioning, & HTTP
10 Mar 2025 | original ↗

Earlier this year, I was invited to join the wonderful Fallthrough podcast to talk about APIs, which would be my first appearance on Fallthrough. As noted in I'm on Fallthrough: Patching Problems with Persnickety Proxies Purveyed by Paternalistic Princes, the episode on APIs was planned to come out around now, but my second appearance came out...

Week Notes 25#09
9 Mar 2025 | original ↗

Definitely felt a notable improvement in mood given the nicer weather And I feel like my Dad, quite liking having the windows open for fresh air 🫣 Apex Legends' new Relic Weapons LTM has been a lot of fun, and moreso than last season's takeover (thankfully moved over to an LTM, because the community have been very whiny) One day, playing Apex...

Week Notes 25#08
2 Mar 2025 | original ↗

A bit of a busy week: Was nice to chat with Tessa Kriesel on Monday, about one of her current clients, but also some more general chat Had a nice catch up with the Capital One folks on Wednesday My post Some useful SQL(ite) tips I've learned appeared on /r/SQLite and Hacker News this week, unexpectedly, but seems to have been interesting to...

Creating single-purpose RSS feeds with Hugo
2 Mar 2025 | original ↗

Tonight I've added a new couple of RSS feeds to my website - one for my /salary/ page and one for my /now page - for two pages that folks may want to keep an eye on more easily. Because it was a little awkward to set up the feeds, I ended up wanting to write it up as a form of blogumentation. To start with, we need to modify our Hugo config to...

Creating a test harness for validating Renovate Custom Datasource configuration
1 Mar 2025 | original ↗

As I've written about before, I'm a big fan of Renovate. This last week, I've properly got stuck into Renovate's new Custom Datasources functionality, which have been great. Sebastian has written about them in the past and I'd recommend reading it for the full background on what Custom Datasources are and why they're great. Similar to my post...

Week Notes 25#07
23 Feb 2025 | original ↗

Appeared in A Semana Go and Architecture Nugget, and saw some traffic via Twitch, too Booked a week away for my birthday 🚀 Upgraded my GPU - went from my Titan X (Pascal) (that I bought with my starting bonus at Capital One) and upgraded to an AMD 7900 XTX (NITRO+ AMD Radeon™ RX 7900 XTX Vapor-X 24GB) Was a little bit worried that it was a scam...

Product requirements for a "fund your dependency tree" service
20 Feb 2025 | original ↗

While at State of Open Con, I had a great evening out with Andy Williams, and one of the topics we discussed at length was Open Source software funding. Realising that I actually had a number of ideas around how to approach this - in particular from a product point of view - I thought it's worth writing up my thoughts, and get some wider...

I'm on Fallthrough: Patching Problems with Persnickety Proxies Purveyed by Paternalistic Princes
17 Feb 2025 | original ↗

Last week I was invited to join the wonderful Fallthrough podcast as a guest host, on a more time sensitive episode discussing the recent backdoor discovered in the Go module proxy, and the episode has just shipped, with a very good title! This was actually my second episode with Fallthrough, but the first one that's published - there's an...

Week Notes 25#06
16 Feb 2025 | original ↗

A slow start to the week, recovering from being flu-y, and a couple of podcasts: Monday off sick again, and feeling a lot better Did end up hacking up jvt.me.nvim (off the back of dmd.nvim) as a way to more easily autocomplete links to my posts (as I share them a lot!) Went back to work on Tuesday, at not quite 100% (given there's a fair bit of...

Go 1.24's `omitzero` is another one of the best additions to the ecosystem in years
12 Feb 2025 | original ↗

After publishing Go 1.24's go tool is one of the best additions to the ecosystem in years a couple of weeks ago, a few commenters pointed me to the other massive thing that was coming in the Go 1.24 release: the omitzero JSON struct tag, and I was pretty gutted to realise I'd missed it in the release notes. As someone who enjoys capitalising on...

Week Notes 25#05
9 Feb 2025 | original ↗

These Week Notes almost weren't going to get written tonight - I've been recovering from pretty bad flu, and have been intentionally off my laptop/etc I'll be doing a full write-up about State of Open Con, which was the main event this week, in the coming days (I thought I'd have it done by now, but flu 🤒) but the top things to share right now:...

Celebrating dependency-management-data's second birthday
6 Feb 2025 | original ↗

I had originally intended to write this on Sunday, to coincide with the two year anniversary since the first commit to dependency-management-data (DMD), but haven't had a chance to, with being this week at the excellent State of Open Con - more on that in a separate post I'm still writing. I wanted to make sure I followed last year's post and do...

Week Notes 25#04
2 Feb 2025 | original ↗

Another week of more changes at work, a viral blog post, appearing on Fallthrough and finalising my talk for State of Open Con: Wrote Go 1.24's go tool is one of the best additions to the ecosystem in years, and it went fairly viral I intentionally wrote it as something to be shared + discussed wider, so am appreciative of folks enjoying it +...

Go 1.24's `go tool` is one of the best additions to the ecosystem in years
27 Jan 2025 | original ↗

For those that aren't aware, one of the big changes in February's upcoming Go 1.24 release is the new go tool command, and tool directive in the go.mod to manage any tools your project uses. I'm incredibly excited about this, and in my opinion, this is one of the best changes we've had in recent years in the ecosystem as a whole. I've been...

Week Notes 25#03
26 Jan 2025 | original ↗

A somewhat mixed week: The expiry of the domain go.opencensus.io led to some widespread chaos across the Go community this week This week, I've had Don't Panik - CloZee Remix and Polarised - Koven on remix a lot I've made some very good progress with a Charm-based TUI for tailing my Matomo stats, which has been very good and has made a big...

Getting access to rich-text data from the clipboard (on Linux)
26 Jan 2025 | original ↗

I've recently noticed that i.e. on Slack, if I right click a channel and click "Copy name", and then paste that into a Slack message, I get the name of the channel, but if I paste it into GitHub or Google Docs, I get a rich text link, with the name of the channel, and a link to the channel. This is really nice behaviour, but with the way my team...

Why is zsh no longer storing history?
22 Jan 2025 | original ↗

On my first day back in the office, I noticed something odd with my zsh setup, where new terminal sessions weren't having their history saved 🤔 Interestingly, my dotfiles specify the HISTSIZE variable to a reasonably high amount, but it seems to not be working: export HISTSIZE=30000 I've also since reproduced it on my other machines, so I think...

Week Notes 25#02
19 Jan 2025 | original ↗

Batch Bunch on Monday was good 🚀 Was good to see folks, and there seemed to be some work done which was good it was a bit noisier than I'd expected in Dice Cup so a little harder to hear Ended up making a good bit of progress on looking into using ObservableHQ for DMD visualisation Started playing around with writing a Matomo plugin, so I can...

Accessing private Go modules in a Docker container
14 Jan 2025 | original ↗

If you're building Docker containers which reference a private Go module, you'll likely need to work out a way to pass in credentials, so you don't have to build on your host machine. I first encountered this last March and as I've hit it again today, I thought I'm make sure I write it up as a form of blogumentation. This could be done by using a...

Week Notes 25#01
12 Jan 2025 | original ↗

The first full week back after the holidays 🥱 Nice to meet up with Riz at Dice Cup to sus it out ahead of Batch Bunch (tomorrow) Had a nice roast today at the Larch Farm 😋 and made better by Cookie being very good while we were out, maybe because she had Morph keeping her company 🥰 Booked my ticket + hotel for GopherCon UK Started prepping my...

Getting all comments from a given user on a GitHub Discussion
8 Jan 2025 | original ↗

As noted previously, my team practices asynchronous, always-updating standups through GitHub Discussions. As it's performance management season, I'm looking back at what I've done over the last few months, and wanted to get a view of all the standup updates I've made, having spent far too long trying to do it manually, and then pop them into a...

Week Notes 24#53
5 Jan 2025 | original ↗

New Year's Eve, and a quiet couple of days back at work Wasn't able to get my perfect pizza early in the week so ended up making a spicy-and-sweet gochujang based sauce for a drizzle but didn't end up really working so well, as it was a bit too subtle, but was nice The Lidl gu-knock offs are pretty nice - the S'mores were 😋 A nice New Year's Eve...

2024's Music In Review
4 Jan 2025 | original ↗

In 2024, I listened to 82938.88 minutes (1382.31 hours, 57.6 days) of music on Spotify. Breakdown of listening over the months Each month, how much music did I listen to? Of that, what was taken up by that month's top 50 songs, or top 10 artists? What about how much of that month was listening to songs that are in the top 100 songs over the year?...

What level of access do I have on that GitHub repository?
2 Jan 2025 | original ↗

Earlier today, I was trying to work out if I had sufficient privileges to make some changes on a repository. Without access to the Settings panel as a non-Admin on the repo made it a little difficult, so I went looking for API access, and it turns out there are some good APIs for checking collaborator access, such as Get repository permissions...

2024's Site In Review
1 Jan 2025 | original ↗

(I'm trying a slightly different order for these this year) Commentary In a similar vein to what I wrote last year: I noticed that there was a trend downwards towards the end of the year, but am putting it down to maybe a bit more around folks using things like blocklists for common analytics platforms like Matomo that I use. I've noticed that...

Week Notes 24#52
29 Dec 2024 | original ↗

Before Anna's family left on Monday, we did a big fry-up to keep people going, which was nice Went to pick up Morph from his holiday at the cattery and as we were going through Hyson Green, thought we'd pick up a pizza Morph was very meowy when we arrived at the cattery, and was then extra meowy when he got home 😻 On Christmas Eve morning, we...

Week Notes 24#51
23 Dec 2024 | original ↗

A four day week (with the last Shut it Down Day at Elastic) and hosting Christmas celebrations for Anna's family over the weekend: Definitely feeling the end of the year burnout, counting down the hours for the end of the year (which isn't a place I'm particularly happy with being) and not feeling the festive cheer (more than normal, at least)...

Blocking 'Similar' and 'Because you like ...' suggestions on reddit with uBlock Origin
17 Dec 2024 | original ↗

Since reddit attempted to destroy all goodwill in the community with their changes to the API, I've been using the mobile web view, rather than their crappy mobile app. (I did stop using reddit a lot, especially around the API changes, but unfortunately still use it a little, and moreso after leaving Twitter) Recently, I've noticed that they've...

Week Notes 24#50
15 Dec 2024 | original ↗

A good week at work on a hackathon, towards providing a similar "Open Source Dependency Dashboard" similar to Microsoft folks mentioned on the CHAOSS podcast We've made good progress towards adding a CI check that scans for dependency changes - via renovate-packagedata-diff - that then links out to an internal dashboard that provides...

You can now resolve remote presets when using Renovate's `local` platform in `renovate-graph`
12 Dec 2024 | original ↗

In Utilising Renovate's local platform to make renovate-graph more efficient I mentioned that you can take advantage of Renovate's local platform to run against a local directory. During a hackathon week at work, I've recently been using renovate-graph --platform local alongside my new renovate-packagedata-diff tool to provide a diff of...

Some mixed thoughts on The Changelog Podcast Universe
8 Dec 2024 | original ↗

As I wrote about in You should listen to The Changelog I've been listening to The Changelog for ~8 years. I love the overarching podcast, Changelog Interviews, and I've really enjoyed the new Changelog and Friends podcast. But more than that, I've thoroughly enjoyed the quality of the network as a whole, including podcasts I regularly listen to...

Week Notes 24#49
8 Dec 2024 | original ↗

A nice catch-up with Mihaela Did some wiki'ing for Star Trek: Generations (the game), which was fun reminiscing My blog post about Cobra + OTel was on Golang Weekly 🚀 A bit more Ring Fit, although not every day A bit of a stressful week, but looking forward to my hackathon week starting tomorrow Was our Decemberfest celebration at work, which...

Creating `renovate-packagedata-diff` to diff Renovate package data dumps
8 Dec 2024 | original ↗

Over the last couple of years, I've been working with Renovate's package data dumps, as part of renovate-graph and work towards dependency-management-data. These data dumps are either via renovate-graph, or from the debug logs, or using the experimental reportTypes and consist of a (large) JSON blob that contains information about the packages...

Some useful SQL(ite) tips I've learned
5 Dec 2024 | original ↗

I've recently spent some time working towards presenting some of the findings from dependency-management-data at work, which has required writing some fun queries, and then using Google Sheets to better visualise that data. Not only have I taken advantage of some fairly straightforward queries, written off-the-cuff, or relied upon some...

Week Notes 24#48
1 Dec 2024 | original ↗

A very busy week at work, getting back into Ring Fit and getting on top of my office, ahead of guests staying over the next few weeks I've managed to nudge myself into getting back into Ring Fit Did some good workouts Monday-Thursday, took a day off on Friday, and then this weekend's been busy so hadn't had a chance to work out any more Finding...

I'm a recipient of the 2024 October Engineering Monthly Award Recognition at Elastic
29 Nov 2024 | original ↗

I was chuffed today to hear that I was one of the winners of October's round of the Engineering Monthly Award Recognition programme at Elastic 🚀 This is a monthly process where engineering leads across the organisation vote based on nominations, and through a mix of nominations in recent months as well as in October, I'm a winner this month....

Gotcha: `PersistentPostRunE` only runs on successful commands in Cobra
29 Nov 2024 | original ↗

In my recent post Lessons learned adding OpenTelemetry to a (Cobra) command-line Go tool, I wrote about how you can wire in OpenTelemetry to a command-line tool built with Cobra. In it, I noted that to do so, you can use the PersistentPreRunE and PersistentPostRunE. However, this morning my colleague Mario made me aware that it turns out this...

Week Notes 24#47
24 Nov 2024 | original ↗

A busy week in all senses: It's been hecking cold this week - we had some significant snow on Monday night that impacted Anna's work trip to Birmingham on Wednesday, and left the week as mostly indoors - although this weekend it's been back to ~15 degrees Cookie's done very well not being walked Tue -> Sat, and we're very impressed, but she was...

Creating a Neovim plugin for my standup updates
24 Nov 2024 | original ↗

As I noted earlier today, I love the way my team does standups in an asynchronous, and always-updating manner. As I've started to keep a single comment on GitHub Discussions up-to-date - be that for my daily team standup updates, or my on-call handover notes - I've been spending a lot of time re-opening the Discussion page, finding my last...

The joy of an asynchronous, always updating standup
24 Nov 2024 | original ↗

There are several things I really love about working in my team at Elastic, but one of the things I really enjoy is how we run our standups in my team. Working in a globally distributed, asynchronous-first team with team members across three continents, and ~8 timezones is that, as noted in Making it easier to schedule cross-timezones, with the...

Creating a private mirror of the Renovate docs
19 Nov 2024 | original ↗

If you're self-hosting Renovate, you're generally going to be out-of-date compared to the upstream project's releases. This isn't just because it takes time to update, but because Renovate as a project is constantly shipping 🚀🚀🚀 I've found it's more noticeable when you're running Mend Renovate Community/Enterprise Edition, which purposefully...

Week Notes 24#46
17 Nov 2024 | original ↗

A busy week of on-call (and some high priority work to support on Thursday) With Changelog doing a merch sale, I ended up getting some new swag, especially as the Maintainer, Maintainer, Maintainer Ended up missing an incident page (that was fortunately autoresolved) as my do-not-disturb setup on Android/PagerDuty wasn't correctly set up 😬 A...

Lessons learned adding OpenTelemetry to a (Cobra) command-line Go tool
17 Nov 2024 | original ↗

In an effort to better understand + instrument tools I work on (both in and out of work) I've recently been introducing OpenTelemetry support to Dependency Management Data. This is something that I've been meaning to do for a while, and as part of looking to do some telemetry setup for a CLI at work (which also uses Cobra under the hood) I wanted...

Week Notes 24#45
10 Nov 2024 | original ↗

A busy week at work with post-incident follow-ups and an incredible downer in the US Elections. Got a haircut ahead of the few big meetings this week And somehow ended up stepping on one of my hairs, which was painful, hard to find and definitely a "huh, how could that even happen" but 🤷🏼 The build-up for the week led to Wednesday, where I was...

Summarising the `skipReason`s for Renovate data exports
8 Nov 2024 | original ↗

When working with package data dumps from Renovate - regardless of the source - it can be interesting to see which packages haven't found updates. This can be worked out using the skipReason JSON field, for instance with the below renovate-graph output: { "metadata": { "renovate": { "major": 38, "platform": "github", "version": "38.130.2" ...

Week Notes 24#44
3 Nov 2024 | original ↗

A spicy week at work (for many reasons) and overworking: Couldn't sleep very well on Monday night, as on Tuesday I had a couple of big things at work the next day - a big meeting to present Open Source usage to leadership, and a possibly spicy change - and when I woke up in the night it took a while to get back to sleep .. and it turns out the...

How to diff two datetimes
31 Oct 2024 | original ↗

Today I've been looking at how to calculate the number of seconds/minutes/hours between two datetimes. As this is both for me, and for other humans to read, I wanted to provide both the raw number, and a Xhours Yminutes view, too. I couldn't find an online calculator that would allow me to use an ISO8601 datetime, so spent ~10 minutes doing it...

Week Notes 24#43
27 Oct 2024 | original ↗

Circles - Yoe Mase was been very much on repeat, such as 🔥 new release Realised the heated floor in the loft room has been on - accidentally - for a couple of weeks 🫣 Accidentally spilled some tea on Cookie as she ran past me up the stairs 🫣🥺 She was OK, but soggy and smelled of tea for a few hours, even after we dried her off Started digging...

Week Notes 24#42
20 Oct 2024 | original ↗

A busy week at work An interesting OpenUK meetup this week around whether Open Source can be a business Announced our next OpenUK meetup, all about the IndieWeb 🎉 Very frustrating losing all my desktop (+ work) tabs - but managed to work out why Created my /slashes page Cat Snack Bar's new "merge" game has been fun, but I'm finding I'm already...

Why has Firefox 133 lost all my tabs?
16 Oct 2024 | original ↗

Over the last week, I've upgraded my various (Arch btw) Linux machines' versions of Firefox Nightly to their latest - largely due to the announced zero-day - and have noticed that on each and every device it's ended up losing all my settings and open tabs. As someone with ADHD I (like to think that I?) manage my active TODO list with browser...

Creating a /slashes page
15 Oct 2024 | original ↗

Last week I found out that Robb Knight has a site called called Slash Pages, which details common top-level URLs that are found at /. I'd found out about this as someone had started contributing a /salary page section, and looking at both my own site, and the list of pages that have already been collected, I thought I'd create my own /slashes...

Week Notes 24#41
13 Oct 2024 | original ↗

For some GitHub insights for work, I had it in my head to re-investigate SteamPipe, but as I started working with it I remembered that unfortunately it doesn't quite do I what I want and how I'd want it to work, so needed to implement it using the plain GitHub APIs Had a fun (sarcasm) game of Apex Legends where I ended up playing with the same...

OggCamp 2024
13 Oct 2024 | original ↗

As I write this post, I'm sitting on the train home from OggCamp 2024. It's been a good weekend - I've met some nice people, caught up with folks I've known for years, had some great food, listened to some great talks, and learned some cool new things. Telegram chat Something nice that the organisers did this year was to have a Telegram group for...

How I manage my dotfiles
11 Oct 2024 | original ↗

Over the last month or so, there have been a couple of posts around how to manage local configuration (aka "dotfiles") - Better Dotfiles (discussion on Hacker News) and Managing dotfiles with chezmoi (discussion on Lobsters) - and it's made me reflect on my own usage. Instead of replying on those discussion threads, I thought I'd take a second to...

Week Notes 24#40
6 Oct 2024 | original ↗

A busy-ish week back at work again Phaeleh's new album dropped, although I didn't realise it was an EP, not a full album. Still good though! Spent Wednesday afternoon down at DTX London Spoke about dependency-management-data, and was cool that it was recorded Nice to chat to the Mend folks about dependency-management-data, Renovate and more Kinda...

Don't do Agile, be agile
2 Oct 2024 | original ↗

Over the last ~8 years in my career, I've worked on teams who do Agile, and who are actually agile. Although there has been some overlap, I've found that for the most part, teams who are actually trying hard to follow the frameworks or methodologies have ended up being less effective at shipping at pace, compared to their counterparts who are a...

Converting a Reveal.js slide deck to PDF
1 Oct 2024 | original ↗

Something I have to do every so often is convert one of my talks from their web form in Reveal.js to a PDF. Ahead of speaking at DTX London tomorrow, I'm preparing a PDF as well as the web URL, and I've yet again forgotten how to do it, as it's just-infrequent-enough that I've not got it in my memory banks. This is the perfect opportunity to...

Getting symlinks to work with a `git clone` on Mac
1 Oct 2024 | original ↗

Yesterday I was working with one of my colleagues, who had an issue in one of their Git repos where a symbolic link (symlink) wasn't resolving correctly. The problem This turned out to be due to how MacOSX will by default set core.symlinks=false, as a security measure (via). This means that when a symbolic link is part of a cloned / pull'd repo,...

Using a separate Go module for your `tools.go`
30 Sept 2024 | original ↗

In Managing your Go tool versions with go.mod and a tools.go, I mentioned how you can use a tools.go to track any dependencies your project needs for i.e. linting or go generates. This is a very useful pattern and until the proposal to add a // tool directive in go.mod lands, is in my opinion the best way to do this, which is also why it's our...

Week Notes 24#39
29 Sept 2024 | original ↗

A lovely, wholesome, few days in Wells-next-the-Sea: We stayed at the very nice A Room in the Park It was a very good week weather wise, and we didn't have any rain until the last morning, and even then it was fairly light thankfully Walked a lot, between ~10-18k steps each day Had to buy a new coat, as we realised part way through the journey...

Week Notes 24#38
22 Sept 2024 | original ↗

A busy week ahead of a week off: A very busy on-call week, as well as trying to close things off before holiday I ended up getting my first page (at Elastic) and realised that my PagerDuty setup did not have the "do not disturb" bypass on 🫣 Fortunately I was at my desk, in a meeting, and noticed an alert in my emails I'd also frontloaded all my...

I'm on API Evangelist Conversation
19 Sept 2024 | original ↗

This afternoon, I had a great conversation with Kin Lane, aka the API Evangelist, about API Versioning on the API Evangelist Conversation podcast. I've followed Kin's blog for years now - who manages to put out almost double the content I'm able to, which is a good goal to strive for! - and have learned a tonne from Kin's work over the years. So...

Utilising Renovate's `local` platform to test more easily
16 Sept 2024 | original ↗

Last year I wrote about how you can use Renovate's local platform to make renovate-graph more efficient, which has been very useful for work I've been doing with dependency-management-data. What I didn't do was also write about how you're able to use Renovate'slocal platform to test out new Renovate configuration. As I've recently been doing a...

Don't pretty print your API's JSON response body
16 Sept 2024 | original ↗

We generally build APIs for automated integrations, not for humans to read them. Although you as a human will look at the raw API request/response formats at some point, the ideal case is that you'll only be doing this as a much smaller percentage of the time that the API is called. So something that slightly annoys me is seeing APIs which always...

Week Notes 24#37
15 Sept 2024 | original ↗

A fairly busy week, and Stanley came to stay for the weekend: Very cool to see Jane Wickline joining the SNL cast - very deserved! The Big TDM game mode in Apex Legends was super fun, with fully kitted out weapons, and an abundance of care package weapons but sad it left after only one day of being able to play it Had some cold days this week,...

Nested teams in GitHub don't give you the control you think they do
12 Sept 2024 | original ↗

GitHub has the concept of nested teams to make it possible to say manage hierarchical access in your organisation. This can be really useful for indicating cases where i.e. you would expect all of your engineering team to be able to access specific repositories, instead of providing read-only access to all organisational members, or to be able to...

Forcing `pacman` to perform post-upgrade tasks if it's failed part way through
9 Sept 2024 | original ↗

You know it's not a great start to your week when, after a long weekend, you set your work laptop running through updates and it crashes part-way through the install process. After a reboot, it ends up not even detecting Arch's install, and only allows you to reboot into the BIOS 😅 So I started frantically searching around "how to recover a...

Week Notes 24#36
8 Sept 2024 | original ↗

A short week ahead of Cat's wedding 🥰 Cookie didn't make it to daycare on Monday as she was poorly, but was luckily better by the end of the week Got a soft block from Swyx because I called out his use of a slur on his alt 🤷🏼 Had a good quarterly conversation with Nassim, and feeling positive about my steps towards Principal in the future 🤞🏼...

How to use Dependency Management Data to discover which dependencies are participating in Hacktoberfest
3 Sept 2024 | original ↗

As I've mentioned before, the fact that it's September means that it's almost October, and October primarily means one thing for me: Hacktoberfest 🎃👕👚🎽 Two years ago, the precursor to dependency-management-data was created as part of the blog post Analysing our dependency trees to determine where we should send Open Source contributions for...

Week Notes 24#35
1 Sept 2024 | original ↗

A four day week that felt like a five day week 🫣 Had a nice couple of hours in town on Bank Holiday Monday, and doing a bit of shopping Went for lunch at Itsu, which was nice Got a DoughNotts on the way home 😋 When we got home, Cookie wedged herself between us so cutely and tightly, making sure she could be close to us both 🥰 Was cool to be a...

You're not mature enough to release your first version as v1
26 Aug 2024 | original ↗

Last night I noticed that it's not possible to use semantic-release to publish 0.x.y releases (aka "initial development versions") of packages. What surprised me was that this isn't even configurable behind a switch - like how go-semantic-release does it - but that you're just not able to do this at all, and instead have to make use of Semantic...

Week Notes 24#34
25 Aug 2024 | original ↗

Heading home from Dave and Faye's on Monday, a day off on Tuesday, and then a three-day week leading onto a Bank Holiday weekend: Had a fairly good journey back, albeit we had a lot of traffic towards the latter end of the journey, but gave us a chance to swap drivers Had a nice lunch at the 68 Cafe, with some very nice cakes to takeaway 😋...

Week Notes 24#33
18 Aug 2024 | original ↗

A busy week with a few days of work, GopherCon UK, and then a (long) weekend up North with Anna's family: Cookie was rather worried by the thunderstorms 🥺 but she was OK in the end This week was my first anniversary at Elastic 🎉 A busy-ish start to the week, ahead of a few days of time off, and Ellie's couple of weeks off, so both trying to get...

GopherCon UK 2024
16 Aug 2024 | original ↗

It was my first GopherCon, and I had a great time. There were some great talks, great people, great food, some great swag and a very perfectly chosen hotel! I'd wanted to go last year, but it was my first week at Elastic, and I don't think it would've been a good look 🫣 You'll notice that this blog post isn't as heavy as some of my previous...

Gotcha: SXHKD doesn't like comments (in bindings)
15 Aug 2024 | original ↗

I've written before about my usage of the BSPWM tiling window manager, which goes hand in hand with Simple X HotKey Daemon (SXHKD). I noticed earlier that while trying to set a SXHKD binding, I suddenly stopped being able to trigger the creation of a window via the keybinding. For instance, with the following binding: super + shift + d # Next...

How to get the next window created set to floating in BSPWM
15 Aug 2024 | original ↗

I've written before about my usage of the BSPWM tiling window manager. One thing I've recently been looking at doing setting up a "scratch pad" style setup to launch my local SQL workflow so I can query my local instance of data from dependency-management-data, especially for ad-hoc requests at work. To do this, I wanted to: Create a new terminal...

Creating a /typography page
14 Aug 2024 | original ↗

As you may have noticed - unless you're an RSS-only reader, in which case, you may want to click through to see this page - I recently revamped my site design. As part of this, one of the things I needed to do was to make sure that the new design worked on the various pages and blog posts I have on my site. Given I've got well over 1000 blog...

Week Notes 24#32
11 Aug 2024 | original ↗

Finalised my site's new CSS, which I'm pretty happy with so far My episode of Go Time came out Was a good listen, and hope others enjoy it - so far it's had ~14k listens I spent a few days refreshing my feeds, waiting for it to drop, only for it to appear during the 45 minutes I was particularly busy at work 🫣 Not such a big problem to not have...

I'm on Go Time!
8 Aug 2024 | original ↗

I'm very excited to announce I'm on my first episode of the ever awesome Go Time podcast, on today's episode, OpenAPI + API Design. As I mentioned in Learning a new language, or how I gained familiarity with Go I started regularly listening to Go Time as I started to learn Go when I joined Deliveroo, and it's been part of my regular rotation each...

New CSS, Who Dis? (2024 edition)
5 Aug 2024 | original ↗

It's been just over four years since my last significant site redesign, and today I'm releasing a new site update. This isn't as significant an update, and retains the layout that I've been using since then, but replaces a lot of the theming. In recent years I've been deprioritising my personal website (and the many IndieWeb-y things I want to do...

Why isn't Hugo regenerating my SCSS files?
5 Aug 2024 | original ↗

Over the last couple of days I've been - after a long hiatus - making some tweaks to my Hugo site's theme. I've hit an issue on both my laptop and (newly fresh installed Arch) PC, so it's worth writing it as a form of blogumentation. I was finding that modifications to any SCSS files didn't trigger a rebuild of them 🤔 One thing very weird, is...

Week Notes 24#31
4 Aug 2024 | original ↗

A warm week An expensive week: Bought a new fan for my office - the Dyson tower fan I won at Capital One in ~2018 has been feeling lacking in comparison to the Meaco fans we've had from Costco, and after a toasty couple of days decided to splurge on another, and it's made an incredible difference already Bought a new mouse, as my MX Master 2 has...

Why can't I use a comma with `gcloud`?
1 Aug 2024 | original ↗

I've been trying to call a Google Cloud Run Job with the following arguments: [[{"platform":"...","organisation":"...","repo":"..."}]] I've done this with the following invocation: job_name="..." region="..." project="..." event='[[{"platform":"...","organisation":"...","repo":"..."}]]' gcloud run jobs execute $job_name --region $region...

Using Spotless to auto-format Gradle Verification Metadata
31 Jul 2024 | original ↗

I've previously written about Spotless being great. I've recently started working with some codebases that use Gradle Dependency Verification which produces an XML file used for ensuring that the files downloaded by each user of the project are the same, to i.e. reduce risk of malicious artifacts being added to the build. The...

Common issues faced with `exec`ing an executable on Linux
30 Jul 2024 | original ↗

There are a number of somewhat esoteric errors you can hit when trying to execute another binary, and as I hit one today that took a bit of thinking, I decided to write it up as a form of blogumentation. exec: {...} exec format error - the executable you're trying to run is for a different CPU architecture We see this, for instance, when trying...

Week Notes 24#30
28 Jul 2024 | original ↗

Still a bit sleepy on Monday from my longest drive so far A busy week working towards the Renovate rollout in the next week and a bit, writing lots of (IMO good) documentation, and working to make sure we have the right monitoring and alerting 🤞🏼 Met Carol for dinner at Rudy's for a nice catchup and great pizza 🍕😋 It must've been a graduation...

You can now parse repo-level Renovate configuration with `renovate-graph`
28 Jul 2024 | original ↗

Almost 2 years ago (!) I built renovate-graph, a tool to extract the dependency trees for a given repository, which under the hood uses Renovate. I've been getting tonnes of value from it as part of how it fits into the wider dependency-management-data ecosystem, and providing more actionable data for understanding how you use internal and...

Dependency Management Data's Open Policy Agent support is now a whole lot more efficient
27 Jul 2024 | original ↗

Over the last week - pretty much since working on how you can use Open Policy Agent and Dependency Management Data to query EndOfLife.date data for internal packages, I've been working on a significant rework of how dependency-management-data performs Policy evaluations. I've just released this, as v0.102.0, and am very chuffed with the release...

Week Notes 24#29
21 Jul 2024 | original ↗

Related to a comment on Lobsters about Git history, I posted my own blog post, which then led to a number of sites (including some Telegram groups and Unsupervised Learning issue 441) which has ended up in roughly ~4k hits I remember waking up one day this week knowing that Cookie had been the little spoon, curled up into my arm 🥰 At work, I've...

Migrating Renovate bots, while keeping existing PRs updated
18 Jul 2024 | original ↗

In the process of migrating from the Mend-hosted SAAS platform to a Self-Hosted deployment of Mend Renovate Community Edition, we've noticed that PRs raised by the SAAS platform, were not being updated by the Self-Hosted app. This is down to the way that Renovate tries to not overwrite any changes that (usually a human) has pushed to one of its...

Manually triggering a Buildkite pipeline for a fork
16 Jul 2024 | original ↗

If you're building on Buildkite, sometimes you may encounter a time where you're contributing from a fork, but CI isn't running (often by design). So how do you get your build to start running, without pushing it to a branch instead? If you don't have access to the ability to click the New Build button in the Buildkite UI, you're unfortunately...

Week Notes 24#28
14 Jul 2024 | original ↗

Returning to work to ~220 emails, and a 99+ notification badge on Slack 😅 Was a busy Monday prepping for a meeting later that day, and catching up on the important things And then another day to finally make my way through the most important ones, and completely down to normal levels of notifications by the end of Wednesday Had a good hour with...

Dependency Management Data's now on Mastodon!
14 Jul 2024 | original ↗

With thanks to botsin.space, I've now got a Mastodon account for dependency-management-data! I'm still planning on having most of the interesting blogging and discussing going via my blog, but I may also reblog myself (MFW) for anyone following the bot. For the most part, this is going to be an alternative to the fancy Slack notifications that...

Dynamically querying EndOfLife.date data for internal packages with Open Policy Agent and Dependency Management Data
14 Jul 2024 | original ↗

When working with dependency-management-data, one of the great things it can do is provide insight to how close/far past the end-of-life date of upstream projects your dependencies are. This data is provided through the excellent EndOfLife.date, and dependency-management-data wires this data in for dependencies it can understand are i.e. Python,...

89 things I know about Git commits
12 Jul 2024 | original ↗

This is an article that's been swimming around in my head for ~5 weeks now, and may become a "living post" that I keep updated over time. In no particular order, some things I've learned about Git commits and commit history, over the last 12 years. This is a mix of experience in companies with teams of 2-12 people, as well as in Open Source...

Dependency Management Data is now a lot easier to work with when using Software Bill of Materials
9 Jul 2024 | original ↗

On Sunday night I released v0.100.0 of dependency-management-data, a huge release in a few ways. First of all, it is in name a very large numerical release milestone to hit, and incidentally release number 158, and corresponded with me hitting post number 1000 on my blog. Secondly, it introduces a much revised model for consuming and interacting...

Week Notes 24#27
7 Jul 2024 | original ↗

A lovely and very restorative week off for Anna's birthday We didn't get as much done around the house as we'd hoped, but we ended up really switching off and having a lot of nice time on the sofa together with a mix of fur babies Got a lot of Ratchet and Clank and New Amsterdam in Finally got around to some work I've been doing with Speakeasy...

One THOUSAND blog posts
1 Jul 2024 | original ↗

This is my one thousandth blog post. That is absolutely wild. I remember reading Lorna Mitchell's post about hitting 1000 blog posts a few years back, and being wowed by that, and wondering if I'd ever get there. I've been working towards this since my first official blog post to this site, Hacktoberfest 2016. This was the first blog post on what...

Reader survey: Who reads my blog?
1 Jul 2024 | original ↗

I think it's been sufficiently long since Terence wrote his blog post that I can not-so-shamelessly steal the idea. (Aside: I was originally going to post this the same week, but never got around to it) Similar to Terence, I'd love to hear a bit more about you, the readers - I have analytics on my blog (as you can see with my annual Site in...

Week Notes 24#26
30 Jun 2024 | original ↗

A very busy week of on-call and trying to deliver the first key Renovate milestone at work, ahead of next week off for Anna's birthday: Probably our busiest host-of-the-week/on-call shift since the start, and a lot of stuff going on to deal with, as well as also trying to get some stuff with Renovate sorted before Friday to make sure that the...

Dependency Management Data can now use sql-studio for database browsing
28 Jun 2024 | original ↗

As noted in Dependency Management Data's web application can now be deployed as a single static binary, Dependency Management Data's web application has recently added a lightweight embedded web browser to enable running as a single static binary. Last week I learned about sql-studio from Laravel News on my Google News feed and have really been...

↑ These items are from RSS. Visit the blog itself at https://www.jvt.me/kind/articles/ to find everything else and to appreciate author's digital home.