Skip to content

Releases: rustic-rs/rustic

rustic v0.10.2

12 Nov 07:38
64fa00f

Choose a tag to compare

Hello rusticeans,

rustic 0.10.2 is a small bugfix release correcting a regression about config profiles which has unfortunately been introduced by 0.10.1. Sorry for any inconveniences!

Changelog

Fixed

  • Substitute environment variables in profiles only if explicitly opted-in (#1600)

v0.10.1

08 Nov 15:01
05914d6

Choose a tag to compare

Note: This release introduced a regression about config files. If you encounter any problems, please update to release 0.10.2!

Hello rusticeans,

we are happy to release rustic 0.10.1. This is a rather small bugfix release; however few improvements have been added including

  • Snapshots can now be also identified using latest~N to get the Nth-latest snapshot. Note that this does not yet work with all commands, we are working on it to roll it out everywhere.
  • filter-last has been added to filter the N latest snapshots, e.g. when grouping snapshots.
  • The command rewrite has been added. Note that this is not yet able to rewrite snapshot trees, but currently only snapshot metadata information like time, label, tags etc. Also the tag command now also changes tags and can be fully replaced by rewrite.
  • Environment variables are now respected in the config profiles, see the PR below for more details.

Thanks a lot to everyone who contributed with code, issues or discussions!

Changelog

Added

  • Add rewrite command (#1583)
  • (interactive) Add --interactive option to ls (#1564)
  • Add filter-last option (#1574)
  • Add environment variable substitution in config files (#1577)
  • (core) repository APIs to identify snapshots using latest~N (#426)
  • (commands) return error if check fails (#224)

Fixed

  • Handle windows path prefixes and relative paths correctly (#432)
  • Fix typos using the typos tool (#1590)
  • (metrics) use short-lived local registry (#1575)
  • fix clippy lints (#1570)
  • wrong env var for grouping option (#1566)

Other

  • update dependencies (#1594)
  • (security) Update fuser (#1569)

rustic v0.10.0

12 Sep 13:57
e54c1cb

Choose a tag to compare

Hello rusticeans,

we are happy to release rustic 0.10.0. This release features various new functionalities including:

  • Chunking can be customized using rustic init or rustic config. Moreover, fixed-size chunking has been added as option preventing potential chunking attacks and also improves backup performance for large files.
  • rustic key commands have been added allowing management of repository keys/passwords
  • Telemetry output has been added to the backup command supporting Prometheus and OpenTelemetry
  • A diff view comparing snapshots/paths has been added to the interactive mode. This and the interactive ls mode also compute summaries for (sub)-dirs if requested.
  • The new option delete-unchanged makes forget delete snapshots which identical to the previous one.

Note that some of the changes may slightly change existing behavior, those changes are marked as breaking below.
Notable is the removal of filter-fn. Please replace it with filter-jq.

Thanks a lot to everyone who contributed with code, issues or discussions!

Changelog

Features

  • Add fixed size chunking and allow fine-tune of rabin chunking (#422)
  • (backup) Add --name option to select snapshot(s) from config to backup (#1531)
  • (backup) [breaking] rename backup skip_identical_parent to skip_if_unchanged (#387)
  • (commands) Add missing key subcommands (#1385)
  • (commands) [breaking] Fine-tune output for snapshots command when no grouping is given (#1375)
  • (commands) [breaking] Extend logging (#1463)
  • (commands) make group_by a global option (#1545)
  • (forget) Add delete_unchanged option to forget (#386)
  • (diff) Use local PATH1 as PATH2 if no new snapshot/path is given (#1474)
  • (warmup) Add warmup wait command (#379)
  • (interactive) [breaking] Add interactive diff / overwork diff output (#1480)
  • (interactive) Reduce memory consumption of summary (#1489)
  • (interactive) remember summary when switching snapshot/ls/diff views (#1485)
  • (interactive) ls: Add options to compute cumulative statistics (#1479)
  • (interactive) Add possibility to change snapshot hostname (#1498)
  • Add environment variables to the hooks (#1518)
  • push prometheus metrics to pushgateway on-demand (#1404)
  • OpenTelemetry Protocol support for metrics (#1473)
  • Allow to use OPENDALHOT_* and OPENDALCOLD_* env variables (#1392, #1393)

Bugfixes

  • Allow to unset append-only mode (#414)
  • Fix repair index (#406)
  • Allow to request identical snapshot multiple times (#408)
  • Don't panic when reading empty files (#381)
  • sanitize paths after run-before hook (#1549)
  • Handle dry-run for all commands (#1546)
  • Don't allow wrong commands in front of valid ones (#1464)
  • (commands) remove SIGPIPE default handler (#1431)
  • (config) set a non-zero default progress interval for progress options (#1378)

Miscellaneous

  • [breaking] Remove --filter-fn from default (#1482)
  • (config) Correct the exclude-if-present option descritption (#1506)
  • use 2024 edition (#1453)
  • Add Homebrew instructions (#1416)
  • code formatting
  • dependency updates

v0.9.5

03 Dec 07:31
f565eea

Choose a tag to compare

Hello rusticeans,

we are happy to release rustic 0.9.5. This release brings some improvements for accessing data in the repository:

  • webdav has been fixed and now also works with remote storages
  • mount has been added for the linux version
  • dump now supports to write .tgz and .zip and direct writes to a file (self-detecting the output format).

Other major improvements are improved error messages and the ability to directly filter snapshots using jq syntax.

Thanks a lot to everyone who contributed with code, issues or discussions!

Changelog

Features

  • (commands) More dump options (#1339)
  • shut down gracefully with ctrl+c (#1364)
  • Add --filter-jq option (#1372)
  • (commands) Add mount command (#973)
  • Error messages are now much improved (rustic_core)
  • (commands) Add minutely timeline (rustic_core) to forget command

Bugfixes

  • (commands) run backup hooks before checking source dir (#1374)
  • (commands) Use spawn_blocking in webdav when calling rustic_core (#1365)
  • (commands) Prevent overwriting hot repository (rustic_core) in init command

Miscellaneous

  • update snapshots to include minutely configuration options
  • (deps) update rustic_core, bytes, and libc dependencies to latest versions
  • simplify lifetime annotations in OpenFileReader and TreeIterItem implementations
  • clean up whitespace and update clippy linting allowances
  • (deps) update dependencies to latest versions
  • (deps) update lockfile to get rid of vulnerable url version
  • (commands) rename fields for clarity in mount, add user options for mount (#1353)
  • (deps) update dependencies
  • (deps) don't use rustic_core webdav feature (#1367)
  • move webdavfs from rustic_core to rustic-rs (#1363)
  • (clippy) comment out unused lints in lib.rs
  • (clippy) apply fixes automatically
  • use BTreeMap for env in global options (#1360)
  • add tiny framework for testing rustic's compat with latest restic (#1303)
  • use snapshot tests for default config, show-config and completions (#1359)
  • (deps) update dependencies rustic_core, rustic_backend, rustic_testing, and migrate to conflate 0.3 (#1357)
  • fix typos
  • (build) add platform-dependent settings and remove ci flag for extra features
  • clarify --use-profile command in config by using long form (#1344)
  • (deps) update core and testing crates (#1340)

rustic v0.9.4

24 Oct 18:22
fb7ddda

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

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

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

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

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

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)