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 withunused_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 withcargo 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