Releases of Percona Server with XtraDB follow a fairly traditional model. Basically, development occurs along a main branch that includes all Percona changes to MySQL. Periodically, a snapshot of the current development branch is taken and evaluated as a new release candidate. When the release candidate has been adequately tested and is considered reliable, it becomes the current stable Percona distribution. Periodically, the entire cycle repeats, with a snapshot of the development branch becoming a new release candidate and, eventually, a new stable release. These three branches—development, release candidate, and stable—are discussed further below.
At any particular point in time, there is a released version of Percona Server with XtraDB that's considered the current stable, production-quality version of the software.
The stable release is labeled with a two-part version number, with the two parts separated by a dash. The part preceding the dash indicates the version of MySQL software the release is based on, and the part following the dash indicates the version of Percona Server built on that MySQL base. For example, a release number of 5.1.49-11.3 would indicate that MySQL 5.1.49 was the base and that 11.3 was the version of Percona Server being distributed on that base.
Once a stable release is distributed, only two types of changes are made to subsequent versions of it:
- bug fixes; and
- updates to new MySQL releases.
Both of these types of changes are reflected in the Percona part of the release number. In both cases, only the part of the Percona release number after the decimal point is incremented, reflecting the relatively minor nature of changes that are made to a stable release. As an example, of each:
- If the current stable release was 5.1.49-11.3 and it was updated with a bug fix, the new version number would be 5.1.49-11.4.
- If the current stable release was 5.1.49-11.3 and it was updated to MySQL 5.1.50, the new version number would be 5.1.50-11.4.
Note that in both cases the number after the decimal in the Percona part of the number is incremented.
Percona regularly migrates the stable release to newer MySQL versions as they become available (e.g., 5.1.47, 5.1.48, 5.1.49, . . .). Barring exceptional circumstances, Percona issues a new stable release approximately 30 days after a new MySQL version is released.
As mentioned above, the Percona release number is only changed in the part after the decimal in a stable release. The Percona part of the release number before the decimal is incremented only to indicate a new major version of the software. A change in the part of the number before the decimal will appear first in a new release candidate.
Periodically, a new release candidate is created by taking a snapshot of the development branch. While generally stable, the release candidate may contain experimental features or changes that have not been used extensively. As a result, the release candidate is not yet considered stable enough to replace the current stable release.
When a new release candidate is created, it's given a release number with the same form as that of a stable release, with a MySQL part and a Percona part. The Percona part is created by incrementing the digit before the decimal in the current stable release, and setting the value after the decimal to zero. For example, if the current stable release is 5.1.50-11.4, the release number for the new release candidate becomes 5.1.50-12.0.
Once a release candidate is created, the only changes made to it are:
- bug fixes; and
- changes to stabilize it enough to make it the new current stable release.
The part of the release number after the decimal is incremented as these changes are made. If the release candidate started as version 12.0, it will become 12.1, 12.2, 12.3, . . ., etc., as changes are made until it is eventually determined stable enough to become the next stable release. Prior to that, it will be distributed externally as the current release candidate.
In some cases, a release candidate may contain changes that are particularly risky or unstable. If so, the suffix ”-beta” is appended to the release number to indicate this. So, for example, a release number of 5.1.50-12.4 would indicate a “normal” release candidate, perhaps not distributed as the stable release yet simply due to insufficient time in use. However, a release candidate labeled 5.1.50-12.4-beta would indicate a release candidate with a higher level of risk. Documentation calling attention to particular areas of risk would accompany a beta release candidate.
Percona's development branch contains all Percona changes to standard MySQL. It is constantly receiving updates, including both bug fixes and new enhancements. The current release candidate and the current stable release are always past snapshops of this branch. Future release candidates and stable releases will come from future snapshots. This branch is not associated with any externally visible release number.