##// END OF EJS Templates
shadow-repos: use safer way to destroy shadow repositories....
shadow-repos: use safer way to destroy shadow repositories. we had reported errors on removal of shadow repos. Not reproduced, however suspecting are filesystem sync/symlink race-conditions on shared storage. End result were existing shadow-repo directories that tricked rhodecode into thinking shadow repos is existing, but infact it was a dummy structure semi-removed. Using shutil.move we ENSURE rhodecode doesn't read those back even if removal fails.

File last commit:

r737:b3f2563a default
r2777:f1cc2e3d 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