fix(engine,ci): keep clippy gate off vendored crates; fix CUDA submod…#176
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…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.CI Engine job (clippy) — the real blocker
cargo clippy -- -D warningslinted the vendored llama-cpp-rs cratesbecause a path dependency living under the workspace root is ALWAYS a
workspace member (verified: cargo
excludeand 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 warningsturned 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.
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).
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: trueso a cache outage degrades to a slower cachelessbuild (sccache/S3 still carries the C++/CUDA objects) instead of failing.