diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..818c5ee --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# Contributing + +[cargo-make]: https://github.com/sagiegurari/cargo-make "cargo-make" + +`tui` is an ordinary Rust project where common tasks are managed with [cargo-make]. It wraps common +`cargo` commands with sane defaults depending on your platform of choice. Bulding the project should +be as easy as running `cargo make`. + +## Continous Integration + +We use Github Actions for the CI where we perform the following checks: +- The code should compile on `stable` and the Minimum Supported Rust Version (MSRV). +- The tests (docs, lib, tests and examples) should pass. +- The code should conform to the default format enforced by `rustfmt`. +- The code should not contain common style issues `clippy`. + +You can also check most of those things yourself locally using `cargo make ci` which will offer you +a shorter feedback loop. + +## Tests + +The test coverage of the crate is far from being ideal but we already have a fair amount of tests in +place. Beside the usal doc and unit tests, one of the most valuable test you can write for `tui` is +a test again the `TestBackend` which allows you to assert the content of the output buffer that +would have been flushed to the termminal after a given draw call (see `widgets_block_renders` in +[tests/widgets_block.rs](./tests/widget_block.rs) for an example).