Development Team/Release

From Sugar Labs

Jump to: navigation, search

Team Home   ·   Join   ·   Contacts   ·   Resources   ·   FAQ   ·   Roadmap   ·   To Do   ·   Meetings

Contents

Goals and modules proposal

At the beginning of each release cycle, maintainers will work on a set of goals, document them and assign owners. See the upcoming stable release, 0.96/Roadmap. (These goals typically involve major interventions or the addition of new components, e.g., someone develops a speech engine specially for his mother tongue and wants it in Sugar. Hence, the process described below is primarily for module maintainers. If you are a developer with a feature or bug fix, you may want to refer to the new feature process.)

New modules proposal

The time period available to make a proposal is indicated on the schedule. To propose a new activity send mail to the sugar-devel@lists.sugarlabs.org, providing the following information:

(See Features/Feature Template.)

Criteria for approval will be:


Module release

For both intermediates and final releases module maintainers are responsible to announce the module release and make the sources available. Note that the release number of the module does not need to match the Sucrose release number. More in detail:

Glucose (base) modules

make distcheck
shell.sugarlabs.org:/upload/sources/sucrose/glucose/(module_name)/ 

which translates to:

http://download.sugarlabs.org/sources/sucrose/glucose/(module_name)/ 

Fructose (base activity) modules

If your activity uses bundlebuilder you can use the dist_source command to generate a source tarball. Note, use a clean checkout of the repository - due to how bundlebuilder works at the moment files you would place in the directory e.g. x.patch would be included in the tarball as well.

python setup.py dist_source

The tarball will be generated inside the dist directory.

The preferred location for fructose components is:

shell.sugarlabs.org:/upload/sources/sucrose/fructose/(module_name)/ 

which translates to:

http://download.sugarlabs.org/sources/sucrose/fructose/(module_name)/ 

Using the release script

For both, fructose and glucose components you can use the release script in sugar-tools to do the above tasks in one go.

You can check out the available commands (Note, the script does try to release the software of the directory you are currently in):

./release --help

Sugar release cycle

Sugar platform release version cycle: | 0.82 | 0.84 | 0.86 | 0.88 | 0.90 | 0.92 | 0.94 | 0.96 |


Each release cycle will include development, beta, release candidate and final releases. The release team is responsible to coordinate with module maintainers, pull the updated modules together, perform basic QA and announce it. More in detail:

Roadmap Update

The Development Team's Roadmap is updated at the beginning of each release cycle by the release team. It includes:

Feature freeze

By Feature Freeze all new features have to be complete, reviewed and pushed to the repository. "Feature" should be interpreted as "Functionality" or "Ability". Bug fixes of existing features are not affected.

This allows developers to concentrate on refining the new features instead of adding yet more functionality.

The feature freeze affects all the modules included in the release and comprise also ABI for public libraries. Exceptions might be considered by the release team but they will be extremely rare. To request an exception send mail to sugar-devel@lists.sugarlabs.org, referencing the patches you would like to land. It will have to be granted by two members of the release team, on the base of community feedback.

UI Freeze

Major UI revisions or changes must be done before this date. You can still make string changes (e.g. changing a sentence in a window) before the String Freeze.

This encourages developers to focus on stability and bug-fixing rather than UI changes. At this point, documentation writers do not have to worry that their work will become outdated.

If you really need to do an UI change you have to ask an exception from the release team and must notify the documentation team when accepted.

String cooling

String changes have to be announced, but no exceptions have to be requested. As soon as the change is committed in git, notify the localization@lists.laptop.org localization list about it.

String Freeze

Every string change has to be requested and to be approved. Please send an exception to the localization@lists.laptop.org localization list and sugar-devel@lists.sugarlabs.org if you need to break the string freeze and ask for an exception. The localization team lead and two members of the release team need to approve such a break.

Stabilizing

In the stabilizing phase we request every bug fix to be tied to a ticket including a testing plan. Please add the testcase in the ticket comment field. You need to mark it with |TestCase|. This adds better readability and our script that pulls together the test cases for each release is able to find it as well. For example:

|TestCase|
Click on Browse, Read, Pippy icons in the homepage and make sure all of them starts correctly.

Hard code freeze

When the hard code freeze is in effect, each and every code change should be approved by the release team. Only critical fixes will be considered. To request approval send mail to sugar-devel@lists.sugarlabs.org, including the patch and a detailed description of the changes, the benefits and the risks. Approval will have to be granted by two members of the team.

Branching

After the final release of a module, a branch should be created to host further stable development. Please use a name in the form: sucrose-XXX (for example sucrose-0.84). Each module maintainer is responsible to inform the sugar-devel@lists.sugarlabs.org and localization@lists.laptop.org lists about the branch.

A new branch is created on the Pootle server, e.g., Fructose-0.82 and Fructose-0.84. The Localization team (the coordinator of a translation team) may push translations to any or all of the corresponding branches of your project. Changes to your master branch are not necessarily intended for the release branches as well.

You can create a remote branch like this (in your repository):

git branch sucrose-0.84
git push origin sucrose-0.84

And to work on it (in your repository):

git checkout -b sucrose-0.84 origin/sucrose-0.84
git pull

Bug triaging

Module maintainers should ensure that their plans for the release are clearly reflected in the bug tracking system. They are responsible to set milestones and priorities accordingly, in cooperation with the release and the QA teams.

Each commit or set of commit should have a ticket associated. The ticket number should be always mentioned in the git log and is used to automatically build the list of module changes for the releases.

Automation

TBD Many of the steps described in this document can be easily automated for maintainers which are using the Sugar Labs infrastructure and for the release team. Though as a first pass we want to get the workflow right, even if it involves more manual step than strictly required.

Related pages

Sugar platform release version cycle: | 0.82 | 0.84 | 0.86 | 0.88 | 0.90 | 0.92 | 0.94 | 0.96 |

See also Category:Release Notes

Development Team/Release/Modules
Personal tools
Namespaces
Variants
Actions
Sugar
Projects
Teams
Local Labs
Using the Wiki
Google translations