Summarising the skipReason
s for Renovate data exports (2 mins read).
How to work out what skipReason
s you have for your Renovate package data.
Summarising the skipReason
s for Renovate data exports (2 mins read).
How to work out what skipReason
s you have for your Renovate package data.
How to diff two datetimes (1 mins read).
How to get the number of seconds, minutes, and a human-readable time comparison between two datetimes.
Why has Firefox 133 lost all my tabs? (2 mins read).
Recounting an issue I'm seeing with Firefox 133 where it creates a new profile, and how to resolve it.
Converting a Reveal.js slide deck to PDF (1 mins read).
How to convert a Reveal.js slide deck to a PDF, using Decktape.
Getting symlinks to work with a git clone
on Mac (2 mins read).
How to restore symlinks in a previously cloned repository, where core.symlinks=false
.
Using a separate Go module for your tools.go
(2 mins read).
How to use the tools.go
pattern to source-track your Go tool dependencies, but without polluting your top-level go.mod
.
Utilising Renovate's local
platform to test more easily (4 mins read).
How to use Renovate's local
platform for validating configuration changes more easily.
Nested teams in GitHub don't give you the control you think they do (2 mins read).
Some pain points when using nested teams on GitHub.
Forcing pacman
to perform post-upgrade tasks if it's failed part way through (2 mins read).
How I ended up recovering from my Arch Linux upgrade crashing part way through the post-upgrade hooks.
Gotcha: SXHKD doesn't like comments (in bindings) (1 mins read).
Why your SXHKD bindings may be silently ignored
How to get the next window created set to floating in BSPWM (1 mins read).
How to tell BSPWM that the next window created should be floating.
Why isn't Hugo regenerating my SCSS files? (1 mins read).
How to ensure you're using the right Hugo version to build SCSS files.
Why can't I use a comma with gcloud
? (1 mins read).
How to resolve commas being ignored when interacting with gcloud
, and how to escape them.
Using Spotless to auto-format Gradle Verification Metadata (3 mins read).
How to use Spotless to allow manual changes to the Gradle Verification Metadata to be auto-formatted as if Gradle generated it.
Common issues faced with exec
ing an executable on Linux (2 mins read).
Some common issues you may face, with esoteric error messages, and how to fix them.
Migrating Renovate bots, while keeping existing PRs updated (2 mins read).
How to migrate between two Renovate bot accounts, in the case you want to do a 'big bang rollout'.
Manually triggering a Buildkite pipeline for a fork (1 mins read).
How to trigger a Buildkite pipeline to run on a fork, if you have access to trigger a build.
Dynamically querying EndOfLife.date data for internal packages with Open Policy Agent and Dependency Management Data (3 mins read).
How you can retrieve End-of-Life data via EndOfLife.date using Dependency Management Data's Policies functionality.
Creating a test harness for validating Renovate regex manager rules (4 mins read).
How to set up a test harness to make it eaiser to modify scary looking regexes in your Renovate configuration.
Modifying the response body of an httputil.ReverseProxy
response (2 mins read).
How to modify the response from a httputil.ReverseProxy
before it goes back to the caller.
Performing cross-database queries with SQLite (2 mins read).
How to query multiple database files with SQLite.
Using Go's database/sql
to query an arbitrary columns of unknown type(s) (3 mins read).
How you can query an unknown number of columns, of unknown types, with Go's SQL package.
My workflow for writing SQL(ite) queries (2024 edition) (4 mins read).
Writing about my recent workflow for writing, executing, and sharing SQL queries with others.
Calculating the GitHub API's sha
representation of a local file (2 mins read).
How to locally calculate the same sha
of a given file, so you can compare it against the GitHub API's representation.
Making it easier to schedule cross-timezones, with the tz
CLI (3 mins read).
Writing a command-line tool with Charm's Go libraries to compare the suitability of meetings across timezones.
Installing Google Cloud CLI components on Arch Linux (2 mins read).
How to install gcloud
components using pacman
, instead of using the officially supported method.
Lessons learned self-hosting Renovate (13 mins read).
What I've learned operating Renovate as a self-hosted app on GitHub Actions, GitLab CI, and the Mend Renovate Community Edition, and some tips for getting started
Automating the syncing of files between repos with GitHub Actions (2 mins read).
Creating a GitHub Action workflow to periodically update vendored files which are out-of-sync between GitHub repos.
Querying your organisation's Renovate configuration using SQL(ite) (3 mins read).
A new tool, renovate-config-sqlite
to pull Renovate configuration into an SQLite database.
Why I recommend Renovate over any other dependency update tools (10 mins read).
Explaining why Renovate is going to be my solution to keeping up-to-date with dependencies and it's not likely to change any time soon.
What routes is my http.ServeMux
listening for? (2 mins read).
How to fairly quickly list the routes that your http.ServeMux
is handling, pre- and post-Go 1.22.
Why is Go 1.22's enhanced routing not working for me? (2 mins read).
Why you may be receiving 404 page not found
errors when using Go's new enhanced routing in Go 1.22.
Gotcha: Don't try and authenticate to URLs generated by GitHub Actions Artifacts v4 (3 mins read).
Why you may be receiving errors when trying to authenticate to download GitHub Actions Artifacts using the v4 Actions.
Why am I getting Too many arguments
with vault
? (1 mins read).
Why you may be getting Too many arguments
from the vault
CLI, and how to fix it.
Comparing the different Merge Request / Pull Request merge methods in GitLab and GitHub (2 mins read).
How the different merge methods for contributions work between GitLab and GitHub.
How to unpublish/redact/undo/retract a Go release (3 mins read).
How to retract a release version of a Go version, without risking folks automagically upgrade to that version.
How do you represent a JSON field in Go that could be absent, null
or have a value? (5 mins read).
Why it's surprisingly hard to work out a field has been sent or whether it's explicitly null, when using Go's encoding/json
.
Why is set -eu
not working? (2 mins read).
Why you may be finding set -u
in a shell script not exiting when set -e
is also present.
Getting Go modules to work with nested GitLab groups (3 mins read).
How to get Go modules to work with nested groups in GitLab for public or private repos.
Performing a v2 release of a Go module (1 mins read).
How to prepare your Go module for its first breaking change release.
Building resilient, runnable command-line demos with Asciinema and demo
(3 mins read).
How to use the demo
library alongside Asciinema to make it easier to build and maintain demos for your command-line tools.
Importing a subdirectory from one repo into another (1 mins read).
How to import a subdirectory of a given Git repository into another one, using git subtree
.
How we reduced oapi-codegen's dependency overhead by ~84% (6 mins read).
An example of how to reduce the size of a Go module's dependencies by taking advanage of Go module pruning.
Which version of Go was used to compile this binary? (2 mins read).
How to use a few means to work out what version of Go a given binary was compiled with.
Utilising Renovate's local
platform to make renovate-graph
more efficient (2 mins read).
How using the local
platform with renovate-graph
can increase the performance of dependency extraction.
Gotcha: Using vCluster on Elastic Kubernetes Service requires a Container Storage Interface driver (2 mins read).
How to avoid PersistentVolumeClaim
s getting stuck in a Pending
state with vCluster and EKS when you've not set up the cluster with a Container Storage Interface driver for Elastic Block Store.
Listing environment variables used to trigger a Buildkite pipeline (1 mins read).
How to use Buildkite's GraphQL API to list the environment variables provided to trigger a pipeline.
Solving /usr/lib/Xorg.wrap: Only console users are allowed to run the X server
errors with tmux over SSH (1 mins read).
How to avoid Xorg errors when connecting to a Linux machine over SSH that tries to spawn startx
.
Reusing a browser session with Playwright (1 mins read).
How to re-use your existing browser sessions with Playwright.
Gotchas with pointing Go modules to a fork, when building an installable module (3 mins read).
A gotcha around how to pin a Go module to a fork, if you're building a module that should be go install
able.
You're currently viewing page 1 of 10, of 492 posts.