diff --git a/CHANGELOG.md b/CHANGELOG.md index c679d18..231ccba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to bbcom are documented here. The format is based on ## [Unreleased] +### Fixed + +- MCUmgr reset-disconnect unit test now uses `std::io::Error::other`, so Clippy + `-D warnings` on the Quality workflow passes again. + ## [1.0.4] - 2026-08-27 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dec4971..26b3d4a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,8 +18,9 @@ Before opening a pull request, run: pnpm precommit:full ``` -CI runs static checks only (lint, build, architecture boundaries, Rust fmt and -clippy). Full test suites are enforced locally via the pre-push hook. +CI (`quality.yml`) runs static checks only: frontend lint/format/architecture/ +build, plus Rust IPC-binding check, `cargo fmt --check`, and Clippy +`-D warnings`. Full test suites are enforced locally via the pre-push hook. Stage the complete change before committing: the hook rejects unstaged or non-ignored untracked files so its result always applies to the staged snapshot. @@ -39,17 +40,19 @@ legacy data with a regression test. ## Quality gate -The versioned Git pre-commit hook enforces frontend lint/format/build/test, -global and P0 coverage, browser-mock E2E, architecture, audit, Rust -fmt/Clippy/tests/llvm-cov, and the base/head frontend benchmark comparison. -It uses the repository-pinned Node, pnpm, Rust, `cargo-llvm-cov`, and -`cargo-audit` versions. To ensure it validates exactly the index Git will -commit, it rejects unstaged or non-ignored untracked files. Do not use +The versioned Git pre-commit hook runs the fast local gate: toolchain pin +check, frontend lint/format, architecture, and frontend build. The pre-push +hook then runs frontend and Rust tests plus browser-mock E2E. Neither hook +currently enforces coverage percentages, `cargo-llvm-cov`, `cargo-audit`, or +frontend benchmarks. CI additionally runs architecture self-tests and CSS +token checks. To ensure it validates exactly the index Git will commit, +pre-commit rejects unstaged or non-ignored untracked files. Do not use `--no-verify` to bypass it. -GitHub Actions is intentionally release-only: it runs after an exact -`vX.Y.Z` tag and performs three-platform release assembly and smoke verification -rather than repeating local PR checks. Windows and macOS platform signing is +GitHub Actions `quality.yml` runs on pull requests and `master` pushes (and +is reused by the tagged release workflow). Tags matching `vX.Y.Z` start +`release.yml`, which repeats those static checks, then builds three-platform +installers and smoke-tests them. Windows and macOS platform signing is enabled when the corresponding complete secret set is configured. Tags matching `vX.Y.Z` produce a draft release containing Windows NSIS, macOS @@ -133,7 +136,8 @@ release workflow. The release workflow: -1. Runs the shared quality gate (lint, architecture, frontend/Rust tests, browser E2E). +1. Runs the shared quality gate (lint, format, architecture, frontend build, + Rust fmt/Clippy). 2. Builds Windows NSIS, macOS DMG, and Linux AppImage/deb installers. 3. Runs installer install/launch/uninstall smoke checks. 4. Attaches SBOM, license inventories, checksums, Sigstore bundles (Linux), and diff --git a/src-tauri/src/commands/mcumgr.rs b/src-tauri/src/commands/mcumgr.rs index 1693b62..5ed109e 100644 --- a/src-tauri/src/commands/mcumgr.rs +++ b/src-tauri/src/commands/mcumgr.rs @@ -1524,10 +1524,7 @@ mod tests { )); assert!(is_expected_reset_disconnect(&broken)); - let other = MCUmgrClientError::ReaderError(std::io::Error::new( - std::io::ErrorKind::Other, - "device removed", - )); + let other = MCUmgrClientError::ReaderError(std::io::Error::other("device removed")); assert!(is_expected_reset_disconnect(&other)); let rejected =