Welcome, and thanks for showing an interest in contributing 💜
This module is an npm
workspace. You will need:
- Node latest LTS
npm
See also the browser extension's CONTRIBUTING.md since the workflow there is different.
All commands are run from the root of the project, from a terminal:
Command | Action |
---|---|
npm install --legacy-peer-deps |
Installs dependencies across the workspace |
npm test |
Runs unit tests across the workspace |
npm run lint |
Does a check with ESLint across the workspace |
npm run types |
Generates type definitions from JSDoc and does a typecheck across the workspace |
To only run the command for an individual package, either:
- Run the command from the package folder
- Append
--workspace=<package name>
to the command
This repo uses conventional commits to automate releases with Semantic Release.
Some example commits and their release type:
Commit message | Release type |
---|---|
fix: update a non-development dependency |
Patch. Bugfix release, updates for runtime dependencies. |
feat: added a new option Foo |
Minor. New feature release. |
refactor: removed a deprecated option Bar BREAKING CHANGE: The Bar option has been removed. |
Major. Breaking release, like removing an option. (Note that the BREAKING CHANGE: token must be in the footer of the commit) |
When making larger changes that needs thorough testing or modules widely used, you can create a next
release. Here is how:
- Create a branch
next
if one does not exist - Make changes (or push whatever changes you have on a different branch onto
next
) - When you are done, commit your changes with semantic-release in mind
- The workflows will run and publish a new version on the format:
major.minor.patch-next.<next version> Where
next version` is incremented each time you push a feat, fix or patch to the branch.
GitHub Actions workflows:
You'll find the workflow logs and results in the Actions tab.