Development Team/Release
New features proposal
At the beginning of each release cycle, maintainers will write a proposal for each major new feature they plan to develop. These will be discussed on the Sugar mailing list, revised on the base of the feedback and made available on the wiki.
The release team role is to help the community to reach a consensus on which features, modules and activities to include.
New activities
Criteria for approval will be:
- Supports internationalisation and localisation.
- Does not duplicate the functionalities of other activities.
- Provide functionality that the community judges as important for reaching the goals of the project.
- ...
Not required but preferred:
- Use the sugarlabs infrastructure.
Informations to provide when proposing a new activity:
- Short description of the features.
- Screenshots or screencasts.
- Are you willing to follow the Schedule?
- System components the activity depends on.
- Members of the developer team.
- Status of internationalization.
- Code repository.
- Bug tracking system.
Module release
For both intermediates and final releases module maintainers are responsible to announce module release and make the sources available. More in detail:
- Build a source tarball, test it carefully and make it available in a stable location.
- Send an announce mail to devel-announce@sugarlabs.org. The form will be decided by each maintainer but it should at least include a reference to the source code tarball and an high level, user oriented list of changes.
Sugar release
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:
- Ensure that all the module releases are available by the scheduled date.
- Construct a sugar-jhbuild moduleset out of them. Run automatic and manual QA on it.
- If issues arise coordinate with the relevant module maintainers to solve them.
- Announce the release on devel-announce@sugarlabs.org, including a reference to the sugar-jhbuild moduleset, references to each source module and a global list of changes.
Feature freeze
The feature freeze affects all the modules included in the release and comprise also strings and 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 release-team@sugarlabs.org. It will have to be granted by two members of the team.
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 release-team@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.
Roadmap
The Roadmap is updated at the beginning of each release cycle by the release team. It includes:
- Detailed schedule of release dates and freeze points.
- List of modules and external dependencies.
- Reference to all the tickets considered for the release.
- References to the new feature proposals.
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.
Without making it a strict rule, it would be good if each commit or set of commit would have a ticket associated. The ticket number should be always mentioned in the git log and could also be 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 sugarlabs 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.