BurntSushi/ripgrep
How to contribute
ripgrep is maintained primarily by Andrew Gallant. Contributions are welcome but the project is opinionated about scope and quality. The canonical starting point is the README, the GUIDE, and the FAQ.
This section covers what you need to know to land a change.
Sub-pages
- Development workflow — branch, build, test, PR
- Testing — unit tests, integration tests, the
tests/harness - Debugging —
--debug,--trace, common pitfalls - Patterns and conventions — coding style and project conventions
- Tooling — formatting, linting, CI, release
Pickup expectations
- The repository is
BurntSushi/ripgrepon GitHub. The default branch ismaster. - Open an issue before starting non-trivial work. Andrew is responsive and explicit about whether a feature fits ripgrep's scope.
- Bug reports should include the output of
rg --version, the platform, and a minimal reproduction. - The release-notes-of-record is
CHANGELOG.md, not GitHub release notes. PRs that fix bugs should add aBUG #NNNNentry; new features addFEATURE #NNNN.
Definition of done
A change is mergeable when:
cargo test --allpasses locally.cargo clippy --allis clean (no new warnings introduced).cargo fmthas been run;rustfmt.tomlcontrols style.- CI is green across all platforms in
.github/workflows/ci.yml. - New behaviour has either an integration test in
tests/feature.rs(or a more specific file) or a unit test alongside the affected code. CHANGELOG.mdhas an entry under theTBDsection.- New flags include both short and long doc strings (
Flag::doc_shortandFlag::doc_long); see Patterns and conventions.
Scope
ripgrep aims to be fast, correct, and portable. Common reasons a feature is rejected:
- It would slow down the default search path, even slightly.
- It would require depending on a non-portable system library.
- It can be done by chaining ripgrep with another tool (e.g.,
deltafor syntax-highlighted output). - It duplicates functionality already provided by
--pre(preprocessor) or--pre-glob.
When in doubt, file an issue first.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.