We love your input! And we want to make it as easy as possible for you to contribute, whether it's by:
- Highlighting a bug
- Discussing an idea
- Proposing a new feature
- Creating a pull request
- Make sure you have a GitHub account.
- Maybe create a GitHub issue: Does an issue already exist? If you have a new issue then describe it in as much detail as you can, e.g. steps to reproduce.
- Fork the repository on GitHub.
- Clone the repo:
git clone https://github.com/gchq/kai.git
- Create a branch for your change, probably from the develop branch. Please don't work on develop. Try this:
git checkout -b gh-<issue-number>-my-contribution develop
- Ensure you can reproduce any bugs you find.
- Make your changes and test. Make sure you include new or updated tests if you need to.
- Run the tests locally by running
npm run test
.
- Sign the GCHQ Contributor Licence Agreement.
- Push your changes to your fork.
- Submit a pull request.
- Link the issue by putting
closes #<issue-number>
in the description - We'll look at it pretty soon after it's submitted, and we aim to respond within one week.
Here are some things you can do to make this all smoother:
- If you think it might be controversial then discuss it with us beforehand, via a GitHub issue.
- Add tests for any new logic.
- Avoid using hard coded values which you think a user might want to change. Instead abstract them to context variables.
- Document any changes that affect user interaction
- Lint your code by running
npm run lint
. Any errors or warnings can usually be fixed by runningnpm run fix