The sweet sweet build at Eclipse
Despite the importance of building to developing software, building software can often be a painful experience. There’s a few likely reasons why builds are sometimes neglected:
- Customers care deeply about the value your product or service gives them. They usually don’t care about your build.
- Mastering a reasonably complex build is hard, and all too often, thankless.
- It represents yet another skill you need to learn. This distracts from specializing as much as you might like.
- You had to make a priority call of where to invest scarce time & energy and build wasn’t it.
I’m sure you can think of many more, and perhaps even debate these. The point is that an easy to use, easy to modify and extend build is good for your project.
I once was a build architect at Nortel. I inherited a build system from a nice & hard working guy that had simply had it and needed to move on. The transition was a bit rushed. I don’t think I really knew what I was in for when I agreed to do a tour of duty as “the build guy”. Over time I survived the very steep learning curve and eventually made some significant improvements. In the end, the build was about 800% faster and I’d implemented some very slick build avoidance that let a given developer just build the bits they care about and re-use parts of the relevant nightly build to create a complete system. I admit it… I would be feisty and aggressive when people didn’t recognize the awesomeness of my work. I’m sure there are many people chuckling when they read this and saying I still am. Eventually there were just too many other areas pulling me away and I too needed to hand off my build responsibilities. By that point I was proud of what I’d accomplished, but glad to let them go. The CBI work at Eclipse is a bit like deja vu but more fun in that we have a great team of people involved to share the load (Thanks Igor, Paul, Thanh, Krzysztof, and many others!)
The Common Build Infrastructure (CBI) CBI is an evolution of the build efforts at Eclipse, and also an integration of some of the best and most powerful build technologies available today. Investing in CBI helps each project using it to elevate the quality, consistency, and features of their build.
When we started this project, we took on the big scary one as our first goal… we went for the Eclipse platform. I am happy to report I can build and package the Eclipse platform in about 11 minutes with just 3 commands. You can too. Anyone can. That’s the point. Once it is that stupidly easy to build, test, and package – it’s that much easier for people to dip a toe, try things out, and consider getting involved with the project.
The best part is many others have been using the same technology and techniques we encapsulate with the CBI name such as the Maven build engine & Tycho plugin. We’re just getting started. The momentum behind it is growing, and we’re starting to get excellent quality contributions from others. There are many ways to get involved with CBI… provide feature requests, test, provide bug reports, code changes, documentation, and much more. We’d love to have you. And by getting involved with CBI, your work makes life just a little bit better for countless projects.
Check out the CBI landing page to learn more and get involved.