##// 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

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:

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:

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:

bower2nix bower.json pkgs/bower-packages.nix