Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ONOS runs "train" based releases. That means whatever is ready to board the train, does so. Whatever isn't ready, has to wait for the next train. This enables us to have a very predictable release cadence making it easy to plan around. It also puts the responsibility on project owners to make sure they have features ready for the release. ONOS releases quarterly at the end of February, May, August, November. It is offset from the "normal" quarters because we all know that nothing happens for half of December. At the beginning of a release cycle, we have a planning meeting and two weeks before the end of the release we freeze integration of new features:

 

Release Cycle

Releases last 3 months. Each release starts with a planning meeting (check the ONOS calendar). After planning, development teams build their deliverables using whatever methods (scrum, kanban, waterfall...) they want but must their code frequently (daily?), leading up to the last 2 weeks. The project does not accept "dumps" of code at the end. Commit early and often on master. Two weeks before the release date, we halt feature integration and only allow bug fixes. At some point during those two weeks, we start the release candidate process. This process starts by pulling a branch off master that will become the release branch. That frees up master for development on the next release. On the release candidate branch we work on bug fixes, and choose "release candidate", RC, tags. The software at that tag is a candidate for release, and it is submitted to a more rigorous set of testing. If it passes, we can officially tag it as the release. If it doesn't, we enter another bug fix cycle and create a new release candidate. We iterate until we have a candidate that can be the formal release. Usually, this takes 2-3 cycles and 1-3 weeks of time. More details on branching can be found in the contributor guide portion of the wiki.  

...