Dependency Management

Each plugin can require additional dependencies. Depending on the plugin type (frontend vs. backend) different dependency management systems are used.

Frontend Dependencies

Frontend web dependencies are managed via the NPMJS package manager and stored in the “package.json” file contained in each plugin. During workspace creating and updating all dependencies of all plugins contained in the workspace are collected and centrally installed in the workspace directory. This reduces the storage footprint by avoiding duplicates.

Backend Dependencies

Backend Python dependencies are mainly managed via PyPI by entering the dependency in the “requirements.txt” file of the backend plugin (slib, service). During workspace creation and update all requirements are collected and automatically installed in the local development docker container. In addition, additional Debian packages can be installed by adding them to the “docker-packages.txt” file. However, this should be avoided if possible due to portability.