CI is not a server
We often hear things like “we’ve set up CI”, which makes no actual sense when you consider what CI is. It’s not a server or a tool, Continuous Integration (CI) is an ongoing practice whereby we keep the code continuously integrated. That sounds simple but has more subtlety than you might expect. Many places today that think they’re doing CI, actually aren’t, and as a result aren’t getting the benefit they could.
Too many branches
Most companies have too many active branches in their code repositories. “Active” meaning we’re doing actual development on them.
Test driving prime factors in Go / Testify
Test driving prime factors in Java / JUnit
How often do we run our tests?
Today, automated tests1 are fairly ubiquitous in software projects. That is, almost every project has a large number of automated tests and that they tend to get run by some continuous integration (CI) server.
-
More precisely, what we’re talking about are automated checks, not tests, but the agile community has never adjusted to using the more precise language so I’m going to keep calling them tests here. ↩
Improvements in CSS: Dark mode and CSS variables
Ryan and I started working on dark mode support for jirametrics and have discovered that CSS now has much better support for this sort of thing than it’s ever had in the past. Specifically, the latest versions of all the main browsers, now support dark mode directly, as well as CSS variables, which simplifies much of the configuration.
Jira API: Board details
Next we’ll look at the API to get information about a board. Boards are fundamentally broken, in my opinion, because they aren’t a real thing in Jira. They’re a view into issues at a point in time, which means that they don’t show up anywhere in the history. You can’t tell what board an issue was on when a status change happened, and you can’t assign an issue to a board.
Jira API: Statuses
The issue history gives us both the name and id of any statuses that the ticket has moved through. Sometimes that’s enough but often we then need to know more about that status, such as what status category it belongs to and for that, we need to call a different API.
Jira API: Issue history
If you want metrics out of Jira, the single most important thing you need to access is the issue history and it’s not obvious how to get that. Just about all the metrics you’ll want to collect will need data from the history - you might need to know when an item started or when it entered a certain priority or when the flag was set or cleared.
Jira API: Intro and authentication
I’m the primary author of the jirametrics tool that extracts data from Jira and generates reports. This tool evolved to satisfy my own pain of not being able to get useful data out of Jira with the built-in reports and along the way, I’ve learned more about Jira internals than I ever wanted to know.