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

174 lines
5.0 KiB
Markdown

# 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'
```