Skip to content

ci: larql-cli clippy intentionally disabled since 2026-05-10 — 82-112 pre-existing errors need clearing #169

Description

@metavacua

Problem

.github/workflows/larql-cli.yml contains this comment at line 107–112:

# Clippy is intentionally skipped: as of 2026-05-10 `larql-cli` carries
# ~82 pre-existing errors under default features and ~112 under
# `--no-default-features` (mostly `large_enum_variant` and `dead_code`
# on metal-only paths). Re-enable once that backlog is cleared; the other
# crates' workflows already enforce `clippy -- -D warnings`.

The clippy step has been commented out since at least 2026-05-10. All other crate CI workflows enforce clippy -- -D warnings. larql-cli is the top-level binary crate that aggregates every subcommand; having it unguarded by clippy means regressions can accumulate silently.

Current state

The larql-cli/src/main.rs has crate-wide #![allow(...)] directives for:

  • clippy::large_enum_variant
  • clippy::type_complexity
  • clippy::too_many_arguments
  • clippy::doc_overindented_list_items

Some warnings are suppressed via #![allow]; others (particularly dead_code on metal-only paths that are #[cfg(target_os = "macos")]) are only visible under --features gpu on macOS.

Steps to clear the backlog

  1. Run cargo clippy -p larql-cli --no-default-features --all-targets -- -D warnings and fix all errors.
  2. Run cargo clippy -p larql-cli --features gpu --all-targets -- -D warnings on macOS and fix metal-path dead_code.
  3. Re-enable the clippy step in .github/workflows/larql-cli.yml.
  4. Remove #![allow(...)] directives from main.rs where the underlying issue is genuinely fixed (vs. silenced).

Notes

  • The --all-targets flag is required to include tests and examples; the convert_moe_to_per_layer example is currently excluded from CI due to an API break, which hides its clippy errors.
  • The large_enum_variant warnings on the Commands enum are by-design (the enum drives the main dispatch table and cannot be split without an intermediate boxing pass); document-and-allow is acceptable for that specific case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions