dependencies.rst
60 lines
| 1.3 KiB
| text/x-rst
|
RstLexer
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 | ||||