We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
We Use Github Flow, So All Code Changes Happen Through Pull Requests
Pull requests are the best way to propose changes to the codebase (we use Github Flow). We actively welcome your pull requests:
- Fork the repo and create your branch from
main
. - If you've added code that should be tested, add tests.
- Contribution should not break the current protocol implementation, this means not breaking any existing API, as this could have an impact on many people work and API consumers. If your contribution needs to add a breaking change, please file a DAO poll so that the community can understand and accept your suggestion. Once accepted update the protocol by sending a pull request at the api spec repository. Then send the pull request with the implementation in this repository.
- Run
yarn run test
to ensure the test suite passes. - Make sure your code lints.
- Issue that pull request!
We follow the Git style guide for git usage
- In case the PR is done using a branch within the service, it should have the semantic prefix.
- Before merging into
main
make sure the squash commit has the correct semantic type prefix. - If the pull request is related to an issue, link it in the description of the pull request.
Adopting this convention helps us keep the commit history tidy and easier to understand, but also makes it easier to write automated tools on top.
Following the naming convention enables us to bump the version automatically. Any commit pushed to main
that doesn't respect the convention will be ignored when determining the new version number.
Check the Automatic version bumping guide to know how your pull request's title should be.
In short, when you submit code changes, your submissions are understood to be under the same Apache 2.0 License that covers the project. Feel free to contact the maintainers if that's a concern.
Report bugs using Github's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!
This is an example of a bug report with the expected quality.
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
People love thorough bug reports. We'm not even kidding.
- You can try running
yarn run lint:check
for style verification andyarn run lint:fix
for a best-effort fix of any style errors. - Follow as best as possible the current code architecture, but don't hesitate to propose a change if you see a place for improvement.
This document was adapted from this open-source contribution guideline