mirror of
https://github.com/Cuprate/cuprate.git
synced 2024-12-22 19:49:28 +00:00
354ac9c2f6
* ci: add separate `typo` job * add `typos.toml` for false positives * fix all typos * ci: add `cargo doc` step * fix doc errors * contributing.md: update passing CI steps * fix more typos, add exception to `cryptonight/` * ci: move `cargo doc` step within `ci` job It needs dependencies. * ci: add https://github.com/Cuprate/cuprate/pull/63 * test-utils: fix typo * ci: switch `rustup update` and switch order * ci: only update rust on unix * ci: set `RUSTDOCFLAGS` env earlier * ci: only run `cargo doc` on linux * ci: remove `bash` on `cargo doc` * ci: remove `--all-targets` We now have the target OS's in CI, no need to compile for each. * contributing.md: update ci steps * ci: add `--all-targets` back to clippy, build * update contributing.md
40 lines
1.7 KiB
Markdown
40 lines
1.7 KiB
Markdown
# Contributing to Cuprate
|
|
|
|
## Introduction
|
|
|
|
Thank you for wanting to help out! Cuprate is in the stage where things are likely to change quickly, so it's recommend
|
|
you join our [Matrix room](https://matrix.to/#/#cuprate:monero.social).
|
|
|
|
## Making a PR
|
|
|
|
Once you have found something you would like to work on by either looking at the open issues or joining Cuprate's [Matrix room](https://matrix.to/#/#cuprate:monero.social)
|
|
and asking it's recommended to make your interest on working on that thing known so people don't duplicate work.
|
|
|
|
When you are at a stage where you would like feedback you can open a draft PR, keep in mind that feedback may take time especially if the change is large.
|
|
Once your PR is at the stage where you feel it's ready to go, open it for review.
|
|
|
|
## Passing CI
|
|
The first 3 steps to CI are formatting, typo, and documentation checking.
|
|
|
|
Check if your changes are formatted, typo-free, and documented correctly by running:
|
|
- `cargo fmt --all --check`
|
|
- `typos`
|
|
- `RUSTDOCFLAGS='-D warnings' cargo doc --workspace --all-features`
|
|
|
|
`typos` can be installed with `cargo` from: https://github.com/crate-ci/typos.
|
|
|
|
After that, ensure all lints, tests, and builds are successful by running:
|
|
|
|
- `cargo clippy --workspace --all-features --all-targets -- -D warnings`
|
|
- `cargo fmt --all`
|
|
- `cargo test --all-features --workspace`
|
|
- `cargo build --all-features --all-targets --workspace`
|
|
|
|
## Coding guidelines
|
|
|
|
- `// Comment like this.` and not `//like this`
|
|
- Use `TODO` instead of `FIXME`
|
|
- Avoid `unsafe`
|
|
- Sort imports as core, std, third-party, Cuprate crates, current crate.
|
|
- Follow the [Rust API Guidelines](https://rust-lang.github.io/api-guidelines)
|
|
- Break the above rules when it makes sense
|