Differences between revisions 14 and 15
Revision 14 as of 2011-06-21 07:28:36
Size: 1787
Comment: I suppose it should be "code freeze" instead of "code free"
Revision 15 as of 2011-11-07 15:01:57
Size: 1967
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
Mercurial now follows a 4-month cycle with the following release dates: Starting with 2.0, Mercurial now follows a 3-month cycle with the following release dates:
Line 13: Line 13:
 * Mar 1st
 * July 1st
 * Feb 1st
 * May 1st
 * Aug 1st
Line 17: Line 18:
In each cycle, we have: == Code Freeze ==
Each release cycle ends with a code freeze that starts '''approximately two weeks before the release date'''. When [[mpm]] begins the code freeze, the following things happen:
Line 19: Line 21:
 * -2 weeks: feature freeze, default branch merged into stable
 * -2 weeks: focus moves to bug-stomping
 * -1 week: code freeze
 * 0: major release
 * 1 month: Zero or more bugfix releases
 * default branch is merged into stable
 * one -rc testing release is made, including binary packages
 * only patches suitable for the stable branch are accepted
 * packagers should start producing nightly builds if possible
Line 25: Line 26:
All platforms should aim to have nightly autobuilders tracking the stable branch. The following changes are accepted on the stable branch (at all times):
Line 27: Line 28:
'''Feature freeze:''' bug fixes, template fixes, doc fixes, and translation fixes only. Exceptions may be made for code that can be shown to have no regression or design impact (e.g. new convert back-ends).  * bug fixes
 * error message improvements
 * doc fixes
 * template fixes
 * improved translations
Line 29: Line 34:
'''Code freeze:''' regression bug fixes, doc fixes and translation fixes only. Exceptions will be made on a case-by-case bases for noteworthy bugs. Doc fixes are discouraged at the end of this period. {i} Please be aware that translators need time to synchronize translations before releases so avoid unnecessary string changes in the last few days of the freeze

/!\ All developers should be sure to check out the stable branch after the freeze is declared

Time-based Release Plan

How we manage releases.

1. Theory

Up until version 1.1, Mercurial took a "when it's ready" approach to releases. Starting with version 1.2, we've switched to a consistent calendar-based release schedule. This helps us get bug fixes and new features into our user's hands more quickly, improve our planning process, and keep our development cycles from growing stagnant.

2. Major releases

Starting with 2.0, Mercurial now follows a 3-month cycle with the following release dates:

  • Feb 1st
  • May 1st
  • Aug 1st
  • Nov 1st

3. Code Freeze

Each release cycle ends with a code freeze that starts approximately two weeks before the release date. When mpm begins the code freeze, the following things happen:

  • default branch is merged into stable
  • one -rc testing release is made, including binary packages
  • only patches suitable for the stable branch are accepted
  • packagers should start producing nightly builds if possible

The following changes are accepted on the stable branch (at all times):

  • bug fixes
  • error message improvements
  • doc fixes
  • template fixes
  • improved translations

{i} Please be aware that translators need time to synchronize translations before releases so avoid unnecessary string changes in the last few days of the freeze

/!\ All developers should be sure to check out the stable branch after the freeze is declared

4. Minor releases

Minor releases will be made by tagging the current state of the stable branch, which is continually kept in a production-ready state.

Releases will be made in a timely manner for significant behavior regressions, data integrity issues, or security issues.

Barring such issues, minor releases will be made on or about the first of every month that doesn't coincide with a major release.


CategoryDeveloper CategoryProcess

TimeBasedReleasePlan (last edited 2022-01-06 08:36:10 by RaphaelGomes)