izderadicka / audioserve

Simple personal server to serve audiofiles files from folders. Intended primarily for audio books, but anything with decent folder structure will do.
723 stars 36 forks source link

fix(deps): update rust crate thiserror to v2 #412

Open renovate[bot] opened 2 weeks ago

renovate[bot] commented 2 weeks ago

This PR contains the following updates:

Package Type Update Change
thiserror dependencies major 1.0 -> 2.0

Release Notes

dtolnay/thiserror (thiserror) ### [`v2.0.1`](https://redirect.github.com/dtolnay/thiserror/releases/tag/2.0.1) [Compare Source](https://redirect.github.com/dtolnay/thiserror/compare/2.0.0...2.0.1) - Support errors that contain a dynamically sized final field ([#​375](https://redirect.github.com/dtolnay/thiserror/issues/375)) - Improve inference of trait bounds for fields that are interpolated multiple times in an error message ([#​377](https://redirect.github.com/dtolnay/thiserror/issues/377)) ### [`v2.0.0`](https://redirect.github.com/dtolnay/thiserror/releases/tag/2.0.0) [Compare Source](https://redirect.github.com/dtolnay/thiserror/compare/1.0.68...2.0.0) #### Breaking changes - Referencing keyword-named fields by a raw identifier like `{r#type}` inside a format string is no longer accepted; simply use the unraw name like `{type}` ([#​347](https://redirect.github.com/dtolnay/thiserror/issues/347)) This aligns thiserror with the standard library's formatting macros, which gained support for implicit argument capture later than the release of this feature in thiserror 1.x. ```rust #[derive(Error, Debug)] #[error("... {type} ...")] // Before: {r#type} pub struct Error { pub r#type: Type, } ``` - Trait bounds are no longer inferred on fields whose value is shadowed by an explicit named argument in a format message ([#​345](https://redirect.github.com/dtolnay/thiserror/issues/345)) ```rust // Before: impl Display for Error // After: impl Display for Error #[derive(Error, Debug)] #[error("{thing:o}", thing = "...")] pub struct Error { thing: T, } ``` - Tuple structs and tuple variants can no longer use numerical `{0}` `{1}` access at the same time as supplying extra positional arguments for a format message, as this makes it ambiguous whether the number refers to a tuple field vs a different positional arg ([#​354](https://redirect.github.com/dtolnay/thiserror/issues/354)) ```rust #[derive(Error, Debug)] #[error("ambiguous: {0} {}", $N)] // ^^^ Not allowed, use #[error("... {0} {n}", n = $N)] pub struct TupleError(i32); ``` - Code containing invocations of thiserror's `derive(Error)` must now have a direct dependency on the `thiserror` crate regardless of the error data structure's contents ([#​368](https://redirect.github.com/dtolnay/thiserror/issues/368), [#​369](https://redirect.github.com/dtolnay/thiserror/issues/369), [#​370](https://redirect.github.com/dtolnay/thiserror/issues/370), [#​372](https://redirect.github.com/dtolnay/thiserror/issues/372)) #### Features - Support disabling thiserror's standard library dependency by disabling the default "std" Cargo feature: `thiserror = { version = "2", default-features = false }` ([#​373](https://redirect.github.com/dtolnay/thiserror/issues/373)) - Support using `r#source` as field name to opt out of a field named "source" being treated as an error's `Error::source()` ([#​350](https://redirect.github.com/dtolnay/thiserror/issues/350)) ```rust #[derive(Error, Debug)] #[error("{source} ==> {destination}")] pub struct Error { r#source: char, destination: char, } let error = Error { source: 'S', destination: 'D' }; ``` - Infinite recursion in a generated Display impl now produces an `unconditional_recursion` warning ([#​359](https://redirect.github.com/dtolnay/thiserror/issues/359)) ```rust #[derive(Error, Debug)] #[error("??? {self}")] pub struct Error; ``` - A new attribute `#[error(fmt = path::to::myfmt)]` can be used to write formatting logic for an enum variant out-of-line ([#​367](https://redirect.github.com/dtolnay/thiserror/issues/367)) ```rust #[derive(Error, Debug)] pub enum Error { #[error(fmt = demo_fmt)] Demo { code: u16, message: Option }, } fn demo_fmt(code: &u16, message: &Option, formatter: &mut fmt::Formatter) -> fmt::Result { write!(formatter, "{code}")?; if let Some(msg) = message { write!(formatter, " - {msg}")?; } Ok(()) } ``` - Enums with an enum-level format message are now able to have individual variants that are `transparent` to supersede the enum-level message ([#​366](https://redirect.github.com/dtolnay/thiserror/issues/366)) ```rust #[derive(Error, Debug)] #[error("my error {0}")] pub enum Error { Json(#[from] serde_json::Error), Yaml(#[from] serde_yaml::Error), #[error(transparent)] Other(#[from] anyhow::Error), } ```

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: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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



