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:
- Remove the x-pack directory — the actual commercial code
- Remove x-pack references from the build scripts — because deleting a directory doesn’t help if six build scripts still expect it to exist
- Fix the tests that broke once x-pack was gone, and make sure the test suite actually ran again
- Remove x-pack from the i18n build, because internationalization tooling had its own set of x-pack hooks
- Disable the telemetry network calls that phoned home to Elastic’s servers
- Clean up the
.cidirectory and get a basic Jenkins pipeline running so we had a way to know when we broke something
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.