This document describes the release policy of Postgres-XC. This policy is respected from version 0.9.5.
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.
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, 2 tags are created: Development and version tags. Development tags are formatted with DEV_XXX. Version tags are formatted as REL_XXX.
Then following format is respected depending on if release is minor or major, on if release is numbered more or less than 1.0.
When doing a release, for example REL0_9_Y_Z and DEV_PG9_X_XC0_9_Y_Z tags are equivalent but allows to keep a trace on which version of PostgreSQL current release is based on.
[-img src=Pgxc release policy diag.jpg: missing =-]