| # 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. |