This PR was generated by Mend Renovate. View the repository job log.

renovate[bot] commented 2 weeks ago

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package thiserror@1.0.68 --precise 2.0.0
    Updating crates.io index
error: failed to select a version for the requirement `thiserror = "^1.0.63"`
candidate versions found which didn't match: 2.0.0
location searched: crates.io index
required by package `zip v2.2.0`
    ... which satisfies dependency `zip = "^2.0.0"` (locked to 2.2.0) of package `async-zip v0.1.1 (/tmp/renovate/repos/github/izderadicka/audioserve/crates/async-zip)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/async-zip/Cargo.toml --package thiserror@1.0.68 --precise 2.0.0
    Updating crates.io index
error: failed to select a version for the requirement `thiserror = "^1.0.63"`
candidate versions found which didn't match: 2.0.0
location searched: crates.io index
required by package `zip v2.2.0`
    ... which satisfies dependency `zip = "^2.0.0"` (locked to 2.2.0) of package `async-zip v0.1.1 (/tmp/renovate/repos/github/izderadicka/audioserve/crates/async-zip)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/collection/Cargo.toml --package thiserror@1.0.68 --precise 2.0.0
    Updating crates.io index
error: failed to select a version for the requirement `thiserror = "^1.0.63"`
candidate versions found which didn't match: 2.0.0
location searched: crates.io index
required by package `zip v2.2.0`
    ... which satisfies dependency `zip = "^2.0.0"` (locked to 2.2.0) of package `async-zip v0.1.1 (/tmp/renovate/repos/github/izderadicka/audioserve/crates/async-zip)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/file-cache/Cargo.toml --package thiserror@1.0.68 --precise 2.0.0
    Updating crates.io index
error: failed to select a version for the requirement `thiserror = "^1.0.63"`
candidate versions found which didn't match: 2.0.0
location searched: crates.io index
required by package `zip v2.2.0`
    ... which satisfies dependency `zip = "^2.0.0"` (locked to 2.2.0) of package `async-zip v0.1.1 (/tmp/renovate/repos/github/izderadicka/audioserve/crates/async-zip)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/media_info/Cargo.toml --package thiserror@1.0.68 --precise 2.0.0
    Updating crates.io index
error: failed to select a version for the requirement `thiserror = "^1.0.63"`
candidate versions found which didn't match: 2.0.0
location searched: crates.io index
required by package `zip v2.2.0`
    ... which satisfies dependency `zip = "^2.0.0"` (locked to 2.2.0) of package `async-zip v0.1.1 (/tmp/renovate/repos/github/izderadicka/audioserve/crates/async-zip)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/websock/Cargo.toml --package thiserror@1.0.68 --precise 2.0.0
    Updating crates.io index
error: failed to select a version for the requirement `thiserror = "^1.0.63"`
candidate versions found which didn't match: 2.0.0
location searched: crates.io index
required by package `zip v2.2.0`
    ... which satisfies dependency `zip = "^2.0.0"` (locked to 2.2.0) of package `async-zip v0.1.1 (/tmp/renovate/repos/github/izderadicka/audioserve/crates/async-zip)`
codecov[bot] commented 2 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 55.26%. Comparing base (b878c92) to head (bbea2de).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #412 +/- ## ========================================== + Coverage 55.24% 55.26% +0.01% ========================================== Files 56 56 Lines 11524 11524 ========================================== + Hits 6367 6369 +2 + Misses 5157 5155 -2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.