Background
Currently we use both ruff (for linting) and pyink (for formatting) in our pre-commit pipeline. Since we switched to pyink for formatting to support 2-space indentation, we should evaluate whether ruff is still providing enough value to justify the complexity.
Current Setup
- ruff: Python linting (pycodestyle, pyflakes, etc.)
- pyink: Python formatting with 2-space indentation
- mypy: Type checking
- bandit: Security scanning
Considerations
Pros of keeping ruff:
- Very fast (Rust-based)
- Comprehensive linting rules
- Active development
- Industry standard
Cons of keeping ruff:
- Additional tool to configure and maintain
- Some overlap with pyink's style checking
- Added complexity for developers
Options to Evaluate
- Keep current setup - ruff + pyink + mypy
- Remove ruff entirely - rely on pyink + mypy + bandit
- Minimal ruff config - keep only basic error checking (F, E, W codes)
- Replace with flake8 - more traditional, potentially simpler
Success Criteria
- Maintain code quality standards
- Minimize developer friction
- Keep CI/CD pipeline efficient
- Ensure 2-space indentation is enforced
Next Steps
Background
Currently we use both ruff (for linting) and pyink (for formatting) in our pre-commit pipeline. Since we switched to pyink for formatting to support 2-space indentation, we should evaluate whether ruff is still providing enough value to justify the complexity.
Current Setup
Considerations
Pros of keeping ruff:
Cons of keeping ruff:
Options to Evaluate
Success Criteria
Next Steps