diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 5a0609b4..28845709 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,30 +1,60 @@ --- name: Bug report -about: Create a report to help us improve +about: Create an issue about a bug you encountered title: '' labels: bug assignees: '' - --- -**Describe the bug** + + +## Description + -**To Reproduce** -If possible include a code sample exhibiting the problem. -**Expected behavior** +## To Reproduce + + + +## Expected behavior + -**Screenshots** -If applicable, add screenshots to help explain your problem. -**Desktop (please complete the following information):** - - OS: [e.g. Linux,Windows] - - Terminal Emulator [e.g xterm, Konsole, Terminal, iTerm2, ConEmu] - - Font [e.g Inconsolata, Monospace] - - Crate version [e.g. 0.7] - - Backend [e.g termion, crossterm] +## Screenshots + -**Additional context** + +## Environment + + +- OS: +- Terminal Emulator: +- Font: +- Crate version: +- Backend: + +## Additional context + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491e..ae095edb 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -7,14 +7,26 @@ assignees: '' --- -**Is your feature request related to a problem? Please describe.** +## Problem + -**Describe the solution you'd like** +## Solution + -**Describe alternatives you've considered** +## Alternatives + -**Additional context** +## Additional context + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..232c6e6c --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,17 @@ +## Description + + +## Testing guidelines + + +## Checklist + +* [ ] I have read the [contributing guidelines](../CONTRIBUTING.md). +* [ ] I have added relevant tests. +* [ ] I have documented all new additions. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 818c5eea..637ed923 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,12 +1,21 @@ # Contributing +## Building + [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`. +`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. +Building the project should be as easy as running `cargo make build`. -## Continous Integration +## :hammer_and_wrench: Pull requests + +All contributions are obviously welcome. +Please include as many details as possible in your PR description to help the reviewer (follow the provided template). +Make sure to highlight changes which may need additional attention or you are uncertain about. +Any idea with a large scale impact on the crate or its users should ideally be discussed in a "Feature Request" issue beforehand. + +## Continuous 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). @@ -14,13 +23,11 @@ We use Github Actions for the CI where we perform the following checks: - 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. +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). +The test coverage of the crate is far from being ideal but we already have a fair amount of tests in place. +Beside the usual doc and unit tests, one of the most valuable test you can write for `tui` is a test again the `TestBackend`. +It allows you to assert the content of the output buffer that would have been flushed to the terminal after a given draw call. +See `widgets_block_renders` in [tests/widgets_block.rs](./tests/widget_block.rs) for an example.