This document describes the release policy of Postgres-XC. This policy is respected from version 0.9.5.
About code base
In GIT repository, Postgres-XC master branch is aligned with PostgreSQL code up to the latest intersection of PostgreSQL master branch and X_X_STABLE branches (determined with git merge-base). As PostgreSQL stable branches are created more or less at each beta2 release once a year, Postgres-XC master branch is realigned once a year with PostgreSQL master branch. This allows to make releases of Postgres-XC by including code commits of latest PostgreSQL stable branch and having a stable version.
Each major release of Postgres-XC is numbered 0.9.5, 0.9.6, etc. by incrementing the latest digit number. Minor releases are numbered 0.9.X.X and then 1.X.X for versions from 1.0.
A minor release is made respecting a 3-month cycle. Minor releases just contain the latest commits of PostgreSQL stable branch release depending on the stable branch is forked on and Postgres-XC maintenance fixes. For example, release 0.9.5 used this number as major release number, then minor releases are numbered 0.9.5.1, 0.9.5.2, etc. by incrementing the latest digit number.
Release process in GIT
At a new release, a new branch called REL0_9_X_STABLE for 0.9.X versions and REL1_X_STABLE for 1.X versions is created. This new branch contains the latest Postgres-XC development and a merge of the latest PostgreSQL stable branch where Postgres-XC master branch is forked on. All the commits of stable branch are included at the time of Postgres-XC release to include a maximum of fixes.
Then when a release minor or major is made, a tag is created.
Then following format is respected depending on if release is minor or major, on if release is numbered more or less than 1.0.
- XC0_9_Y_PG8_X for major release 0.9.Y up to 1.0 based on PostgreSQL 8.X
- XC0_9_Y_Z_PG8_X for minor releases 0.9.Y.Z up to 1.0 based on PostgreSQL 8.X
- XC0_9_Y_PG9_X for major release 0.9.Y up to 1.0 based on PostgreSQL 9.X
- XC0_9_Y_Z_PG9_X for minor releases 0.9.Y.Z up to 1.0 based on PostgreSQL 9.X
- XC1_Y_PG9_X for major releases 1.Y from 1.0 based on PostgreSQL 9.X
- XC1_Y_Z_PG9_X for minor releases 1.Y.Z from 1.0 based on PostgreSQL 9.X
This system permits to keep a trace on versions of PostgreSQL Postgres-XC is based on.
A release of Postgres-XC has a tarball name respecting the following convention:
- For release X.Y.Z, tarball name is postgres-xc.X.Y.Z.tar.gz
- RPM, SRPM packages or spec files share the same grammar, postgres-xc.X.Y.Z.spec.
RPM specifications files use the same grammar. Caution: This grammar is not respected until Postgres-XC 0.9.6.
Merge policy with PostgreSQL