Skip to content

Commit 3982cda

Browse files
committed
Merge remote-tracking branch 'origin/main' into feature/broad_snapshot_id
2 parents e6366c6 + 59ad1df commit 3982cda

34 files changed

+1597
-894
lines changed

Cargo.lock

Lines changed: 874 additions & 719 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ rustic_core = { path = "crates/core", version = "0" }
1818
rustic_testing = { path = "crates/testing", version = "0" }
1919

2020
aho-corasick = "1.1.3"
21-
anyhow = "1.0.98"
21+
anyhow = "1.0.99"
2222
bytes = "1.10.1"
2323
displaydoc = "0.2.5"
2424
enum-map = "2.7.3"
25-
log = "0.4.27"
25+
log = "0.4.28"
2626
simplelog = "0.12.2"
27-
thiserror = "2.0.12"
27+
thiserror = "2.0.16"
2828

2929
# dev-dependencies
30-
rstest = "0.25.0"
31-
tempfile = "3.19.1"
30+
rstest = "0.26.1"
31+
tempfile = "3.22.0"
3232

3333
# see: https://nnethercote.github.io/perf-book/build-configuration.html
3434
[profile.dev]

crates/backend/CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.5.3](https://github.com/rustic-rs/rustic_core/compare/rustic_backend-v0.5.2...rustic_backend-v0.5.3) - 2025-09-12
6+
7+
### Fixed
8+
9+
- fix clippy lints ([#407](https://github.com/rustic-rs/rustic_core/pull/407))
10+
- *(deps)* lock file maintenance rust dependencies (#389)
11+
12+
### Other
13+
14+
- update dependencies ([#428](https://github.com/rustic-rs/rustic_core/pull/428))
15+
- update to 2024 edition and fix clippy lints (#399)
16+
- update dependencies and fix clippy lints / remove opendal::ftp support (#405)
17+
- Update opendal to 0.51.0 (#391)
18+
519
## [0.5.2](https://github.com/rustic-rs/rustic_core/compare/rustic_backend-v0.5.1...rustic_backend-v0.5.2) - 2024-11-27
620

721
### Fixed

crates/backend/Cargo.toml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustic_backend"
3-
version = "0.5.2"
3+
version = "0.5.3"
44
authors = ["the rustic-rs team"]
55
categories = ["data-structures", "filesystem"]
66
documentation = "https://docs.rs/rustic_backend"
@@ -57,54 +57,54 @@ log = { workspace = true }
5757

5858
# other dependencies
5959
bytes = { workspace = true }
60-
derive_setters = "0.1.6"
61-
humantime = "2.2.0"
60+
derive_setters = "0.1.8"
61+
humantime = "2.3.0"
6262
itertools = "0.14.0"
6363
strum = "0.27"
6464
strum_macros = "0.27"
6565

6666
# general / backend choosing
6767
hex = { version = "0.4.3", features = ["serde"] }
6868
serde = { version = "1.0.219" }
69-
url = "2.5.4"
69+
url = "2.5.7"
7070

7171
# cli support
72-
clap = { version = "4.5.37", optional = true, features = ["derive", "env", "wrap_help"] }
72+
clap = { version = "4.5.47", optional = true, features = ["derive", "env", "wrap_help"] }
7373
conflate = { version = "0.3.3", optional = true }
7474

7575
# local backend
7676
aho-corasick = { workspace = true }
7777
walkdir = "2.5.0"
7878

7979
# rest backend
80-
backon = { version = "1.5.0", optional = true }
81-
reqwest = { version = "0.12.15", default-features = false, features = ["json", "rustls-tls-native-roots", "stream", "blocking"], optional = true }
80+
backon = { version = "1.5.2", optional = true }
81+
reqwest = { version = "0.12.23", default-features = false, features = ["json", "rustls-tls-native-roots", "stream", "blocking"], optional = true }
8282

8383
# rclone backend
84-
rand = { version = "0.9.1", optional = true }
84+
rand = { version = "0.9.2", optional = true }
8585
semver = { version = "1.0.26", optional = true }
8686

8787
# opendal backend
8888
bytesize = "2.0.1"
89-
rayon = { version = "1.10.0", optional = true }
90-
tokio = { version = "1.44.2", optional = true, default-features = false }
91-
typed-path = { version = "0.10.0", optional = true }
89+
rayon = { version = "1.11.0", optional = true }
90+
tokio = { version = "1.47.1", optional = true, default-features = false }
91+
typed-path = { version = "0.11.0", optional = true }
9292

9393
[target.'cfg(not(windows))'.dependencies]
9494
# opendal backend
9595
# - sftp is not supported on windows, see https://github.com/apache/incubator-opendal/issues/2963
9696
# - ftp is temporarily disabled due to dependency on aws-lc-sys
97-
opendal = { version = "0.53.1", features = ["services-b2", "services-sftp", "services-swift", "services-azblob", "services-azdls", "services-cos", "services-fs", "services-dropbox", "services-gdrive", "services-gcs", "services-ghac", "services-http", "services-ipmfs", "services-memory", "services-obs", "services-onedrive", "services-oss", "services-s3", "services-webdav", "services-webhdfs", "services-azfile", "layers-blocking", "layers-throttle", "services-yandex-disk"], optional = true }
97+
opendal = { version = "0.53.3", features = ["services-b2", "services-sftp", "services-swift", "services-azblob", "services-azdls", "services-cos", "services-fs", "services-dropbox", "services-gdrive", "services-gcs", "services-ghac", "services-http", "services-ipmfs", "services-memory", "services-obs", "services-onedrive", "services-oss", "services-s3", "services-webdav", "services-webhdfs", "services-azfile", "layers-blocking", "layers-throttle", "services-yandex-disk"], optional = true }
9898

9999
[target.'cfg(windows)'.dependencies]
100100
# opendal backend
101101
# - ftp is temporarily disabled due to dependency on aws-lc-sys
102-
opendal = { version = "0.53.1", features = ["services-b2", "services-swift", "services-azblob", "services-azdls", "services-cos", "services-fs", "services-dropbox", "services-gdrive", "services-gcs", "services-ghac", "services-http", "services-ipmfs", "services-memory", "services-obs", "services-onedrive", "services-oss", "services-s3", "services-webdav", "services-webhdfs", "services-azfile", "layers-blocking", "layers-throttle", "services-yandex-disk"], optional = true }
102+
opendal = { version = "0.53.3", features = ["services-b2", "services-swift", "services-azblob", "services-azdls", "services-cos", "services-fs", "services-dropbox", "services-gdrive", "services-gcs", "services-ghac", "services-http", "services-ipmfs", "services-memory", "services-obs", "services-onedrive", "services-oss", "services-s3", "services-webdav", "services-webhdfs", "services-azfile", "layers-blocking", "layers-throttle", "services-yandex-disk"], optional = true }
103103

104104
[dev-dependencies]
105105
anyhow = { workspace = true }
106106
rstest = { workspace = true }
107-
toml = "0.8.20"
107+
toml = "0.9.5"
108108

109109
[lints]
110110
workspace = true

crates/config/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
44

55
## [unreleased]
66

7+
## [0.2.3](https://github.com/rustic-rs/rustic_core/compare/rustic_config-v0.2.2...rustic_config-v0.2.3) - 2025-09-12
8+
9+
### Other
10+
11+
- update to 2024 edition and fix clippy lints (#399)
12+
713
## [0.2.2](https://github.com/rustic-rs/rustic_core/compare/rustic_config-v0.2.1...rustic_config-v0.2.2) - 2024-10-03
814

915
### Fixed

crates/config/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustic_config"
3-
version = "0.2.2"
3+
version = "0.2.3"
44
authors = ["the rustic-rs team"]
55
categories = ["config"]
66
documentation = "https://docs.rs/rustic_config"

crates/core/CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,43 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.8.0](https://github.com/rustic-rs/rustic_core/compare/rustic_core-v0.7.3...rustic_core-v0.8.0) - 2025-09-12
6+
7+
### Added
8+
9+
- Add fixed size chunking and allow fine-tune of rabin chunking (#422)
10+
- Add env argument to the run function of command input (#420)
11+
- Show processed file when chunker gives an error (#421)
12+
- snapshots can be identified with latest~N (N >= 0) (#416)
13+
- expose Tree::serialize method
14+
- *(repository)* add progress_bars method
15+
- *(repository)* Add find_ids and stream_files_list (#411)
16+
- *(commands)* Add delete_unchanged option to forget (#386)
17+
- *(commands)* [**breaking**] rename backup skip_identical_parent to skip_if_unchanged (#387)
18+
- *(warmup)* [**breaking**] Add warmup wait command (#379)
19+
20+
### Fixed
21+
22+
- Make example for time format even more explicit (#425)
23+
- Add example for time format (#424)
24+
- fix clippy lints ([#423](https://github.com/rustic-rs/rustic_core/pull/423))
25+
- [**breaking**] Allow to unset append-only mode (#414)
26+
- improve handling of u32 conversions (#412)
27+
- *(repository)* use KeyId in delete_key() (#410)
28+
- Fix repair index (#406)
29+
- Allow to request identical snapshot multiple times (#408)
30+
- fix clippy lints ([#407](https://github.com/rustic-rs/rustic_core/pull/407))
31+
- fix clippy lints
32+
- [**breaking**] Don't panic when reading empty files (#381)
33+
34+
### Other
35+
36+
- update dependencies ([#428](https://github.com/rustic-rs/rustic_core/pull/428))
37+
- Add SnapshotFile::from_strs() to search for multiple snapshots ([#419](https://github.com/rustic-rs/rustic_core/pull/419))
38+
- *(repository)* [**breaking**] Add more control over used keys (#383)
39+
- update to 2024 edition and fix clippy lints (#399)
40+
- update dependencies and fix clippy lints / remove opendal::ftp support (#405)
41+
542
## [0.7.3](https://github.com/rustic-rs/rustic_core/compare/rustic_core-v0.7.2...rustic_core-v0.7.3) - 2024-12-06
643

744
### Fixed

crates/core/Cargo.toml

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustic_core"
3-
version = "0.7.3"
3+
version = "0.8.0"
44
authors = ["the rustic-rs team"]
55
categories = ["data-structures", "encoding", "filesystem"]
66
documentation = "https://docs.rs/rustic_core"
@@ -44,38 +44,38 @@ thiserror = { workspace = true }
4444

4545
# macros
4646
derive_more = { version = "2.0.1", features = ["add", "constructor", "display", "from", "deref", "from_str"] }
47-
derive_setters = "0.1.6"
47+
derive_setters = "0.1.8"
4848

4949
# logging
5050
log = { workspace = true }
5151

5252
# parallelize
5353
crossbeam-channel = "0.5.15"
5454
pariter = "0.5.1"
55-
rayon = "1.10.0"
55+
rayon = "1.11.0"
5656

5757
# crypto
5858
aes256ctr_poly1305aes = { version = "0.2.1", features = ["std"] } # we need std here for error impls
59-
rand = "0.9.1"
59+
rand = "0.9.2"
6060
scrypt = { version = "0.11.0", default-features = false, features = ["std"] } # we need std here for error impls
6161

6262
# serialization / packing
63-
binrw = "0.14.1"
63+
binrw = "0.15.0"
6464
hex = { version = "0.4.3", features = ["serde"] }
6565
integer-sqrt = "0.1.5"
6666
rustic_cdc = "0.3.1"
6767
serde = { version = "1.0.219" }
68-
serde-aux = "4.6.0"
68+
serde-aux = "4.7.0"
6969
serde_derive = "1.0.219"
70-
serde_json = "1.0.140"
71-
serde_with = { version = "3.12.0", features = ["base64"] }
70+
serde_json = "1.0.143"
71+
serde_with = { version = "3.14.0", features = ["base64"] }
7272

7373
# local source/destination
74-
cached = { version = "0.55.1", default-features = false, features = ["proc_macro"] }
74+
cached = { version = "0.56.0", default-features = false, features = ["proc_macro"] }
7575
dunce = "1.0.5"
76-
filetime = "0.2.25"
76+
filetime = "0.2.26"
7777
ignore = "0.4.23"
78-
nix = { version = "0.29.0", default-features = false, features = ["user", "fs"] }
78+
nix = { version = "0.30.1", default-features = false, features = ["user", "fs"] }
7979
path-dedot = "3.1.1"
8080
walkdir = "2.5.0"
8181

@@ -84,7 +84,7 @@ cachedir = "0.3.1"
8484
dirs = "6.0.0"
8585

8686
# cli support
87-
clap = { version = "4.5.37", optional = true, features = ["derive", "env", "wrap_help"] }
87+
clap = { version = "4.5.47", optional = true, features = ["derive", "env", "wrap_help"] }
8888
conflate = { version = "0.3.3", optional = true }
8989

9090
# vfs support
@@ -93,26 +93,26 @@ runtime-format = "0.1.3"
9393
# other dependencies
9494
bytes = { workspace = true }
9595
bytesize = "2.0.1"
96-
chrono = { version = "0.4.40", default-features = false, features = ["clock", "serde"] }
97-
ecow = "0.2.4"
96+
chrono = { version = "0.4.42", default-features = false, features = ["clock", "serde"] }
97+
ecow = "0.2.6"
9898
enum-map = { workspace = true }
9999
enum-map-derive = "0.17.0"
100-
enumset = { version = "1.1.5", features = ["serde"] }
101-
gethostname = "1.0.1"
102-
humantime = "2.2.0"
100+
enumset = { version = "1.1.10", features = ["serde"] }
101+
gethostname = "1.0.2"
102+
humantime = "2.3.0"
103103
itertools = "0.14.0"
104-
quick_cache = "0.6.13"
104+
quick_cache = "0.6.16"
105105
shell-words = "1.1.0"
106-
strum = { version = "0.27.1", features = ["derive"] }
106+
strum = { version = "0.27.2", features = ["derive"] }
107107
zstd = "0.13.3"
108108

109109
[target.'cfg(not(windows))'.dependencies]
110-
sha2 = { version = "0.10.8", features = ["asm"] }
110+
sha2 = { version = "0.10.9", features = ["asm"] }
111111

112112
[target.'cfg(windows)'.dependencies]
113113
# unfortunately, the asm extensions do not build on Windows, see https://github.com/RustCrypto/asm-hashes/issues/17
114114
# and https://github.com/RustCrypto/asm-hashes/pull/issues/78
115-
sha2 = "0.10.8"
115+
sha2 = "0.10.9"
116116

117117
[target.'cfg(not(any(windows, target_os="openbsd")))'.dependencies]
118118
# for local source/destination
@@ -121,22 +121,22 @@ xattr = "1"
121121
[dev-dependencies]
122122
anyhow = { workspace = true }
123123
expect-test = "1.5.1"
124-
flate2 = "1.1.1"
124+
flate2 = "1.1.2"
125125
globset = "0.4.16"
126-
insta = { version = "1.42.2", features = ["redactions", "ron"] }
126+
insta = { version = "1.43.2", features = ["redactions", "ron"] }
127127
mockall = "0.13"
128128
pretty_assertions = "1.4.1"
129129
proptest = { version = "1.7.0", default-features = false, features = ["std"] }
130130
rstest = { workspace = true }
131-
rustdoc-json = "0.9.5"
131+
rustdoc-json = "0.9.7"
132132
# We need to have rustic_backend here, because the doc-tests in lib.rs of rustic_core
133133
rustic_backend = { workspace = true }
134134
rustic_testing = { workspace = true }
135135
rustup-toolchain = "0.1.10"
136136
simplelog = "0.12.2"
137137
tar = "0.4.44"
138138
tempfile = { workspace = true }
139-
toml = "0.8.20"
139+
toml = "0.9.5"
140140

141141
[lints]
142142
workspace = true

crates/core/src/backend/local_destination.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use nix::errno::Errno;
2020
use nix::sys::stat::{Mode, SFlag, mknod};
2121
#[cfg(not(windows))]
2222
use nix::{
23-
fcntl::AtFlags,
23+
fcntl::{AT_FDCWD, AtFlags},
2424
unistd::{Gid, Group, Uid, User, fchownat},
2525
};
2626

@@ -335,7 +335,7 @@ impl LocalDestination {
335335
// use gid from group if valid, else from saved gid (if saved)
336336
let gid = group.or_else(|| meta.gid.map(Gid::from_raw));
337337

338-
fchownat(None, &filename, uid, gid, AtFlags::AT_SYMLINK_NOFOLLOW)
338+
fchownat(AT_FDCWD, &filename, uid, gid, AtFlags::AT_SYMLINK_NOFOLLOW)
339339
.map_err(LocalDestinationErrorKind::FromErrnoError)?;
340340
Ok(())
341341
}
@@ -383,7 +383,7 @@ impl LocalDestination {
383383
let uid = meta.uid.map(Uid::from_raw);
384384
let gid = meta.gid.map(Gid::from_raw);
385385

386-
fchownat(None, &filename, uid, gid, AtFlags::AT_SYMLINK_NOFOLLOW)
386+
fchownat(AT_FDCWD, &filename, uid, gid, AtFlags::AT_SYMLINK_NOFOLLOW)
387387
.map_err(LocalDestinationErrorKind::FromErrnoError)?;
388388
Ok(())
389389
}

0 commit comments

Comments
 (0)