1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-12 10:04:14 +02:00
pgbackrest/doc/RELEASE.md
David Steele a3d89143d6 v2.33: Multi-Repository and GCS Support
Bug Fixes:

* Fix option warnings breaking async archive-get/archive-push. (Reviewed by Cynthia Shang. Reported by Lev Kokotov.)
* Fix memory leak in backup during archive copy. (Reviewed by Cynthia Shang. Reported by Christian ROUX, Efremov Egor.)
* Fix stack overflow in cipher passphrase generation. (Reviewed by Cynthia Shang. Reported by bsiara.)
* Fix repo-ls / on S3 repositories. (Reviewed by Cynthia Shang. Reported by Lesovsky Alexey.)

Features:

* Multiple repository support. (Contributed by Cynthia Shang, David Steele. Reviewed by Stefan Fercot, Stephen Frost.)
* GCS support for repository storage. (Reviewed by Cynthia Shang.)
* Add archive-header-check option. (Reviewed by Stephen Frost, Cynthia Shang. Suggested by Hans-Jürgen Schönig.)

Improvements:

* Include recreated system databases during selective restore. (Contributed by Stefan Fercot. Reviewed by Cynthia Shang.)
* Exclude content-length from S3 signed headers. (Reviewed by Cynthia Shang. Suggested by Brian P Bockelman.)
* Consolidate less commonly used repository storage options. (Reviewed by Cynthia Shang.)
* Allow custom config-path default with ./configure --with-configdir. (Contributed by Michael Schout. Reviewed by David Steele.)
* Log archive copy during backup. (Reviewed by Cynthia Shang, Stefan Fercot.)

Documentation Improvements:

* Update reference to include links to user guide examples. (Contributed by Cynthia Shang. Reviewed by David Steele.)
* Update selective restore documentation with caveats. (Reviewed by Cynthia Shang, Stefan Fercot.)
* Add compress-type clarification to archive-copy documentation. (Reviewed by Cynthia Shang, Stefan Fercot.)
* Add compress-level defaults per compress-type value. (Contributed by Cynthia Shang. Reviewed by David Steele.)
* Add note about required NFS settings being the same as PostgreSQL. (Contributed by Cynthia Shang. Reviewed by David Steele.)
2021-04-05 09:18:20 -04:00

5.0 KiB

Release Build Instructions

Set location of the pgbackrest repo

This makes the rest of the commands in the document easier to run (change to your repo path):

export PGBR_REPO=~/pgbackrest

Create a branch to test the release

git checkout -b release-ci

Update the date, version, and release title

Edit the latest release in doc/xml/release.xml, e.g.:

        <release date="XXXX-XX-XX" version="2.14dev" title="UNDER DEVELOPMENT">

to:

        <release date="2019-05-20" version="2.14" title="Bug Fix and Improvements">

Edit version in src/version.h, e.g.:

#define PROJECT_VERSION                                             "2.14dev"

to:

#define PROJECT_VERSION                                             "2.14"

Update code counts

${PGBR_REPO?}/test/test.pl --code-count

Build release documentation. Be sure to install latex using the instructions from the Vagrantfile before running this step.

${PGBR_REPO?}/doc/release.pl --build

Commit release branch and push to CI for testing

git commit -m "Release test"
git push origin release-ci

Clone web documentation into doc/site

cd ${PGBR_REPO?}/doc
git clone git@github.com:pgbackrest/website.git site

Deploy web documentation to doc/site

${PGBR_REPO?}/doc/release.pl --deploy

Final commit of release to integration

Create release notes based on the pattern in prior git commits (this should be automated at some point), e.g.

v2.14: Bug Fix and Improvements

Bug Fixes:

* Fix segfault when process-max > 8 for archive-push/archive-get. (Reported by Jens Wilke.)

Improvements:

* Bypass database checks when stanza-delete issued with force. (Contributed by Cynthia Shang. Suggested by hatifnatt.)
* Add configure script for improved multi-platform support.

Documentation Features:

* Add user guide for CentOS/RHEL 7.

Commit to integration with the above message and push to CI.

Push to master

Push release commit to master once CI testing is complete.

Create release on github

Create release notes based on pattern in prior releases (this should be automated at some point), e.g.

v2.14: Bug Fix and Improvements

**Bug Fixes**:

- Fix segfault when process-max > 8 for archive-push/archive-get. (Reported by Jens Wilke.)

**Improvements**:

- Bypass database checks when stanza-delete issued with force. (Contributed by Cynthia Shang. Suggested by hatifnatt.)
- Add configure script for improved multi-platform support.

**Documentation Features**:

- Add user guide for CentOS/RHEL 7.

The first line will be the release title and the rest will be the body. The tag field should be updated with the current version so a tag is created from master. Be sure to select the release commit explicitly rather than auto-tagging the last commit in master!

Push web documentation to master and deploy

cd ${PGBR_REPO?}/doc/site
git commit -m "v2.14 documentation."
git push origin master

Deploy the documentation on pgbackrest.org.

Notify packagers of new release

Announce release on Twitter

Do a press release once per quarter

Start from the press release at https://www.postgresql.org/about/news/2057 (logon required) and update for improvements made in the last quarter. Then convert to text and send to pgsql-announce using https://www.postgresql.org/message-id/6b1bbd0f-08a7-bc51-7252-12bd3a645aea%40pgmasters.net as an example of how it looks in text format.

Prepare for the next release

Add new release in doc/xml/release.xml, e.g.:

        <release date="XXXX-XX-XX" version="2.15dev" title="UNDER DEVELOPMENT">

Edit version in src/version.h, e.g.:

#define PROJECT_VERSION                                             "2.14"

to:

#define PROJECT_VERSION                                             "2.15dev"

Run deploy to generate git history (ctrl-c as soon as the file is generated):

${PGBR_REPO?}/doc/release.pl --build

Commit and push to integration:

git commit -m "Begin v2.15 development."
git push origin integration

Update automake/config scripts

These scripts are required by src/config and should be updated after each release, when needed. Note that these files are updated very infrequently.

Check the latest version of automake and see if it is > 1.16.3:

https://git.savannah.gnu.org/gitweb/?p=automake.git

If so, update the version above and copy lib/install-sh from the automake repo to the pgbackrest repo at [repo]/src/build/install-sh:

wget -O ${PGBR_REPO?}/src/build/install-sh '[URL]'

Get the latest versions of config.sub and config.guess. These files are not versioned so the newest version is pulled at the beginning of the release cycle to allow time to test stability.

wget -O ${PGBR_REPO?}/src/build/config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O ${PGBR_REPO?}/src/build/config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'