Skip to content

ci: pin actions, refresh dependencies, and improve Dependabot config - #68

Merged
Melvin Wang (wmmc88) merged 18 commits into
microsoft:mainfrom
wmmc88:ci/pin-actions-dependabot-refresh
Nov 4, 2026
Merged

Melvin Wang (wmmc88) merged 18 commits into
microsoft:mainfrom
wmmc88:ci/pin-actions-dependabot-refresh

Conversation

@wmmc88

@wmmc88 Melvin Wang (wmmc88) commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Picks up Dan Fiedler (@danfiedler-msft)'s action pinning from #66 and brings it in line with the follow-up work done in microsoft/windows-drivers-rs#745.

Actions are refreshed to their latest releases, and the dtolnay/rust-toolchain steps that used @stable/@nightly now pass toolchain explicitly since a SHA pin no longer carries the toolchain in the ref. Dependabot now groups Cargo updates per dependency and batches minor/patch action bumps, with staggered weekly runs to match windows-drivers-rs.

Also does a one-time Cargo refresh. windows-sys 0.61 moved BOOL to windows_sys::core, so echoapp needed a one-line import fix. Serde, clap, thiserror and prettyplease stay on their latest Syn 2 releases to avoid duplicate syn versions.

Supersedes #66.

Melvin Wang (wmmc88) and others added 11 commits October 22, 2026 14:32
Replace the windows-drivers-rs main-branch patches with the latest
crates.io releases and update the cargo-make loader to wdk-build 0.6.0.
Refresh Cargo.lock while retaining bindgen's compatible Syn 2 resolution.
serde_derive 1.0.229 moved to syn 3 while bindgen, wdk-macros and
clap_derive are still on syn 2, which trips clippy's
multiple_crate_versions lint.
Cargo's build-dir layout v2 nests rust-script's long package name
twice, pushing the cargo-make load_script binary past MAX_PATH. Point
build-dir at a short path via a rust-script-scoped cargo config so
driver builds, which rely on OUT_DIR being under the workspace, are
unaffected.
Bump the pinned actions to their latest releases: checkout v7.0.1,
dependency-review-action v5.0.0, audit-check v2.0.0, and the latest
dtolnay/rust-toolchain v1 commit.

A SHA-pinned dtolnay/rust-toolchain no longer derives the toolchain
from its ref name, so the former @stable and @nightly steps now pass
toolchain explicitly.
Mirror the windows-drivers-rs Dependabot configuration. Cargo updates
are grouped per dependency name, and minor and patch GitHub Actions
updates are batched into one PR while major upgrades stay separate.

Cargo updates run Tuesdays and Actions updates run Thursdays, both at
23:00 UTC, 12 hours apart from the daily 11:00 UTC CI runs.
Raise the anyhow, paste, once_cell, uuid, and windows-sys requirements
to their latest releases and refresh the lockfile. windows-sys 0.61
moves BOOL to windows_sys::core, so echoapp imports it from there.

Syn stays at 2.0.119 for everything built on Windows; bindgen's
prettyplease, clap, serde, and thiserror remain at their latest Syn 2
releases, matching windows-drivers-rs. Syn 3 only appears in the
lockfile through uuid's wasm32-only wasm-bindgen dependency.
Copilot AI auto review requested due to automatic review settings October 28, 2026 15:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved critical findings leave CI dependent on mutable external action code, and the uuid upgrade conflicts with the package’s declared Rust 1.72.1 MSRV.

4 open issues

Review effort: Lite (auto)

Comment thread .github/workflows/build.yaml Resolved
Comment thread .github/workflows/docs.yaml Resolved
Comment thread .github/workflows/lint.yaml Resolved
Comment thread general/echo/kmdf/exe/Cargo.toml Resolved
unicode-ident 1.0.27 is licensed as (MIT OR Apache-2.0) AND Unicode-3.0, which dependency-review-action can't evaluate (actions/dependency-review-action#263). Add a versioned exception, matching windows-drivers-rs.
Copilot AI auto review requested due to automatic review settings October 28, 2026 22:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Critical mutable repository references remain in three workflows, and the dependency-review allow-list targets the wrong anstyle version, leaving active correctness and supply-chain issues unresolved.

4 open issues
1 previously missed issue

In code that hasn't changed since last review

