Js-sdsl Contributing Guide
August 20, 2022 ยท View on GitHub
Hi! I'm really excited that you are interested in contributing to js-sdsl. Before submitting your contribution, please make sure to take a moment and read through the following guidelines:
- Code of Conduct
- Issue Reporting Guidelines
- Pull Request Guidelines
- Development Setup
- Project Structure
Issue Reporting Guidelines
- Always use issue-template to create new issues.
Pull Request Guidelines
-
The
mainbranch is just a snapshot of the latest stable release. All development should be done in dedicated branches. Do not submit PRs against themainbranch. -
Checkout a topic branch from the relevant branch, e.g.
dev, and merge back against that branch. -
Work in the
srcfolder and DO NOT check indistin the commits. -
It's OK to have multiple small commits as you work on the PR - GitHub will automatically squash it before merging.
-
Make sure
yarn testpasses. (see development setup) -
If adding a new feature:
- Add accompanying test case in folders
checkandperformance. - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.
- Add accompanying test case in folders
-
If fixing bug:
- If you are resolving a special issue, add
(fix #xxxx[,#xxxx])(#xxxx is the issue id) in your PR title for a better release log, e.g.update entities encoding/decoding (fix #3899). - Provide a detailed description of the bug in the PR. Live demo preferred.
- Add appropriate test coverage if applicable.
- If you are resolving a special issue, add
Development Setup
You will need Node.js version 14+ and yarn.
After cloning the repo, run:
$ yarn install
Committing Changes
Please follow the commit specification. See .commitlintrc.json get help.
Commonly used NPM scripts
# run all tests
$ yarn test
# run unit tests
$ yarn test:unit
# run performance tests
$ yarn test:performance
# build all dist files
$ yarn build
# build specific mode including es module, commonJS and universal module definition
$ yarn build:{build_mode}
There are some other scripts available in the scripts section of the package.json file.
Project Structure
test: contains all unit tests.performance: contains all performance tests.src: contains the source code.
All our source files are written in typescript, please make sure your submissions have strict type deduction and follow eslint specifications.
Credits
Thank you to all the people who have already contributed to js-sdsl!