60 lines
1.3 KiB
ReStructuredText
60 lines
1.3 KiB
ReStructuredText
|
|
=======================
|
|
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
|