From 3e55c38f38e6723b7e1feeb4025a2db5073c2d32 Mon Sep 17 00:00:00 2001 From: hellno Date: Thu, 11 Jun 2026 15:21:57 +0200 Subject: [PATCH 1/2] ci: create the generate destination dir before rendering the template cargo-generate's --destination parent directory must already exist; CI never created it, so the generate step failed with 'No such file or directory' on the first real public-runner run. Create it with mkdir -p first (all three jobs). --- .github/workflows/ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7450a0b..7a46de1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,7 +47,9 @@ jobs: # project confuses cargo, see rust-lang/cargo#9922). --silent uses the placeholder # defaults (bundle_qualifier=com, bundle_org=example). - name: Generate a project from the template - run: cargo generate --path . --name deck-ci --silent --vcs none --destination "$RUNNER_TEMP/gen" + run: | + mkdir -p "$RUNNER_TEMP/gen" + cargo generate --path . --name deck-ci --silent --vcs none --destination "$RUNNER_TEMP/gen" # No toolchain pin here: rust-toolchain.toml (copied into the generated project) is # the single source of truth; rustup auto-installs it on the first cargo call. - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 @@ -88,7 +90,9 @@ jobs: with: tool: cargo-generate - name: Generate a project from the template - run: cargo generate --path . --name deck-ci --silent --vcs none --destination "$RUNNER_TEMP/gen" + run: | + mkdir -p "$RUNNER_TEMP/gen" + cargo generate --path . --name deck-ci --silent --vcs none --destination "$RUNNER_TEMP/gen" - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: ${{ runner.temp }}/gen/deck-ci @@ -117,7 +121,9 @@ jobs: with: tool: cargo-generate,cargo-deny - name: Generate a project from the template - run: cargo generate --path . --name deck-ci --silent --vcs none --destination "$RUNNER_TEMP/gen" + run: | + mkdir -p "$RUNNER_TEMP/gen" + cargo generate --path . --name deck-ci --silent --vcs none --destination "$RUNNER_TEMP/gen" - name: cargo-deny check working-directory: ${{ runner.temp }}/gen/deck-ci run: cargo deny check advisories bans sources licenses From a3425a467a9ccadfbd47baf08205cc4851379bf4 Mon Sep 17 00:00:00 2001 From: hellno Date: Thu, 11 Jun 2026 15:38:54 +0200 Subject: [PATCH 2/2] fix(overlay): gate submodules to macOS so Linux --features overlay is clean Every overlay consumer is cfg(target_os=macos), but the submodules were declared unconditionally, so a Linux --features overlay build compiled them with zero users and clippy -D warnings rejected 12 dead-code items. Gate the mods to macOS. macOS still builds + runs all 15 overlay tests; Linux overlay stays a compile-only no-op. Pre-existing since the overlay feature landed; surfaced now that CI runs on Linux for the first time. --- src/overlay/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/overlay/mod.rs b/src/overlay/mod.rs index bdf9d22..07a50f4 100644 --- a/src/overlay/mod.rs +++ b/src/overlay/mod.rs @@ -15,10 +15,19 @@ //! GPUI `Global`, then `cx.notify()`. `upgrade()` returning `None` is the natural //! no-op after the overlay closes — no panic, no leaked task. +// macOS-only in v1: the overlay windows + their objc2 panel hardening only exist on +// macOS, so every consumer below is `#[cfg(target_os = "macos")]`. Gate the submodules +// to match — otherwise a Linux `--features overlay` build compiles them with zero users +// and clippy's `-D warnings` rejects the dead code. `install()` stays a no-op on Linux. +#[cfg(target_os = "macos")] mod harden; +#[cfg(target_os = "macos")] mod pill; +#[cfg(target_os = "macos")] mod rail; +#[cfg(target_os = "macos")] mod state; +#[cfg(target_os = "macos")] mod status; #[cfg(target_os = "macos")]