|
| 1 | +# Contributing to Synchrony |
| 2 | + |
| 3 | +Thanks for your help improving the project! We are so happy to have you! :tada: |
| 4 | + |
| 5 | +There are opportunities to contribute to Synchrony at any level. It doesn't matter if |
| 6 | +you are just getting started with Rust or are the most weathered expert, we can |
| 7 | +use your help. If you have any question about Synchrony, feel free to join [our group](https://t.me/compio_rs) in telegram. |
| 8 | + |
| 9 | +This guide will walk you through the process of contributing to Synchrony on following topics: |
| 10 | + |
| 11 | +- [General guidelines](#general-guidelines) |
| 12 | + - [Develop Guide](#develop-guide) |
| 13 | + - [Style Guide](#style-guide) |
| 14 | +- [Contribute with issue](#contribute-with-issue) |
| 15 | +- [Contribute with pull request](#contribute-with-pull-request) |
| 16 | + |
| 17 | +## General guidelines |
| 18 | + |
| 19 | +We adhere to [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct). tl;dr: **be nice**. Before making any contribution, check existing issue and pull requests to avoid duplication of effort. Also, in case of bug, try updating to the latest version of Compio and/or rust might help. |
| 20 | + |
| 21 | +### Develop Guide |
| 22 | + |
| 23 | +Use nightly toolchain to develop and run `rustup update` regularly. |
| 24 | + |
| 25 | +### Style Guide |
| 26 | + |
| 27 | +- Use `cargo fmt --all` with nightly toolchain to format your code (for nightly `rustfmt` features, see detail in [`rustfmt.toml`]). |
| 28 | +- Use `cargo clippy --all` to check any style/code problem. |
| 29 | +- Use [Angular Convention](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format) when making commits |
| 30 | + |
| 31 | +[`rustfmt.toml`]: https://github.com/compio-rs/synchrony/blob/master/rustfmt.toml |
| 32 | + |
| 33 | +## Contribute with issue |
| 34 | + |
| 35 | +If you find a bug or have a feature request, please [open an issue](https://github.com/compio-rs/synchrony/issues/new/choose) with detailed description. Issues that are lack of information or destructive will be requested for more information or closed. |
| 36 | + |
| 37 | +It's also helpful if you can provide the following information: |
| 38 | + |
| 39 | +- A minimal reproducible example |
| 40 | +- The version of Synchrony you are using. |
| 41 | +- The version of Rust you are using. |
| 42 | +- Your environment (OS, Platform, etc). |
| 43 | + |
| 44 | +## Contribute with pull request |
| 45 | + |
| 46 | +We welcome any code contributions. It's always welcome and recommended to open an issue to discuss on major changes before opening a PR. And pull requests should: |
| 47 | + |
| 48 | +- follow the [Style Guide](#style-guide). |
| 49 | +- pass CI tests and style check. |
| 50 | +- be reviewed by at least one maintainer before getting merged. |
| 51 | +- have a description of what it does and why it is needed in PR body. |
0 commit comments