Contributions are welcome and any help that can be offered is greatly appreciated. Please take a moment to read the entire contributing guide.
This repository uses the Feature Branch Workflow,
meaning that development should take place in feat/
branches, with the main
branch kept in a stable state.
When you submit pull requests, please make sure to fork from and submit back to main
.
Other processes and specifications that are in use in this repository are:
- Semantic versioning
- Conventional commits following the @commitlint/config-conventional config
- Prettier style guide
This repository requires that you have a support version of Node.js installed.
Check the engines.node
value in ./package.json
for the minimum supported version.
With that in place, you can fork the repository, clone it, and then run npm i
to install all dependencies.
After cloning the repository and installing all the dependencies, there are several commands available for local development:
npm run lint
- Runs ESLint over all support file typesnpm run lint:prettier
- Runs Prettier over all supported file typesnpm run jest
- Runs Jest tests in src directorynpm test
- Runs all of the above scripts together
Documentation (both in markdown files and inline comments) should be written in British English where possible.
Titles and headings should use sentence-style capitalisation, where only the first letter of a sentence and proper nouns are capitalised.
Before submitting a pull request back to the main repository, please make sure you have completed the following steps:
- Pull request base branch is set to
main
. All pull requests should be forked from and merged back tomain
- Run
npm test
to check the code adheres to the defined ESLint style and Prettier format, and that it passes the Jest tests - Run
npm run lint:fix
to automatically fix any ESLint errors - Run
npm run lint:prettier:fix
to automatically fix any Prettier errors - Run
npm run lint:licenses
if adding or updating production dependencies to check they use permissive licenses
Steps 2. and 5. are automatically run by a pre-commit hook added by Husky.