* Added a new user guide that covers pgBackRest basics and some advanced topics including PITR. Much more to come, but it's a start.
* The website, markdown, and command-line help are now all generated from the same XML source.
* The backup_label.old and recovery.done files are now excluded from backups.
* Added new feature to allow all pgBackRest operations to be stopped or started using the stop and start commands. This prevents any pgBackRest processes from running on a system where PostgreSQL is shutdown or the system needs to be quiesced for some reason.
* Removed dependency on IO::String module.
* Fixed an issue where an error could be returned after a backup or restore completely successfully.
* Fixed an issue where a resume would fail if temp files were left in the root backup directory when the backup failed. This scenario was likely if the backup process got terminated during the copy phase.
* Experimental support for PostgreSQL 9.5 beta1. This may break when the control version or WAL magic changes in future versions but will be updated in each pgBackRest release to keep pace. All regression tests pass except for --target-resume tests (this functionality has changed in 9.5) and there is no testing yet for .partial WAL segments.
* Fixed an issue where resumed compressed backups were not preserving existing files.
* Fixed an issue where resume and incr/diff would not ensure that the prior backup had the same compression and hardlink settings.
* Fixed an issue where a cold backup using --no-start-stop could be started on a running PostgreSQL cluster without --force specified.
* Fixed an issue where a thread could be started even when none were requested.
* Fixed an issue where the pgBackRest version number was not being updated in backup.info and archive.info after an upgrade/downgrade.
* Fixed an issue where the info command was throwing an exception when the repository contained no stanzas. Reported by Stephen Frost.
* Fixed an issue where the PostgreSQL pg_stop_backup() NOTICEs were being output to stderr. Reported by Stephen Frost.
* Renamed recovery-setting option and section to recovery-option to be more consistent with pgBackRest naming conventions.
* Command-line help is now extracted from the same XML source that is used for the other documentation and includes much more detail.
* Code cleanup and refactoring to standardize on patterns that have evolved over time.
* Added dynamic module loading to speed up commands, especially asynchronous archiving.
* Expiration tests are now synthetic rather than based on actual backups. This will allow development of more advanced expiration features.
* Experimental support for PostgreSQL 9.5 alpha2. This may break when the control version or WAL magic changes in future versions but will be updated in each pgBackRest release to keep pace. All regression tests pass except for --target-resume tests (this functionality has changed in 9.5) and there is no testing yet for .partial WAL segments.
* Fixed an issue that caused the formatted timestamp for both the oldest and newest backups to be reported as the current time by the info command. Only text output was affected -- json output reported the correct epoch values. Reported by Michael Renner.
* Fixed protocol issue that was preventing ssh errors (especially on connection) from being logged.
* Now using Perl DBI and DBD::Pg for connections to PostgreSQL rather than psql. The cmd-psql and cmd-psql-option settings have been removed and replaced with db-port and db-socket-path.
* Add stop-auto option to allow failed backups to automatically be stopped when a new backup starts.
* Add db-timeout option to limit the amount of time pgBackRest will wait for pg_start_backup() and pg_stop_backup() to return.
* Remove pg_control file at the beginning of the restore and copy it back at the very end. This prevents the possibility that a partial restore can be started by PostgreSQL.
* The repository is now created and updated with consistent directory and file modes. By default umask is set to 0000 but this can be disabled with the neutral-umask setting.
* Added checks to be sure the db-path setting is consistent with db-port by comparing the data_directory as reported by the cluster against the db-path setting and the version as reported by the cluster against the value read from pg_control. The db-socket-path setting is checked to be sure it is an absolute path.
* Experimental support for PostgreSQL 9.5 alpha1. This may break when the control version or WAL magic changes in future versions but will be updated in each pgBackRest release to keep pace. All regression tests pass except for --target-resume tests (this functionality has changed in 9.5) and there is no testing yet for .partial WAL segments.
* Major refactoring of the protocol layer to support future development.
* Added vagrant test configurations for Ubuntu 14.04 and CentOS 7.
* Split most of README.md out into USERGUIDE.md and CHANGELOG.md because it was becoming unwieldy. Changed most references to "database" in the user guide to "database cluster" for clarity.