[ English | Indonesia | 한국어 (대한민국) | español (México) | English (United Kingdom) | Deutsch | 中文 (简体, 中国) ]

Releases

OpenStack has a 6-month long release cadence with different release models that projects can choose to follow.

This section allows you to:

  • Understand the different release models that OpenStack components follow

  • Know the structure of the different release models and how to work effectively in those to influence the future of OpenStack

Release Models

OpenStack consists of a large number of projects that form the main components of an OpenStack cloud, from client libraries to lifecycle management services. The different projects are different in nature which implies different release models to follow.

The currently available options are the following:

Release Schedule and Planning

The majority of the official OpenStack projects follow the release schedule set by the Release Management Team.

The 6-month cycle is divided into three milestones and a usually one-month long stabilization period with release candidates.

The first period of a cycle includes more focus on planning, which is why the PTGs are scheduled right after the releases. This is the phase when you should upload your specs for review and use the mailing list, project channels and meetings on IRC to discuss any parts of your design that might be in question.

After the first milestone, some projects focus more on the development and bug fixing activities, while other projects might still accept new ideas to implement in that cycle.

The third period of a release is focusing on finishing the implementation and testing of new functionality added during the release. You need to ensure to add new tests in Tempest and have documentation covered as well before the third milestone. During this phase the core review team can choose to focus on higher priority features only. They make their decision about priorities either at the PTG or soon after, some time before the first milestone of a release.

Some projects also have different dates through a release cycles as internal, project-specific deadlines, like spec-freeze or code-freeze. You need to make sure you are aware of the freeze dates which you can find on the release schedule page.

After the third milestone the community is focusing on stabilizing the release by putting more emphasis on testing and fixing bugs. The projects following the release cycle have their release candidates tagged after the third milestone. There are no limits to release candidates, but the goal is to keep the number low and fix all the critical issues that got identified by milestone-3.

Having the main projects following the release cycle ensures that all these projects release at the same time so these can be picked up by downstream teams to package and further distribute.

Stable Branches

Once a 6-month development cycle is completed the code for that release is branched, in git, to a stable branch. For instance, when the Stein release was completed a new branch in git, stable/stein was created.

Stable branches are kept as a safe source of fixes for high impact bugs and security issues which have been fixed, on master, since the release occurred. Given the stable nature of these branches, backports to stable branches undergo additional scrutiny when they are proposed. Proposed changes should:

  • Have a low risk of introducing a regression

  • Have a user visible benefit

  • Be self contained

  • Be included in master and backported to all releases between master and the stable branch in question

Project teams do point releases off stable branches when enough changes accumulate in the stable branch to justify creating another release for their project.

Stable branches proceed through different levels of maintenance as they age.

State

Time frame

Summary

Maintained

Approximately 18 months

All appropriate bug fixes accepted and releases are produced.

Unmaintained

While there are community members maintaining it.

All appropriate bug fixes accepted. No releases are produced and there is reduced CI commitment.

End of Life (EOL)

N/A

Branch is no longer accepting Changes.

Unmaintained state is only to have a common place for cooperation for interested parties to do some further maintenance of a given stable release after its maintained phase, but as its name says, it’s not officially considered maintained.

The state of all OpenStack releases may be seen on the OpenStack Releases web page.

For more detailed information on Stable Branches and their maintenance phases see the Stable Branches page.