Hi! I'm really excited that you are interested in contributing to Kasfy. 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
- Always use https://github.com/kasfy/kasfy/issues/new to create new issues.
-
The
master
branch is just a snapshot of the latest stable release. All development should be done in dedicated branches. Do not submit PRs against themaster
branch. -
Checkout a topic branch from the relevant branch, e.g.
dev or alpha
, and merge back against that branch. -
It's OK to have multiple small commits as you work on the PR - GitHub will automatically squash it before merging.
-
Make sure
npm test
passes. (see development setup) -
If adding a new feature:
- Add accompanying test case.
- Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.
-
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
You will need Node.js version 10+, or yarn.
After cloning the repo, run:
$ npm install # install the dependencies of the project
Commit messages should follow the commit message convention so that changelogs can be automatically generated. Commit messages will be automatically validated upon commit. If you are not familiar with the commit message convention, you can use npm run commit
instead of git commit
, which provides an interactive CLI for generating proper commit messages.
# watch and demo
$ npm start
# run the full test suite, including linting/type checking
$ npm test
There are some other scripts available in the scripts
section of the package.json
file.
The default test script will do the following:
node ./node_modules/babel-cli/bin/babel-node.js server.js'
Please make sure to have this pass successfully before submitting a PR. Although the same tests will be run against your PR on the CI server, it is better to have it working locally.
As a pure community-driven project without major corporate backing, we also welcome financial contributions via Patreon and OpenCollective.
Thank you to all the people who have already contributed to Kafy!