Postgres-XC Wiki

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,, 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.

Tarball name

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

Release policy PG-XC Release Policy Diagram 00.png

File:Release policy PG-XC Release Policy Diagram.pdf