Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: webdav/forget: correctly use application config #1241

Merged
merged 4 commits into from
Sep 18, 2024

Conversation

nardoor
Copy link
Contributor

@nardoor nardoor commented Sep 17, 2024

The inner_run implementation used self
to read its config when it should use RUSTIC_APP.config().

Some might say this is counterintuitive.
fixes #1163
also now correctly respects having prune = true in the config profile.

The `inner_run` implementation used `self`
to read its config when it should use `RUSTIC_APP.config()`.

Some might say this is counterintuitive.
@nardoor
Copy link
Contributor Author

nardoor commented Sep 17, 2024

@aawsome @simonsan
The logic that caused this bug is very counterintuitive to me.
This bug happened once, and nothing in the type system (compile time) will prevent anyone to re-implement it later on.

I wish abscissa_core had some way of mutating structures like WebdavCmd instead of having the truthful config in the RUSTIC_APP static.

@aawsome aawsome changed the title fix(webdav): correctly use application config fix: webdav/forget: correctly use application config Sep 17, 2024
In commands that have configurations from
the ENV and the TOML (on top of CLI),
a confusion between RUSTIC_APP.config()
and &self (see `inner_run` impls) could
lead to parts of the user configured options
to be ignored.

For now we warn about this in the code.
But some design change should be decided
in order to avoid these risks in the future.
@nardoor nardoor self-assigned this Sep 17, 2024
aawsome
aawsome previously approved these changes Sep 18, 2024
src/commands/forget.rs Outdated Show resolved Hide resolved
src/commands/forget.rs Outdated Show resolved Hide resolved
src/commands/forget.rs Outdated Show resolved Hide resolved
@simonsan simonsan added this pull request to the merge queue Sep 18, 2024
Merged via the queue into main with commit b865901 Sep 18, 2024
25 checks passed
@simonsan simonsan deleted the fix/webdav_configuration_bug branch September 18, 2024 14:54
simonsan pushed a commit that referenced this pull request Sep 29, 2024
## 🤖 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](v0.8.1...v0.9.0)
- 2024-09-29

### Added

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

### Fixed

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

### Other

- update installation instructions in readme to use `--locked` flag for
install from crates.io
- *(deps)* lock file maintenance
([#1269](#1269))
- delete unused xtask pattern directory
- *(deps)* update rust crate rstest to 0.23
([#1267](#1267))
- *(deps)* update rust crate tempfile to v3.13.0
([#1266](#1266))
- *(deps)* update marcoieni/release-plz-action digest to 8b0f89a
([#1265](#1265))
- *(deps)* update embarkstudios/cargo-deny-action action to v2
([#1259](#1259))
- *(deps)* update rustsec/audit-check action to v2
([#1260](#1260))
- *(deps)* update softprops/action-gh-release action to v2
([#1258](#1258))
- *(deps)* update embarkstudios/cargo-deny-action digest to 3f4a782
([#1228](#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](#1255))
- Reduce memory usage of restore
([#1069](#1069))
- Update to newest rustic_core
([#1248](#1248))
- update RepositoryErrorKind rustdoc following rustic_core change
([#1237](#1237))
- set development version
- add flag for building with self-update feature for nightly and CD
- Remove self-update from default crate features
([#1139](#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 <[email protected]>
simonsan pushed a commit that referenced this pull request Oct 2, 2024
## 🤖 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](v0.8.1...v0.9.0)
- 2024-09-29

### Added

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

### Fixed

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

### Other

- update installation instructions in readme to use `--locked` flag for
install from crates.io
- *(deps)* lock file maintenance
([#1269](#1269))
- delete unused xtask pattern directory
- *(deps)* update rust crate rstest to 0.23
([#1267](#1267))
- *(deps)* update rust crate tempfile to v3.13.0
([#1266](#1266))
- *(deps)* update marcoieni/release-plz-action digest to 8b0f89a
([#1265](#1265))
- *(deps)* update embarkstudios/cargo-deny-action action to v2
([#1259](#1259))
- *(deps)* update rustsec/audit-check action to v2
([#1260](#1260))
- *(deps)* update softprops/action-gh-release action to v2
([#1258](#1258))
- *(deps)* update embarkstudios/cargo-deny-action digest to 3f4a782
([#1228](#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](#1255))
- Reduce memory usage of restore
([#1069](#1069))
- Update to newest rustic_core
([#1248](#1248))
- update RepositoryErrorKind rustdoc following rustic_core change
([#1237](#1237))
- set development version
- add flag for building with self-update feature for nightly and CD
- Remove self-update from default crate features
([#1139](#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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

WebDAV configuration isn't working in windows
3 participants