Whether you want to add a feature or simply report a bug or issue, please have a quick read through these guidelines before contributing.
We use github to host code, to track issues and feature requests, as well as accept pull requests. All other forms of communication with maintainers is not considered "official".
Github Flow is the Way to Go
All code changes happen through pull requests.
Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
- Fork the repo and create your branch from 2.x.
- Link your pull request to any relavent open issues.
- If you've added or changed functionality, update the documentation.
- Make sure your code functions. Write a test if you have to!
- Make sure your code lints.
- Issue the pull request!
In short, when you submit code changes, your submissions are understood to be under the same ISC 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.
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
- why you think this might be happening
- stuff you tried that didn't work
Everybody loves a thorough bug report!
- Run
npm install
to ensure you have all the tools needed. - Use the coding standards provided.
This project follows a set of coding standards combining Airbnb and Prettier.
To check your code, you can use ESLint with the provided script:
npm run lint
You can also fix some violations automatically using:
npm run fix
Code that does not follow the linting standards will not be merged.
This project uses the conventional commit standard, which means your commits should follow a basic template of:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
For more detailed information about available types, scopes, breaking changes, etc. please see the official documentation.
This project also provides a command to assist you in formatting commit messages using commitizen:
npm run commit
Commits that do not follow this format will not be merged.
This document was adapted from the open-source contribution guidelines for Facebook's Draft