Skip to content

feat: enforce unused imports as build errors

Summary

  • Implements GitLab issue #248 (closed) to make unused imports fail builds instead of just warning
  • Adds workspace lint configuration with unused_imports = "deny"
  • Configures all subcrates to inherit workspace lints
  • Fixes existing clippy format string issues for compliance
  • Fixes conditional compilation import issues discovered during CI
  • Updates development documentation with new code quality requirements

Changes

  • Root Cargo.toml: Added [workspace.lints.rust] section with unused_imports = "deny"
  • All 11 subcrates: Added [lints] workspace = true to inherit workspace configuration
  • Source files: Fixed existing clippy uninlined_format_args issues to ensure builds pass
  • Conditional imports: Moved imports inside #[cfg(...)] blocks to prevent unused import errors in different build configurations
  • Documentation: Updated development guides with code quality requirements and mise commands

Benefits

  • Prevents code bloat: Unused imports now fail builds, preventing accumulation over time
  • Consistent code quality: All workspace crates follow the same import hygiene standards
  • Automated enforcement: Integrates seamlessly with existing CI/linting infrastructure
  • Developer experience: Clear feedback when imports are unnecessary
  • Better documentation: Developers now have clear guidance on quality requirements

Testing

  • Local builds pass with cargo check --workspace
  • Clippy linting passes with CI configuration
  • Release mode builds tested to simulate CI conditions
  • Conditional compilation scenarios verified

This extends the project's existing "warnings as errors" philosophy to import hygiene, ensuring consistent code quality across the entire workspace.

Closes #248 (closed)

Edited by Dmitry Gruzd

Merge request reports

Loading