## 1.03 2016-07-02

Check Command and Bug Fixes

Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming.

Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup

Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled.

Added check command to validate that is configured correctly for archiving and backups.

Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds.

Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout.

Experimental support for non-exclusive backups in 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but will be updated with each release to keep pace.

Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name.

Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality.

The `pg_xlogfile_name()` function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed.

Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.

Allow a static date to be used for documentation to generate reproducible builds.

Added documentation for asynchronous archiving to the user guide.

Recommended install location for modules is now /usr/share/perl5 since /usr/lib/perl5 has been removed from the search path in newer versions of Perl.

Added instructions for removing prior versions of .

Fixed DTD search path that did not work properly when --doc-path was used.

Fixed -specific xml that was loaded for non- projects.

Fixed section names being repeated in the info output when multiple --require options depended on the same sections.

Fixed config sections being blank in the output when not loaded from cache.

Allow hidden options to be added to a command. This allows certain commands (like apt-get) to be forced during the build without making that a part of the documentation.

Allow command summaries to be inserted anywhere in the documentation to avoid duplication.

Update TeX Live to 2016 version.

New, consolidated implementation for link rendering.

version is now a variable to allow multi-version documentation.

Obsolete containers are removed by the --vm-force option.

Major refactor of the test suite to make it more modular and object-oriented. Multiple Docker containers can now be created for a single test to simulate more realistic environments. Tests paths have been renamed for clarity.

Greatly reduced the quantity of Docker containers built by default. Containers are only built for versions specified in db-minimal and those required to build documentation. Additional containers can be built with --db-version=all or by specifying a version, e.g. --db-version=9.4.