diff --git a/.gitignore b/.gitignore index 6c11457..04deeee 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules/ build/ cache/ .vscode +.envrc diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..54c5196 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.10.9 diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc new file mode 100644 index 0000000..5465d79 --- /dev/null +++ b/CONTRIBUTING.adoc @@ -0,0 +1,64 @@ += Keep Contribution Guide + +🎉 Thanks for taking the time to contribute! 🎉 Contributions are welcome from +anyone, and even the smallest of fixes is appreciated! + +The following is a set of guidelines for contributing to Keep and its packages. +These are mostly guidelines, not rules. Use your best judgment, and feel free to +propose changes to this document in a pull request. + +== Getting started + +1. Fork + https://github.com/keep-network/sortition-pools[`keep-network/sortition-pools`] +2. Clone your fork +3. Follow the + link:README.md#Setup[installation & build steps] in the README. +4. Set up the <>. +5. Open a PR against the `main` branch and describe the change you are intending + to undertake in the PR description. + +Before marking the PR as ready for review, make sure: + +* It passes the linter checks (`npm run lint` and `npm run lint:fix`). +* It passes the https://github.com/keep-network/sortition-pools/actions[continuous + integration tests]. +* Your changes have sufficient test coverage (e.g regression tests have + been added for bug fixes, unit tests for new features). + +== Development Tooling + +Commits +https://help.github.com/en/articles/about-commit-signature-verification[must +be signed]. + +=== Continuous Integration + +Keep uses https://github.com/keep-network/sortition-pools/actions[Github +Actions] for continuous integration. All jobs must be green to merge a PR. + +=== Pre-commit + +Pre-commit is a tool to install hooks that check code before commits are made. +It can be helpful to install this, to automatically run linter checks and avoid +pushing code that will not be accepted. Follow the +https://pre-commit.com/[installation instructions here], and then run +`pre-commit install` to install the hooks. + +=== Linting + +Linters and formatters for Solidity, JavaScript, and Go code are set up and run +automatically as part of pre-commit hooks. These are checked again in CI builds +to ensure they have been run and are passing. + +To run the linters and formatters manually, use the following commands: +* `npm run lint` - checks files against linting rules. +* `npm run lint:fix` - checks files against linting rules and fixes any + issues that can be fixed automatically. + +If you want to change a rule, or add a custom rule, to the JavaScript or +Solidity linting, please propose these changes to our +https://github.com/keep-network/solium-config-keep[solium-config-keep], +https://github.com/keep-network/eslint-config-keep[eslint-config-keep], or +https://github.com/keep-network/prettier-config-keep[prettier-config-keep] +packages. All other packages have them as a dependency.