diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..230d104 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,107 @@ +# Contributing + +:tada: Thank you for being interested in contributing to the ZK-kit project! :tada: + +Feel welcome and read the following sections in order to know how to ask questions and how to work on something. + +All members of our community are expected to follow our [Code of Conduct](/CODE_OF_CONDUCT.md). Please make sure you are welcoming and friendly in all of our spaces. + +We're really glad you're reading this, because we need volunteer developers to help this project come to fruition. 👏 + +## Pull Requests + +The best way to contribute to our projects is with pull requests. Here's a quick guide: + +1. Fork the repo. + +2. Run the tests. We only take pull requests with passing tests. + +3. Add a test for your change. Only refactoring and documentation changes require no new tests. + +4. Make sure to check out the [Style Guide](/CONTRIBUTING#style-guide) and ensure that your code complies with the rules. + +5. Make the test pass. + +6. Commit your changes. + +7. Push to your fork and submit a pull request on our `dev` branch. Please provide us with some explanation of why you made the changes you made. For new features make sure to explain a standard use case to us. + +## CI (Github Actions) Tests + +We use GitHub Actions to test each PR before it is merged. + +When you submit your PR (or later change that code), a CI build will automatically be kicked off. A note will be added to the PR, and will indicate the current status of the build. + +## Style Guide + +### Code rules + +We always use ESLint and Prettier. To check that your code follows the rules, simply run the npm script `yarn lint`. + +### Commits rules + +For commits it is recommended to use [Conventional Commits](https://www.conventionalcommits.org). + +Don't worry if it looks complicated, in our repositories, after `git add`, you can usually run the npm script `yarn commit` to make many of these steps interactive. + +Each commit message consists of a **header**, a **body** and a **footer**. The **header** has a special format that includes a **type**, a **scope** and a **subject**: + + (): + + + +