Release Process
This page describes OLPC's software release process.
Goals
The goals of the release process process are to:
- Ensure high quality releases which meet the needs of users in a timely fashion.
- Maximize the participation, productivity and enthusiasm of the open source community.
- Create a predictable process which helps users and developers plan for the future.
The output
The output of this process is a generic software image suitable for installation on OLPC's XO laptop platform. The image is generic in the sense that it includes a rounded selection of activities, applications, and languages.
We do not expect established deployments to use this software image directly. Almost all deployments have needs or desires to customise the software image that they ship (e.g. with new languages, a different selection of activities, specific default settings, etc.). We expect that most established deployments will use the Build system to produce a variant of the release including their own customizations.
Nevertheless, the process of developing and stabilising the generic release is key, as it forms the base of all the deployment-customized software releases.
The process
Each release is planned in advance, and this process results in a slightly different development/release methodology for each release. However, certain guidelines and well-established principles are stuck to:
- The release planning documentation is made public from the start.
- Release development is divided into individual stages, separated by milestones (discussed below)
- Releases are coordinated according to a schedule of milestones, which is decided early on, and included in the release plan.
- This is important so that our customers know when to expect the final release, when they should get involved with development and testing, and to allow them to plan their upgrade/rollout.
- This is also a well-established practice in our neighbouring open source communities
- The release schedule is honored strictly. That is, the milestone dates are adhered to, even if some sacrifices (such as exclusion of planned features which didn't arrive in time) are made. Some flexibility can be allowed for, but these should be exceptional cases only.
The development process is divided into distinct stages, with milestones to mark the progression from each one to another.
- Planning
- Development
- Bug fixes only
- Regression fixes only
- Release
Major and minor releases
Major releases include large platform changes (such as updating to the latest versions of Fedora & Linux) and addition of new features.
Minor releases (a.k.a. point releases) are limited to the fixing of bugs which are affecting deployments, and occasionally include translation and locale updates (requested by deployments).
- This was previously adhered to quite strictly, but the recent minor releases in the 10.1 series have seriously blurred the lines between major and minor releases. This degrade of practice started when OLPC's development resources were downsized, meaning that there were no resources in sight to allow for a future major release, resulting in the relaxing of criteria on what could go into the minor release. However, now that OLPC's software team has grown a bit again, it is my hope that this previous practice can be restored, so I've documented it that way. Time will tell... -DanielDrake 17:22, 9 February 2011 (UTC)
Features
New major releases will include a set of new features, pioneered and developed by OLPC staff and community members. A feature is defined as a significant change or enhancement to the current version of XO software that may or may not include new packages.
Features are usually considered to meet one or more of the following objectives:
- Highly user visible changes
- Improvements or changes that require non-trivial cross-package integration
- Noteworthy enough to call out in the release notes
- Exciting new capabilities we can trumpet.
Some examples might include:
- New educational tools that will be used by children
- New features from upstream that we are making available on the XO for the first time
- Improvements to tools and infrastructure used by activity developers
Additionally, features can enter releases through upstream projects. For example, a new feature added to GNOME will automatically enter an OLPC release once a release is made including that specific version. Some of these features may have direct impact on OLPC and are good candidates to be discussed in the release notes.
Maintainability and sustainability
Release Names
The release names are of the form "Y.H.NN"
- Y = target calendar year
- H = major release number representing first release or second release of the calendar year
- NN represents the Minor Release, starting with .0 at the availability of the first Major Release and going up by 1 for each publicly available minor release after that.
A Major Release and all its derivative Minor Releases can be referred to with a variable (or wildcard) in the third digit (e.g. 8.2.x refers to 8.2.0, 8.2.1 and 8.2.3).
Examples:
- 8.1.1: First Minor Release rebuild based on the first Major Release in 2008
- 8.2.0: Second Major Release in 2008
How to contribute
Developing, Testing, Translating
See also
- Release Process Home/Historical - historical plans for parts of the release process