Release Terminology

From Lustre Wiki
Revision as of 10:36, 20 May 2015 by ChrisMorrone (talk | contribs)
Jump to navigation Jump to search

We used to us the terms "Maintenance Release" and "Feature Release" to differentiate the kinds of Lustre releases, but those terms are now retired. There are many reasons behind the name changes, but the change with the broadest impact is likely the current end of public Maintenance Releases. Before we explain that further, we need to establish some background information.

Lustre has a main continuous branch of development that is named master. Whenever it is time to create a new release from the master branch we increment the second number in Lustre's version and reset the third number to zero. For instance, 2.4.0, 2.5.0, and 2.6.0 are releases created along the master branch. These releases used to go by the name "Feature Releases". Feature Releases in the past were of somewhat lower stability than one might hope, in part because they contained large destabilizing new headline features.

Many organizations wish to have regular bug-fix releases that do not contain new destabilizing features. Therefore it was common to create side branches of the lustre code that allowed changes that focused mainly on stabilization. Not every Feature Release spawned a stabilization branch, instead they began every few releases. For instance 1.8.0, 2.1.0, and 2.5.0 all spawned stabilization branches while 2.0.0, 2.2.0, and 2.3.0 did not. The releases that were created along these side branches were called "Maintenance Releases". Maintenance releases incremented the third number in the Lustre version, for instance 2.5.1, 2.5.2, and 2.5.3.

In the past, OpenSFS would publish a slide that looked like this:

Retired roadmap example.png

The master branch is the main point of collaboration for the Lustre development community. All are welcome to contribute to the development of the master branch. Intel maintains a leadership position in the master branch by contributing the majority of the changes to the branch. It is important to note that Intel's work (and Whamcloud before they were purchased by Intel) on the master branch is funded in large part by a contract from OpenSFS, so a significant portion of those Intel authored changes on the master branch are made at the behest of OpenSFS. The releases along the master branch can therefore rightly be claimed to be "community releases".

In contrast, the public Maintenance Releases were all funded and largely developed by a single organization, of late Intel. In hind sight, it was probably misleading to present information about Maintenance and Feature releases on the same slide, as it did not make clear this distinction. Feature releases were developed and funded by the community (although perhaps not in equal proportions amongst the organizations), but Maintenance Releases were almost entirely developed and funded by a single organization, Intel, for its support customers.

Intel for some time was very open with their stabilization branches and resulting Maintenance Releases, choosing to publish them in publicly accessible locations. But alas, they plan to publish that work publicly no more.

Intel no longer intends to push their stabilization branches and Maintenance Releases to public locations. While this may be distressing to some, it bears keeping in mind that this is common practice amongst other Lustre vendors. Cray keeps their Lustre product branch private. Seagate keeps at least one of their Lustre product branches private. Both Cray and Seagate upstream changes as they see fit to the Lustre master branch.

Intel has expressed their commitment to up-streaming Intel Lustre changes to Lustre's master branch. We can expect them to remain active members of the Lustre development community for the foreseeable future.

It is worth repeating: There will no longer be publicly published changes to the Intel's b2_5 branch. Likewise, there are no planned future Maintenance Releases. Lustre 2.5.3 was the last public Maintenance Release. There will not be a public Lustre 2.5.4.

With this change (and others) in mind, there Lustre community is retiring the terms "Maintenance Release" and "Feature Release". Instead, the future releases that we make along the master branch will simply be known as "Major releases". If the community decides to have minor stabilization releases in the future we will likely call them "Minor releases".

Fortunately, the community development of Lustre's master branch remains open and vibrant. We remain committed to making Major Releases along the master branch roughly every six months.