Skip to content

fix(engine,ci): keep clippy gate off vendored crates; fix CUDA submod…#176

Merged
primoco merged 1 commit into
mainfrom
fix/vendor-lint-gate-and-container-git
Jun 6, 2026
Merged

fix(engine,ci): keep clippy gate off vendored crates; fix CUDA submod…#176
primoco merged 1 commit into
mainfrom
fix/vendor-lint-gate-and-container-git

Conversation

@primoco

@primoco primoco commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

…ule checkout

beta.7's release run surfaced three failures, all consequences of the vendoring landing without a real compile/CI pass (CI only runs on main, so the branch never exercised them). This fixes all three; the version stays at 0.6.0-beta.7 so the existing tag/release can be deleted and recreated.

  1. CI Engine job (clippy) — the real blocker
    cargo clippy -- -D warnings linted the vendored llama-cpp-rs crates
    because a path dependency living under the workspace root is ALWAYS a
    workspace member (verified: cargo exclude and a nested [workspace]
    do NOT demote it), and RUSTC_WORKSPACE_WRAPPER runs clippy on every
    member. Upstream's build.rs then tripped clippy::uninlined_format_args
    and missing_docs, which -D warnings turned into hard errors.
    Fix: cargo clippy --no-deps (lint only our own crate). Proven locally
    — full CI-equivalent clippy now exits 0; the vendored crate's own
    warnings are shown but no longer gate. Belt-and-suspenders: the vendored
    manifests are now self-contained (dependency versions inlined from
    upstream's [workspace.dependencies]) and drop [lints] workspace = true,
    so even when compiled as members they carry no pedantic/missing-docs
    opt-in. The root workspace.dependencies/workspace.lints tables (added in
    beta.7) are removed as no longer needed. Dangling upstream [[example]]
    targets (pointing at a non-vendored examples/ dir) are dropped too.

  2. build-cuda (Linux CUDA, container) — submodule checkout
    nvidia/cuda images ship without git, so actions/checkout fell back to the
    REST API tarball, which cannot fetch submodules ("Input 'submodules' not
    supported when falling back to download using the GitHub REST API"). Added
    a git-install step BEFORE checkout so it does a real clone. This is a
    container-only issue: the standard Linux/macOS/Windows runners have git and
    their builds passed (proving the vendored crates + new llama.cpp pin compile
    cross-platform).

  3. build-windows-cuda — transient cache-service failure
    The job died at Swatinem/rust-cache restore (GitHub Actions cache backend
    blip), before any compile, nuking the ~50 min long-pole. Added
    continue-on-error: true so a cache outage degrades to a slower cacheless
    build (sccache/S3 still carries the C++/CUDA objects) instead of failing.

…ule checkout

beta.7's release run surfaced three failures, all consequences of the
vendoring landing without a real compile/CI pass (CI only runs on `main`,
so the branch never exercised them). This fixes all three; the version stays
at 0.6.0-beta.7 so the existing tag/release can be deleted and recreated.

1) CI Engine job (clippy) — the real blocker
   `cargo clippy -- -D warnings` linted the vendored llama-cpp-rs crates
   because a path dependency living under the workspace root is ALWAYS a
   workspace member (verified: cargo `exclude` and a nested `[workspace]`
   do NOT demote it), and RUSTC_WORKSPACE_WRAPPER runs clippy on every
   member. Upstream's build.rs then tripped clippy::uninlined_format_args
   and missing_docs, which `-D warnings` turned into hard errors.
   Fix: `cargo clippy --no-deps` (lint only our own crate). Proven locally
   — full CI-equivalent clippy now exits 0; the vendored crate's own
   warnings are shown but no longer gate. Belt-and-suspenders: the vendored
   manifests are now self-contained (dependency versions inlined from
   upstream's [workspace.dependencies]) and drop `[lints] workspace = true`,
   so even when compiled as members they carry no pedantic/missing-docs
   opt-in. The root workspace.dependencies/workspace.lints tables (added in
   beta.7) are removed as no longer needed. Dangling upstream `[[example]]`
   targets (pointing at a non-vendored examples/ dir) are dropped too.

2) build-cuda (Linux CUDA, container) — submodule checkout
   nvidia/cuda images ship without git, so actions/checkout fell back to the
   REST API tarball, which cannot fetch submodules ("Input 'submodules' not
   supported when falling back to download using the GitHub REST API"). Added
   a git-install step BEFORE checkout so it does a real clone. This is a
   container-only issue: the standard Linux/macOS/Windows runners have git and
   their builds passed (proving the vendored crates + new llama.cpp pin compile
   cross-platform).

3) build-windows-cuda — transient cache-service failure
   The job died at Swatinem/rust-cache restore (GitHub Actions cache backend
   blip), before any compile, nuking the ~50 min long-pole. Added
   `continue-on-error: true` so a cache outage degrades to a slower cacheless
   build (sccache/S3 still carries the C++/CUDA objects) instead of failing.
@primoco primoco merged commit f68a135 into main Jun 6, 2026
@primoco primoco deleted the fix/vendor-lint-gate-and-container-git branch June 11, 2026 08:14
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.

1 participant