# changelog

author: - Marco Nenciarini <marco.nenciarini@2ndquadrant.it> 2.8-1
changelog:
  - New upstream version 2.8
  - Add python3-barman and barman-cli binaries
  - Build with python3 on FC>25 and RHEL>8


author: - Michael Wallace <michael.wallace@enterprisedb.com> 2.12.1-1
changelog:
  - Allow specifying target-tli with other target-* recovery options
  - Fix incorrect NAME in barman-cloud-backup-list manpage
  - Don't raise an error if SIGALRM is ignored
  - Fetch wal_keep_size, not wal_keep_segments, from Postgres 13


author: - Abhijit Menon-Sen <ams@2ndQuadrant.com> 2.13-2
changelog:
  - Add Azure blob storage support to barman-cloud
  - Support tablespace remapping in barman-cloud-restore via
    `--tablespace name:location`
  - Allow barman-cloud-backup and barman-cloud-wal-archive to run as
    Barman hook scripts, to allow data to be relayed to cloud storage
    from the Barman server
  - Stop backups failing due to idle_in_transaction_session_timeout
    (https://github.com/EnterpriseDB/barman/issues/333)
  - Fix a race condition between backup and archive-wal in updating
    xlog.db entries (#328)
  - Handle PGDATA being a symlink in barman-cloud-backup, which led to
    "seeking backwards is not allowed" errors on restore (#351)
  - Recreate pg_wal on restore if the original was a symlink (#327)
  - Recreate pg_tblspc symlinks for tablespaces on restore (#343)
  - Make barman-cloud-backup-list skip backups it cannot read, e.g.,
    because they are in Glacier storage (#332)
  - Add `-d database` option to barman-cloud-backup to specify which
    database to connect to initially (#307)
  - Fix "Backup failed uploading data" errors from barman-cloud-backup
    on Python 3.8 and above, caused by attempting to pickle the boto3
    client (#361)
  - Correctly enable server-side encryption in S3 for buckets that do
    not have encryption enabled by default.

    In Barman 2.12, barman-cloud-backup's `--encryption` option did
    not correctly enable encryption for the contents of the backup if
    the backup was stored in an S3 bucket that did not have encryption
    enabled. If this is the case for you, please consider deleting
    your old backups and taking new backups with Barman 2.13.

    If your S3 buckets already have encryption enabled by default
    (which we recommend), this does not affect you.


author: - Michael Wallace <michael.wallace@enterprisedb.com> 2.14-1
changelog:
  - Add the `barman-cloud-backup-delete` command which allows backups in
    cloud storage to be deleted by specifiying either a backup ID or a
    retention policy.
  - Allow backups to be retained beyond any retention policies in force by
    introducing the ability to tag existing backups as archival backups
    using `barman keep` and `barman-cloud-backup-keep`.
  - Allow the use of SAS authentication tokens created at the restricted
    blob container level (instead of the wider storage account level) for
    Azure blob storage
  - Significantly speed up `barman restore` into an empty directory for
    backups that contain hundreds of thousands of files.
  - The backup privileges check will no longer fail if the user lacks
    "userepl" permissions and will return better error messages if any
    required permissions are missing (#318 and #319).


author: - Michael Wallace <michael.wallace@enterprisedb.com> 2.15-1
changelog:
  - Add plural forms for the `list-backup`, `list-server` and
    `show-server` commands which are now `list-backups`, `list-servers`
    and `show-servers`. The singular forms are retained for backward
    compatibility.
  - Add the `last-failed` backup shortcut which references the newest
    failed backup in the catalog so that you can do:
    `barman delete <SERVER> last-failed`
  - Tablespaces will no longer be omitted from backups of EPAS
    versions 9.6 and 10 due to an issue detecting the correct version
    string on older versions of EPAS.


author: - Jane Threefoot <jane.threefoot@enterprisedb.com> 2.16-1
changelog:
  - Add the commands `barman-check-wal-archive` and `barman-cloud-check-wal-archive`
    to validate if a proposed archive location is safe to use for a new PostgreSQL
    server.
  - Allow Barman to identify WAL that's already compressed using a custom
    compression scheme to avoid compressing it again.
  - Add `last_backup_minimum_size` and `last_wal_maximum_age` options to
    `barman check`.
  - Use argparse for command line parsing instead of the unmaintained
    argh module.
  - Make timezones consistent for `begin_time` and `end_time`.
  - We thank chtitux, George Hansper, stratakis, Thoro, and vrms for their contributions to this release.


author: - Michael Wallace <michael.wallace@enterprisedb.com> 2.17-1
changelog:
  - Resolves a performance regression introduced in version 2.14 which
    increased copy times for `barman backup` or `barman recover` commands
    when using the `--jobs` flag.
  - Ignore rsync partial transfer errors for `sender` processes so that
    such errors do not cause the backup to fail (thanks to barthisrael).


author: - Michael Wallace <michael.wallace@enterprisedb.com> 2.18-1
changelog:
  - Add snappy compression algorithm support in barman cloud (requires the
    optional python-snappy dependency).
  - Allow Azure client concurrency parameters to be set when uploading
    WALs with barman-cloud-wal-archive.
  - Add `--tags` option in barman cloud so that backup files and archived
    WALs can be tagged in cloud storage (aws and azure).
  - Update the barman cloud exit status codes so that there is a dedicated
    code (2) for connectivity errors.
  - Add the commands `barman verify-backup` and `barman generate-manifest`
    to check if a backup is valid.
  - Add support for Azure Managed Identity auth in barman cloud which can
    be enabled with the `--credential` option.
  - Change `barman-cloud-check-wal-archive` behavior when bucket does not
    exist.
  - Ensure `list-files` output is always sorted regardless of the
    underlying filesystem.
  - Man pages for barman-cloud-backup-keep, barman-cloud-backup-delete
    and barman-cloud-check-wal-archive added to Python packaging.


author: - Didier Michel <didier.michel@enterprisedb.com> 2.19-1
changelog:
  - Change `barman diagnose` output date format to ISO8601.
  - Add Google Cloud Storage (GCS) support to barman cloud.
  - Support `current` and `latest` recovery targets for the `--target-tli`
    option of `barman recover`.
  - Add documentation for installation on SLES.
  - `barman-wal-archive --test` now returns a non-zero exit code when
    an error occurs.
  - Fix `barman-cloud-check-wal-archive` behaviour when `-t` option is
    used so that it exits after connectivity test.
  - `barman recover` now continues when `--no-get-wal` is used and
    `"get-wal"` is not set in `recovery_options`.
  - Fix `barman show-servers --format=json ${server}` output for inactive
    server.
  - Check for presence of `barman_home` in configuration file.
  - Passive barman servers will no longer store two copies of the
    tablespace data when syncing backups taken with
    `backup_method = postgres`.


author: - Michael Wallace <michael.wallace@enterprisedb.com> 3.0.0-1
changelog:
  - BREAKING CHANGE: PostgreSQL versions 9.6 and earlier are no longer
    supported. If you are using one of these versions you will need to
    use an earlier version of Barman.
  - BREAKING CHANGE: The default backup mode for Rsync backups is now
    concurrent rather than exclusive. Exclusive backups have been
    deprecated since PostgreSQL 9.6 and have been removed in PostgreSQL
    15. If you are running Barman against PostgreSQL versions earlier
    than 15 and want to use exclusive backups you will now need to set
    `exclusive_backup` in `backup_options`.
  - BREAKING CHANGE: The backup metadata stored in the `backup.info` file
    for each backup has an extra field. This means that earlier versions
    of Barman will not work in the presence of any backups taken with
    3.0.0. Additionally, users of pg-backup-api will need to upgrade it
    to version 0.2.0 so that pg-backup-api can work with the updated
    metadata.
  - Backups taken with `backup_method = postgres` can now be compressed
    by pg_basebackup by setting the `backup_compression` config option.
    Additional options are provided to control the compression level,
    the backup format and whether the pg_basebackup client or the
    PostgreSQL server applies the compression. NOTE: Recovery of these
    backups requires Barman to stage the compressed files on the recovery
    server in a location specified by the `recovery_staging_path` option.
  - Add support for PostgreSQL 15. Exclusive backups are not supported
    by PostgreSQL 15 therefore Barman configurations for PostgreSQL 15
    servers are not allowed to specify `exclusive_backup` in
    `backup_options`.
  - Various documentation improvements.
  - Use custom_compression_magic, if set, when identifying compressed
    WAL files. This allows Barman to correctly identify uncompressed
    WALs (such as `*.partial` files in the `streaming` directory) and
    return them instead of attempting to decompress them.
  - Fix an ordering bug which caused Barman to log the message
    "Backup failed issuing start backup command." while handling a
    failure in the stop backup command.
  - Fix a bug which prevented recovery using `--target-tli` when
    timelines greater than 9 were present, due to hexadecimal values
    from WAL segment names being parsed as base 10 integers.
  - Fix an import error which occurs when using barman cloud with
    certain python2 installations due to issues with the enum34
    dependency.
  - Fix a bug where Barman would not read more than three bytes from
    a compressed WAL when attempting to identify the magic bytes. This
    means that any custom compressed WALs using magic longer than three
    bytes are now decompressed correctly.
  - Fix a bug which caused the `--immediate-checkpoint` flag to be
    ignored during backups with `backup_method = rsync`.


author: - Michael Wallace <michael.wallace@enterprisedb.com> 3.1.0-1
changelog:
  - Backups taken with `backup_method = postgres` can now be compressed using lz4
    and zstd compression by setting `backup_compression = lz4` or
    `backup_compression = zstd` respectively. These options are only supported
    with PostgreSQL 15 (beta) or later.
  - A new option `backup_compression_workers` is available which sets the number
    of threads used for parallel compression. This is currently only available
    with `backup_method = postgres` and `backup_compression = zstd`.
  - A new option `primary_conninfo` can be set to avoid the need for backups of
    standbys to wait for a WAL switch to occur on the primary when finalizing the
    backup. Barman will use the connection string in `primary_conninfo` to
    perform WAL switches on the primary when stopping the backup.
  - Support for certain Rsync versions patched for CVE-2022-29154 which require a
    trailing newline in the `--files-from` argument.
  - Allow `barman receive-wal` maintenance options (`--stop`, `--reset`,
    `--drop-slot` and `--create-slot`) to run against inactive servers.
  - Add `--port` option to `barman-wal-archive` and `barman-wal-restore` commands
    so that a custom SSH port can be used without requiring any SSH configuration.
  - Various documentation improvements.
  - Python 3.5 is no longer supported.
  - Ensure PostgreSQL connections are closed cleanly during the execution of
    `barman cron`.
  - `barman generate-manifest` now treats pre-existing backup_manifest files as
    an error condition.
  - backup_manifest files are renamed by appending the backup ID during recovery
    operations to prevent future backups including an old backup_manifest file.
  - Fix epoch timestamps in json output which were not timezone-aware.
  - The output of `pg_basebackup` is now written to the Barman log file while the
    backup is in progress.


author: - Michael Wallace <michael.wallace@enterprisedb.com> 3.2.0-1
changelog:
  - `barman-cloud-backup-delete` now accepts a `--batch-size` option which
    determines the maximum number of objects deleted in a single request.
  - All `barman-cloud-*` commands now accept a `--read-timeout` option which,
    when used with the `aws-s3` cloud provider, determines the read timeout used
    by the boto3 library when making requests to S3.
  - Fix the failure of `barman recover` in cases where `backup_compression` is
    set in the Barman configuration but the PostgreSQL server is unavailable.


author: - Michael Wallace <michael.wallace@enterprisedb.com> 3.3.0-1
changelog:
  - A backup can now be given a name at backup time using the new `--name` option
    supported by the `barman backup` and `barman-cloud-backup` commands. The
    backup name can then be used in place of the backup ID when running commands
    to interact with backups. Additionally, the commands to list and show backups
    have been been updated to include the backup name in the plain text and JSON
    output formats.
  - Stricter checking of PostgreSQL version to verify that Barman is running
    against a supported version of PostgreSQL.
  - Fix inconsistencies between the barman cloud command docs and the help output
    for those commands.
  - Use a new PostgreSQL connection when switching WALs on the primary during the
    backup of a standby to avoid undefined behaviour such as `SSL error` messages
    and failed connections.
  - Reduce log volume by changing the default log level of stdout for commands
    executed in child processes to `DEBUG` (with the exception of `pg_basebackup`
    which is deliberately logged at `INFO` level due to it being a long-running
    process where it is frequently useful to see the output during the execution
    of the command).


author: - Michael Wallace <michael.wallace@enterprisedb.com> 3.4.0-1
changelog:
  - This is the last release of Barman which will support Python 2 and new
    features will henceforth require Python 3.6 or later.
  - A new `backup_method` named `snapshot` is added. This will create backups by
    taking snapshots of cloud storage volumes. Currently only Google Cloud
    Platform is supported however support for AWS and Azure will follow in future
    Barman releases. Note that this feature requires a minimum Python version of
    3.7. Please see the Barman manual for more information.
  - Support for snapshot backups is also added to `barman-cloud-backup`, with
    minimal support for restoring a snapshot backup added to
    `barman-cloud-restore`.
  - A new command `barman-cloud-backup-show` is added which displays backup
    metadata stored in cloud object storage and is analogous to `barman
    show-backup`. This is provided so that snapshot metadata can be easily
    retrieved at restore time however it is also a convenient way of inspecting
    metadata for any backup made with `barman-cloud-backup`.
  - The instructions for installing Barman from RPMs in the docs are updated.
  - The formatting of NFS requirements in the docs is fixed.
  - Supported PostgreSQL versions are updated in the docs (this is a
    documentation fix only - the minimum supported major version is still 10).


author: Craig Ringer <craig.ringer@2ndquadrant.com> 1.2.0-1_2ndQuadrant
changelog:
  - The 1.2 update integrates the pglogical_output extension
  - First release targeting PostgreSQL 9.6rc1


author: Craig Ringer <craig.ringer@2ndquadrant.com> 1.2.1-1_2ndQuadrant
changelog:
  - Fix compatibility with 9.4 as downstream (GH #45)
  - Better error for 'snapshot is too large'
  - Ignore missing origin when cascading
  - Don't package hooks header anymore


author: Markus Wanner <markus.wanner@2ndquadrant.com> 2.2.0-2
changelog:
  - Rebuild against latest PostgreSQL point-releases to work around PostgreSQL
    ABI break in logical decoding
  - Require >= latest point release to prevent accidentally running on older
    versions with the old ABI


