Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create CONTRIBUTING.md #55

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Contributing

## Reporting Issues
Feel free to open Issues for any Discussions, Bugs or Improvements. Please adhere to the provided Templates and provide the required context.

## Pull Request Process
1. Please open an Issue describing the bug or feature you are intending to fix. If you are working on an existing Issue comment on relevant Issue in order to let other Contributors know that you are working on it

2. [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) the Repository using the standard workflow and set up a new branch to work in. Make sure that each group of changes is done in a separate branch, so that PRs only contain relevant changes

3. This Project uses [RustFmt](https://github.com/rust-lang/rustfmt) to ensure proper formatting. PRs that do not adhere to the formatting will not be able to be merged! The formatting can be done using `cargo fmt --all`. If you are using IntelliJ Idea for developing you can set up RustFmt using the `Languages&Frameworks > Rust > RustFmt` settings

4. This Project uses [Clippy](https://github.com/rust-lang/rust-clippy) as a code linter. Execute it before committing using `cargo clippy -- -D warnings`. Intellij allows you to run Clippy while developing, to find linter errors as they happen
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, the PR verification workflow does more:

cargo fmt --all -- --check
cargo check --tests --examples
cargo test --verbose
cargo clippy -- -D warnings

And then

cargo +nightly clippy --color=always --all-targets -- -W clippy::pedantic

Maybe we can simplify this with a shell script that contributors can then use, see #110 (and #109)


5. All significant changes should be accompanied by tests. If you are unsure about testing, take a look at existing tests. Make sure all tests run before creating a PR using `cargo test`

6. Finally, push your commits to your fork and submit a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). Summarize your changes in the Description of the Pull Request