|
|
|
# Release procedure
|
|
|
|
|
|
|
|
**This page is WIP. The following procedure is not yet approved for use**
|
|
|
|
|
|
|
|
# Trunk
|
|
|
|
|
|
|
|
Meson operates under the principle that trunk should (in theory) be always
|
|
|
|
good enough for release. That is, all code merged in trunk must pass all unit
|
|
|
|
tests. Any broken code should either be fixed or reverted immediately.
|
|
|
|
|
|
|
|
People who are willing to tolerate the occasional glitch should be able to
|
|
|
|
use Meson trunk for their day to day development if they so choose.
|
|
|
|
|
|
|
|
# Major releases
|
|
|
|
|
|
|
|
Major releases are currently in the form 0.X.0, where X is an increasing
|
|
|
|
number. We aim to do a major release roughly once a month, though the
|
|
|
|
schedule is not set in stone.
|
|
|
|
|
|
|
|
Before a major release is made a stable branch will be made, and 0.X.0-rc1
|
|
|
|
release candidate will be made. A new milestone for 0.X.0 will be made, and
|
|
|
|
all bugs effecting the RC will be assigned to this milestone. Patches fixing
|
|
|
|
bugs in the milestone will be picked to the stable branch, and normal
|
|
|
|
development will continue on the master branch. Every week after after this a
|
|
|
|
new release candidate will be made until all bugs are resolved in that
|
|
|
|
milestone. When all of the bugs are fixed the 0.X.0 release will be made.
|
|
|
|
|
|
|
|
# Bugfix releases
|
|
|
|
|
|
|
|
Bugfix releases contain only minor fixes to major releases and are designated
|
|
|
|
by incrementing the last digit of the version number. The criteria for a bug
|
|
|
|
fix release is one of the following:
|
|
|
|
|
|
|
|
- release has a major regression compared to the previous release (making
|
|
|
|
existing projects unbuildable)
|
|
|
|
- the release has a serious bug causing data loss or equivalent
|
|
|
|
- other unforeseen major issue
|
|
|
|
|
|
|
|
In these cases a bug fix release can be made. It shall contain _only_ the fix
|
|
|
|
for the issue (or issues) in question and other minor bug fixes. Only changes
|
|
|
|
that have already landed in trunk will be considered for inclusion. No new
|
|
|
|
functionality shall be added.
|
|
|
|
|
|
|
|
# Requesting a bug fix release
|
|
|
|
|
|
|
|
The process for requesting that a bug fix release be made goes roughly as follows:
|
|
|
|
|
|
|
|
- file a bug about the core issue
|
|
|
|
- file a patch fixing it if possible
|
|
|
|
- contact the development team and request a bug fix release (IRC is the
|
|
|
|
preferred contact medium)
|
|
|
|
|
|
|
|
The request should contain the following information:
|
|
|
|
|
|
|
|
- the issue in question
|
|
|
|
- whether it has already caused problems for real projects
|
|
|
|
- an estimate of how many people and projects will be affected
|
|
|
|
|
|
|
|
There is no need to write a long and complicated request report. Something like the following is sufficient:
|
|
|
|
|
|
|
|
> The latest release has a regression where trying to do Foo using Bar
|
|
|
|
breaks. This breaks all projects that use both, which includes at least [list
|
|
|
|
of affected projects]. This causes problems for X amount of people and
|
|
|
|
because of this we should do a bugfix release.
|