Skip to main content
Jump to: navigation, search

Orion/Continuous Delivery

< Orion
Revision as of 09:12, 17 July 2014 by John (Talk | contribs) (Automated testing)

This page collects ideas, processes, and technology requirements for supporting continuous delivery of Orion


For the past couple of years, the Orion project has followed an abbreviated version of the classic Eclipse milestone development process. Each release consisted of two 6 week milestones, followed by a 5 week end-game, for a roughly 4 month total release cycle. This release cadence works well enough for classic software that is released and delivered to customers, but is not acceptable for Orion consumers building hosted software services. Four months is far too long to wait to update a web application. Other related web technology such as browsers and web frameworks are releasing much faster, and security bugs often require very fast (even zero day) turnaround.

This page captures the Orion community's efforts to move from three releases a year, to an interim goal of releasing stable builds once a week.



Orion runs with two classes of builds:

Build Type Branch Frequency Deployed To
Dev master Daily or on demand
Stable stable_YYYYMMDD Weekly

Stable build process

Each week we converge to produce a single stable build using the following process:

  1. On Monday at 12:00 ET / 18:00 CET a new stable branch is created of the form stable_YYYYMMDD
  2. A committer designated as the Integrator reviews all changes in master and merges into the stable branch
  3. A stable build is performed against the stable branch and promoted to
  4. Committers test and further stable builds are run as needed
  5. The build is promoted as stable with the naming convention S# where # is the sequential stable build number since start of the release cycle

Release process

Every four months a stable build is promoted as a release.


Automated testing

Every dev and stable build runs a full suite of automated unit tests against both client and server components. Further integration testing is done by "self hosting" at prior to release.

Controlled access for new features

Significant new features should be introduced in the main code base early, either on a separate, unlinked URL, or by using some form of feature toggle. Some options for implementing feature toggles in Orion:

  • Put the UI portions of the new feature in a plugin that is not installed by default. Early adopters need to install the plugin to get the feature.
  • A major page overhaul can be done by introducing a duplicate page that is not linked elsewhere. Early adopters need to know to navigate to that URL to see the new page. The feature is launched by switching URLs to the new page. Once feature is accepted the old page should be deleted to avoid cruft.
  • Use a temporary setting that is disabled by default, and adopters need to know to turn it on. Once ready for more exposure the default can be changed to on, and then remove the setting entirely.
  • Use a query argument in the URL to control access to a feature. User needs to alter the URL to see the feature.


New and noteworthy

Back to the top