Skip to content

Releases: rustic-rs/rustic

rustic v0.9.4

24 Oct 18:22
fb7ddda
Compare
Choose a tag to compare

Hello rusticeans,
this patch release introduces tar output to the dump command, if being called on a directory. It also introduces some convenient names to check --read-data-subset: E.g. it allows to daily run check --read-data --read-data-subset=daily/month which covers the repository once run at every day of any month. For more information, check the corresponding (PR).

We also fixed the following issues:

  • self-updating now finds the right target again
  • the opendal backend should now work with less Path-related hickups on Windows

Cheers!

Changelog

Features

  • (commands) Add tar output to dump command (#1328)
  • (core/commands) Add convenient names for read-data-subset n/m (#328)

Bugfixes

  • clippy lints for new Rust version (#1329)
  • (deps) downgrade self-update to fix problems finding right target (#1323)
  • (backends) fix opendal paths on windows (#340)

Miscellaneous

  • (deps) remove once_cell and replace with std::sync::LazyLock, increase MSRV to 1.80.0 (#1337)
  • (deps) update tokio, ratatui, and tui-textarea (#1336)
  • (deps) update rustic_core and rustic_backend (#1334)
  • (deps) update abscissa framework (#1330)
  • introduce a new feature 'release' that includes the 'self-update' feature (#1307)

rustic v0.9.3

10 Oct 02:57
9c1239e
Compare
Choose a tag to compare

This is a patch release, it fixes a high-priority issue with rustic v0.9.2 due to a newly introduced bug in rustic_core v0.5.2 that involved how the TreeStreamerOnce handled errors when a channel was full. This ended in frequent panics and thus was breaking everyone's workflow.

We're sorry for the trouble! ✊🏽

Changelog

Fixed

  • (deps) update rustic_core to version 0.5.3 (#1314)

Miscellaneous

  • add status badge for docker image build and shorten workflow name (#1311)

rustic v0.9.2

09 Oct 17:55
fe07c41
Compare
Choose a tag to compare
rustic v0.9.2 Pre-release
Pre-release

UPDATE: rustic v0.9.2 introduced an issue that was breaking everyone's workflow. This has been fixed now in a patch release: https://github.com/rustic-rs/rustic/releases/tag/v0.9.3

Hello rusticeans,
this release might look small, but it contains a very exciting new feature: 🪝Hooks.

Hooks are commands that are run during certain events in the application lifecycle. They can be used to run custom scripts or commands before or after certain actions.

The documentation you can find in our user docs and in the config docs.

@mueckinger also contributed a CI workflow to automatically build and publish a Docker image on release! So you can easily use rustic now in your Docker setup. Thank you for that!

We hope this release is helpful to you, if you are experiencing any issues, please open an issue in our issue tracker!

Changelog

Features

  • (config) Add hooks (#1218)

Miscellaneous

  • (deps) update rustic_core (#1309)
  • build and publish docker image on release (#1297)

rustic v0.9.1

03 Oct 18:27
62d78eb
Compare
Choose a tag to compare

Hello,

today we are releasing a patch release to rustic, where we added:

  • some more filters for you to use to filter your snapshots to your liking
  • the docs command, that opens the rustic documentation in your default browser
  • the documentation as a PDF in the release package

We also improved the performance of the interactive snapshot command.

A note about the check improvements: This are in fact three enhancements:

  • You can now (optionally) specify snapshots for which the tree and pack (if --read-data is selected) checks are done. This includes using filters or something like rustic check latest.
  • The option --read-data-subset is added which allows to only choose a subset of pack files to read (if --read-data is selected). Possible choices are n/m which allows to completely check all data split up in m runs or random selections given by percentage or absolute size.
  • When using --read-data in combination with a hot/cold repository, the packs which are checked are now warmed-up before.

Enjoy!

Changelog

Features

  • (config) add more filters (#1263)
  • (check) Allow to only check trees+packs for given snapshots (#1230)
  • (commands) add a docs command to easily access the user, dev and config documentation (#1276)

Bug Fixes

  • (deps) update rustic_core and other dependencies and fix merge precedence (#1282)

Documentation

  • (docs/cli) improve the descriptions of the CLI commands (#1277)
  • (docs) update configuration documentation to align with recent changes (#1280)

Performance

  • (interactive) use update methods for refreshing snapshots (#1285)

Miscellaneous

  • (deps) upgrade dependencies (#1289)
  • add triage label to new issues only if no label has been set when creating it (#1287)

rustic v0.9.0

29 Sep 21:09
ee3f099
Compare
Choose a tag to compare

Dear current and future rustic users,
today, we are releasing rustic 0.9.0 based on rustic_core 0.4.0.

Highlights

Note: There are breaking changes that need adaptions of the configuration profile that you can read about here: https://rustic.cli.rs/docs/breaking_changes.html

Changelog

Bug Fixes

  • [breaking] use multiple options only as array in config profile (#1240)
  • Allow snapshots to be modified and marked to forget (#1253)
  • make ls and find show the year of mtime date (#1249)
  • ls: Remove printing trailing space (#1247)
  • webdav/forget: correctly use application config (#1241)

Features

  • [breaking] copy: Use config profile as target (#1131)
  • backup: Add option stdin-command (rustic_core)
  • Add list indexpacks and list indexcontent commands (#1254)
  • Add option --only-identical for diff to allow for bitrot check (#1250)
  • ls: Add option --json (#1251)
  • backup: Add option --long (#1159)

Documentation

  • update installation instructions in readme to use --locked flag for install
    from crates.io
  • update RepositoryErrorKind rustdoc following rustic_core change (#1237)

Other

  • Remove self-update from default crate features (#1139)
  • Reduce memory usage of restore (#1069)
  • (deps) update rust crate libc to v0.2.159 (#1257)
  • (deps) lock file maintenance (#1269)
  • (deps) update rust crate rstest to 0.23 (#1267)
  • (deps) update rust crate tempfile to v3.13.0 (#1266)
  • (deps) update marcoieni/release-plz-action digest to 8b0f89a (#1265)
  • (deps) update embarkstudios/cargo-deny-action action to v2 (#1259)
  • (deps) update rustsec/audit-check action to v2 (#1260)
  • (deps) update softprops/action-gh-release action to v2 (#1258)
  • (deps) update embarkstudios/cargo-deny-action digest to 3f4a782 (#1228)

rustic v0.8.1

08 Sep 21:16
152c256
Compare
Choose a tag to compare

We are very happy to release rustic 0.8.1 based on rustic_core 0.3.1.
This release is basically a bugfix release, but also adds small enhancements in shell completions and interactive mode.
We also warmly welcome the new maintainer @nardoor who joined the team shortly before we started working on rustic_core 0.3.1 / rustic 0.8.1!

Changelog

Bug Fixes

  • Allow to compile without tui feature
    (#1208)
  • Use cargo --locked in CI pipeline
    (#1207)
  • Return exitcode (#1220)
  • "Incorrect Password" error is now only shown if password is really incorrect.
    (rustic_core)
  • Group by now works as expected
    (rustic_core)
  • A bug in keep-tags and filter-tags has been fixed.
    (rustic_core)
  • Building OpenBSD platform target is now possible again
    (rustic_core)

Documentation

  • Update config profile readme
    (#1221)

Features

  • Add autocompletion hints
    (#1225)
  • Allow to modify filters
    (#1210)
  • Allow to view text files
    (#1216)

Generated

  • Updated Completions fixtures

Miscellaneous Tasks

  • Bump quinn-proto from 0.11.6 to 0.11.8
    (#1223)
  • Dependency updates (#1227)

rustic v0.8.0

22 Aug 08:07
7818989
Compare
Choose a tag to compare

We are happy to release rustic 0.8.0.

In release 0.8.0 lots of smaller bugs have been fixed. Also many new features have been added:

  • an interactive mode for viewing and restoring, run rustic snapshots -i to test it
  • the find command has been implemented
  • options for extra checks before saving pack files, for checking the index before each command and for setting repositories in append-only mode have been added
  • see more in the detailed changelog below!

We are also proud that test coverage has been increased a lot with this release with focus on rustic_core.

Note: There are a few breaking changes which might need changes in the configuration profile!

Detailed changelog:

Bug Fixes

  • Add comments for owncloud and nextcloud dependent settings
  • Rename service examples
  • Ask for password in backup and copy command if it is missing
    (#1061)
  • Ask for missing password in copy when initializing
    (#1063)
  • Fix possible overflow in progress bar ETA
    (#1079)
  • Correct b2.toml (#1072)
  • Show log filename if open/creation failed
    (#1111)
  • [breaking] Multiple paths in config profile as array
    (#1124)
  • Respect delete-protection when running forget with ids
    (#1149)
  • Reset terminal no matter what
    (#1175)
  • Allow missing fields in snapshot summary (to support restic 0.17.0)
    (rustic_core)
  • Allow non-value/null xattr fields
    (rustic_core)
  • Backup file if listing xattrs fails
    (rustic_core)
  • limit memory usage for restore when having large pack files
    (rustic_core)
  • prune: correct number of packs to repack
    (rustic_core)

Features

  • [breaking] Show-config now outputs toml
    (#1095)
  • [breaking] Allow specifying many options in config profile without array
    (#1130)
  • Add interactive snapshots mode
    (#1114)
  • The find command has been added
    (#1136)
  • Allow setting extra repository options via env variables
    (#1081)
  • Add --check-index option
    (#1078)
  • Add extra check before writing data and add --set-extra-check config option
    (rustic_core)
  • Add append-only repository mode
    (rustic_core)
  • forget: Enforce to have a --keep-* option and add --keep-none.
    (rustic_core)
  • Add s3_idrive config and move configs to a services subdirectory
    (#1048)
  • Add example config for owncloud and nextcloud
    (#1052)
  • Use human-panic to print better error messages in case rustic panics
    (#1065)
  • Prune: Add more debug output
    (#1064)
  • Add interactive ls mode
    (#1117)
  • Add interactive restore
    (#1123)
  • Interactive Ls: remember parent position
    (#1126)
  • Use RFC3339 time format in logfile
    (#1133)
  • Add possibility to change snapshot description
    (#1137)
  • Interactive: Allow to delete snapshots
    (#1143)
  • Interactive: Prompt before exiting
    (#1146)
  • Document opendal options connections and throttle
  • Add better progress bars
    (#1152)
  • Show diff statistics
    (#1178)

Documentaton

  • Update configuration README
    (#1088)
  • Fix typo in find.rs (#1187)

Miscellaneous Tasks

  • Fix cargo-binstall metadata
  • Move rustic_testing into rustic_core
  • Break old ci jobs when new commits are pushed so we don't fill up the queue
  • Bump mio from 0.8.10 to 0.8.11
    (#1089)
  • Update deps and adapt to rustic_core changes
  • Bump h2 from 0.3.25 to 0.3.26
    (#1113)
  • Bump rustls from 0.21.10 to 0.21.11
    (#1127)
  • Update rustic_core and rustic_backend
    (#1201)

Testing

  • Replace missing crates folder with src
  • Refactor integration tests to assert_cmd and predicates, test all configs in
    config subdirectory (#1060)

rustic v0.7.0

03 Feb 22:20
f06574b
Compare
Choose a tag to compare

Dear rustic users,

This rustic version, brings two major innovations. On the one hand, we have integrated OpenDAL.
On the other hand, you can now spawn a WebDAV server with rustic webdav, which gives you access to the snapshots in your repository in the file browser.

Besides these big milestones, many additions have found their way to rustic and also many minor bugs have been fixed. Thanks a lot to all contributors, bug reporters or people just asking in the rustic discussions!

Enhancements

Backend and Configuration

  • Added many new backends using OpenDAL, including SFTP (on Unix) and S3. See the config examples.
  • Added the new webdav command.
  • Rclone backend: Added options rclone-command, use-password, rest-url.
  • Backend options can now be defined for hot and cold repository parts separately using [repository.options-hot] and [repository.options-cold].

Backup and Restore

  • Backup scanning for size and start of the actual backup is now parallelized.
  • Added --no-scan option to prevent scanning for the backup size.
  • Added --custom-ignorefile option to use .gitignore-behavior with custom filenames.
  • Added --skip-identical-parent option to skip saving the snapshot if it is identical to the parent.
  • New option --quiet for backup and forget command.

Repository Management

  • ls: New option --numeric-id (can also be used as --numeric-uid-gid).
  • prune: New option --early-delete-index allows running prune with full discs.
  • The default for --max-repack has been changed to "10%".

UI and Usability Improvements

  • Help texts are now colored again. We may change that in a future release when reworking the CLI.
  • Improved progress bars, e.g., for the copy command.

Optimizations

  • Reduced memory requirements, especially for large repositories.

Build and Deployment

  • Built with cargo-auditable, you can audit the binaries for their dependencies (on available platforms), see here how
  • Added a Dockerfile for building a rustic Docker image.
  • Added the possibility to build an RPM package.
  • Many improvements to the internal build process and CI pipeline.
  • Building rustic with self-update and webdav commands is now an optional feature.

Bug Fixes

  • Fixed repository errors after entering a password, which now show up instead of re-prompting for the password.
  • Fixed an issue where the backup command could abort in the unlikely case of a time shift during backup (e.g., caused by NTP syncing).
  • Fixed missing cache files printing a warning.
  • Fixed repair index wrongly setting to-delete for newly read pack files.
  • Allowed diff to use local: in path syntax, enabling comparison with Windows paths.
  • Fixed init not working as expected for hot/cold repositories due to a regression.
  • Made output from config file handling identical to other log messages.

rustic 0.6.1

19 Nov 09:03
e51dbc5
Compare
Choose a tag to compare

rustic 0.6.1 fixes some small bugs from 0.6.2 including (hopefully) the broken CI for building binaries.

Also rustic_core was updated to 0.1.2.

rustic 0.6.0

23 Oct 14:16
4a785fb
Compare
Choose a tag to compare

Finally, rustic 0.6.0 is released.

This is the first release using the rustic_core crate for basically all rustic functionality. This was a very big refactor, many thanks go to @simonsan!
Even though we took great care to keep all functionality, please keep a good eye on this release due to the big changes!

Breaking Changes

  • We refactored to rustic_core. This means that most of the underlying logic can now be used as a library. The CLI is now a thin wrapper around the library. This also means that the CLI is now much more customizable. Please check out the documentation for more information.

Bug Fixes

  • Retrying backend access didn't work for long operations. This has been fixed
    (and retries are now customizable)
  • Prune did abort when no time was set for a pack-do-delete. This case is now
    handled correctly.
  • The zstd compression library led to data corruption in very unlikely cases.
    This has been fixed by a dependency update.
  • The glob option did only work with absolute files. This has been fixed.
  • Non-unicode link targets are now correctly handled on Unix (after this has
    been added to the restic repo format).
  • The --dry-run option now works as expected in the init command.

Features

  • New global configuration paths are available, located at /etc/rustic/*.toml
    or %PROGRAMDATA%/rustic/config/*.toml, depending on your platform.
  • REST backend: Now allows to use custom TLS root certificates.
  • Environment variables for programms called by rustic can now be set in the
    config files.
  • Creation of new keys now enforces confirmation of entered key. This helps to
    prevent mistype of passwords during the initial entry
  • Wait for password-command to successfully exit, allowing to input something
    into the command, and read password from stdout.
  • backup: New option --init to initialize repository if it doesn't exist yet.
  • backup: New option no-require-git - if enabled, a git repository is not
    required to apply git-ignore rule.
  • restore: The restore algorithm has been improved and should now be faster for
    remote repositories.
  • restore: Files are now allocated just before being first processed. This
    allows easier resumed restores.
  • repoinfo: Added new options --json, --only-files, --only-index.
  • check: Add check if time is set for packs-to-delete.
  • ls: Options --long (-l) and --summary (-s) have been added.
  • forget: Option --json has been added.