Thanks for your interest in contributing to ouch!
- Code of Conduct
- I want to ask a question or provide feedback
- Adding a new feature
- PRs
- Dealing with UI tests
We follow the Rust Official Code of Conduct.
Create an issue or go to Ouch Discussions.
Before opening the PR, open an issue to discuss your addition, this increases the chance of your PR being accepted.
- Pass all CI checks.
- After opening the PR, add a CHANGELOG.md entry.
The CI tests will run for a combination of features, --no-default-features will also be tested.
We use snapshots to do UI testing and guarantee a consistent output, this way, you can catch accidental changes or see what output changed in the PR diff.
- Run tests with
cargo insta(requirescargo install cargo-insta):
cargo insta test
# Or, if you only want to run UI tests
cargo insta test -- ui
# Sometimes, you might have to run UI tests with different feature flags
cargo insta test --no-default-features -- ui- You can also use the
--profile fastflag to trade some compile time for faster tests (usually worth it):
cargo test --profile fast
cargo insta test --profile fast -- ui- If some UI test failed, you should review them:
cargo insta review- After addressing all, you should be able to
git addandcommitaccordingly.
NOTE: Sometimes, you'll have to run these two commands multiple times.