The Reality of Open Source: Lessons from Checkstyle

4 min read

I think a lot of people have glamorized ideas about open sourcing. It's the ticket to "making a change" and standing out. With the growth of AI, this idea rarely comes with reality. The growth of AI has made coding accessible to everyone, but this also means that code quality and maintenance are more important than ever. Code has to be verified and not be sloppy, the components have to piece together and be scalable. Updates have to regard documentation and make a multitude of changes.

Since December 2025 I've been contributing to Checkstyle, one of the most widely used Java static analysis tools. What I learned in just a few months completely changed how I view open source.

1. Maintenance is Forever

The moment your PR is merged, you're taking ownership and have to live up to the future of it. Especially for a rigid project like Checkstyle, where every change must be carefully considered and tested.

2. The CI Pipeline Marathon

Checkstyle's CI is no joke: GitHub Workflows, CircleCI, Azure Pipelines: all running on every single PR. Multiple JDK versions, spelling checks, full test suites, regression tests etc. One small change can break 12 different jobs. I've spent 90% of my time fixing CI than writing actual code. Coming into open sourcing, you'll have to be patient with your PRs. I appreciate the CI jobs that make sure components are still working after new AI code is pushed from PRs. Truth be told, maintainers can't always be 100% free and look at PRs super intensely. The CI jobs are the real magic here.

# After I make changes, I run
./mvnw clean verify

#If that passes, I git push and wait for the CI to finish.
#They're way more intensive than local tests. 

3. Even a Variable Name Matters

For example in a style-checker project, naming isn't nitpicking, it plays a huge role. I've seen many issues where users were concered about a check's function and it was a naming issue that can't be easily resolved. Rather than making changes and potentially break too much, sometimes you'll have to let it go and live with it. That's a pity.

Conclusion

Overall, I've learnt a lot about the process of making software from open sourcing. The whole idea is hard only because we have to be user focused, not look at the software from coding eyes.

Stay Curious