# How to Contribute

We'd love to accept your patches and contributions to this project.
There are just a few small guidelines you need to follow.

## Discussion

Share your proposal via [GitHub Issues](https://github.com/fastmachinelearning/qonnx/issues).
We also welcome submissions to improve the documentation.

## Pull Request

All submissions, including submissions by project members, require review.
We use GitHub pull requests for this purpose.
Consult [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more information on using pull requests.

1. In the pull request description, clearly document all changes made and the expected behavior.
1. If you are introducing new functionality, add at least one unit test under the `tests` folder and make sure it passes before you submit the pull request.
1. Similarly, if you are fixing a bug, add at least one unit test under the `tests` folder such that the master branch fails the test and your branch passes the test.
1. Install and run `pre-commit` on the files that you have edited.
1. Submit the pull request to the [main](https://github.com/fastmachinelearning/qonnx) branch.

## Code Reviews

We will review your contribution and, if any additional fixes or modifications are necessary, may provide feedback to guide you.
When accepted, your pull request will be merged to the repository.

## Code of Conduct

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

### Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

### Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
