mirror of
https://github.com/ratatui/ratatui.git
synced 2025-09-27 04:50:46 +00:00

See https://docs.github.com/en/copilot/how-tos/agents/copilot-code-review/using-copilot-code-review These instructions will be used by copilot when it performs automated PR reviews, and helps provide guardrails for our standards. Over time we might grow these to capture any consistent problems that we start seeing when reviewing. --------- Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
4.1 KiB
4.1 KiB
GitHub Copilot Code Review Instructions
General Review Principles
Pull Request Size and Scope
- Flag large PRs: Comment if a PR changes more than 500 lines or touches many unrelated areas
- Suggest splitting: Recommend breaking large changes into smaller, focused PRs
- Question scope creep: Ask about unrelated changes that seem outside the PR's stated purpose
Code Quality and Style
- Check adherence to style guidelines: Verify changes follow the project's Rust conventions in CONTRIBUTING.md
- Verify xtask compliance: Ensure
cargo xtask format
andcargo xtask lint
would pass - Look for AI-generated patterns: Be suspicious of verbose, overly-commented, or non-idiomatic code
Architectural Considerations
- Reference ARCHITECTURE.md: Point to ARCHITECTURE.md for changes affecting crate boundaries
- Question fundamental changes: Flag modifications to core configuration, linting rules, or build setup without clear justification
- Verify appropriate crate placement: Ensure changes are in the correct crate per the modular structure
Breaking Changes and Deprecation
- Require deprecation: Insist on deprecation warnings rather than immediate removal of public APIs
- Ask for migration path: Request clear upgrade instructions for breaking changes
- Suggest feature flags: Recommend feature flags for experimental or potentially disruptive changes
- Reference versioning policy: Point to the requirement of at least one version notice before removal
Testing and Documentation
- Verify test coverage: Ensure new functionality includes appropriate tests
- Check for test removal: Question any removal of existing tests without clear justification
- Require documentation: Ensure public APIs are documented with examples
- Validate examples: Check that code examples are minimal and follow project style
Specific Areas of Concern
Configuration Changes
- Lint configuration: Question changes to
.clippy.toml
,rustfmt.toml
, or CI configuration - Cargo.toml modifications: Scrutinize dependency changes or workspace modifications
- Build system changes: Require justification for xtask or build process modifications
Large Code Additions
- Question necessity: Ask if large code additions could be implemented more simply
- Check for duplication: Look for code that duplicates existing functionality
- Verify integration: Ensure new code integrates well with existing patterns
File Organization
- Validate module structure: Ensure new modules follow the project's organization
- Check import organization: Verify imports follow the std/external/local grouping pattern
- Review file placement: Confirm files are in appropriate locations per ARCHITECTURE.md
Comment Templates
For Large PRs
This PR seems quite large with changes across multiple areas. Consider splitting it into smaller, focused PRs:
- Core functionality changes
- Documentation updates
- Test additions
- Configuration changes
See our [contribution guidelines](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#keep-prs-small-intentional-and-focused) for more details.
For Breaking Changes
This appears to introduce breaking changes. Please consider:
- Adding deprecation warnings instead of immediate removal
- Providing a clear migration path in the PR description
- Following our [deprecation policy](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#deprecation-notice)
For Configuration Changes
Changes to project configuration (linting, formatting, build) should be discussed first. Please explain:
- Why this change is necessary
- What problem it solves
- Whether it affects contributor workflow
For Style Issues
Please run `cargo xtask format` and `cargo xtask lint` to ensure code follows our style guidelines. See [CONTRIBUTING.md](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#code-formatting) for details.