diff --git a/.github/workflows/daily_security.yml b/.github/workflows/daily_security.yml index d9ba37ed2..0f59713f2 100644 --- a/.github/workflows/daily_security.yml +++ b/.github/workflows/daily_security.yml @@ -12,7 +12,7 @@ jobs: audit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998 # v2.0.0 diff --git a/.github/workflows/pr_pre-commit.yaml b/.github/workflows/pr_pre-commit.yaml index 105733ddf..dd1ccf1a7 100644 --- a/.github/workflows/pr_pre-commit.yaml +++ b/.github/workflows/pr_pre-commit.yaml @@ -7,7 +7,7 @@ on: env: CARGO_TERM_COLOR: always - RUST_TOOLCHAIN_VERSION: "nightly-2025-10-23" + RUST_TOOLCHAIN_VERSION: "nightly-2026-02-24" permissions: {} @@ -15,11 +15,11 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false fetch-depth: 0 - - uses: stackabletech/actions/run-pre-commit@75e0756966dea229d697165bfd06ba79abcda72c # v0.10.3 + - uses: stackabletech/actions/run-pre-commit@c34dbb4f27b274736c7d2edc6f6f30a03d03edf5 # v0.12.2 with: rust: ${{ env.RUST_TOOLCHAIN_VERSION }} # rust-src is required for trybuild stderr output comparison to work diff --git a/.github/workflows/pr_security-checks.yml b/.github/workflows/pr_security-checks.yml index 0110a3a47..37858f4be 100644 --- a/.github/workflows/pr_security-checks.yml +++ b/.github/workflows/pr_security-checks.yml @@ -8,7 +8,7 @@ env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: "0" CARGO_PROFILE_DEV_DEBUG: "0" - RUST_TOOLCHAIN_VERSION: "1.89.0" + RUST_TOOLCHAIN_VERSION: "1.93.0" RUSTFLAGS: "-D warnings" RUSTDOCFLAGS: "-D warnings" RUST_LOG: "info" @@ -23,16 +23,16 @@ jobs: env: RUSTC_BOOTSTRAP: 1 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} - - uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1 + - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2 with: key: udeps - - run: cargo install --locked cargo-udeps@0.1.59 + - run: cargo install --locked cargo-udeps@0.1.60 - run: cargo udeps --all-targets --all-features cargo-deny: @@ -48,12 +48,12 @@ jobs: continue-on-error: ${{ matrix.checks == 'advisories' }} steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} - - uses: EmbarkStudios/cargo-deny-action@76cd80eb775d7bbbd2d80292136d74d39e1b4918 # v2.0.14 + - uses: EmbarkStudios/cargo-deny-action@3fd3802e88374d3fe9159b834c7714ec57d6c979 # v2.0.15 with: command: check ${{ matrix.checks }} diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index c2b1bd082..14a6f1846 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -13,7 +13,7 @@ on: - crates/** env: - RUST_TOOLCHAIN_VERSION: "1.89.0" + RUST_TOOLCHAIN_VERSION: "1.93.0" permissions: {} @@ -22,11 +22,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2704540a9..64aeef5ad 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -75,7 +75,7 @@ repos: name: cargo-rustfmt language: system # Pinning to a specific rustc version, so that we get consistent formatting - entry: cargo +nightly-2025-10-23 fmt --all -- --check + entry: cargo +nightly-2026-02-24 fmt --all -- --check stages: [pre-commit, pre-merge-commit] pass_filenames: false files: \.rs$ diff --git a/.vscode/settings.json b/.vscode/settings.json index 35c56cb0d..0048fc9a9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,7 @@ "rust-analyzer.imports.granularity.group": "crate", "rust-analyzer.rustfmt.overrideCommand": [ "rustfmt", - "+nightly-2025-10-23", + "+nightly-2026-02-24", "--edition", "2024", "--" diff --git a/crates/stackable-operator/src/cli/product_config.rs b/crates/stackable-operator/src/cli/product_config.rs index 70c372b39..361c087d5 100644 --- a/crates/stackable-operator/src/cli/product_config.rs +++ b/crates/stackable-operator/src/cli/product_config.rs @@ -76,6 +76,12 @@ impl ProductConfigPath { } } +// NOTE (@Techassi): This attribute should ideally be applied to the unit test function, but rstest +// currently doesn't forward it correctly. +#[allow( + clippy::unwrap_in_result, + reason = "We allow unwraps/expects in this function which returns Result, because the Result doesn't (and shouldn't) capture these errors." +)] #[cfg(test)] mod tests { use std::fs::File; diff --git a/crates/stackable-shared/src/time/duration.rs b/crates/stackable-shared/src/time/duration.rs index 2f7b10c3f..5233901fd 100644 --- a/crates/stackable-shared/src/time/duration.rs +++ b/crates/stackable-shared/src/time/duration.rs @@ -337,10 +337,9 @@ impl Duration { /// not recommended to use the function to construct [`Duration`]s from user provided input. /// Instead, use [`Duration::from_str`] to parse human-readable duration strings. pub const fn from_minutes_unchecked(minutes: u64) -> Self { - let millis = match minutes.checked_mul(DurationUnit::Minutes.millis()) { - Some(millis) => millis, - None => panic!("overflow in Duration::from_minutes"), - }; + let millis = minutes + .checked_mul(DurationUnit::Minutes.millis()) + .expect("overflow in Duration::from_minutes"); Self::from_millis(millis) } @@ -352,10 +351,9 @@ impl Duration { /// not recommended to use the function to construct [`Duration`]s from user provided input. /// Instead, use [`Duration::from_str`] to parse human-readable duration strings. pub const fn from_hours_unchecked(hours: u64) -> Self { - let millis = match hours.checked_mul(DurationUnit::Hours.millis()) { - Some(millis) => millis, - None => panic!("overflow in Duration::from_hours"), - }; + let millis = hours + .checked_mul(DurationUnit::Hours.millis()) + .expect("overflow in Duration::from_hours"); Self::from_millis(millis) } @@ -367,10 +365,9 @@ impl Duration { /// not recommended to use the function to construct [`Duration`]s from user provided input. /// Instead, use [`Duration::from_str`] to parse human-readable duration strings. pub const fn from_days_unchecked(days: u64) -> Self { - let millis = match days.checked_mul(DurationUnit::Days.millis()) { - Some(millis) => millis, - None => panic!("overflow in Duration::from_days"), - }; + let millis = days + .checked_mul(DurationUnit::Days.millis()) + .expect("overflow in Duration::from_days"); Self::from_millis(millis) } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 65c0d610c..c976725f2 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.89.0" +channel = "1.93.0" profile = "default"