Medium severity Update anstyle allow-list entry to the resolved version

.github/​workflows/​github-dependency-review.yaml:36

The new allow-list entry still names anstyle@1.0.4, but this lockfile now resolves anstyle to 1.0.14 (and the previous lockfile already showed 1.0.13). Because this input uses an exact package URL, the exception will not match the dependency-review result and the workflow can continue to reject the anstyle license. Update both the explanatory version and the package URL to the version actually present in the lockfile.

Review effort: Lite (auto)

dependency-review-action now evaluates AND expressions (actions/dependency-review-action#263 is fixed). unicode-ident 1.0.27 failed only because Unicode-3.0, the successor to Unicode-DFS-2016, was missing from the allowlist.
Copilot AI auto review requested due to automatic review settings October 28, 2026 23:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

A critical build configuration issue causes the cargo make packaging step to panic before loading the driver makefiles because the relocated OUT_DIR prevents wdk-build from finding Cargo.lock.

4 open issues
1 previously missed issue

In code that hasn't changed since last review

High severity Keep wdk-build OUT_DIR within the rust-script project tree

.github/​workflows/​build.yaml:121

This Cargo config is inherited by the cargo process that rust-script starts, so it also moves wdk-build's OUT_DIR under $RUNNER_TEMP/rsb. In wdk-build 0.6.0, the build script locates Cargo.lock by walking the ancestors of OUT_DIR; because this directory is outside the rust-script project, that lookup fails and the cargo make packaging step panics before loading the driver makefiles. The short build directory needs to be kept within the rust-script project tree or the wdk-build lookup needs a different arrangement.

Review effort: Lite (auto)

The exception only matched anstyle 1.0.4, which hasn't been in Cargo.lock for a long time. GitHub reports anstyle 1.0.14 as MIT OR Apache-2.0, so no override is needed.
Copilot AI auto review requested due to automatic review settings November 2, 2026 19:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Validation must be deferred because the WDK/toolchain, Windows CI, kernel-driver dependency, and rust-script path changes require unavailable EWDK/Windows runners to verify.

1 open issue
3 resolved since last review

Review effort: Lite (auto)

Copilot AI auto review requested due to automatic review settings November 2, 2026 19:37

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The package’s declared Rust 1.72.1 MSRV conflicts with the uuid 1.29.0 dependency requiring Rust 1.89.0, leaving an active compatibility issue that must be resolved.

1 open issue

Review effort: Lite (auto)

The 1.72.1 MSRV was stale (uuid 1.29 already requires 1.89, and the WDR
crates require 1.91) and nothing in CI checked it. As samples, these
crates track the toolchain WDR supports rather than declaring their own.

Without the old MSRV, clippy applies its newer lints, so use &raw
pointers instead of implicit reference coercions and switch to
std::sync::LazyLock, which removes the once_cell dependency.
Match the drivers and windows-drivers-rs by keeping every dependency version in [workspace.dependencies]; echoapp keeps only its feature selections.
Copilot AI auto review requested due to automatic review settings November 2, 2026 20:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The combined WDK/toolchain refresh and Windows-specific build-path workaround require EWDK/Windows CI validation to verify cargo-make loading, path behavior, and driver packaging, which is unavailable here.

No open issues 🎉

1 resolved since last review

Review effort: Lite (auto)

…ndabot-refresh

# Conflicts:
#	Cargo.lock
#	Cargo.toml
@wmmc88
Melvin Wang (wmmc88) marked this pull request as ready for review November 3, 2026 02:45
Copilot AI auto review requested due to automatic review settings November 3, 2026 02:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human validation is warranted because the broad dependency and CI refresh changes the Windows FFI and toolchain surface, while the Windows/WDK matrix and dependency-review checks cannot be exercised here.

No open issues 🎉

Review effort: Lite (auto)

Comment thread general/echo/kmdf/exe/Cargo.toml Resolved
Comment thread general/echo/kmdf/exe/Cargo.toml Resolved
@wmmc88
Melvin Wang (wmmc88) enabled auto-merge (squash) November 3, 2026 03:13
@wmmc88
Melvin Wang (wmmc88) requested a review from a team November 3, 2026 06:34
@wmmc88
Melvin Wang (wmmc88) merged commit 0badf91 into microsoft:main Nov 4, 2026
150 checks passed
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.

5 participants