It has been a couple of months since any form of new Orion milestone has been announced, so you may be wondering just what the heck is going on with the Orion team! Rest assured there has been a ton of work going on behind the scenes, and OrionHub has even been silently upgraded with new features a few times since the 5.0 release. The Orion 6.0 release will be out at the end of June 2014, and a recent stable build is now available for download.
What’s been happening is that the Orion committers are moving towards a continuous delivery development model. Quick, can you tell me what version of Facebook you are using? When was the last time you upgraded to the latest version of Google Docs? Web applications (and to a lesser extend mobile applications) don’t lend themselves to sudden, drastic feature releases.
Rather than produce a stable build every six weeks with a big bang of new features, we are aiming for a continuous stream of new features, each released on its own schedule when ready for consumption. This is a delivery style that is much better suited for web applications, rather than the milestone process that we inherited by osmosis from the Eclipse release train. The release train rhythm works very well for a project that releases once a year, but quickly lost any meaning to us once we started down a path of continuous delivery.
The Orion team is still working out the best development practices for this sort of delivery model. For now, we are using a form of the Feature Branch pattern, so you can get a sneak peak at our upcoming new features by taking a look at our Git repository:
Each major new feature gets a branch. Once a week (or maybe more), we cut a stable build branch. We use that branch for final integration testing and fixes, declare the stable build, and then start the process over again. We still have a lot more details to work out before we arrive at a process and infrastructure that we are happy with. In particular we need to improve our automated integration testing so that developers can test their topic branches and deliver to master with confidence that they didn’t introduce integration problems. We also need to improve our server architecture to support clustering and instant fail-over, so that continuous delivery doesn’t turn into continuous downtime for those delivering Orion-based web applications.
There is of course one very valuable by-product of the milestone process that we lost along the way. The milestone ritual reminded us to gather up and announce all the big new features we had introduced over the past six weeks. Over the last couple of months we have completely failed to let the community know about all the cool things going on in Orion, which is something we need to fix and integrate into our continuous delivery practices. Expect to see more frequent (but smaller) posts about new Orion features over the coming months. If you have any continuous delivery wisdom to share that can help us, please let us know either here or on the orion-dev mailing list.