If you have a new feature in mind, please discuss the feature in an issue to ensure that your contributions will be accepted.
-
Fork the repo and create your branch from
main
. -
If you've added code that should be tested, add tests.
-
If you've changed APIs, update the documentation.
-
Ensure the test suite passes with
cargo nextest run --all-features
.Note: Nextest's own tests do not work with
cargo test
. You must install nextest to run its own test suite. -
Run
cargo xfmt
to automatically format your changes (CI will let you know if you missed this).
Nextest aims to provide a high-quality, polished user experience. If you're adding a new feature, please pay attention to:
- Coloring support.
- Configuration, including hierarchical configuration.
- Error handling. In particular, errors caused by components outside of nextest itself should be part of
ExpectedError
and use a well-defined exit code.
Commits should be atomic and broken down into logically separate changes. Diffs should also be made easy for reviewers to read and review so formatting fixes or code moves should not be included in commits with actual code changes.
It is important that the project history is bisect-able so that when
regressions are identified we can easily use git bisect
to be able to
pin-point the exact commit which introduced the regression. This requires that
every commit is able to be built and passes all lints and tests. So if your
pull request includes multiple commits be sure that each and every commit is
able to be built and passes all checks performed by CI.
By contributing to cargo-nextest
, you agree that your contributions will be dual-licensed under
the terms of the LICENSE-MIT
and LICENSE-APACHE
files in the
root directory of this source tree.