Menu

Release_policy

Michael Paquier
Attachments
There is a newer version of this page. You can find it here.

Postgres-XC release policy NTT Open Source Center 2011/06/21

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.

Numbering of release versions

Marketing numbering

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.

Development numbering: major and minor releases

$XC_VERSION.$POSTGRES_1ST.$POSTGRES_2ND.$SUB_NUMBER

For a major release, the main version is numbered with 0 as SUB_NUMBER. For instance version 0.9.5 (marketing number) is based on PostgreSQL 9.0 stable branch, so its main release is numbered 1.9.0.0.

Once every 3 months, a minor release is done. It contains the latest fixes from PostgreSQL stable branch and XC maintenance fixes. This release is numbered by incrementing the SUB_NUMBER number. For example, 3 months after the release of 1.9.0.0, its minor release containing maintenance bug fixes and latest commits of PostgreSQL 9.0 stable branch has DEV1_9_0_1 as development tag and REL0_9_5_1 as marketing tag. This version's binaries, packages or tarball are numbered as 0.9.5.1.

This system permits to keep a track on which PostgreSQL version a Postgres-XC release is based on.

POSTGRES_1ST and POSTGRES_2ND are the 2 digits used for PostgreSQL major versions. For example, in the case of PostgreSQL 8.4 POSTGRES_1ST is equal to 8 and POSTGRES_2ND equal to 4.

XC_VERSION represents the n-th major release of Postgres-XC based on PostgreSQL version $POSTGRES_1ST.$POSTGRES_2ND. This number is incremented from 1.

Development and marketing versions

Even if version identification is different for marketing and development versions, they contain the same contents. For example, major releases with tags REL0.9.5 and DEV1.9.0.0 are the same softwares, but a track of the development number is just kept in GIT repository. Marketing version also is tracked in GIT repository. Binaries and packages available in Source Forge are always numbered with the marketing number.

If several major releases are made on the same PostgreSQL stable branch, XC_VERSION is incremented. XC_VERSION is numbered from 0.

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 branch is created 2 tags are created: Development and marketing tags. Development tags are formatted with DEV_XXX. Marketing 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.

  • REL0_9_X for major releases up to 1.0
  • REL0_9_X_X for minor releases up to 1.0
  • REL1_X for major releases from 1.0
  • REL1_X_X for minor releases from 1.0
  • DEVX_9_X_X for development tags
    • DEVX_9_X_0 is equivalent to REL0_9_X (marketing versions up to 0.9.X) or REL1_X tags (marketing versions up to 1.X)
    • DEVX_9_X_X is equivalent to REL0_9_X_X or REL1_X_X tags

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.