Patch/Minor Release Process
Patch release
Patch releases contain changes which:
- Don't introduce translatable strings changes
- Don't change the user interface
- Don't implement feature requests involving usability
- Each change which is intended to be a part of the patch release should contain related mtest, vtest or script test if possible
- Changes related to Plugin API which do not change the existing functionality. The changes introducing new fields or properties to the Plugin API may be a part of Patch Release. The changes affecting existing API should be thoroughly tested and become a part of a Minor Release.
What should be done before release:
- Each change should be tested manually
- The patch release branch is always based on the previous patch release branch or minor release
- The changes are cherrypicked from master branch according to the rules described above
- All changes (that don't fix found regressions) should be tested at least for three days
before the release date.
Minor release
What changes go to a minor release:
A minor release is built on top of the master branch and contains all the changes, except:
- The changes in UI/UX which significantly change accustomed user workflows
- File format changes which lead to a complete incompatibility with previous versions of MuseScore
What should be done before release:
- All changes (that don't fix found regressions) should be tested for at least one week
- Each minor release update should be preceded by Beta and Release Candidate packages which are available for the community
- Beta version should be prepared and publicly shared at least three weeks before the scheduled Minor Release date
- Once Beta version is out, feature freeze happens, which means no changes related to the user interface or changing current functionality will be merged
- Release Candidate should be prepared at least one week before the scheduled Minor Release date
- After Release Candidate is out, no changes will be accepted except those fixing the regressions found comparing to the latest patch release
- String freeze happens at the time of publishing Release Candidate. No new strings or string changes will be merged
- The announcement for the translators including an ETA of the final release should be published within a day after publishing Release Candidate
- Once the Release Candidate is out, no more strings will be pushed to Transifex
before the release date