Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 2.56 KB

CONTRIBUTING.adoc

File metadata and controls

64 lines (48 loc) · 2.56 KB

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 keep-network/sortition-pools

  2. Clone your fork

  3. Follow the installation & build steps in the README.

  4. Set up the Development Tooling.

  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 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 must be signed.

Continuous Integration

Keep uses 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 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 solium-config-keep, eslint-config-keep, or prettier-config-keep packages. All other packages have them as a dependency.