restic v0.9.5 Release Notes

Release Date: 2019-04-23 // almost 5 years ago
  • โšก๏ธ We're very pleased to present you restic 0.9.5! restic is distributed as a standalone binary: download the correct file for your operating system and architecture, extract the file and just run it. If you run into any issues, please report them at the GitHub issue tracker or visit the forum. If you already have restic >= 0.9.3, you can use restic self-update to get the latest version in a secure way.

    ๐Ÿ“š The binaries released with each restic version are reproducible, which means that you can easily reproduce a byte identical version from the source code for that release. Instructions on how to do that in the Developer Documentation.

    ๐Ÿ”„ Changelog for restic 0.9.5 (2019-04-23)

    The following sections list the changes in restic 0.9.5 relevant to restic users. The changes are ordered by importance.

    Summary

    • ๐Ÿ›  Fix #2135: Return error when no bytes could be read from stdin
    • ๐Ÿ›  Fix #2181: Don't cancel timeout after 30 seconds for self-update
    • ๐Ÿ›  Fix #2203: Fix reading passwords from stdin
    • ๐Ÿ›  Fix #2224: Don't abort the find command when a tree can't be loaded
    • Enh #1895: Add case insensitive include & exclude options
    • ๐Ÿ‘ Enh #1937: Support streaming JSON output for backup
    • Enh #2155: Add Openstack application credential auth for Swift
    • ๐Ÿ‘ Enh #2184: Add --json support to forget command
    • Enh #2037: Add group-by option to snapshots command
    • Enh #2124: Ability to dump folders to tar via stdout
    • Enh #2139: Return error if no bytes could be read for backup --stdin
    • Enh #2205: Add --ignore-inode option to backup cmd
    • Enh #2220: Add config option to set S3 storage class

    Details

    ๐Ÿ›  Bugfix #2135: Return error when no bytes could be read from stdin

    ๐Ÿ“š We assume that users reading backup data from stdin want to know when no data could be read, so now restic returns an error when backup --stdin is called but no bytes could be read. Usually, this means that an earlier command in a pipe has failed. The documentation was amended and now recommends setting the pipefail option (set -o pipefail).

    #2135 #2139

    ๐Ÿ›  Bugfix #2181: Don't cancel timeout after 30 seconds for self-update

    #2181

    ๐Ÿ›  Bugfix #2203: Fix reading passwords from stdin

    Passwords for the init, key add, and key passwd commands can now be read from non-terminal stdin.

    #2203

    ๐Ÿ›  Bugfix #2224: Don't abort the find command when a tree can't be loaded

    ๐Ÿ”„ Change the find command so that missing trees don't result in a crash. Instead, the error is logged to the debug log, and the tree ID is displayed along with the snapshot it belongs to. This makes it possible to recover repositories that are missing trees by forgetting the snapshots they are used in.

    #2224

    โœจ Enhancement #1895: Add case insensitive include & exclude options

    โช The backup and restore commands now have --iexclude and --iinclude flags as case insensitive variants of --exclude and --include.

    #1895 #2032

    โœจ Enhancement #1937: Support streaming JSON output for backup

    ๐Ÿ‘ We've added support for getting machine-readable status output during backup, just pass the flag --json for restic backup and restic will output a stream of JSON objects which contain the current progress.

    #1937 #1944

    โœจ Enhancement #2155: Add Openstack application credential auth for Swift

    ๐Ÿ‘ Since Openstack Queens Identity (auth V3) service supports an application credential auth method. It allows to create a technical account with the limited roles. This commit adds an application credential authentication method for the Swift backend.

    #2155

    โœจ Enhancement #2184: Add --json support to forget command

    ๐Ÿšš The forget command now supports the --json argument, outputting the information about what is (or would-be) kept and removed from the repository.

    #2184 #2185

    โœจ Enhancement #2037: Add group-by option to snapshots command

    0๏ธโƒฃ We have added an option to group the output of the snapshots command, similar to the output of the forget command. The option has been called "--group-by" and accepts any combination of the values "host", "paths" and "tags", separated by commas. Default behavior (not specifying --group-by) has not been changed. We have added support of the grouping to the JSON output.

    #2037 #2087

    โœจ Enhancement #2124: Ability to dump folders to tar via stdout

    We've added the ability to dump whole folders to stdout via the dump command. Restic now requires at least Go 1.10 due to a limitation of the standard library for Go <= 1.9.

    #2123 #2124

    โœจ Enhancement #2139: Return error if no bytes could be read for backup --stdin

    When restic is used to backup the output of a program, like mysqldump | restic backup --stdin, it now returns an error if no bytes could be read at all. This catches the failure case when mysqldump failed for some reason and did not output any data to stdout.

    #2139

    โœจ Enhancement #2205: Add --ignore-inode option to backup cmd

    ๐Ÿ›  This option handles backup of virtual filesystems that do not keep fixed inodes for files, like Fuse-based, pCloud, etc. Ignoring inode changes allows to consider the file as unchanged if last modification date and size are unchanged.

    #1631 #2205 #2047

    โœจ Enhancement #2220: Add config option to set S3 storage class

    The s3.storage-class option can be passed to restic (using -o) to specify the storage class to be used for S3 objects created by restic.

    The storage class is passed as-is to S3, so it needs to be understood by the API. On AWS, it can be one of STANDARD, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING and REDUCED_REDUNDANCY. If unspecified, the default storage class is used (STANDARD on AWS).

    You can mix storage classes in the same bucket, and the setting isn't stored in the restic repository, so be sure to specify it with each command that writes to S3.

    #706 #2220