What It Actually Takes to De-Elastic a Codebase

Right now this is still just a checkout of Kibana with a bunch of things that need to come out. Between January 30th and February 23rd, I merged eleven PRs that we labeled [PURIFY] in the title, because that’s basically what it is — going through the codebase and taking out everything that isn’t ours to keep.

None of this is public yet. I don’t know when it will be, or what shape the announcement takes when it happens. Right now it’s a repo nobody outside the team can see, and work nobody is going to write a launch blog about — not this part, anyway.

Here’s roughly what a [PURIFY] PR looked like in practice:

That pattern shows up a lot: remove x-pack from the main directory, and it turns out the CI scripts still reference it, the i18n tooling references it, the telemetry system pings back to it, and half the test suite assumes it’s there. Each one of those had to get found and fixed on its own, because there was no automated way to know what “still depends on x-pack” meant across a codebase this size.

Slow, careful, unglamorous work — check what breaks, fix it, check again. Nothing here is going to make it into a launch announcement, if there’s ever one to write. But you can’t ship an Apache 2.0 fork of Kibana while it’s still quietly calling home to Elastic’s telemetry servers, so somebody has to go find that code and turn it off. Right now that’s me, working through a checklist that keeps growing every time I think I’ve finished it.

Repo history