diff --git a/doc/lib/BackRestDoc/Common/DocRender.pm b/doc/lib/BackRestDoc/Common/DocRender.pm index e8b7c5411..84afe61c3 100644 --- a/doc/lib/BackRestDoc/Common/DocRender.pm +++ b/doc/lib/BackRestDoc/Common/DocRender.pm @@ -218,7 +218,8 @@ sub new BackRestDoc::Custom::DocCustomRelease->import(); $self->{oDoc} = - (new BackRestDoc::Custom::DocCustomRelease(${$self->{oManifest}->sourceGet('release')}{doc}, $self))->docGet(); + (new BackRestDoc::Custom::DocCustomRelease( + ${$self->{oManifest}->sourceGet('release')}{doc}, $self->{oManifest}->keywordMatch('dev')))->docGet(); } else { diff --git a/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm b/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm index d6afb3f9a..f9fcfaba6 100644 --- a/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm +++ b/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm @@ -30,8 +30,9 @@ use constant XML_RELEASE_DOC_LIST => 'release- use constant XML_RELEASE_TEST_LIST => 'release-test-list'; use constant XML_RELEASE_BUG_LIST => 'release-bug-list'; +use constant XML_RELEASE_DEVELOPMENT_LIST => 'release-development-list'; use constant XML_RELEASE_FEATURE_LIST => 'release-feature-list'; -use constant XML_RELEASE_REFACTOR_LIST => 'release-refactor-list'; +use constant XML_RELEASE_IMPROVEMENT_LIST => 'release-improvement-list'; use constant XML_RELEASE_ITEM_CONTRIBUTOR_LIST => 'release-item-contributor-list'; @@ -62,12 +63,14 @@ sub new # Assign function parameters, defaults, and log debug info ( my $strOperation, - $self->{oDoc} + $self->{oDoc}, + $self->{bDev}, ) = logDebugParam ( __PACKAGE__ . '->new', \@_, - {name => 'oDoc'} + {name => 'oDoc'}, + {name => 'bDev', required => false, default => false}, ); # Get contributor list @@ -358,6 +361,7 @@ sub docGet # Add release sections my $bAdditionalNotes = false; + my $bReleaseNote = false; my $hSectionType = { @@ -370,42 +374,44 @@ sub docGet { if ($oRelease->nodeTest($strSectionType)) { - # Create subsections for any release section other than core. This breaks up the release items. - my $oSubSection = $oReleaseSection; - - if ($strSectionType ne XML_RELEASE_CORE_LIST && !$bAdditionalNotes) - { - $oReleaseSection->nodeAdd('subtitle')->textSet("Additional Notes"); - $bAdditionalNotes = true; - } - - # Add release note if present - if ($oRelease->nodeGet($strSectionType)->nodeTest('p')) - { - $oSubSection->nodeAdd('p')->textSet($oRelease->nodeGet($strSectionType)->nodeGet('p')->textGet()); - } - # Add release item types my $hItemType = { &XML_RELEASE_BUG_LIST => {title => 'Bug Fixes', type => 'bug'}, - &XML_RELEASE_FEATURE_LIST => {title => 'Features', type=> 'feature'}, - &XML_RELEASE_REFACTOR_LIST => {title => 'Refactoring', type=> 'refactor'}, + &XML_RELEASE_FEATURE_LIST => {title => 'Features', type => 'feature'}, + &XML_RELEASE_IMPROVEMENT_LIST => {title => 'Improvements', type => 'improvement'}, + &XML_RELEASE_DEVELOPMENT_LIST => {title => 'Development', type => 'development'}, }; - foreach my $strItemType (XML_RELEASE_BUG_LIST, XML_RELEASE_FEATURE_LIST, XML_RELEASE_REFACTOR_LIST) + foreach my $strItemType ( + XML_RELEASE_BUG_LIST, XML_RELEASE_FEATURE_LIST, XML_RELEASE_IMPROVEMENT_LIST, XML_RELEASE_DEVELOPMENT_LIST) { + next if (!$self->{bDev} && $strItemType eq XML_RELEASE_DEVELOPMENT_LIST); + if ($oRelease->nodeGet($strSectionType)->nodeTest($strItemType)) { + if ($strSectionType ne XML_RELEASE_CORE_LIST && !$bAdditionalNotes) + { + $oReleaseSection->nodeAdd('subtitle')->textSet('Additional Notes'); + $bAdditionalNotes = true; + } + + # Add release note if present + if (!$bReleaseNote && $oRelease->nodeGet($strSectionType)->nodeTest('p')) + { + $oReleaseSection->nodeAdd('p')->textSet($oRelease->nodeGet($strSectionType)->nodeGet('p')->textGet()); + $bReleaseNote = true; + } + my $strTypeText = ($strSectionType eq XML_RELEASE_CORE_LIST ? '' : $$hSectionType{$strSectionType}{title}) . ' ' . $$hItemType{$strItemType}{title} . ':'; - $oSubSection-> + $oReleaseSection-> nodeAdd('p')->textSet( {name => 'text', children=> [{name => 'b', value => $strTypeText}]}); - my $oList = $oSubSection->nodeAdd('list'); + my $oList = $oReleaseSection->nodeAdd('list'); # Add release items foreach my $oReleaseFeature ($oRelease->nodeGet($strSectionType)-> diff --git a/doc/xml/dtd/doc.dtd b/doc/xml/dtd/doc.dtd index f663fda4b..9f075dcc4 100644 --- a/doc/xml/dtd/doc.dtd +++ b/doc/xml/dtd/doc.dtd @@ -152,13 +152,14 @@ - - - + + + - + + diff --git a/doc/xml/release.xml b/doc/xml/release.xml index aaa0b8cba..0710e148a 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -12,11 +12,15 @@ - +

Relax permissions set by release.pl.

-
+ + +

Split refactor sections into improvements and development in the release notes. Many development notes are not relevant to users and simply clutter the release notes, so they are no longer shown on the website.

+
+
@@ -76,11 +80,17 @@ - +

Disable gzip filter when --compress-level-network=0. The filter was used with compress level set to 0 which added overhead without any benefit.

+ +

Inflate performance improvement for gzip filter.

+
+
+ +

Refactor protocol param generation into a new function. This allows the code to be tested more precisely and doesn't require executing a remote process.

@@ -109,10 +119,6 @@

Simplify try..catch..finally names. Also wrap in a do...while loop to make sure that no random else is attached to the main if block.

- -

Inflate performance improvement for gzip filter.

-
-

Improve base64 implementation. Different encoded strings could be generated based on compiler optimizations. Even though decoding was still successful the encoded strings did not match the standard.

@@ -120,7 +126,7 @@

Disable -Wclobber compiler warning because it is mostly useless but keep the rest of of -Wextra.

-
+ @@ -134,7 +140,7 @@ - + @@ -143,15 +149,23 @@

Clarify usage of the archive-timeout option and describe how it is distinct from the archive_timeout setting.

+
+

Update release.pl to push data to site repository.

-
+
- + + +

Automated tests for 32-bit i386/i686 architecture.

+
+
+ +

Update Debian/Ubuntu containers to download latest version of pip.

@@ -176,10 +190,6 @@

Automate generation of WAL and pg_control test files. The existing static files would not work with 32-bit or big-endian systems so create functions to generate these files dynamically rather than creating a bunch of new static files.

- -

Automated tests for 32-bit i386/i686 architecture.

-
-

Refactor C unit test macros so they compile with -Wstrict-aliasing.

@@ -187,7 +197,7 @@

Refactor C page checksum unit test to compile with -Wstrict-aliasing.

-
+
@@ -230,7 +240,7 @@ - +

Improve protocol error handling. In particular, stop errors are no longer reported as unexpected.

@@ -282,11 +292,17 @@

Add base64 encode/decode.

-
+ + +

Add I/O performance tests.

+
+
+ +

Add C unit test infrastructure.

@@ -295,12 +311,6 @@

Add test macros for C results and errors.

- -

Add I/O performance tests.

-
- - -

Warnings in C builds treated as errors.

@@ -324,7 +334,7 @@

Add versions to Debian VMs for testing.

-
+
@@ -358,7 +368,7 @@ - + @@ -366,7 +376,9 @@

Open log file after async process is completely separated from the main process to prevent the main process from also logging to the file.

+
+

Dynamically generate list of files for C library build.

@@ -374,31 +386,35 @@

Break up LibC.xs into separate module files.

-
+ - - -

Rename master to primary in documentation to align with convention.

-
- +

Add trusted SSH configuration.

+
+ + +

Rename master to primary in documentation to align with convention.

+
+
+ +

Add full installation where required and remove doc containers that included parts of the installation.

-
+
- +

Improve C library smart build by ignoring changes outside of /lib/pgBackRest/Config.

-
+
@@ -445,11 +461,7 @@ - - -

Configuration definitions are now pulled from the C library when present.

-
- +

Increase HTTP timeout for S3.

@@ -457,7 +469,13 @@

Add HTTP retries to harden against transient S3 network errors.

-
+ + + + +

Configuration definitions are now pulled from the C library when present.

+
+
@@ -471,15 +489,15 @@ - +

Move contributor list to the end of release.xml for convenience.

-
+
- +

Change log test order to ignore unimportant log errors while shutting down .

@@ -487,9 +505,7 @@

Drain stderr during test process execution as well as termination to prevent lockups if there is a lot of output.

-
-

Update Docker build in Vagrantfile.

@@ -501,7 +517,7 @@

Simplify smart logic for C Library and package builds.

-
+
@@ -553,15 +569,17 @@ - +

Retry when S3 returns an internal error (500).

+
+

Add bIgnoreMissing parameter to Local->manifest().

-
+ @@ -577,7 +595,17 @@ - + + + + + + +

Move repository options into a separate section in command/command-line help.

+
+
+ +

Reduce log verbosity when building documentation by only logging sections that contain an execute list directly or in a child section.

@@ -586,28 +614,18 @@

Debian/Ubuntu documentation now builds on Ubuntu 16.

- - - - - -

Move repository options into a separate section in command/command-line help.

-
-

Remove vestigial repository options from backup command.

-
+
- +

Fix log checking after shuts down to include FATAL messages and disallow immediate shutdowns which can throw FATAL errors in the log.

-
-

Use Google DNS in test environment for consistency.

@@ -627,7 +645,7 @@

Consolidate stanza-create and stanza-upgrade tests into new stanza test.

-
+
@@ -659,7 +677,7 @@ - +

Harden protocol handshake to handle race conditions.

@@ -687,11 +705,11 @@

Minor optimizations to package loads and ordering for archive-get and archive-push commands.

-
+ - +

Remove exhaustive version list from Stable Releases TOC.

@@ -707,20 +725,20 @@

Remove mount from host cache-key because it can vary by system.

-
+
- - -

Fix timeouts in ExecuteTest to speed multi-process testing.

-
-
- - +

Add documentation builds to CI.

+
+ + + +

Fix timeouts in ExecuteTest to speed multi-process testing.

+

Remove patch directory before Debian package builds.

@@ -781,7 +799,7 @@

Add performance module and basic performance test for archive-push.

-
+
@@ -823,7 +841,7 @@ - + @@ -847,7 +865,7 @@

Move backup modules into Backup directory.

-
+ @@ -867,7 +885,7 @@ - +

Fixed an undefined variable when a module had no uncoverable code exceptions.

@@ -875,9 +893,7 @@

Fixed issue with --dry-run requiring --vm-out to work properly.

-
-

Moved test and env modules to new directories to avoid namespace conflicts with common tests.

@@ -889,7 +905,7 @@

Remove flapping protocol timeout test that will be replaced in the upcoming storage patch.

-
+
@@ -923,15 +939,11 @@ - +

Simplify locking scheme. Now, only the master process will hold write locks (for archive-push and backup commands) and not all local and remote worker processes as before.

- -

Refactor Ini.pm to facilitate testing.

-
-

Do not set timestamps of files in the backup directories to match timestamps in the cluster directory. This was originally done to enable backup resume, but that process is now implemented with checksums.

@@ -951,6 +963,12 @@

Renumber return codes between 25 and 125 to avoid PostgreSQL interpreting some as fatal signal exceptions.

+
+ + + +

Refactor Ini.pm to facilitate testing.

+

The backup and restore commands no longer copy via temp files. In both cases the files are checksummed on resume so there's no danger of partial copies.

@@ -975,11 +993,11 @@

Silence some perl critic warnings.

-
+ - +

Update wording for release note sections.

@@ -987,11 +1005,11 @@

Ignore clock skew in container libc/package builds using make. It is common for containers to have clock skew so the build process takes care of this issue independently.

-
+
- +

Complete statement/branch coverage for Ini.pm.

@@ -1027,7 +1045,7 @@

Added ability to test warning messages.

-
+
@@ -1065,19 +1083,19 @@ - +

Improved the code and tests for fileManifest() to prevent a possible race condition when files are removed by the database while the manifest is being built.

-
+ - +

Container executions now load the user's environment.

-
+
@@ -1089,7 +1107,9 @@

Automated builds of Debian packages for all supported distributions.

+ +

Added --dev option to aggregate commonly used dev options.

@@ -1105,9 +1125,7 @@

C library and packages are built by default, added -smart option to rebuild only when file changes are detected.

- -

The --libc-only option has been changed to --build-only now that packages builds have been added.

@@ -1131,7 +1149,7 @@

Temporarily disable flapping keep-alive test.

-
+
@@ -1147,19 +1165,19 @@ - +

Refactor FileCommon::fileManifest() and FileCommon::fileStat to be more modular to allow complete branch/statement level coverage testing.

-
+ - +

Complete branch/statement level coverage testing for FileCommon::fileManifest() and FileCommon::fileStat functions and helper functions.

-
+
@@ -1183,7 +1201,7 @@ - + @@ -1191,7 +1209,7 @@

Improved performance of wal archive min/max provided by the info command.

-
+ @@ -1203,7 +1221,9 @@

Updated async archiving documentation to more accurately describe how the new method works and how it differs from the old method.

+ +

Documentation can now be built with reusable blocks to reduce duplication.

@@ -1219,7 +1239,7 @@

Add proper tag to slightly emphasize proper nouns.

- +
@@ -1303,9 +1323,33 @@ - + -

Refactor File and BackupCommon modules to improve test coverage.

+ + + + +

Log file banner is not output until the first log entry is written.

+
+ + +

Reduced the likelihood of torn pages causing a false positive in page checksums by filtering on start backup LSN.

+
+ + + + + + +

Remove Intel-specific optimization from C library build flags.

+
+ + +

Remove --lock option. This option was introduced before the lock directory could be located outside the repository and is now obsolete.

+
+ + +

Added --log-timestamp option to allow timestamps to be suppressed in logging. This is primarily used to avoid filters in the automated documentation.

@@ -1315,13 +1359,11 @@

Return proper error code when unable to convert a relative path to an absolute path.

+
+ - - - - -

Log file banner is not output until the first log entry is written.

+

Refactor File and BackupCommon modules to improve test coverage.

@@ -1368,30 +1410,10 @@

Refactor process IO and process master/minion code out from the common protocol code.

- -

Reduced the likelihood of torn pages causing a false positive in page checksums by filtering on start backup LSN.

-
- - - - - - -

Remove Intel-specific optimization from C library build flags.

-
- - -

Removed --lock option. This option was introduced before the lock directory could be located outside the repository and is now obsolete.

-
- - -

Added --log-timestamp option to allow timestamps to be suppressed in logging. This is primarily used to avoid filters in the automated documentation.

-
-

Fixed alignment issues with multiline logging.

-
+ @@ -1405,21 +1427,19 @@ - +

Update LICENSE.txt for 2017.

-
+
- +

Fixed --no-online tests to suppress expected errors.

-
-

Added integration for testing coverage with Devel::Cover.

@@ -1443,9 +1463,7 @@

testException() allows messages to be matched with regular expressions.

-
-

Split test modules into separate files to make the code more maintainable. Tests are dynamically loaded by name rather than requiring an if-else block.

@@ -1461,7 +1479,7 @@

Refactor name/locations of common modules that setup test environments.

-
+
@@ -1525,7 +1543,13 @@ - + + +

For simplicity, the pg_control file is now copied with the rest of the files instead of by itself of at the end of the process. The backup command does not require this behavior and the restore copies to a temporary file which is renamed at the end of the restore.

+
+
+ + @@ -1546,10 +1570,6 @@

Improved IO->bufferRead to always return requested number of bytes until EOF.

- -

For simplicity, the pg_control file is now copied with the rest of the files instead of by itself of at the end of the process. The backup command does not require this behavior and the restore copies to a temporary file which is renamed at the end of the restore.

-
-

Simplified the result hash of File->manifest(), Db->tablespaceMapGet(), and Db->databaseMapGet().

@@ -1569,7 +1589,7 @@

Improved parameter/result logging in debug/trace functions.

-
+ @@ -1587,7 +1607,9 @@

Added Retention to QuickStart section.

+ +

Allow a source to be included as a section so large documents can be broken up.

@@ -1619,9 +1641,7 @@

Builds in release.pl now remove all docker containers to get consistent IP address assignments.

- -

Improvements to markdown rendering.

@@ -1629,17 +1649,15 @@

Remove code dependency on project variable, instead use title param.

-
+
- +

Removed erroneous --no-config option in help test module.

-
- @@ -1663,7 +1681,7 @@

Add more realistic data files to synthetic backup and restore tests.

-
+
@@ -1707,7 +1725,7 @@ - + @@ -1715,11 +1733,11 @@

Removed extraneous use lib directives from Perl modules.

-
+ - +

Fixed missing variable replacements.

@@ -1727,9 +1745,7 @@

Removed hard-coded host names from configuration file paths.

-
-

Allow command-line length to be configured using cmd-line-len param.

@@ -1753,7 +1769,7 @@

VM mount points are now optional.

-
+
@@ -1827,7 +1843,7 @@ - + @@ -1843,7 +1859,7 @@

Process ID logged for local process start/stop INFO log output.

-
+ @@ -1855,15 +1871,21 @@

Added archive-timeout option documentation to the user guide.

+ +

Added dev option to doc.pl to easily add the dev keyword to documentation builds.

- +
- + + +

Update CentOS/Debian package definitions.

+
+

Fixed missing expect output for help module.

@@ -1871,15 +1893,7 @@

Fixed broken vm-max option in test.pl.

-
- - -

Update CentOS/Debian package definitions.

-
-
- -

Regression tests can now be run as any properly-configured user, not just vagrant.

@@ -1887,7 +1901,7 @@

Miminize TeXLive package list to save time during VM builds.

-
+
@@ -1911,23 +1925,23 @@ - +

Cache file log output until the file is created to create a more complete log.

-
+ - +

Show Process ID in output instead of filtering it out with the timestamp.

-
+
- + @@ -1939,7 +1953,7 @@

Show Process ID in expect logs instead of filtering it out with the timestamp.

-
+
@@ -1997,7 +2011,7 @@ - +

Refactor of protocol minions in preparation for the new local minion.

@@ -2013,7 +2027,7 @@

Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.

-
+ @@ -2033,19 +2047,19 @@ - +

Suppress TOC for unsupported versions of .

-
+
- +

New vagrant base box and make uid/gid selection for containers dynamic.

-
+
@@ -2095,19 +2109,7 @@ - - -

Simplify protocol creation and identifying which host is local/remote.

-
- - -

Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.

-
- - -

Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.

-
- +

Improve error message for links that reference links in manifest build.

@@ -2119,19 +2121,33 @@

Improve backup log messages to indicate which host the files are being copied from.

-
+ + + + +

Simplify protocol creation and identifying which host is local/remote.

+
+ + +

Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.

+
+ + +

Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.

+
+
- +

Improve host tag rendering.

-
+
- +

Refactor db version constants into a separate module.

@@ -2139,7 +2155,7 @@

Update synthetic backup tests to 9.4.

-
+
@@ -2167,7 +2183,7 @@ - + @@ -2175,11 +2191,13 @@

Moved the backlog from the website to the GitHub repository wiki.

+
+

Improved rendering of spaces in code blocks.

-
+ @@ -2235,14 +2253,24 @@ - + -

Enhancements to the protocol layer for improved reliability and error handling.

+

Suppress banners on SSH protocol connections.

+
+ + +

Improved remote error messages to identify the host where the error was raised.

All remote types now take locks. The exceptions date to when the test harness and were running in the same VM and no longer apply.

+
+ + + +

Enhancements to the protocol layer for improved reliability and error handling.

+

Exceptions are now passed back from threads as messages when possible rather than raised directly.

@@ -2259,23 +2287,11 @@

Reduce calls to protocolGet() in backup/restore.

- - -

Suppress banners on SSH protocol connections.

-
- - -

Improved remote error messages to identify the host where the error was raised.

-
-
+ - -

Added release.pl to make releases reproducible. For now this only includes building and deploying documentation.

-
- @@ -2293,7 +2309,11 @@
- + + +

Added release.pl to make releases reproducible. For now this only includes building and deploying documentation.

+
+ @@ -2302,11 +2322,11 @@

HTML footer dates are statically created in English in order to be reproducible.

-
+
- +

Fixed a version checking issue in test.pl.

@@ -2314,9 +2334,7 @@

Fixed an issue where multi-threaded tests were not being run when requested.

-
-

Reduce the frequency that certain tests are run to save time in regression.

@@ -2324,7 +2342,7 @@

Disable control master for older OS versions where it is less stable.

-
+
@@ -2377,27 +2395,57 @@ - - -

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.

-
- - -

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.

-
- +

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.

@@ -2413,9 +2461,7 @@

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.

@@ -2424,38 +2470,10 @@

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

- - - - - - -

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

-
-

Update TeX Live to 2016 version.

- - - - - - -

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 .

-
-

New, consolidated implementation for link rendering.

@@ -2463,17 +2481,15 @@

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.

@@ -2481,7 +2497,7 @@

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.

-
+
@@ -2498,11 +2514,11 @@ - +

Log directory create and file open now using FileCommon functions which produce more detailed error messages on failure.

-
+ @@ -2540,12 +2556,6 @@

Added man page generation.

- -

Added an execution cache so that documentation can be generated without setting up the full container environment. This is useful for packaging, keeps the documentation consistent for a release, and speeds up generation when no changes are made in the execution list.

-
- - - @@ -2555,6 +2565,12 @@

The change log was the last piece of documentation to be rendered in Markdown only. Wrote a converter so the document can be output by the standard renderers. The change log will now be located on the website and has been renamed to Releases.

+ + + + +

Added an execution cache so that documentation can be generated without setting up the full container environment. This is useful for packaging, keeps the documentation consistent for a release, and speeds up generation when no changes are made in the execution list.

+

Remove function constants and pass strings directly to logDebugParam(). The function names were only used once so creating constants for them was wasteful.

@@ -2563,17 +2579,15 @@

Lists can now be used outside of p and text tags for more flexible document structuring.

-
+
- +

Replaced overzealous perl -cW check which failed on Perl 5.22 with perl -cw.

-
-

Added Ubuntu 16.04 (Xenial) and Debian 8 (Jessie) to the regression suite.

@@ -2581,13 +2595,11 @@

Upgraded doc/test VM to Ubuntu 16.04. This will help catch Perl errors in the doc code since it is not run across multiple distributions like the core and test code. It is also to be hoped that a newer kernel will make Docker more stable.

-
-

Test release version against the executable using change-log.xml instead of CHANGELOG.md.

-
+
@@ -2821,7 +2833,7 @@ - + @@ -2829,7 +2841,7 @@

Fixed an issue where document generation failed because some OSs are not tolerant of having multiple installed versions of . A separate VM is now created for each version. Also added a sleep after database starts during document generation to ensure the database is running before the next command runs.

-
+
@@ -2853,19 +2865,19 @@ - +

Minor styling changes, clarifications and rewording in the user guide.

-
+
- +

The dev branch has been renamed to master and for the time being the master branch has renamed to release, though it will probably be removed at some point {[dash]}- thus ends the gitflow experiment for . It is recommended that any forks get re-forked and clones get re-cloned.

-
+
@@ -2947,11 +2959,11 @@ - +

The website, markdown, and command-line help are now all generated from the same XML source.

-
+ @@ -2977,11 +2989,11 @@ - +

Removed dependency on IO::String module.

-
+ @@ -3031,19 +3043,21 @@ - +

Renamed recovery-setting option and section to recovery-option to be more consistent with naming conventions.

- -

Code cleanup and refactoring to standardize on patterns that have evolved over time.

-
-

Added dynamic module loading to speed up commands, especially asynchronous archiving.

-
+ + + + +

Code cleanup and refactoring to standardize on patterns that have evolved over time.

+
+
@@ -3055,11 +3069,11 @@ - +

Expiration tests are now synthetic rather than based on actual backups. This will allow development of more advanced expiration features.

-
+
@@ -3109,19 +3123,21 @@ - +

Now using Perl DBI and DBD::Pg for connections to rather than psql. The cmd-psql and cmd-psql-option settings have been removed and replaced with db-port and db-socket-path. Follow the instructions in the Installation Guide to install DBD::Pg on your operating system.

+
+

Major refactoring of the protocol layer to support future development.

-
+ - +

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.

@@ -3129,7 +3145,7 @@

Changed most references to database in the user guide to database cluster for clarity.

-
+
@@ -3143,14 +3159,14 @@ - +

Removed dependency on CPAN packages for multi-threaded operation. While it might not be a bad idea to update the threads and Thread::Queue packages, it is no longer necessary.

Modified wait backoff to use a Fibonacci rather than geometric sequence. This will make wait time grow less aggressively while still giving reasonable values.

-
+
@@ -3158,11 +3174,13 @@

Added vagrant test configurations for Ubuntu 12.04 and CentOS 6.

+ +

More options for regression tests and improved code to run in a variety of environments.

- +
@@ -3194,7 +3212,7 @@ - +

Removed pg_backrest_remote and added the functionality to pg_backrest as the remote command.

@@ -3210,7 +3228,7 @@

Replaced IPC::System::Simple and Net::OpenSSH with IPC::Open3 to eliminate CPAN dependency for multiple operating systems.

-
+ @@ -3236,11 +3254,11 @@ - +

More efficient file ordering for backup. Files are copied in descending size order so a single thread does not end up copying a large file at the end. This had already been implemented for restore.

-
+ @@ -3303,11 +3321,11 @@ - +

Replaced JSON module with JSON::PP which ships with core Perl.

-
+ @@ -3376,11 +3394,11 @@ - +

Improved threading model by starting threads early and terminating them late.

-
+ @@ -3430,11 +3448,11 @@ - +

Removed dependency on Moose. It wasn't being used extensively and makes for longer startup times.

-
+ @@ -3448,7 +3466,7 @@ - +

Complete rewrite of BackRest::File module to use a custom protocol for remote operations and Perl native GZIP and SHA operations. Compression is performed in threads rather than forked processes.

@@ -3460,7 +3478,7 @@

Numerous other changes that can only be identified with a diff.

-
+
@@ -3488,11 +3506,11 @@ - +

Worked on improving error handling in the File object. This is not complete, but works well enough to find a few errors that have been causing us problems (notably, find is occasionally failing building the archive async manifest when system is under load).

-
+