Commit Graph

511 Commits

Author SHA1 Message Date
renovate[bot]
8fde2c8fb1
fix(deps): lock file maintenance rust dependencies 2025-07-23 20:02:22 +00:00
Frank Förster
5bd7153774
fix: cargo update openssh-sftp-client (#1510)
Updates openssh-sftp-client to fix builds on ARM 32bit.
2025-07-17 18:29:22 +02:00
Dubzer
3a3b5b187e
feat: OpenTelemetry Protocol support for metrics (#1473)
fixes: #1458

---------
Co-authored-by: aawsome <37850842+aawsome@users.noreply.github.com>
2025-06-29 22:47:13 +02:00
aawsome
48b51a417c
update to latest rustic_core (#1491) 2025-06-29 16:10:38 +02:00
aawsome
0ff0e7caa9
feat(interactive)!: Add interactive diff / overwork diff output (#1480)
Adds the possibility to compare two snapshots interactively.
From the interactive snapshots view,  press `D` to get to the diff view.
If two snapshots are marked, this diffs the two marked snapshots. If one
snapshot is marked or selected, this diffs with its parent (if there is
one).
Alternatively, you can use `rustic diff -i` to select snapshots/paths
directly.

The PR also allows to recursively compute added/removed space for dirs
and subdirs using `s` (like in #1479)

This PR is breaking as it also changes the output format of the normal
`diff` command.
2025-06-26 16:17:11 +02:00
aawsome
cb97d9c5a9
feat(commands): Add missing key subcommands (#1385)
closes #983
2025-06-13 18:06:13 +02:00
aawsome
2ec2644a93
Use rustic_core development version (#1476) 2025-06-11 22:46:38 +02:00
aawsome
8f156d2aed
adapt to latest rustic_core (#1456)
Note: This does not **use** the latest rustic core, but makes the
necessary modifications to make it work with `rustic_core` after the
latest dependency updates.
2025-04-29 05:21:40 +02:00
Alexander Weiss
5f63223297 update prometheus version 2025-04-18 08:26:02 +02:00
Alexander Weiss
a1ddf1f016 dependency updates 2025-04-18 07:55:48 +02:00
dependabot[bot]
a560857c09
build(deps): bump zip from 2.2.1 to 2.3.0 (#1432)
Bumps [zip](https://github.com/zip-rs/zip2) from 2.2.1 to 2.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zip-rs/zip2/releases">zip's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.0</h2>
<h3><!-- raw HTML omitted -->🚀 Features</h3>
<ul>
<li>Add support for NTFS extra field (<a
href="https://redirect.github.com/zip-rs/zip2/pull/279">#279</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li><em>(test)</em> Conditionalize a zip64 doctest (<a
href="https://redirect.github.com/zip-rs/zip2/pull/308">#308</a>)</li>
<li>fix failing tests, remove symlink loop check</li>
<li>Canonicalize output path to avoid false negatives</li>
<li>Symlink handling in stream extraction</li>
<li>Canonicalize output paths and symlink targets, and ensure they
descend from the destination</li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>Fix clippy and cargo fmt warnings (<a
href="https://redirect.github.com/zip-rs/zip2/pull/310">#310</a>)</li>
</ul>
<h2>v2.2.3</h2>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<ul>
<li>Change the inner structure of <code>DateTime</code> (<a
href="https://redirect.github.com/zip-rs/zip2/issues/267">#267</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>cargo fix --edition</li>
</ul>
<h2>v2.2.2</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>rewrite the EOCD/EOCD64 detection to fix extreme performance
regression (<a
href="https://redirect.github.com/zip-rs/zip2/issues/247">#247</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md">zip's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v2.2.3...v2.3.0">2.3.0</a>
- 2025-03-16</h2>
<h3><!-- raw HTML omitted -->🚀 Features</h3>
<ul>
<li>Add support for NTFS extra field (<a
href="https://redirect.github.com/zip-rs/zip2/pull/279">#279</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li><em>(test)</em> Conditionalize a zip64 doctest (<a
href="https://redirect.github.com/zip-rs/zip2/pull/308">#308</a>)</li>
<li>fix failing tests, remove symlink loop check</li>
<li>Canonicalize output path to avoid false negatives</li>
<li>Symlink handling in stream extraction</li>
<li>Canonicalize output paths and symlink targets, and ensure they
descend from the destination</li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>Fix clippy and cargo fmt warnings (<a
href="https://redirect.github.com/zip-rs/zip2/pull/310">#310</a>)</li>
</ul>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v2.2.2...v2.2.3">2.2.3</a>
- 2025-02-26</h2>
<h3><!-- raw HTML omitted -->🚜 Refactor</h3>
<ul>
<li>Change the inner structure of <code>DateTime</code> (<a
href="https://redirect.github.com/zip-rs/zip2/issues/267">#267</a>)</li>
</ul>
<h3><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h3>
<ul>
<li>cargo fix --edition</li>
</ul>
<h2><a
href="https://github.com/zip-rs/zip2/compare/v2.2.1...v2.2.2">2.2.2</a>
- 2024-12-16</h2>
<h3><!-- raw HTML omitted -->🐛 Bug Fixes</h3>
<ul>
<li>rewrite the EOCD/EOCD64 detection to fix extreme performance
regression (<a
href="https://redirect.github.com/zip-rs/zip2/issues/247">#247</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6eab5f5cc6"><code>6eab5f5</code></a>
chore: release v2.3.0 (<a
href="https://redirect.github.com/zip-rs/zip2/issues/300">#300</a>)</li>
<li><a
href="e4aee2050f"><code>e4aee20</code></a>
implement <code>ZipFile::options</code> + refactor options normalization
(<a
href="https://redirect.github.com/zip-rs/zip2/issues/305">#305</a>)</li>
<li><a
href="ea8a7bba24"><code>ea8a7bb</code></a>
fix(test): Conditionalize a zip64 doctest (<a
href="https://redirect.github.com/zip-rs/zip2/issues/308">#308</a>)</li>
<li><a
href="365c81a39f"><code>365c81a</code></a>
Use <code>xz2</code> crate instead of a custom implementation (<a
href="https://redirect.github.com/zip-rs/zip2/issues/306">#306</a>)</li>
<li><a
href="ae94b3452b"><code>ae94b34</code></a>
chore: Fix clippy and cargo fmt warnings (<a
href="https://redirect.github.com/zip-rs/zip2/issues/310">#310</a>)</li>
<li><a
href="a2e062f370"><code>a2e062f</code></a>
Merge commit from fork</li>
<li><a
href="0199ac2cb8"><code>0199ac2</code></a>
Simplify handling for symlink targets</li>
<li><a
href="977bb9479d"><code>977bb94</code></a>
fix failing tests, remove symlink loop check</li>
<li><a
href="3cb29e70d1"><code>3cb29e7</code></a>
Partial fix for tests</li>
<li><a
href="2182b07686"><code>2182b07</code></a>
Refactor</li>
<li>Additional commits viewable in <a
href="https://github.com/zip-rs/zip2/compare/v2.2.1...v2.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zip&package-manager=cargo&previous-version=2.2.1&new-version=2.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/rustic-rs/rustic/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-20 05:59:52 +01:00
dependabot[bot]
8933af0679
build(deps): bump ring from 0.17.8 to 0.17.13 (#1424)
Bumps [ring](https://github.com/briansmith/ring) from 0.17.8 to 0.17.13.
2025-03-13 21:43:25 +01:00
Léo Gaspard
47a4bb5d29
feat: push prometheus metrics to pushgateway on-demand (#1404)
Fixes #1403

---------

Co-authored-by: Alexander Weiss <alex@weissfam.de>
2025-03-04 10:33:49 +01:00
rustic-release-plz[bot]
f565eea1f6
chore: release v0.9.5 (#1341)
## 🤖 New release
* `rustic-rs`: 0.9.4 -> 0.9.5 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.5](https://github.com/rustic-rs/rustic/compare/v0.9.4...v0.9.5)
- 2024-12-02

### Added

- *(commands)* More dump options
([#1339](https://github.com/rustic-rs/rustic/pull/1339))
- shut down gracefully with ctrl+c
([#1364](https://github.com/rustic-rs/rustic/pull/1364))
- Add --filter-jq option
([#1372](https://github.com/rustic-rs/rustic/pull/1372))
- *(async)* use `is_async_compatible()` to determine backend
incompatibility and error out
([#1355](https://github.com/rustic-rs/rustic/pull/1355))
- *(commands)* Add `mount` command
([#973](https://github.com/rustic-rs/rustic/pull/973))

### Fixed

- *(commands)* run backup hooks before checking source dir
([#1374](https://github.com/rustic-rs/rustic/pull/1374))
- *(commands)* Use spawn_blocking in webdav when calling rustic_core
([#1365](https://github.com/rustic-rs/rustic/pull/1365))
- *(filesystem)* Use channels to communicate within webdav filesystem
([#1361](https://github.com/rustic-rs/rustic/pull/1361))

### Other

- Add documentation for `minutely` keep option
([#1371](https://github.com/rustic-rs/rustic/pull/1371))
- 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
- *(mount)* rename fields for clarity, add user options for mount
([#1353](https://github.com/rustic-rs/rustic/pull/1353))
- *(deps)* update dependencies
- *(deps)* don't use rustic_core webdav feature
([#1367](https://github.com/rustic-rs/rustic/pull/1367))
- Revert "fix(filesystem): Use channels to communicate within webdav
filesystem ([#1361](https://github.com/rustic-rs/rustic/pull/1361))"
- Revert "feat(async): use `is_async_compatible()` to determine backend
incompatibility and error out
([#1355](https://github.com/rustic-rs/rustic/pull/1355))"
- move `webdavfs` from `rustic_core` to `rustic-rs`
([#1363](https://github.com/rustic-rs/rustic/pull/1363))
- *(clippy)* comment out unused lints in lib.rs
- *(clippy)* apply fixes automatically
- use BTreeMap for env in global options
([#1360](https://github.com/rustic-rs/rustic/pull/1360))
- add tiny framework for testing rustic's compat with latest restic
([#1303](https://github.com/rustic-rs/rustic/pull/1303))
- use snapshot tests for default config, show-config and completions
([#1359](https://github.com/rustic-rs/rustic/pull/1359))
- *(deps)* update dependencies rustic_core, rustic_backend,
rustic_testing, and migrate to conflate 0.3
([#1357](https://github.com/rustic-rs/rustic/pull/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](https://github.com/rustic-rs/rustic/pull/1344))
- *(deps)* update core and testing crates
([#1340](https://github.com/rustic-rs/rustic/pull/1340))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

---------

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-12-03 00:32:00 +01:00
aawsome
8b18e62e78
feat(commands): More dump options (#1339)
Adds output as  targz and zip.
Also adds the options `--archive` to choose the ouput format and
`--file` to directly specify a file to dump into. When a file is
specified, the ouput format is automatically chosen from the file
extension, if given.

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-12-02 23:58:43 +01:00
simonsan
852635e25c
feat: shut down gracefully with ctrl+c (#1364)
If you have a long-running process, like `webdav` or `backup` or others,
pressing CTRL+C usually results in a non-zero exit code:

`process didn't exit successfully:
P:\CARGO\.cargo-target-win\debug\rustic.exe -P <PROFILE> webdav (exit
code: 0xc000013a, STATUS_CONTROL_C_EXIT)`

This shouldn't be the case, as it was user initiated and we can shut
down gracefully.

This PR adds this functionality, so CTRL+C shuts down `rustic`
gracefully and exits with a 0 exit-code.

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: aawsome <37850842+aawsome@users.noreply.github.com>
2024-11-30 22:09:00 +01:00
aawsome
c571279cba
feat: Add --filter-jq option (#1372)
Adds filtering using `jq` syntax. You can do something like `--filter-jq
'.summary.files_new > 51'` - works similar to what you'd expect from
`jq`.

Also puts the `rhai` and `jq` filtering into features which are enabled
by default.

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-30 22:06:19 +01:00
simonsan
f133d96c2e
chore(deps): update rustic_core, bytes, and libc dependencies to latest versions
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-30 10:09:05 +01:00
simonsan
7ed72608b4
chore(deps): update dependencies to latest versions
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-27 14:33:33 +01:00
simonsan
7320d48fac
chore(deps): update lockfile to get rid of vulnerable url version
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-25 16:20:10 +01:00
simonsan
1bdb914f16
refactor(mount): rename fields for clarity, add user options for mount (#1353)
Addresses review feedback from #973

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-25 14:21:01 +00:00
simonsan
eb49eda0c5
chore(deps): update dependencies
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-24 20:41:46 +01:00
aawsome
1c6a91e22f
chore(deps): don't use rustic_core webdav feature (#1367)
..no longer needed after #1363

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-24 09:37:26 +00:00
aawsome
3d13f2e527
refactor: move webdavfs from rustic_core to rustic-rs (#1363)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-23 14:00:59 +00:00
simonsan
47426dbfb4
testing: add tiny framework for testing rustic's compat with latest restic (#1303)
This is the first PR to lay some foundations to test rustic's
compatibility against a restic repository. It should essentially show,
how to start out with it and give some fixtures to play around with.

TODO:

- [X] add CI workflow + test that uses restic (latest) via
https://github.com/AnimMouse/setup-restic, to create a new repo and run
rustic against it
- [X] investigate `AnimMouse/setup-restic` failure and fix
- [X] forked `AnimMouse/setup-restic` to `rustic-rs/setup-restic` to run
on `@main` and apply faster fixes to our CI
- [X] used `AnimMouse/setup-restic` as a foundation for
`rustic-rs/setup-rustic`, still WIP
- [x] update to 'release' feature in test when #1307 is merged

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-19 02:51:24 +01:00
simonsan
b0bd5b6e65
test: use snapshot tests for default config, show-config and completions (#1359)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-19 02:28:37 +01:00
simonsan
b8deb789eb
chore(deps): update dependencies rustic_core, rustic_backend, rustic_testing, and migrate to conflate 0.3 (#1357)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-19 00:49:00 +01:00
aawsome
bb107be102
feat(commands): Add mount command (#973)
This PR adds the `mount` command to rustic to access snapshot contents
as a read-only filesystem when the feature-flag `mount` is chosen.

As for the `webdav` command, there are following options:
- Access to a concrete snapshot/path, e.g. `rustic mount /mnt
37a63e5b:/my/path`.
- Access to all snapshots (maybe restricted by filters) by using
templates to define a virtual directory structure where snapshots are
located. Example: `rustic mount /mnt --path-template
"[{hostname}]/[{label}]/{time}" --time-template "%Y-%m-%d_%H-%M-%S"`
(these are also defined as default). Note that for all dirs containing
only snapshots, also a `latest` entry is generated. `latest` and
identical subsequent snapshots are symlinks when using `mount`.

This PR uses fuse_mt which is not optimal as it introduces some overhead
(e.g. needs to save whole Paths in-memory).

Note: Requires https://github.com/rustic-rs/rustic_core/pull/331 to
properly show all data of files (without it builds and runs, but files
are truncated and return error when reading).

Note: Building with the `mount` feature flag requires special
dependencies and is only possible on supported platforms, see
https://github.com/cberner/fuser

closes #971

---------

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-10 20:49:44 +00:00
simonsan
d4420c3dce
chore(deps): update core and testing crates (#1340) 2024-10-25 17:12:09 +02:00
rustic-release-plz[bot]
fb7dddaf24
chore: release v0.9.4 (#1322)
## 🤖 New release
* `rustic-rs`: 0.9.3 -> 0.9.4 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.4](https://github.com/rustic-rs/rustic/compare/v0.9.3...v0.9.4)
- 2024-10-24

### Added

- *(commands)* Add tar output to dump command
([#1328](https://github.com/rustic-rs/rustic/pull/1328))

### Fixed

- clippy lints for new Rust version
([#1329](https://github.com/rustic-rs/rustic/pull/1329))
- *(deps)* downgrade self-update to fix problems finding right target
([#1323](https://github.com/rustic-rs/rustic/pull/1323))

### Other

- *(deps)* remove once_cell and replace with std::sync::LazyLock,
increase MSRV to 1.80.0
([#1337](https://github.com/rustic-rs/rustic/pull/1337))
- *(deps)* update tokio, ratatui, and tui-textarea
([#1336](https://github.com/rustic-rs/rustic/pull/1336))
- *(deps)* update rustic_core and rustic_backend
([#1334](https://github.com/rustic-rs/rustic/pull/1334))
- *(deps)* update abscissa framework
([#1330](https://github.com/rustic-rs/rustic/pull/1330))
- introduce a new feature 'release' that includes the 'self-update'
feature ([#1307](https://github.com/rustic-rs/rustic/pull/1307))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-24 17:46:20 +00:00
simonsan
2afb5b2132
chore(deps): remove once_cell and replace with std::sync::LazyLock, increase MSRV to 1.80.0 (#1337) 2024-10-24 19:29:49 +02:00
aawsome
dea0221b38
feat(commands): Add tar output to dump command (#1328)
The `dump` command will now produce a tar when called with a directory.

---------

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-24 19:05:00 +02:00
simonsan
a6a135a649
chore(deps): update tokio, ratatui, and tui-textarea (#1336)
chore(deps): update dependencies: tokio, ratatui, and tui-textarea
fix(clippy): use of deprecated method `ratatui::widgets::Table::<'a>::highlight_style`: use `Table::row_highlight_style` instead
2024-10-24 19:01:46 +02:00
simonsan
11885c190a
chore(deps): update rustic_core and rustic_backend (#1334)
Update rustic_core and rustic_backend to incorporate fixes. See their
changelogs for more information.

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-24 18:43:18 +02:00
simonsan
4ba226a7f3
chore(deps): update abscissa framework (#1330) 2024-10-24 18:21:05 +02:00
simonsan
24a7ec53fb
fix(deps): downgrade self-update to fix problems finding right target (#1323)
Fixes #1291

Related: https://github.com/jaemk/self_update/issues/136

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-16 11:12:59 +00:00
rustic-release-plz[bot]
9c1239e0c7
chore: release v0.9.3 (#1312)
## 🤖 New release
* `rustic-rs`: 0.9.2 -> 0.9.3 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.3](https://github.com/rustic-rs/rustic/compare/v0.9.2...v0.9.3)
- 2024-10-10

### Fixed

- *(deps)* update rustic_core to version 0.5.3
([#1314](https://github.com/rustic-rs/rustic/pull/1314))

### Other

- add status badge for docker image build and shorten workflow name
([#1311](https://github.com/rustic-rs/rustic/pull/1311))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-10 04:29:04 +02:00
simonsan
facfb2d20e
fix(deps): update rustic_core to version 0.5.3 (#1314)
This contains an immediate fix for a newly introduced bug in
`rustic_core v0.5.2` that involved how the `TreeStreamerOnce` handled
errors when a channel was full.

Fixes v0.9.2 breaks prune operations #1313

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-10 04:11:20 +02:00
rustic-release-plz[bot]
fe07c41f1e
chore: release v0.9.2 (#1294)
## 🤖 New release
* `rustic-rs`: 0.9.1 -> 0.9.2 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.2](https://github.com/rustic-rs/rustic/compare/v0.9.1...v0.9.2)
- 2024-10-09

### Added

- *(config)* Add hooks
([#1218](https://github.com/rustic-rs/rustic/pull/1218))

### Other

- *(deps)* update rustic_core
([#1309](https://github.com/rustic-rs/rustic/pull/1309))
- build and publish docker image on release
([#1297](https://github.com/rustic-rs/rustic/pull/1297))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-09 17:01:52 +00:00
simonsan
64e1ebb5ba
chore(deps): update rustic_core (#1309)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-09 18:43:47 +02:00
aawsome
cb3903b9dc
feat(config): Add hooks (#1218)
This PR adds `run-before`, `run-after`, `run-failure` and `run-finally`
hooks for:
- all commands in the `[global.hooks]` config profile section
- commands accessing the repository in the `[repository.hooks]` config
profile section
- the `backup` command specifically in the `[backup.hooks]` config
profile section
- specific backup sources in the `[backup.snapshots.hooks]` section

Note: This PR includes only calling the given commands. If there is the
wish for supplying information to the commands (env variables or
parameter substitution), this should be covered by a separate feature
request/PR.

closes #902

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-05 01:58:55 +00:00
rustic-release-plz[bot]
62d78ebc8e
chore: release v0.9.1 (#1283)
## 🤖 New release
* `rustic-rs`: 0.9.0 -> 0.9.1 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.1](https://github.com/rustic-rs/rustic/compare/v0.9.0...v0.9.1)
- 2024-10-03

### Added

- *(config)* add more filters
([#1263](https://github.com/rustic-rs/rustic/pull/1263))
- *(check)* Allow to only check trees+packs for given snapshots
([#1230](https://github.com/rustic-rs/rustic/pull/1230))
- *(commands)* add a `docs` command to easily access the user, dev and
config documentation
([#1276](https://github.com/rustic-rs/rustic/pull/1276))

### Fixed

- *(docs/cli)* improve the descriptions of the CLI commands
([#1277](https://github.com/rustic-rs/rustic/pull/1277))
- *(deps)* update rustic_core and other dependencies and fix merge
precedence ([#1282](https://github.com/rustic-rs/rustic/pull/1282))
- *(docs)* update configuration documentation to align with recent
changes ([#1280](https://github.com/rustic-rs/rustic/pull/1280))

### Other

- *(deps)* upgrade dependencies
([#1289](https://github.com/rustic-rs/rustic/pull/1289))
- add triage label to new issues only if no label has been set when
creating it ([#1287](https://github.com/rustic-rs/rustic/pull/1287))
- *(interactive)* use update methods for refreshing snapshots
([#1285](https://github.com/rustic-rs/rustic/pull/1285))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-03 17:42:19 +00:00
simonsan
b384852679
chore(deps): upgrade dependencies (#1289)
- rustic_core to 0.5.1
- rustic_backend to 0.4.1
- open to 5.3.0

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-03 19:23:40 +02:00
aawsome
cc4f016dab
feat(config): add more filters (#1263)
Adds the following filter options:
- `filter-paths-exactly` - filters exactly the given pathlists
(supersets don't match)
- `filter-tags-exactly` - filters exactly the given taglists (supersets
don't match)
- `filter-before` - filters by time (date or date+time can be given)
- `filter-after` - filters by time (date or date+time can be given)
- `filter-size` - filters by size of snapshot'ed data (upper and lower
limit may be given)
- `filter-size-add` - filters by size added to the repository (upper and
lower limit may be given)

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-02 22:57:21 +00:00
simonsan
ec6165a25e
fix(deps): update rustic_core and other dependencies and fix merge precedence (#1282)
Due to changes in the way how merging of values were applied to
configuration values in `BackendOptions` this should is considered a
fix. Now values from the configuration file don't overwrite values from
environment variables, any more. As it was intended and stated in the
documentation.

Please make sure, your workflow is still working as intended, especially
that the configuration values and environment variables are applied as
you wanted it and as we documented it in the Configuration
documentation.

Precedence also applies when inheriting options from other profiles
using `use-profiles` or when using multiple profiles, e.g. `rustic -P
one -P two`. If the same repository option is defined in `one` and `two`
the value of `one` is taken. Before the fix, the value of `two` was
taken. But the fix only applies to the repository options. For other
options, `one` always had precedence.

Fixes #1226

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-10-02 13:43:11 +00:00
simonsan
fbf4c2edfa
feat(commands): add a docs command to easily access the user, dev and config documentation (#1276)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-02 07:15:34 +00:00
rustic-release-plz[bot]
ee3f099d4b
chore: release v0.9.0 (#1256)
## 🤖 New release
* `rustic-rs`: 0.8.1 -> 0.9.0 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.0](https://github.com/rustic-rs/rustic/compare/v0.8.1...v0.9.0)
- 2024-09-29

### Added

- *(commands)* Add list indexpacks and list indexcontent commands
([#1254](https://github.com/rustic-rs/rustic/pull/1254))
- *(commands)* Add option `--only-identical` for `diff` to allow for
bitrot check ([#1250](https://github.com/rustic-rs/rustic/pull/1250))
- *(commands)* ls: Add option --json
([#1251](https://github.com/rustic-rs/rustic/pull/1251))
- *(commands)* [**breaking**] copy: Use config profile as target
([#1131](https://github.com/rustic-rs/rustic/pull/1131))
- *(commands)* backup: Add option --long
([#1159](https://github.com/rustic-rs/rustic/pull/1159))

### Fixed

- *(deps)* update rust crate libc to v0.2.159
([#1257](https://github.com/rustic-rs/rustic/pull/1257))
- *(config)* [**breaking**] use multiple options only as array in config
profile ([#1240](https://github.com/rustic-rs/rustic/pull/1240))
- *(interactive)* Allow snapshots to be modified and marked to forget
([#1253](https://github.com/rustic-rs/rustic/pull/1253))
- make ls and find show the year of mtime date
([#1249](https://github.com/rustic-rs/rustic/pull/1249))
- ls: Remove printing trailing space
([#1247](https://github.com/rustic-rs/rustic/pull/1247))
- webdav/forget: correctly use application config
([#1241](https://github.com/rustic-rs/rustic/pull/1241))

### Other

- update installation instructions in readme to use `--locked` flag for
install from crates.io
- *(deps)* lock file maintenance
([#1269](https://github.com/rustic-rs/rustic/pull/1269))
- delete unused xtask pattern directory
- *(deps)* update rust crate rstest to 0.23
([#1267](https://github.com/rustic-rs/rustic/pull/1267))
- *(deps)* update rust crate tempfile to v3.13.0
([#1266](https://github.com/rustic-rs/rustic/pull/1266))
- *(deps)* update marcoieni/release-plz-action digest to 8b0f89a
([#1265](https://github.com/rustic-rs/rustic/pull/1265))
- *(deps)* update embarkstudios/cargo-deny-action action to v2
([#1259](https://github.com/rustic-rs/rustic/pull/1259))
- *(deps)* update rustsec/audit-check action to v2
([#1260](https://github.com/rustic-rs/rustic/pull/1260))
- *(deps)* update softprops/action-gh-release action to v2
([#1258](https://github.com/rustic-rs/rustic/pull/1258))
- *(deps)* update embarkstudios/cargo-deny-action digest to 3f4a782
([#1228](https://github.com/rustic-rs/rustic/pull/1228))
- don't let release-plz create GH releases
- exclude the CHANGELOG from dprint formatting
- remove `-dev` description from version for release-plz to work
- remove release-pr workflow and replace with release-plz
- *(cd)* try fixing nightly release pipeline
- *(deps)* Update to new releases
([#1255](https://github.com/rustic-rs/rustic/pull/1255))
- Reduce memory usage of restore
([#1069](https://github.com/rustic-rs/rustic/pull/1069))
- Update to newest rustic_core
([#1248](https://github.com/rustic-rs/rustic/pull/1248))
- update RepositoryErrorKind rustdoc following rustic_core change
([#1237](https://github.com/rustic-rs/rustic/pull/1237))
- set development version
- add flag for building with self-update feature for nightly and CD
- Remove self-update from default crate features
([#1139](https://github.com/rustic-rs/rustic/pull/1139))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

---------

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-09-29 22:30:46 +02:00
renovate[bot]
227a8e1062
chore(deps): lock file maintenance (#1269)
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the
month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 14:33:17 +00:00
renovate[bot]
b4535354b4
chore(deps): update rust crate rstest to 0.23 (#1267)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [rstest](https://redirect.github.com/la10736/rstest) |
dev-dependencies | minor | `0.22` -> `0.23` |

---

### Release Notes

<details>
<summary>la10736/rstest (rstest)</summary>

###
[`v0.23.0`](https://redirect.github.com/la10736/rstest/blob/HEAD/CHANGELOG.md#0230-2024929)

[Compare
Source](https://redirect.github.com/la10736/rstest/compare/v0.22.0...v0.23.0)

##### Add

- You can now use environment variables in `#[files]` with an optional
default value (see
[#&#8203;277](https://redirect.github.com/la10736/rstest/pull/277)).
- You can now set a base_dir for `#[files]` with the `$[base_dir =
"..."]` attribute (see
[#&#8203;277](https://redirect.github.com/la10736/rstest/pull/277)).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 13:40:35 +00:00
renovate[bot]
968e3934d2
chore(deps): update rust crate tempfile to v3.13.0 (#1266)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tempfile](https://stebalien.com/projects/tempfile-rs/)
([source](https://redirect.github.com/Stebalien/tempfile)) |
dev-dependencies | minor | `3.12.0` -> `3.13.0` |

---

### Release Notes

<details>
<summary>Stebalien/tempfile (tempfile)</summary>

###
[`v3.13.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3130)

[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.12.0...v3.13.0)

- Add `with_suffix` constructors for easily creating new temporary files
with a specific suffix (e.g., a specific file extension). Thanks to
[@&#8203;Borgerr](https://redirect.github.com/Borgerr).
-   Update dependencies (fastrand & rustix).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 13:05:11 +00:00