Thanks for your interest in contributing. Please review this guide prior to submitting a pull request.
Start by forking and cloning the repository onto your computer. Afterwards, you can start development by installing the dependencies and running the tests.
- Install dependencies
npm install
- Run tests
npm test
Once you have completed your changes, you can create a pull request from the fork. Project maintainers may create pull requests in the repository without a fork.
For large or impactful change, please open an issue or discussion prior to submitting a pull request. This allows the project maintainers and contributors to discuss alternatives and solutions prior to implementation.
- Open an issue
- Fork the repo and create a branch
- Add new commits
- Commits should be concise, descriptive, and well formatted
- Commits should follow the Conventional Commits specification and use the standard headings
- This repo has a linear git history and merge commits are not allowed
- Open a new pull request on GitHub
- Link the issue you created earlier with the pull request
This repository uses Dependabot to help secure and update project dependencies. It does this by automatically opening pull requests to update package dependencies. Project maintainers are responsible for reviewing, testing, approving, and merging Dependabot pull requests.
Project maintainers can publish releases. Releases are automated with Google's release-please GitHub action. Simply merge the release pull request (release PR) to publish a release 🚀.
The GitHub action parses Conventional Commits to help automate releases. It creates a release PR that is kept up-to-date as additional commits are merged. The release PR can be merged once maintainers are ready to publish the release. Merging the release PR triggers the action to:
- Update the
CHANGELOG.md
andpackage.json
- Tag the commit with the version
- Create a GitHub release based on the tag
- Publish the package to npm
This project follows Semantic Versioning 2.0 and the release tooling automatically parses the semantic version based on the Conventional Commits.