##// END OF EJS Templates
nav-bar: added placeholder for notice box.
nav-bar: added placeholder for notice box.

File last commit:

r737:b3f2563a default
r2898:89a17f27 default
Show More
dependencies.rst
60 lines | 1.3 KiB | text/x-rst | RstLexer
docs: Add dependency management
r737
=======================
Dependency management
=======================
Overview
========
We use the Nix package manager to handle our dependencies. In general we use the
packages out of the package collection `nixpkgs`. For frequently changing
dependencies for Python and JavaScript we use the tools which are described in
this section to generate the needed Nix derivations.
Python dependencies
===================
We use the tool `pip2nix` to generate the Nix derivations for our Python
dependencies.
Generating the dependencies should be done with the following command:
.. code:: shell
pip2nix generate --license
.. note::
License extraction support is still experimental, use the version from the
following pull request: https://github.com/ktosiek/pip2nix/pull/30
Node dependencies
=================
After adding new dependencies via ``npm install --save``, use `node2nix` to
update the corresponding Nix derivations:
.. code:: shell
cd pkgs
node2nix --input ../package.json \
-o node-packages.nix \
-e node-env.nix \
-c node-default.nix \
-d --flatten
Bower dependencies
==================
Frontend dependencies are managed based on `bower`, with `bower2nix` a tool
exists which can generate the needed Nix derivations:
.. code:: shell
bower2nix bower.json pkgs/bower-packages.nix