Development

You can find the SnipsKit code on GitHub.

Set up your development environment

If you want to start developing on SnipsKit, fork the repository, clone your fork and install the project’s (development) dependencies in a Python virtual environment:

git clone https://github.com/<your_username>/snipskit.git
cd snipskit
python3 -m venv venv
source venv/bin/activate
pip install wheel
pip install -r requirements/install/all.txt
pip install -r requirements/development.txt

Run the unit tests

A good start to check whether your development environment is set up correctly is to run the unit tests:

./scripts/run_tests.sh

It’s good practice to run the unit tests before and after you work on something.

Development practices

  • Before starting significant work, please propose it and discuss it first on the issue tracker on GitHub. Other people may have suggestions, will want to collaborate and will wish to review your code.
  • Please work on one piece of conceptual work at a time. Keep each narrative of work in a different branch.
  • As much as possible, have each commit solve one problem.
  • A commit must not leave the project in a non-functional state.
  • Run the unit tests before you create a commit.
  • Treat code, tests and documentation as one.
  • Create a pull request from your fork.
  • Investigate the output of the Continuous Integration checks and fix any errors you have introduced (you can find badges with an overview of these checks on GitHub):

Things to work on

Have a look at the issues in the issue tracker, especially the following categories:

You can also look at the maintainability issues on Code Climate and the code quality issues on Codacy. However, note that not all these issues are relevant.

License of contributions

By submitting patches to this project, you agree to allow them to be redistributed under the project’s License according to the normal forms and usages of the open-source community.

It is your responsibility to make sure you have all the necessary rights to contribute to the project.