Managing dependencies

System performs automatic checks on dependecy changes via CI.

Dependencies are split into 4 files: base, dev, prod, docs and stored in app/requirements folder.

Depency description files can be built, updated and installed using following make commands:

  • make deps - development

  • make deps-base - base dependencies only

  • make deps-prod - production dependencies

  • make deps-dev - development dependencies

  • make deps-docs - documentation dependencies

In order to add new dependency into project - update related file and add new line with pypi dependency name or git dependency using -e git+ssh://… format, then run related make deps command.

Every file in app/requirements/*.in will be transformed into pip compatible requirements.txt file and stored with related name in same folder to be later used by docker or make commands for installation purposes.

ALL dependencies (development mode)

In order to install all project dependencies developers can use:

make deps

This command will run make deps-base && make deps-prod && make deps-dev && make deps-docs sequence.

Base Dependencies

Base dependencies contain everything required for normal operation of this project.

Related file: app/requirements/base.in

Dependencies can be updated using:

make deps-base

Production Dependencies

Production dependencies contain packages related to project deployment (e.g. Sentry integration and Gunicorn webserver).

Dependencies stored in app/requirements/prod.in.

File includes base dependencies as Production image is built using app/requirements/prod.txt, output from:

make deps-prod

Development (excluding documentation)

Development dependencies are stored in app/requirements/dev.in and contain everything needed for development and debugging of the project.

These dependencies can be updated using:

make deps-dev

Documentation only

Documentation dependencies are residing in app/requirements/docs.in