# How to contribute Contributions are always appreciated. How to: * [Submit Pull Request](#pull-request) * [Fix Formatting](#fix-formatting) * [Squash Commits](#squash-commits) ## Pull request In order to submit a change or a PR, please fork the project and follow instructions: ```bash $ git clone http://github.com//kraken $ cd kraken $ git checkout -b $ $ git add $ git commit -a $ $ git push ``` ## Fix Formatting Kraken uses [pre-commit](https://pre-commit.com) framework to maintain the code linting and python code styling. The CI would run the pre-commit check on each pull request. We encourage our contributors to follow the same pattern, while contributing to the code. The pre-commit configuration file is present in the repository `.pre-commit-config.yaml` It contains the different code styling and linting guide which we use for the application. Following command can be used to run the pre-commit: `pre-commit run --all-files` If pre-commit is not installed in your system, it can be install with : `pip install pre-commit` ## Squash Commits If there are mutliple commits, please rebase/squash multiple commits before creating the PR by following: ```bash $ git checkout $ git rebase -i HEAD~ -OR- $ git rebase -i ``` In the interactive rebase screen, set the first commit to `pick` and all others to `squash` (or whatever else you may need to do). Push your rebased commits (you may need to force), then issue your PR. ``` $ git push origin --force ```