I spent nearly 3 weeks, over 2 weeks of that officially sponsored by my employer Tetrate, to get Zipkin back to a maintainable state. Here's a summary of what's new, most notably, we have a new committer to announce,
Andriy Redko:
1. There was an effort in the main codebase to make Zipkin 3 a SkyWalking dependency. This has been canceled for a number of reasons, and I removed all of the side effects in our build. Such a thing could be re-started in openzipkin-contrib as a storage module like
zipkin-storage-kafka if desired, but if anyone tries this again, make sure storage tests run and no schema incompatibility is introduced. By luck of a bad release attempt not including the alpha code, a mistake that updated the latest docker tag in Docker had no impact. We have to be very careful what we do in the core repo as it can impact a widely used tool! All significant experiments must be forks or in separate repos next time!
2. There was an effort to make a helm chart, though I didn't see evidence of people knowing or remembering the one from
Financial Times, which is actively maintained. Because this used normal helm plugins, it made confusing versions and tags on the main repo. I think maybe folks didn't know or expect this to happen, and is another reason why things like this should always start in a separate repo. Also PRs stalled out unmerged 6 months ago. I moved all this to
zipkin-helm repo and added the leads as contributors so they don't get stalled out again, and that helm chart versions are independent and won't be mistaken for zipkin ones.
3. Many things were left for three years (since I left) particularly some open pull requests around Armeria. I landed all those things and updated all versions to current. I also updated the base docker images to latest Alpine which supports JDK 21. I also added test images for activemq and Elasticsearch 8.x, which works now. These core pieces are only an issue if left unmaintained, so let's not let either get very behind again!
4. The build also was very out of date, and still relied on old junit 4 and max LTS Java 11. With a lot of help from
OpenRewrite and Moderne (who added openzipkin as a project), the builds are sparkly new and using junit Jupiter etc. There are some
dangling rev-locks in the dependencies job, preventing a move to JDK 21 there, as well some
maintenance left in zipkin-aws, but anyway the main repos (including Brave) are fine and can build and run on JDK 21!
5. It became very clear that folks haven't been in a position to do maintenance on the project, for reasons which might be lack of stake or confidence in updating dependencies. Stewardship can be tedious, and more Java folks who are willing to help is a way out of this problem.
Andriy Redko is excellent at Java, and the more esoteric things like OSGi, and has been a maintainer of projects related to Zipkin historically, including Karaf. He's offered to help with some maintenance. I think that actively paying mind to users, helping them land fixes and maintenance, was always the right way to keep things turning, and much easier than breaking the ecosystem with a platform switch. I'm glad to have Andriy around, and I'll stick around, even if not full time, as well.
My personal final note is thanks to Igarashi and Lance for doing so much (possibly annoying) maintenance work in the last three years. P.S. you two were nagged incessantly and really folks should stop doing that and spend more effort on maintenance instead. Adding features or platforms are exciting and fun to social media post about, the project is dead without maintenance. Thanks and hope to see more of this from more people in the next year. Let's all nag less and action more, especially the bugs and uninteresting things needed to keep things current.
Ciao,
-Adrian