MapGuide Release Process
MapGuide Release Process
This document details the process the MapGuide PSC and development team will follow to create releases of MapGuide Open Source.
The process is intended to be a flexible tool used by the MapGuide PSC to ensure new features are regularly made available to the community through formal releases, while maintaining a reasonable level of control over when and how releases are made.
There are several core concepts to the release process:
- Versioning
- Release Types
- Release Schedule
Version Numbering
MapGuide follows a traditional version numbering scheme using three numeric fields separated by periods. The three fields denote the major version number, the minor version number and the bugfix version number respectively.
Version numbers will be changed by single digit increments for each subsequent release of the same type.
Version numbers for bugfixes start at 0 for a new minor release. Version numbers for minor releases start at 0 for a new major release.
Release Types
There are several release types, each related to a particular part of the version numbering scheme:
- Major Release
- Minor Release
- Bug Fix Release
- Beta Release
- Release Candidate
- Final Release
Major Release
A major release is one that changes the major version number. The PSC can make any release a major release. There is no fixed schedule for a major release. A major release should be considered when there are major architectural changes or a substantial set of new features since the last major release.
Minor Release
A minor release is one that changes the minor version number for a given major release. Approximately two minor releases are made in each calendar year, ideally about 6 months apart. A minor release happens automatically and includes any new, stable features as decided by the PSC.
The PSC may advance or delay a minor release as required to accomodate development schedules. However, it is important for the PSC to consider the impact of delaying a minor release on the deployment of existing unreleased features.
Bug Fix Release
A bugfix release is one taht changes the bugfix version number for a given minor release. Bugfix releases can be made at any time. Generally, a bugfix release will include several minor bug fixes. However, a bugfix release can be made for a single bug fix if it is deemed necessary for security or functional reasons.
Beta Release
A beta release precedes any major or minor release. At least one beta release will be made before a final release of a major or minor version can be made. More than one beta release can be made if warranted by feedback on the mailing list. A beta release should be considered a 'feature complete' version with potential known issues. No new features should be added to a version after the first beta release. The PSC may vote to allow additional features in a release after the beta release process has started, but any new feature must result in another beta release.
Release Candidate
A release candidate follows the final beta release and precedes any major or minor release. At least one release candidate will be made before a final release of a major or minor version can be made. More than one release candidate can be made if warranted by feedback on the mailing list. A release candidate should be considered 'feature complete' and free of serious, known issues. Minor known issues may exist in a release candidate, but should be documented in the release notes.
Under no circumstances will new features be admitted to a version following a release candidate.
Final Release
A final release is approved by the PSC following a release candidate if no significant problems are uncovered.
Release Schedule
The MapGuide PSC is responsible for determining the MapGuide release schedule in the (link) MapGuide Road Map. As noted, a minor release will occur approximately twice in a calendar year.