##// END OF EJS Templates
merge with default
super-admin -
r4903:98004a1b merge default
parent child Browse files
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -48,5 +48,6 b' recursive-include rhodecode/public/js *'
48 recursive-include rhodecode/templates *
48 recursive-include rhodecode/templates *
49
49
50 # skip any tests files
50 # skip any tests files
51 recursive-exclude result *
51 recursive-exclude rhodecode/tests *
52 recursive-exclude rhodecode/tests *
52
53
@@ -1,4 +1,3 b''
1 .DEFAULT_GOAL := help
2
1
3 # set by: PATH_TO_OUTDATED_PACKAGES=/some/path/outdated_packages.py
2 # set by: PATH_TO_OUTDATED_PACKAGES=/some/path/outdated_packages.py
4 OUTDATED_PACKAGES = ${PATH_TO_OUTDATED_PACKAGES}
3 OUTDATED_PACKAGES = ${PATH_TO_OUTDATED_PACKAGES}
@@ -8,91 +7,129 b' WEBPACK=./node_binaries/webpack'
8 GRUNT=./node_binaries/grunt
7 GRUNT=./node_binaries/grunt
9
8
10 .PHONY: clean
9 .PHONY: clean
11 clean: ## full clean
10 ## Cleanup compiled and cache py files
11 clean:
12 make test-clean
12 make test-clean
13 find . -type f \( -iname '*.c' -o -iname '*.pyc' -o -iname '*.so' -o -iname '*.orig' \) -exec rm '{}' ';'
13 find . -type f \( -iname '*.c' -o -iname '*.pyc' -o -iname '*.so' -o -iname '*.orig' \) -exec rm '{}' ';'
14
14
15
15
16 .PHONY: test
16 .PHONY: test
17 test: ## run test-clean and tests
17 ## run test-clean and tests
18 test:
18 make test-clean
19 make test-clean
19 make test-only
20 make test-only
20
21
21
22
22 .PHONY:test-clean
23 .PHONY:test-clean
23 test-clean: ## run test-clean and tests
24 ## run test-clean and tests
25 test-clean:
24 rm -rf coverage.xml htmlcov junit.xml pylint.log result
26 rm -rf coverage.xml htmlcov junit.xml pylint.log result
25 find . -type d -name "__pycache__" -prune -exec rm -rf '{}' ';'
27 find . -type d -name "__pycache__" -prune -exec rm -rf '{}' ';'
26 find . -type f \( -iname '.coverage.*' \) -exec rm '{}' ';'
28 find . -type f \( -iname '.coverage.*' \) -exec rm '{}' ';'
27
29
28
30
29 .PHONY: test-only
31 .PHONY: test-only
30 test-only: ## run tests
32 ## Run tests only without cleanup
33 test-only:
31 PYTHONHASHSEED=random \
34 PYTHONHASHSEED=random \
32 py.test -x -vv -r xw -p no:sugar \
35 py.test -x -vv -r xw -p no:sugar \
33 --cov=rhodecode --cov-report=term-missing --cov-report=html \
36 --cov-report=term-missing --cov-report=html \
34 rhodecode
37 --cov=rhodecode rhodecode
35
36
38
37 .PHONY: test-only-mysql
39 .PHONY: test-only-mysql
38 test-only-mysql: ## run tests against mysql
40 ## run tests against mysql
41 test-only-mysql:
39 PYTHONHASHSEED=random \
42 PYTHONHASHSEED=random \
40 py.test -x -vv -r xw -p no:sugar \
43 py.test -x -vv -r xw -p no:sugar \
41 --cov=rhodecode --cov-report=term-missing --cov-report=html \
44 --cov-report=term-missing --cov-report=html \
42 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "mysql://root:qweqwe@localhost/rhodecode_test?charset=utf8"}}' \
45 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "mysql://root:qweqwe@localhost/rhodecode_test?charset=utf8"}}' \
43 rhodecode
46 --cov=rhodecode rhodecode
44
47
45
48
46 .PHONY: test-only-postgres
49 .PHONY: test-only-postgres
47 test-only-postgres: ## run tests against postgres
50 ## run tests against postgres
51 test-only-postgres:
48 PYTHONHASHSEED=random \
52 PYTHONHASHSEED=random \
49 py.test -x -vv -r xw -p no:sugar \
53 py.test -x -vv -r xw -p no:sugar \
50 --cov=rhodecode --cov-report=term-missing --cov-report=html \
54 --cov-report=term-missing --cov-report=html \
51 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "postgresql://postgres:qweqwe@localhost/rhodecode_test"}}' \
55 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "postgresql://postgres:qweqwe@localhost/rhodecode_test"}}' \
52 rhodecode
56 --cov=rhodecode rhodecode
53
57
54 .PHONY: docs
58 .PHONY: docs
55 docs: ## build docs
59 ## build docs
60 docs:
56 (cd docs; nix-build default.nix -o result; make clean html)
61 (cd docs; nix-build default.nix -o result; make clean html)
57
62
58
63
59 .PHONY: docs-clean
64 .PHONY: docs-clean
60 docs-clean: ## Cleanup docs
65 ## Cleanup docs
66 docs-clean:
61 (cd docs; make clean)
67 (cd docs; make clean)
62
68
63
69
64 .PHONY: docs-cleanup
70 .PHONY: docs-cleanup
65 docs-cleanup: ## Cleanup docs
71 ## Cleanup docs
72 docs-cleanup:
66 (cd docs; make cleanup)
73 (cd docs; make cleanup)
67
74
68
75
69 .PHONY: web-build
76 .PHONY: web-build
70 web-build: ## Build static/js
77 ## Build JS packages static/js
78 web-build:
71 NODE_PATH=$(NODE_PATH) $(GRUNT)
79 NODE_PATH=$(NODE_PATH) $(GRUNT)
72
80
73
81
74 .PHONY: generate-pkgs
75 generate-pkgs: ## generate new python packages
76 nix-shell pkgs/shell-generate.nix --command "pip2nix generate --licenses"
77
78
79 .PHONY: pip-packages
82 .PHONY: pip-packages
80 pip-packages: ## show outdated packages
83 ## show outdated packages
84 pip-packages:
81 python ${OUTDATED_PACKAGES}
85 python ${OUTDATED_PACKAGES}
82
86
83
87
84 .PHONY: generate-js-pkgs
88 .PHONY: sdist
85 generate-js-pkgs: ## generate js packages
89 ## Build sdist
86 rm -rf node_modules && \
90 sdist:
87 nix-shell pkgs/shell-generate.nix --command "node2nix --input package.json -o pkgs/node-packages.nix -e pkgs/node-env.nix -c pkgs/node-default.nix -d --flatten --nodejs-8" && \
91 python setup.py sdist
88 sed -i -e 's/http:\/\//https:\/\//g' pkgs/node-packages.nix
89
92
90
93
91 .PHONY: generate-license-meta
94 # Default command on calling make
92 generate-license-meta: ## Generate license metadata
95 .DEFAULT_GOAL := show-help
93 nix-build pkgs/license-generate.nix -o result-license && \
94 cat result-license/licenses.json | python -m json.tool > rhodecode/config/licenses.json
95
96
96 .PHONY: help
97 .PHONY: show-help
97 help:
98 show-help:
98 @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-24s\033[0m %s\n", $$1, $$2}'
99 @echo "$$(tput bold)Available rules:$$(tput sgr0)"
100 @echo
101 @sed -n -e "/^## / { \
102 h; \
103 s/.*//; \
104 :doc" \
105 -e "H; \
106 n; \
107 s/^## //; \
108 t doc" \
109 -e "s/:.*//; \
110 G; \
111 s/\\n## /---/; \
112 s/\\n/ /g; \
113 p; \
114 }" ${MAKEFILE_LIST} \
115 | LC_ALL='C' sort --ignore-case \
116 | awk -F '---' \
117 -v ncol=$$(tput cols) \
118 -v indent=19 \
119 -v col_on="$$(tput setaf 6)" \
120 -v col_off="$$(tput sgr0)" \
121 '{ \
122 printf "%s%*s%s ", col_on, -indent, $$1, col_off; \
123 n = split($$2, words, " "); \
124 line_length = ncol - indent; \
125 for (i = 1; i <= n; i++) { \
126 line_length -= length(words[i]) + 1; \
127 if (line_length <= 0) { \
128 line_length = ncol - indent - length(words[i]) - 1; \
129 printf "\n%*s ", -indent, " "; \
130 } \
131 printf "%s ", words[i]; \
132 } \
133 printf "\n"; \
134 }'
135
@@ -47,20 +47,22 b' let'
47
47
48 # Evaluates to the last segment of a file system path.
48 # Evaluates to the last segment of a file system path.
49 basename = path: with pkgs.lib; last (splitString "/" path);
49 basename = path: with pkgs.lib; last (splitString "/" path);
50 startsWith = prefix: full: let
51 actualPrefix = builtins.substring 0 (builtins.stringLength prefix) full;
52 in actualPrefix == prefix;
50
53
51 # source code filter used as arugment to builtins.filterSource.
54 # source code filter used as arugment to builtins.filterSource.
52 src-filter = path: type: with pkgs.lib;
55 src-filter = path: type: with pkgs.lib;
53 let
56 let
54 ext = last (splitString "." path);
57 ext = last (splitString "." path);
58 parts = last (splitString "/" path);
55 in
59 in
56 !builtins.elem (basename path) [
60 !builtins.elem (basename path) [
57 ".git" ".hg" "__pycache__" ".eggs" ".idea" ".dev"
61 ".git" ".hg" "__pycache__" ".eggs" ".idea" ".dev"
58 "node_modules" "node_binaries"
62 "node_modules" "node_binaries"
59 "build" "data" "result" "tmp"] &&
63 "build" "data" "result" "tmp"] &&
60 !builtins.elem ext ["egg-info" "pyc"] &&
64 !builtins.elem ext ["egg-info" "pyc"] &&
61 # TODO: johbo: This check is wrong, since "path" contains an absolute path,
65 !startsWith "result" (basename path);
62 # it would still be good to restore it since we want to ignore "result-*".
63 !hasPrefix "result" path;
64
66
65 sources =
67 sources =
66 let
68 let
@@ -69,6 +71,7 b' let'
69 all
71 all
70 isString
72 isString
71 attrValues;
73 attrValues;
74
72 sourcesConfig = pkgs.config.rc.sources or {};
75 sourcesConfig = pkgs.config.rc.sources or {};
73 in
76 in
74 # Ensure that sources are configured as strings. Using a path
77 # Ensure that sources are configured as strings. Using a path
@@ -76,8 +79,8 b' let'
76 assert all isString (attrValues sourcesConfig);
79 assert all isString (attrValues sourcesConfig);
77 sourcesConfig;
80 sourcesConfig;
78
81
82 rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.;
79 version = builtins.readFile "${rhodecode-enterprise-ce-src}/rhodecode/VERSION";
83 version = builtins.readFile "${rhodecode-enterprise-ce-src}/rhodecode/VERSION";
80 rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.;
81
84
82 nodeEnv = import ./pkgs/node-default.nix {
85 nodeEnv = import ./pkgs/node-default.nix {
83 inherit
86 inherit
@@ -122,6 +125,12 b' let'
122 '';
125 '';
123
126
124 releaseName = "RhodeCodeEnterpriseCE-${version}";
127 releaseName = "RhodeCodeEnterpriseCE-${version}";
128 pythonWithEnv =
129 self.python.buildEnv.override {
130 extraLibs = [ ] ++ self.rhodecode-enterprise-ce.propagatedBuildInputs;
131 ignoreCollisions = true;
132 #--set PYTHONHASHSEED random TODO
133 };
125 in super.rhodecode-enterprise-ce.override (attrs: {
134 in super.rhodecode-enterprise-ce.override (attrs: {
126 inherit
135 inherit
127 doCheck
136 doCheck
@@ -142,6 +151,7 b' let'
142 pythonCommunityOverrides;
151 pythonCommunityOverrides;
143
152
144 pythonPackages = self;
153 pythonPackages = self;
154 rc_pkgs = pkgs;
145 };
155 };
146
156
147 buildInputs =
157 buildInputs =
@@ -153,16 +163,23 b' let'
153 propagatedBuildInputs =
163 propagatedBuildInputs =
154 attrs.propagatedBuildInputs or [] ++ [
164 attrs.propagatedBuildInputs or [] ++ [
155
165
156 ];
166 ];
167
168 preBuild = ''
169 export NIX_PATH=nixpkgs=${pkgs.path}
170 export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
157
171
158 LC_ALL = "en_US.UTF-8";
172 echo "[BEGIN]: Building frontend assets"
159 LOCALE_ARCHIVE =
173 ${linkNodePackages}
160 if pkgs.stdenv.isLinux
174 make web-build
161 then "${pkgs.glibcLocales}/lib/locale/locale-archive"
175 rm -fr node_modules
162 else "";
176 rm -fr node_binaries
177 echo "[DONE ]: Building frontend assets"
178 '';
163
179
164 # Add bin directory to path so that tests can find 'rhodecode'.
180 # Add bin directory to path so that tests can find 'rhodecode'.
165 preCheck = ''
181 preCheck = ''
182 echo "Expanding PATH with $out/bin directory"
166 export PATH="$out/bin:$PATH"
183 export PATH="$out/bin:$PATH"
167 '';
184 '';
168
185
@@ -178,15 +195,6 b' let'
178 rm -rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/tests
195 rm -rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/tests
179 '';
196 '';
180
197
181 preBuild = ''
182 echo "[BEGIN]: Building frontend assets"
183 ${linkNodePackages}
184 make web-build
185 rm -fr node_modules
186 rm -fr node_binaries
187 echo "[DONE ]: Building frontend assets"
188 '';
189
190 postInstall = ''
198 postInstall = ''
191 # check required files
199 # check required files
192 STATIC_CHECK="/robots.txt /502.html
200 STATIC_CHECK="/robots.txt /502.html
@@ -210,31 +218,34 b' let'
210 cp configs/production.ini $out/etc
218 cp configs/production.ini $out/etc
211 echo "[DONE ]: saved enterprise-ce production.ini into $out/etc"
219 echo "[DONE ]: saved enterprise-ce production.ini into $out/etc"
212
220
221 echo "saving env in $out/etc/env_vars.txt"
222 touch $out/etc/env_vars.txt
223 echo "# RhodeCode build env vars" >> $out/etc/env_vars.txt
224 echo "LOCALE_ARCHIVE=\"${pkgs.glibcLocales}/lib/locale/locale-archive\"" >> $out/etc/env_vars.txt
225 echo "LC_ALL=\"en_US.UTF-8\"" >> $out/etc/env_vars.txt
226
213 cp -Rf rhodecode/config/rcextensions $out/etc/rcextensions.tmpl
227 cp -Rf rhodecode/config/rcextensions $out/etc/rcextensions.tmpl
214 echo "[DONE ]: saved enterprise-ce rcextensions into $out/etc/rcextensions.tmpl"
228 echo "[DONE ]: saved enterprise-ce rcextensions into $out/etc/rcextensions.tmpl"
215
229
216 # python based programs need to be wrapped
230 # python based programs need to be wrapped
217 mkdir -p $out/bin
231 mkdir -p $out/bin
218
232
233 # expose python
234 ln -s ${pythonWithEnv}/bin/python $out/bin/
235
219 # required binaries from dependencies
236 # required binaries from dependencies
220 ln -s ${self.supervisor}/bin/supervisorctl $out/bin/
237 ln -s ${pythonWithEnv}/bin/supervisorctl $out/bin/
221 ln -s ${self.supervisor}/bin/supervisord $out/bin/
238 ln -s ${pythonWithEnv}/bin/supervisord $out/bin/
222 ln -s ${self.pastescript}/bin/paster $out/bin/
239 ln -s ${pythonWithEnv}/bin/paster $out/bin/
223 ln -s ${self.channelstream}/bin/channelstream $out/bin/
240 ln -s ${pythonWithEnv}/bin/channelstream $out/bin/
224 ln -s ${self.celery}/bin/celery $out/bin/
241 ln -s ${pythonWithEnv}/bin/celery $out/bin/
225 ln -s ${self.gunicorn}/bin/gunicorn $out/bin/
242 ln -s ${pythonWithEnv}/bin/gunicorn $out/bin/
226 ln -s ${self.pyramid}/bin/prequest $out/bin/
243 ln -s ${pythonWithEnv}/bin/prequest $out/bin/
227 ln -s ${self.pyramid}/bin/pserve $out/bin/
244 ln -s ${pythonWithEnv}/bin/pserve $out/bin/
228
245
229 echo "[DONE ]: created symlinks into $out/bin"
246 echo "[DONE ]: created symlinks into $out/bin"
230 DEPS="$out/bin/supervisorctl \
247 DEPS="
231 $out/bin/supervisord \
248 "
232 $out/bin/paster \
233 $out/bin/channelstream \
234 $out/bin/celery \
235 $out/bin/gunicorn \
236 $out/bin/prequest \
237 $out/bin/pserve"
238
249
239 # wrap only dependency scripts, they require to have full PYTHONPATH set
250 # wrap only dependency scripts, they require to have full PYTHONPATH set
240 # to be able to import all packages
251 # to be able to import all packages
@@ -251,17 +262,17 b' let'
251 # rhodecode-tools don't need wrapping
262 # rhodecode-tools don't need wrapping
252 ln -s ${self.rhodecode-tools}/bin/rhodecode-* $out/bin/
263 ln -s ${self.rhodecode-tools}/bin/rhodecode-* $out/bin/
253
264
254 # expose sources of CE
255 ln -s $out $out/etc/rhodecode_enterprise_ce_source
256
257 # expose static files folder
265 # expose static files folder
258 cp -Rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/public/ $out/etc/static
266 cp -Rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/public/ $out/etc/static
259 chmod 755 -R $out/etc/static
267 chmod 755 -R $out/etc/static
260
268
269 # expose sources of rhodecode-enterprise-ce
270 ln -s $out $out/etc/rhodecode_enterprise_ce_source
261 '';
271 '';
272
262 });
273 });
274 };
263
275
264 };
265
276
266 basePythonPackages = with builtins;
277 basePythonPackages = with builtins;
267 if isAttrs pythonPackages then
278 if isAttrs pythonPackages then
@@ -270,13 +281,8 b' let'
270 getAttr pythonPackages pkgs;
281 getAttr pythonPackages pkgs;
271
282
272 pythonGeneratedPackages = import ./pkgs/python-packages.nix {
283 pythonGeneratedPackages = import ./pkgs/python-packages.nix {
273 inherit
284 inherit pkgs;
274 pkgs;
285 inherit (pkgs) fetchurl fetchgit fetchhg;
275 inherit
276 (pkgs)
277 fetchurl
278 fetchgit
279 fetchhg;
280 };
286 };
281
287
282 pythonCommunityOverrides = import ./pkgs/python-packages-overrides.nix {
288 pythonCommunityOverrides = import ./pkgs/python-packages-overrides.nix {
@@ -1,6 +1,6 b''
1 {
1 {
2 "name": "rhodecode-enterprise",
2 "name": "rhodecode-enterprise",
3 "version": "2.0.0",
3 "version": "4.19.0",
4 "private": true,
4 "private": true,
5 "description" : "RhodeCode JS packaged",
5 "description" : "RhodeCode JS packaged",
6 "license": "SEE LICENSE IN LICENSE.txt",
6 "license": "SEE LICENSE IN LICENSE.txt",
@@ -14,4 +14,12 b' rec {'
14 pythonPackages;
14 pythonPackages;
15 };
15 };
16
16
17 pip-tools = pythonPackages.pip-tools;
18
19 setuptools = pythonPackages.setuptools;
20
21 wheel = pythonPackages.wheel;
22
23 pip = pythonPackages.pip;
24
17 }
25 }
@@ -1,8 +1,8 b''
1 # This file has been generated by node2nix 1.6.0. Do not edit!
1 # This file has been generated by node2nix 1.8.0. Do not edit!
2
2
3 {pkgs ? import <nixpkgs> {
3 {pkgs ? import <nixpkgs> {
4 inherit system;
4 inherit system;
5 }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-8_x"}:
5 }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
6
6
7 let
7 let
8 nodeEnv = import ./node-env.nix {
8 nodeEnv = import ./node-env.nix {
@@ -11,7 +11,7 b' let'
11
11
12 cat > $out/bin/tar <<EOF
12 cat > $out/bin/tar <<EOF
13 #! ${stdenv.shell} -e
13 #! ${stdenv.shell} -e
14 $(type -p tar) "\$@" --warning=no-unknown-keyword
14 $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
15 EOF
15 EOF
16
16
17 chmod +x $out/bin/tar
17 chmod +x $out/bin/tar
@@ -57,7 +57,7 b' let'
57
57
58 # Recursively composes the dependencies of a package
58 # Recursively composes the dependencies of a package
59 composePackage = { name, packageName, src, dependencies ? [], ... }@args:
59 composePackage = { name, packageName, src, dependencies ? [], ... }@args:
60 ''
60 builtins.addErrorContext "while evaluating node package '${packageName}'" ''
61 DIR=$(pwd)
61 DIR=$(pwd)
62 cd $TMPDIR
62 cd $TMPDIR
63
63
@@ -72,7 +72,7 b' let'
72 packageDir="$(find . -maxdepth 1 -type d | tail -1)"
72 packageDir="$(find . -maxdepth 1 -type d | tail -1)"
73
73
74 # Restore write permissions to make building work
74 # Restore write permissions to make building work
75 find "$packageDir" -type d -print0 | xargs -0 chmod u+x
75 find "$packageDir" -type d -exec chmod u+x {} \;
76 chmod -R u+w "$packageDir"
76 chmod -R u+w "$packageDir"
77
77
78 # Move the extracted tarball into the output folder
78 # Move the extracted tarball into the output folder
@@ -219,7 +219,16 b' let'
219 packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
219 packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
220 }
220 }
221
221
222 packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
222 if(dependency.resolved) {
223 packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
224 } else {
225 packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
226 }
227
228 if(dependency.from !== undefined) { // Adopt from property if one has been provided
229 packageObj["_from"] = dependency.from;
230 }
231
223 fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
232 fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
224 }
233 }
225
234
@@ -308,50 +317,11 b' let'
308 '';
317 '';
309 };
318 };
310
319
311 # Builds and composes an NPM package including all its dependencies
320 prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
312 buildNodePackage =
313 { name
314 , packageName
315 , version
316 , dependencies ? []
317 , buildInputs ? []
318 , production ? true
319 , npmFlags ? ""
320 , dontNpmInstall ? false
321 , bypassCache ? false
322 , preRebuild ? ""
323 , dontStrip ? true
324 , unpackPhase ? "true"
325 , buildPhase ? "true"
326 , ... }@args:
327
328 let
321 let
329 forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
322 forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
330 extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
331 in
323 in
332 stdenv.mkDerivation ({
324 ''
333 name = "node-${name}-${version}";
334 buildInputs = [ tarWrapper python nodejs ]
335 ++ stdenv.lib.optional (stdenv.isLinux) utillinux
336 ++ stdenv.lib.optional (stdenv.isDarwin) libtool
337 ++ buildInputs;
338
339 inherit dontStrip; # Stripping may fail a build for some package deployments
340 inherit dontNpmInstall preRebuild unpackPhase buildPhase;
341
342 compositionScript = composePackage args;
343 pinpointDependenciesScript = pinpointDependenciesOfPackage args;
344
345 passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
346
347 installPhase = ''
348 # Create and enter a root node_modules/ folder
349 mkdir -p $out/lib/node_modules
350 cd $out/lib/node_modules
351
352 # Compose the package and all its dependencies
353 source $compositionScriptPath
354
355 # Pinpoint the versions of all dependencies to the ones that are actually being used
325 # Pinpoint the versions of all dependencies to the ones that are actually being used
356 echo "pinpointing versions of dependencies..."
326 echo "pinpointing versions of dependencies..."
357 source $pinpointDependenciesScriptPath
327 source $pinpointDependenciesScriptPath
@@ -375,24 +345,80 b' let'
375 runHook preRebuild
345 runHook preRebuild
376
346
377 ${stdenv.lib.optionalString bypassCache ''
347 ${stdenv.lib.optionalString bypassCache ''
378 if [ ! -f package-lock.json ]
348 ${stdenv.lib.optionalString reconstructLock ''
379 then
349 if [ -f package-lock.json ]
380 echo "No package-lock.json file found, reconstructing..."
350 then
381 node ${reconstructPackageLock}
351 echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
382 fi
352 echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
353 rm package-lock.json
354 else
355 echo "No package-lock.json file found, reconstructing..."
356 fi
357
358 node ${reconstructPackageLock}
359 ''}
383
360
384 node ${addIntegrityFieldsScript}
361 node ${addIntegrityFieldsScript}
385 ''}
362 ''}
386
363
387 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
364 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
388
365
389 if [ "$dontNpmInstall" != "1" ]
366 if [ "''${dontNpmInstall-}" != "1" ]
390 then
367 then
391 # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
368 # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
392 rm -f npm-shrinkwrap.json
369 rm -f npm-shrinkwrap.json
393
370
394 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
371 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
395 fi
372 fi
373 '';
374
375 # Builds and composes an NPM package including all its dependencies
376 buildNodePackage =
377 { name
378 , packageName
379 , version
380 , dependencies ? []
381 , buildInputs ? []
382 , production ? true
383 , npmFlags ? ""
384 , dontNpmInstall ? false
385 , bypassCache ? false
386 , reconstructLock ? false
387 , preRebuild ? ""
388 , dontStrip ? true
389 , unpackPhase ? "true"
390 , buildPhase ? "true"
391 , ... }@args:
392
393 let
394 extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
395 in
396 stdenv.mkDerivation ({
397 name = "node_${name}-${version}";
398 buildInputs = [ tarWrapper python nodejs ]
399 ++ stdenv.lib.optional (stdenv.isLinux) utillinux
400 ++ stdenv.lib.optional (stdenv.isDarwin) libtool
401 ++ buildInputs;
402
403 inherit nodejs;
404
405 inherit dontStrip; # Stripping may fail a build for some package deployments
406 inherit dontNpmInstall preRebuild unpackPhase buildPhase;
407
408 compositionScript = composePackage args;
409 pinpointDependenciesScript = pinpointDependenciesOfPackage args;
410
411 passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
412
413 installPhase = ''
414 # Create and enter a root node_modules/ folder
415 mkdir -p $out/lib/node_modules
416 cd $out/lib/node_modules
417
418 # Compose the package and all its dependencies
419 source $compositionScriptPath
420
421 ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
396
422
397 # Create symlink to the deployed executable folder, if applicable
423 # Create symlink to the deployed executable folder, if applicable
398 if [ -d "$out/lib/node_modules/.bin" ]
424 if [ -d "$out/lib/node_modules/.bin" ]
@@ -431,14 +457,13 b' let'
431 , npmFlags ? ""
457 , npmFlags ? ""
432 , dontNpmInstall ? false
458 , dontNpmInstall ? false
433 , bypassCache ? false
459 , bypassCache ? false
460 , reconstructLock ? false
434 , dontStrip ? true
461 , dontStrip ? true
435 , unpackPhase ? "true"
462 , unpackPhase ? "true"
436 , buildPhase ? "true"
463 , buildPhase ? "true"
437 , ... }@args:
464 , ... }@args:
438
465
439 let
466 let
440 forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
441
442 extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
467 extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
443
468
444 nodeDependencies = stdenv.mkDerivation ({
469 nodeDependencies = stdenv.mkDerivation ({
@@ -473,39 +498,13 b' let'
473 fi
498 fi
474 ''}
499 ''}
475
500
476 # Pinpoint the versions of all dependencies to the ones that are actually being used
501 # Go to the parent folder to make sure that all packages are pinpointed
477 echo "pinpointing versions of dependencies..."
478 cd ..
502 cd ..
479 ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
503 ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
480
504
481 source $pinpointDependenciesScriptPath
505 ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
482 cd ${packageName}
483
484 # Patch the shebangs of the bundled modules to prevent them from
485 # calling executables outside the Nix store as much as possible
486 patchShebangs .
487
488 export HOME=$PWD
489
506
490 ${stdenv.lib.optionalString bypassCache ''
507 # Expose the executables that were installed
491 if [ ! -f package-lock.json ]
492 then
493 echo "No package-lock.json file found, reconstructing..."
494 node ${reconstructPackageLock}
495 fi
496
497 node ${addIntegrityFieldsScript}
498 ''}
499
500 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
501
502 ${stdenv.lib.optionalString (!dontNpmInstall) ''
503 # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
504 rm -f npm-shrinkwrap.json
505
506 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
507 ''}
508
509 cd ..
508 cd ..
510 ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
509 ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
511
510
@@ -531,7 +530,8 b' let'
531 # Provide the dependencies in a development shell through the NODE_PATH environment variable
530 # Provide the dependencies in a development shell through the NODE_PATH environment variable
532 inherit nodeDependencies;
531 inherit nodeDependencies;
533 shellHook = stdenv.lib.optionalString (dependencies != []) ''
532 shellHook = stdenv.lib.optionalString (dependencies != []) ''
534 export NODE_PATH=$nodeDependencies/lib/node_modules
533 export NODE_PATH=${nodeDependencies}/lib/node_modules
534 export PATH="${nodeDependencies}/bin:$PATH"
535 '';
535 '';
536 };
536 };
537 in
537 in
@@ -1,4 +1,4 b''
1 # This file has been generated by node2nix 1.6.0. Do not edit!
1 # This file has been generated by node2nix 1.8.0. Do not edit!
2
2
3 {nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
3 {nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
4
4
@@ -211,13 +211,13 b' let'
211 sha512 = "yiUk09opTEnE1lK+tb501ENb+yQBi4p++Ep0eGJAHesVYKVMPNgPphVKkIizkDaU+n0SE+zXfTsRbYyOMDYXSg==";
211 sha512 = "yiUk09opTEnE1lK+tb501ENb+yQBi4p++Ep0eGJAHesVYKVMPNgPphVKkIizkDaU+n0SE+zXfTsRbYyOMDYXSg==";
212 };
212 };
213 };
213 };
214 "@polymer/polymer-3.3.1" = {
214 "@polymer/polymer-3.4.1" = {
215 name = "_at_polymer_slash_polymer";
215 name = "_at_polymer_slash_polymer";
216 packageName = "@polymer/polymer";
216 packageName = "@polymer/polymer";
217 version = "3.3.1";
217 version = "3.4.1";
218 src = fetchurl {
218 src = fetchurl {
219 url = "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.3.1.tgz";
219 url = "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz";
220 sha512 = "8KaB48tzyMjdsHdxo5KvCAaqmTe7rYDzQAoj/pyEfq9Fp4YfUaS+/xqwYj0GbiDAUNzwkmEQ7dw9cgnRNdKO8A==";
220 sha512 = "KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==";
221 };
221 };
222 };
222 };
223 "@types/clone-0.1.30" = {
223 "@types/clone-0.1.30" = {
@@ -499,13 +499,13 b' let'
499 sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
499 sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
500 };
500 };
501 };
501 };
502 "ajv-6.12.0" = {
502 "ajv-6.12.2" = {
503 name = "ajv";
503 name = "ajv";
504 packageName = "ajv";
504 packageName = "ajv";
505 version = "6.12.0";
505 version = "6.12.2";
506 src = fetchurl {
506 src = fetchurl {
507 url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
507 url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
508 sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
508 sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
509 };
509 };
510 };
510 };
511 "ajv-keywords-3.4.1" = {
511 "ajv-keywords-3.4.1" = {
@@ -1472,6 +1472,15 b' let'
1472 sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
1472 sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
1473 };
1473 };
1474 };
1474 };
1475 "bn.js-5.1.1" = {
1476 name = "bn.js";
1477 packageName = "bn.js";
1478 version = "5.1.1";
1479 src = fetchurl {
1480 url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz";
1481 sha512 = "IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==";
1482 };
1483 };
1475 "boolbase-1.0.0" = {
1484 "boolbase-1.0.0" = {
1476 name = "boolbase";
1485 name = "boolbase";
1477 packageName = "boolbase";
1486 packageName = "boolbase";
@@ -1553,13 +1562,13 b' let'
1553 sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
1562 sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
1554 };
1563 };
1555 };
1564 };
1556 "browserify-sign-4.0.4" = {
1565 "browserify-sign-4.1.0" = {
1557 name = "browserify-sign";
1566 name = "browserify-sign";
1558 packageName = "browserify-sign";
1567 packageName = "browserify-sign";
1559 version = "4.0.4";
1568 version = "4.1.0";
1560 src = fetchurl {
1569 src = fetchurl {
1561 url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
1570 url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz";
1562 sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
1571 sha512 = "VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==";
1563 };
1572 };
1564 };
1573 };
1565 "browserify-zlib-0.2.0" = {
1574 "browserify-zlib-0.2.0" = {
@@ -1679,22 +1688,22 b' let'
1679 sha1 = "b534e7c734c4f81ec5fbe8aca2ad24354b962c6c";
1688 sha1 = "b534e7c734c4f81ec5fbe8aca2ad24354b962c6c";
1680 };
1689 };
1681 };
1690 };
1682 "caniuse-db-1.0.30001042" = {
1691 "caniuse-db-1.0.30001058" = {
1683 name = "caniuse-db";
1692 name = "caniuse-db";
1684 packageName = "caniuse-db";
1693 packageName = "caniuse-db";
1685 version = "1.0.30001042";
1694 version = "1.0.30001058";
1686 src = fetchurl {
1695 src = fetchurl {
1687 url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001042.tgz";
1696 url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001058.tgz";
1688 sha512 = "2RKrB2hkLCW/8Uj32oaXj0O+N9ROo0/BF0EueWHwgs6AeeSiL+rCSsbICR3ayBJOZavgcFx65ZCw7QiafsoUFQ==";
1697 sha512 = "DhGWGTuINKNdqrJzw6ag7RnkuHtg3B4m/b4SsvqAN3n1UXzSXtINS2ReBFOA5mO3TukrW39Fr9pUWW02i8Zvcw==";
1689 };
1698 };
1690 };
1699 };
1691 "caniuse-lite-1.0.30001042" = {
1700 "caniuse-lite-1.0.30001058" = {
1692 name = "caniuse-lite";
1701 name = "caniuse-lite";
1693 packageName = "caniuse-lite";
1702 packageName = "caniuse-lite";
1694 version = "1.0.30001042";
1703 version = "1.0.30001058";
1695 src = fetchurl {
1704 src = fetchurl {
1696 url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz";
1705 url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001058.tgz";
1697 sha512 = "igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw==";
1706 sha512 = "UiRZmBYd1HdVVdFKy7PuLVx9e2NS7SMyx7QpWvFjiklYrLJKpLd19cRnRNqlw4zYa7vVejS3c8JUVobX241zHQ==";
1698 };
1707 };
1699 };
1708 };
1700 "caseless-0.12.0" = {
1709 "caseless-0.12.0" = {
@@ -2552,13 +2561,13 b' let'
2552 sha1 = "3a83a904e54353287874c564b7549386849a98c9";
2561 sha1 = "3a83a904e54353287874c564b7549386849a98c9";
2553 };
2562 };
2554 };
2563 };
2555 "electron-to-chromium-1.3.412" = {
2564 "electron-to-chromium-1.3.437" = {
2556 name = "electron-to-chromium";
2565 name = "electron-to-chromium";
2557 packageName = "electron-to-chromium";
2566 packageName = "electron-to-chromium";
2558 version = "1.3.412";
2567 version = "1.3.437";
2559 src = fetchurl {
2568 src = fetchurl {
2560 url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.412.tgz";
2569 url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.437.tgz";
2561 sha512 = "4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw==";
2570 sha512 = "PBQn2q68ErqMyBUABh9Gh8R6DunGky8aB5y3N5lPM7OVpldwyUbAK5AX9WcwE/5F6ceqvQ+iQLYkJYRysAs6Bg==";
2562 };
2571 };
2563 };
2572 };
2564 "elliptic-6.5.2" = {
2573 "elliptic-6.5.2" = {
@@ -2624,13 +2633,13 b' let'
2624 sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
2633 sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
2625 };
2634 };
2626 };
2635 };
2627 "entities-2.0.0" = {
2636 "entities-2.0.2" = {
2628 name = "entities";
2637 name = "entities";
2629 packageName = "entities";
2638 packageName = "entities";
2630 version = "2.0.0";
2639 version = "2.0.2";
2631 src = fetchurl {
2640 src = fetchurl {
2632 url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
2641 url = "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz";
2633 sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==";
2642 sha512 = "dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==";
2634 };
2643 };
2635 };
2644 };
2636 "errno-0.1.7" = {
2645 "errno-0.1.7" = {
@@ -3101,13 +3110,13 b' let'
3101 sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
3110 sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
3102 };
3111 };
3103 };
3112 };
3104 "fsevents-1.2.12" = {
3113 "fsevents-1.2.13" = {
3105 name = "fsevents";
3114 name = "fsevents";
3106 packageName = "fsevents";
3115 packageName = "fsevents";
3107 version = "1.2.12";
3116 version = "1.2.13";
3108 src = fetchurl {
3117 src = fetchurl {
3109 url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
3118 url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
3110 sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==";
3119 sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
3111 };
3120 };
3112 };
3121 };
3113 "function-bind-1.1.1" = {
3122 "function-bind-1.1.1" = {
@@ -3281,13 +3290,13 b' let'
3281 sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
3290 sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
3282 };
3291 };
3283 };
3292 };
3284 "graceful-fs-4.2.3" = {
3293 "graceful-fs-4.2.4" = {
3285 name = "graceful-fs";
3294 name = "graceful-fs";
3286 packageName = "graceful-fs";
3295 packageName = "graceful-fs";
3287 version = "4.2.3";
3296 version = "4.2.4";
3288 src = fetchurl {
3297 src = fetchurl {
3289 url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
3298 url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
3290 sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
3299 sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
3291 };
3300 };
3292 };
3301 };
3293 "grunt-0.4.5" = {
3302 "grunt-0.4.5" = {
@@ -3524,13 +3533,13 b' let'
3524 sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
3533 sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
3525 };
3534 };
3526 };
3535 };
3527 "hash-base-3.0.4" = {
3536 "hash-base-3.1.0" = {
3528 name = "hash-base";
3537 name = "hash-base";
3529 packageName = "hash-base";
3538 packageName = "hash-base";
3530 version = "3.0.4";
3539 version = "3.1.0";
3531 src = fetchurl {
3540 src = fetchurl {
3532 url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
3541 url = "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz";
3533 sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
3542 sha512 = "1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==";
3534 };
3543 };
3535 };
3544 };
3536 "hash.js-1.1.7" = {
3545 "hash.js-1.1.7" = {
@@ -4262,13 +4271,13 b' let'
4262 sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
4271 sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
4263 };
4272 };
4264 };
4273 };
4265 "jshint-2.11.0" = {
4274 "jshint-2.11.1" = {
4266 name = "jshint";
4275 name = "jshint";
4267 packageName = "jshint";
4276 packageName = "jshint";
4268 version = "2.11.0";
4277 version = "2.11.1";
4269 src = fetchurl {
4278 src = fetchurl {
4270 url = "https://registry.npmjs.org/jshint/-/jshint-2.11.0.tgz";
4279 url = "https://registry.npmjs.org/jshint/-/jshint-2.11.1.tgz";
4271 sha512 = "ooaD/hrBPhu35xXW4gn+o3SOuzht73gdBuffgJzrZBJZPGgGiiTvJEgTyxFvBO2nz0+X1G6etF8SzUODTlLY6Q==";
4280 sha512 = "WXWePB8ssAH3DlD05IoqolsY6arhbll/1+i2JkRPpihQAuiNaR/gSt8VKIcxpV5m6XChP0hCwESQUqpuQMA8Tg==";
4272 };
4281 };
4273 };
4282 };
4274 "jshint-2.9.7" = {
4283 "jshint-2.9.7" = {
@@ -4730,22 +4739,22 b' let'
4730 sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
4739 sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
4731 };
4740 };
4732 };
4741 };
4733 "mime-db-1.43.0" = {
4742 "mime-db-1.44.0" = {
4734 name = "mime-db";
4743 name = "mime-db";
4735 packageName = "mime-db";
4744 packageName = "mime-db";
4736 version = "1.43.0";
4745 version = "1.44.0";
4737 src = fetchurl {
4746 src = fetchurl {
4738 url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
4747 url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
4739 sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
4748 sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
4740 };
4749 };
4741 };
4750 };
4742 "mime-types-2.1.26" = {
4751 "mime-types-2.1.27" = {
4743 name = "mime-types";
4752 name = "mime-types";
4744 packageName = "mime-types";
4753 packageName = "mime-types";
4745 version = "2.1.26";
4754 version = "2.1.27";
4746 src = fetchurl {
4755 src = fetchurl {
4747 url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
4756 url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
4748 sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
4757 sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
4749 };
4758 };
4750 };
4759 };
4751 "mimic-fn-2.1.0" = {
4760 "mimic-fn-2.1.0" = {
@@ -4838,13 +4847,13 b' let'
4838 sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
4847 sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
4839 };
4848 };
4840 };
4849 };
4841 "moment-2.24.0" = {
4850 "moment-2.25.3" = {
4842 name = "moment";
4851 name = "moment";
4843 packageName = "moment";
4852 packageName = "moment";
4844 version = "2.24.0";
4853 version = "2.25.3";
4845 src = fetchurl {
4854 src = fetchurl {
4846 url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
4855 url = "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz";
4847 sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
4856 sha512 = "PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==";
4848 };
4857 };
4849 };
4858 };
4850 "mousetrap-1.6.5" = {
4859 "mousetrap-1.6.5" = {
@@ -4874,13 +4883,13 b' let'
4874 sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
4883 sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
4875 };
4884 };
4876 };
4885 };
4877 "nan-2.14.0" = {
4886 "nan-2.14.1" = {
4878 name = "nan";
4887 name = "nan";
4879 packageName = "nan";
4888 packageName = "nan";
4880 version = "2.14.0";
4889 version = "2.14.1";
4881 src = fetchurl {
4890 src = fetchurl {
4882 url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
4891 url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
4883 sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
4892 sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
4884 };
4893 };
4885 };
4894 };
4886 "nanomatch-1.2.13" = {
4895 "nanomatch-1.2.13" = {
@@ -6071,6 +6080,15 b' let'
6071 sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
6080 sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
6072 };
6081 };
6073 };
6082 };
6083 "readable-stream-3.6.0" = {
6084 name = "readable-stream";
6085 packageName = "readable-stream";
6086 version = "3.6.0";
6087 src = fetchurl {
6088 url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
6089 sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
6090 };
6091 };
6074 "readdirp-2.2.1" = {
6092 "readdirp-2.2.1" = {
6075 name = "readdirp";
6093 name = "readdirp";
6076 packageName = "readdirp";
6094 packageName = "readdirp";
@@ -6296,13 +6314,13 b' let'
6296 sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
6314 sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
6297 };
6315 };
6298 };
6316 };
6299 "resolve-1.16.0" = {
6317 "resolve-1.17.0" = {
6300 name = "resolve";
6318 name = "resolve";
6301 packageName = "resolve";
6319 packageName = "resolve";
6302 version = "1.16.0";
6320 version = "1.17.0";
6303 src = fetchurl {
6321 src = fetchurl {
6304 url = "https://registry.npmjs.org/resolve/-/resolve-1.16.0.tgz";
6322 url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
6305 sha512 = "LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA==";
6323 sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
6306 };
6324 };
6307 };
6325 };
6308 "resolve-cwd-2.0.0" = {
6326 "resolve-cwd-2.0.0" = {
@@ -6404,13 +6422,13 b' let'
6404 sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
6422 sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
6405 };
6423 };
6406 };
6424 };
6407 "safe-buffer-5.2.0" = {
6425 "safe-buffer-5.2.1" = {
6408 name = "safe-buffer";
6426 name = "safe-buffer";
6409 packageName = "safe-buffer";
6427 packageName = "safe-buffer";
6410 version = "5.2.0";
6428 version = "5.2.1";
6411 src = fetchurl {
6429 src = fetchurl {
6412 url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
6430 url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
6413 sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
6431 sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
6414 };
6432 };
6415 };
6433 };
6416 "safe-regex-1.1.0" = {
6434 "safe-regex-1.1.0" = {
@@ -6980,13 +6998,13 b' let'
6980 sha1 = "9f5772413952135c6fefbf40afe6a4faa88b4bb5";
6998 sha1 = "9f5772413952135c6fefbf40afe6a4faa88b4bb5";
6981 };
6999 };
6982 };
7000 };
6983 "sweetalert2-9.10.12" = {
7001 "sweetalert2-9.10.13" = {
6984 name = "sweetalert2";
7002 name = "sweetalert2";
6985 packageName = "sweetalert2";
7003 packageName = "sweetalert2";
6986 version = "9.10.12";
7004 version = "9.10.13";
6987 src = fetchurl {
7005 src = fetchurl {
6988 url = "https://registry.npmjs.org/sweetalert2/-/sweetalert2-9.10.12.tgz";
7006 url = "https://registry.npmjs.org/sweetalert2/-/sweetalert2-9.10.13.tgz";
6989 sha512 = "RnarmbDGTPmwecJbaVdq5LvlzbVReIOtPk0huPnXOE19G00xMxGcTY0wjt9AjwsexUnLivLXc3b6nD6+D6NlGg==";
7007 sha512 = "JiZtO9SQdnS/Uvlqw5MlWpGpYVqH/eBQi7u61+Oxba7ZA4vfX0tSdyzQsiMk56HTUw8Nk8IvNPvfbt3WR3FOsQ==";
6990 };
7008 };
6991 };
7009 };
6992 "tapable-0.2.9" = {
7010 "tapable-0.2.9" = {
@@ -7133,13 +7151,13 b' let'
7133 sha1 = "30c6203e1e66b841a88701ed8858f1725d94b026";
7151 sha1 = "30c6203e1e66b841a88701ed8858f1725d94b026";
7134 };
7152 };
7135 };
7153 };
7136 "tslib-1.11.1" = {
7154 "tslib-1.13.0" = {
7137 name = "tslib";
7155 name = "tslib";
7138 packageName = "tslib";
7156 packageName = "tslib";
7139 version = "1.11.1";
7157 version = "1.13.0";
7140 src = fetchurl {
7158 src = fetchurl {
7141 url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
7159 url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
7142 sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
7160 sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
7143 };
7161 };
7144 };
7162 };
7145 "tty-browserify-0.0.0" = {
7163 "tty-browserify-0.0.0" = {
@@ -7205,13 +7223,13 b' let'
7205 sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
7223 sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
7206 };
7224 };
7207 };
7225 };
7208 "uglify-js-3.9.1" = {
7226 "uglify-js-3.9.3" = {
7209 name = "uglify-js";
7227 name = "uglify-js";
7210 packageName = "uglify-js";
7228 packageName = "uglify-js";
7211 version = "3.9.1";
7229 version = "3.9.3";
7212 src = fetchurl {
7230 src = fetchurl {
7213 url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.1.tgz";
7231 url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.3.tgz";
7214 sha512 = "JUPoL1jHsc9fOjVFHdQIhqEEJsQvfKDjlubcCilu8U26uZ73qOg8VsN8O1jbuei44ZPlwL7kmbAdM4tzaUvqnA==";
7232 sha512 = "r5ImcL6QyzQGVimQoov3aL2ZScywrOgBXGndbWrdehKoSvGe/RmiE5Jpw/v+GvxODt6l2tpBXwA7n+qZVlHBMA==";
7215 };
7233 };
7216 };
7234 };
7217 "uglify-to-browserify-1.0.2" = {
7235 "uglify-to-browserify-1.0.2" = {
@@ -7731,7 +7749,7 b' let'
7731 args = {
7749 args = {
7732 name = "rhodecode-enterprise";
7750 name = "rhodecode-enterprise";
7733 packageName = "rhodecode-enterprise";
7751 packageName = "rhodecode-enterprise";
7734 version = "2.0.0";
7752 version = "4.19.0";
7735 src = ./..;
7753 src = ./..;
7736 dependencies = [
7754 dependencies = [
7737 sources."@polymer/font-roboto-3.0.2"
7755 sources."@polymer/font-roboto-3.0.2"
@@ -7757,7 +7775,7 b' let'
7757 sources."@polymer/paper-toast-3.0.1"
7775 sources."@polymer/paper-toast-3.0.1"
7758 sources."@polymer/paper-toggle-button-3.0.1"
7776 sources."@polymer/paper-toggle-button-3.0.1"
7759 sources."@polymer/paper-tooltip-3.0.1"
7777 sources."@polymer/paper-tooltip-3.0.1"
7760 sources."@polymer/polymer-3.3.1"
7778 sources."@polymer/polymer-3.4.1"
7761 sources."@types/clone-0.1.30"
7779 sources."@types/clone-0.1.30"
7762 sources."@types/node-6.14.10"
7780 sources."@types/node-6.14.10"
7763 sources."@types/parse5-2.2.34"
7781 sources."@types/parse5-2.2.34"
@@ -7824,7 +7842,11 b' let'
7824 sources."array-unique-0.3.2"
7842 sources."array-unique-0.3.2"
7825 sources."asap-2.0.6"
7843 sources."asap-2.0.6"
7826 sources."asn1-0.2.4"
7844 sources."asn1-0.2.4"
7827 sources."asn1.js-4.10.1"
7845 (sources."asn1.js-4.10.1" // {
7846 dependencies = [
7847 sources."bn.js-4.11.8"
7848 ];
7849 })
7828 (sources."assert-1.5.0" // {
7850 (sources."assert-1.5.0" // {
7829 dependencies = [
7851 dependencies = [
7830 sources."inherits-2.0.1"
7852 sources."inherits-2.0.1"
@@ -7960,7 +7982,7 b' let'
7960 sources."binary-extensions-1.13.1"
7982 sources."binary-extensions-1.13.1"
7961 sources."bindings-1.5.0"
7983 sources."bindings-1.5.0"
7962 sources."bluebird-3.7.2"
7984 sources."bluebird-3.7.2"
7963 sources."bn.js-4.11.8"
7985 sources."bn.js-5.1.1"
7964 sources."boolbase-1.0.0"
7986 sources."boolbase-1.0.0"
7965 sources."boom-2.10.1"
7987 sources."boom-2.10.1"
7966 sources."brace-expansion-1.1.11"
7988 sources."brace-expansion-1.1.11"
@@ -7973,8 +7995,17 b' let'
7973 sources."browserify-aes-1.2.0"
7995 sources."browserify-aes-1.2.0"
7974 sources."browserify-cipher-1.0.1"
7996 sources."browserify-cipher-1.0.1"
7975 sources."browserify-des-1.0.2"
7997 sources."browserify-des-1.0.2"
7976 sources."browserify-rsa-4.0.1"
7998 (sources."browserify-rsa-4.0.1" // {
7977 sources."browserify-sign-4.0.4"
7999 dependencies = [
8000 sources."bn.js-4.11.8"
8001 ];
8002 })
8003 (sources."browserify-sign-4.1.0" // {
8004 dependencies = [
8005 sources."readable-stream-3.6.0"
8006 sources."string_decoder-1.3.0"
8007 ];
8008 })
7978 sources."browserify-zlib-0.2.0"
8009 sources."browserify-zlib-0.2.0"
7979 sources."browserslist-3.2.8"
8010 sources."browserslist-3.2.8"
7980 sources."buffer-4.9.2"
8011 sources."buffer-4.9.2"
@@ -7984,7 +8015,7 b' let'
7984 (sources."cacache-10.0.4" // {
8015 (sources."cacache-10.0.4" // {
7985 dependencies = [
8016 dependencies = [
7986 sources."glob-7.1.6"
8017 sources."glob-7.1.6"
7987 sources."graceful-fs-4.2.3"
8018 sources."graceful-fs-4.2.4"
7988 sources."lru-cache-4.1.5"
8019 sources."lru-cache-4.1.5"
7989 sources."minimatch-3.0.4"
8020 sources."minimatch-3.0.4"
7990 sources."rimraf-2.7.1"
8021 sources."rimraf-2.7.1"
@@ -7998,8 +8029,8 b' let'
7998 sources."browserslist-1.7.7"
8029 sources."browserslist-1.7.7"
7999 ];
8030 ];
8000 })
8031 })
8001 sources."caniuse-db-1.0.30001042"
8032 sources."caniuse-db-1.0.30001058"
8002 sources."caniuse-lite-1.0.30001042"
8033 sources."caniuse-lite-1.0.30001058"
8003 sources."caseless-0.12.0"
8034 sources."caseless-0.12.0"
8004 sources."center-align-0.1.3"
8035 sources."center-align-0.1.3"
8005 sources."chalk-0.5.1"
8036 sources."chalk-0.5.1"
@@ -8103,7 +8134,11 b' let'
8103 })
8134 })
8104 sources."core-js-2.6.11"
8135 sources."core-js-2.6.11"
8105 sources."core-util-is-1.0.2"
8136 sources."core-util-is-1.0.2"
8106 sources."create-ecdh-4.0.3"
8137 (sources."create-ecdh-4.0.3" // {
8138 dependencies = [
8139 sources."bn.js-4.11.8"
8140 ];
8141 })
8107 sources."create-hash-1.2.0"
8142 sources."create-hash-1.2.0"
8108 sources."create-hmac-1.1.7"
8143 sources."create-hmac-1.1.7"
8109 (sources."cross-spawn-6.0.5" // {
8144 (sources."cross-spawn-6.0.5" // {
@@ -8148,13 +8183,17 b' let'
8148 sources."des.js-1.0.1"
8183 sources."des.js-1.0.1"
8149 sources."detect-file-1.0.0"
8184 sources."detect-file-1.0.0"
8150 sources."detect-indent-4.0.0"
8185 sources."detect-indent-4.0.0"
8151 sources."diffie-hellman-5.0.3"
8186 (sources."diffie-hellman-5.0.3" // {
8187 dependencies = [
8188 sources."bn.js-4.11.8"
8189 ];
8190 })
8152 sources."dir-glob-2.2.2"
8191 sources."dir-glob-2.2.2"
8153 sources."dom-converter-0.2.0"
8192 sources."dom-converter-0.2.0"
8154 (sources."dom-serializer-0.2.2" // {
8193 (sources."dom-serializer-0.2.2" // {
8155 dependencies = [
8194 dependencies = [
8156 sources."domelementtype-2.0.1"
8195 sources."domelementtype-2.0.1"
8157 sources."entities-2.0.0"
8196 sources."entities-2.0.2"
8158 ];
8197 ];
8159 })
8198 })
8160 (sources."dom5-2.3.0" // {
8199 (sources."dom5-2.3.0" // {
@@ -8177,13 +8216,17 b' let'
8177 ];
8216 ];
8178 })
8217 })
8179 sources."ecc-jsbn-0.1.2"
8218 sources."ecc-jsbn-0.1.2"
8180 sources."electron-to-chromium-1.3.412"
8219 sources."electron-to-chromium-1.3.437"
8181 sources."elliptic-6.5.2"
8220 (sources."elliptic-6.5.2" // {
8221 dependencies = [
8222 sources."bn.js-4.11.8"
8223 ];
8224 })
8182 sources."emojis-list-3.0.0"
8225 sources."emojis-list-3.0.0"
8183 sources."end-of-stream-1.4.4"
8226 sources."end-of-stream-1.4.4"
8184 (sources."enhanced-resolve-4.1.1" // {
8227 (sources."enhanced-resolve-4.1.1" // {
8185 dependencies = [
8228 dependencies = [
8186 sources."graceful-fs-4.2.3"
8229 sources."graceful-fs-4.2.4"
8187 sources."memory-fs-0.5.0"
8230 sources."memory-fs-0.5.0"
8188 sources."readable-stream-2.3.7"
8231 sources."readable-stream-2.3.7"
8189 sources."safe-buffer-5.1.2"
8232 sources."safe-buffer-5.1.2"
@@ -8286,11 +8329,11 b' let'
8286 })
8329 })
8287 (sources."fs-write-stream-atomic-1.0.10" // {
8330 (sources."fs-write-stream-atomic-1.0.10" // {
8288 dependencies = [
8331 dependencies = [
8289 sources."graceful-fs-4.2.3"
8332 sources."graceful-fs-4.2.4"
8290 ];
8333 ];
8291 })
8334 })
8292 sources."fs.realpath-1.0.0"
8335 sources."fs.realpath-1.0.0"
8293 sources."fsevents-1.2.12"
8336 sources."fsevents-1.2.13"
8294 sources."function-bind-1.1.1"
8337 sources."function-bind-1.1.1"
8295 sources."gaze-0.5.2"
8338 sources."gaze-0.5.2"
8296 sources."get-caller-file-1.0.3"
8339 sources."get-caller-file-1.0.3"
@@ -8418,7 +8461,12 b' let'
8418 sources."kind-of-4.0.0"
8461 sources."kind-of-4.0.0"
8419 ];
8462 ];
8420 })
8463 })
8421 sources."hash-base-3.0.4"
8464 (sources."hash-base-3.1.0" // {
8465 dependencies = [
8466 sources."readable-stream-3.6.0"
8467 sources."string_decoder-1.3.0"
8468 ];
8469 })
8422 sources."hash.js-1.1.7"
8470 sources."hash.js-1.1.7"
8423 sources."hawk-3.1.3"
8471 sources."hawk-3.1.3"
8424 sources."he-1.2.0"
8472 sources."he-1.2.0"
@@ -8525,7 +8573,7 b' let'
8525 sources."js-yaml-2.0.5"
8573 sources."js-yaml-2.0.5"
8526 sources."jsbn-0.1.1"
8574 sources."jsbn-0.1.1"
8527 sources."jsesc-1.3.0"
8575 sources."jsesc-1.3.0"
8528 (sources."jshint-2.11.0" // {
8576 (sources."jshint-2.11.1" // {
8529 dependencies = [
8577 dependencies = [
8530 sources."lodash-4.17.15"
8578 sources."lodash-4.17.15"
8531 sources."minimatch-3.0.4"
8579 sources."minimatch-3.0.4"
@@ -8548,7 +8596,7 b' let'
8548 sources."lcid-2.0.0"
8596 sources."lcid-2.0.0"
8549 (sources."less-2.7.3" // {
8597 (sources."less-2.7.3" // {
8550 dependencies = [
8598 dependencies = [
8551 sources."graceful-fs-4.2.3"
8599 sources."graceful-fs-4.2.4"
8552 ];
8600 ];
8553 })
8601 })
8554 (sources."liftoff-2.5.0" // {
8602 (sources."liftoff-2.5.0" // {
@@ -8595,10 +8643,14 b' let'
8595 ];
8643 ];
8596 })
8644 })
8597 sources."micromatch-3.1.10"
8645 sources."micromatch-3.1.10"
8598 sources."miller-rabin-4.0.1"
8646 (sources."miller-rabin-4.0.1" // {
8647 dependencies = [
8648 sources."bn.js-4.11.8"
8649 ];
8650 })
8599 sources."mime-1.6.0"
8651 sources."mime-1.6.0"
8600 sources."mime-db-1.43.0"
8652 sources."mime-db-1.44.0"
8601 sources."mime-types-2.1.26"
8653 sources."mime-types-2.1.27"
8602 sources."mimic-fn-2.1.0"
8654 sources."mimic-fn-2.1.0"
8603 sources."minimalistic-assert-1.0.1"
8655 sources."minimalistic-assert-1.0.1"
8604 sources."minimalistic-crypto-utils-1.0.1"
8656 sources."minimalistic-crypto-utils-1.0.1"
@@ -8611,7 +8663,7 b' let'
8611 ];
8663 ];
8612 })
8664 })
8613 sources."mkdirp-0.5.5"
8665 sources."mkdirp-0.5.5"
8614 sources."moment-2.24.0"
8666 sources."moment-2.25.3"
8615 sources."mousetrap-1.6.5"
8667 sources."mousetrap-1.6.5"
8616 (sources."move-concurrently-1.0.1" // {
8668 (sources."move-concurrently-1.0.1" // {
8617 dependencies = [
8669 dependencies = [
@@ -8621,7 +8673,7 b' let'
8621 ];
8673 ];
8622 })
8674 })
8623 sources."ms-2.0.0"
8675 sources."ms-2.0.0"
8624 sources."nan-2.14.0"
8676 sources."nan-2.14.1"
8625 sources."nanomatch-1.2.13"
8677 sources."nanomatch-1.2.13"
8626 sources."neo-async-2.6.1"
8678 sources."neo-async-2.6.1"
8627 sources."nice-try-1.0.5"
8679 sources."nice-try-1.0.5"
@@ -8636,7 +8688,7 b' let'
8636 sources."safe-buffer-5.1.2"
8688 sources."safe-buffer-5.1.2"
8637 (sources."string_decoder-1.3.0" // {
8689 (sources."string_decoder-1.3.0" // {
8638 dependencies = [
8690 dependencies = [
8639 sources."safe-buffer-5.2.0"
8691 sources."safe-buffer-5.2.1"
8640 ];
8692 ];
8641 })
8693 })
8642 ];
8694 ];
@@ -8828,7 +8880,11 b' let'
8828 sources."promise-inflight-1.0.1"
8880 sources."promise-inflight-1.0.1"
8829 sources."prr-1.0.1"
8881 sources."prr-1.0.1"
8830 sources."pseudomap-1.0.2"
8882 sources."pseudomap-1.0.2"
8831 sources."public-encrypt-4.0.3"
8883 (sources."public-encrypt-4.0.3" // {
8884 dependencies = [
8885 sources."bn.js-4.11.8"
8886 ];
8887 })
8832 sources."pump-2.0.1"
8888 sources."pump-2.0.1"
8833 sources."pumpify-1.5.1"
8889 sources."pumpify-1.5.1"
8834 sources."punycode-1.4.1"
8890 sources."punycode-1.4.1"
@@ -8848,7 +8904,7 b' let'
8848 })
8904 })
8849 (sources."readdirp-2.2.1" // {
8905 (sources."readdirp-2.2.1" // {
8850 dependencies = [
8906 dependencies = [
8851 sources."graceful-fs-4.2.3"
8907 sources."graceful-fs-4.2.4"
8852 sources."readable-stream-2.3.7"
8908 sources."readable-stream-2.3.7"
8853 sources."safe-buffer-5.1.2"
8909 sources."safe-buffer-5.1.2"
8854 sources."string_decoder-1.1.1"
8910 sources."string_decoder-1.1.1"
@@ -8892,7 +8948,7 b' let'
8892 sources."request-2.81.0"
8948 sources."request-2.81.0"
8893 sources."require-directory-2.1.1"
8949 sources."require-directory-2.1.1"
8894 sources."require-main-filename-1.0.1"
8950 sources."require-main-filename-1.0.1"
8895 sources."resolve-1.16.0"
8951 sources."resolve-1.17.0"
8896 sources."resolve-cwd-2.0.0"
8952 sources."resolve-cwd-2.0.0"
8897 sources."resolve-dir-1.0.1"
8953 sources."resolve-dir-1.0.1"
8898 sources."resolve-from-3.0.0"
8954 sources."resolve-from-3.0.0"
@@ -8902,13 +8958,13 b' let'
8902 sources."rimraf-2.2.8"
8958 sources."rimraf-2.2.8"
8903 sources."ripemd160-2.0.2"
8959 sources."ripemd160-2.0.2"
8904 sources."run-queue-1.0.3"
8960 sources."run-queue-1.0.3"
8905 sources."safe-buffer-5.2.0"
8961 sources."safe-buffer-5.2.1"
8906 sources."safe-regex-1.1.0"
8962 sources."safe-regex-1.1.0"
8907 sources."safer-buffer-2.1.2"
8963 sources."safer-buffer-2.1.2"
8908 sources."sax-1.2.4"
8964 sources."sax-1.2.4"
8909 (sources."schema-utils-0.4.7" // {
8965 (sources."schema-utils-0.4.7" // {
8910 dependencies = [
8966 dependencies = [
8911 sources."ajv-6.12.0"
8967 sources."ajv-6.12.2"
8912 ];
8968 ];
8913 })
8969 })
8914 sources."select-1.1.2"
8970 sources."select-1.1.2"
@@ -9032,7 +9088,7 b' let'
9032 sources."js-yaml-3.7.0"
9088 sources."js-yaml-3.7.0"
9033 ];
9089 ];
9034 })
9090 })
9035 sources."sweetalert2-9.10.12"
9091 sources."sweetalert2-9.10.13"
9036 sources."tapable-1.1.3"
9092 sources."tapable-1.1.3"
9037 sources."through-2.3.8"
9093 sources."through-2.3.8"
9038 (sources."through2-2.0.5" // {
9094 (sources."through2-2.0.5" // {
@@ -9068,13 +9124,13 b' let'
9068 sources."colors-1.4.0"
9124 sources."colors-1.4.0"
9069 sources."emojis-list-2.1.0"
9125 sources."emojis-list-2.1.0"
9070 sources."enhanced-resolve-3.4.1"
9126 sources."enhanced-resolve-3.4.1"
9071 sources."graceful-fs-4.2.3"
9127 sources."graceful-fs-4.2.4"
9072 sources."json5-0.5.1"
9128 sources."json5-0.5.1"
9073 sources."loader-utils-0.2.17"
9129 sources."loader-utils-0.2.17"
9074 sources."tapable-0.2.9"
9130 sources."tapable-0.2.9"
9075 ];
9131 ];
9076 })
9132 })
9077 sources."tslib-1.11.1"
9133 sources."tslib-1.13.0"
9078 sources."tty-browserify-0.0.0"
9134 sources."tty-browserify-0.0.0"
9079 sources."tunnel-agent-0.6.0"
9135 sources."tunnel-agent-0.6.0"
9080 sources."tweetnacl-0.14.5"
9136 sources."tweetnacl-0.14.5"
@@ -9085,7 +9141,7 b' let'
9085 sources."source-map-0.6.1"
9141 sources."source-map-0.6.1"
9086 ];
9142 ];
9087 })
9143 })
9088 sources."uglify-js-3.9.1"
9144 sources."uglify-js-3.9.3"
9089 sources."uglify-to-browserify-1.0.2"
9145 sources."uglify-to-browserify-1.0.2"
9090 (sources."uglifyjs-webpack-plugin-1.3.0" // {
9146 (sources."uglifyjs-webpack-plugin-1.3.0" // {
9091 dependencies = [
9147 dependencies = [
@@ -9149,13 +9205,13 b' let'
9149 sources."vm-browserify-1.1.2"
9205 sources."vm-browserify-1.1.2"
9150 (sources."watchpack-1.6.1" // {
9206 (sources."watchpack-1.6.1" // {
9151 dependencies = [
9207 dependencies = [
9152 sources."graceful-fs-4.2.3"
9208 sources."graceful-fs-4.2.4"
9153 ];
9209 ];
9154 })
9210 })
9155 sources."waypoints-4.0.1"
9211 sources."waypoints-4.0.1"
9156 (sources."webpack-4.23.1" // {
9212 (sources."webpack-4.23.1" // {
9157 dependencies = [
9213 dependencies = [
9158 sources."ajv-6.12.0"
9214 sources."ajv-6.12.2"
9159 ];
9215 ];
9160 })
9216 })
9161 (sources."webpack-cli-3.1.2" // {
9217 (sources."webpack-cli-3.1.2" // {
@@ -9225,9 +9281,12 b' let'
9225 };
9281 };
9226 production = false;
9282 production = false;
9227 bypassCache = true;
9283 bypassCache = true;
9284 reconstructLock = true;
9228 };
9285 };
9229 in
9286 in
9230 {
9287 {
9288 args = args;
9289 sources = sources;
9231 tarball = nodeEnv.buildNodeSourceDist args;
9290 tarball = nodeEnv.buildNodeSourceDist args;
9232 package = nodeEnv.buildNodePackage args;
9291 package = nodeEnv.buildNodePackage args;
9233 shell = nodeEnv.buildNodeShell args;
9292 shell = nodeEnv.buildNodeShell args;
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
@@ -4,7 +4,11 b''
4
4
5 with pkgs.lib;
5 with pkgs.lib;
6
6
7 let _pythonPackages = pythonPackages; in
7 let
8 _pythonPackages = pythonPackages;
9
10 in
11
8 let
12 let
9 pythonPackages = getAttr _pythonPackages pkgs;
13 pythonPackages = getAttr _pythonPackages pkgs;
10
14
@@ -18,16 +22,23 b' in'
18
22
19 pkgs.stdenv.mkDerivation {
23 pkgs.stdenv.mkDerivation {
20 name = "pip2nix-generated";
24 name = "pip2nix-generated";
25
21 buildInputs = [
26 buildInputs = [
22 # Allows to generate python packages
27 # Allows to generate python packages
23 pip2nix.pip2nix
28 pip2nix.pip2nix
24 pythonPackages.pip-tools
29 pip2nix.pip
30 pip2nix.pip-tools
31
32 # compile using ffi
33 pkgs.libffi
34
35 pythonPackages.cython
25
36
26 # Allows to generate node dependencies
37 # Allows to generate node dependencies
27 pkgs.nodePackages.node2nix
38 pkgs.nodePackages.node2nix
28
39
29 # We need mysql_config to be around
40 # We need mysql_config to be around
30 pkgs.mysql
41 pkgs.libmysqlclient
31
42
32 # We need postgresql to be around
43 # We need postgresql to be around
33 pkgs.postgresql
44 pkgs.postgresql
@@ -48,8 +59,15 b' pkgs.stdenv.mkDerivation {'
48
59
49 preShellHook = ''
60 preShellHook = ''
50 echo "Starting Generate Shell"
61 echo "Starting Generate Shell"
62 # set unpack source date to 1980 to fix ZIP problems that does not support <1980
63 export SOURCE_DATE_EPOCH=315532800
64 export TMPDIR=/tmp
65 export LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive"
66 export LC_ALL="en_US.UTF-8"
67 export PYCURL_SSL_LIBRARY=openssl
68
51 # Custom prompt to distinguish from other dev envs.
69 # Custom prompt to distinguish from other dev envs.
52 export PS1="\n\[\033[1;32m\][Generate-shell:\w]$\[\033[0m\] "
70 export PS1="\n\[\033[1;32m\][pip2nix-generate-shell]$\[\033[0m\] "
53 export PYCURL_SSL_LIBRARY=openssl
71
54 '';
72 '';
55 }
73 }
@@ -87,7 +87,7 b' psycopg2==2.8.4'
87
87
88 # IPYTHON RENDERING
88 # IPYTHON RENDERING
89 # entrypoints backport, pypi version doesn't support egg installs
89 # entrypoints backport, pypi version doesn't support egg installs
90 https://code.rhodecode.com/upstream/entrypoints/artifacts/download/0-8e9ee9e4-c4db-409c-b07e-81568fd1832d.tar.gz?md5=3a027b8ff1d257b91fe257de6c43357d#egg=entrypoints==0.2.2.rhodecode-upstream1
90 https://code.rhodecode.com/upstream/entrypoints/artifacts/download/0-8e9ee9e4-c4db-409c-b07e-81568fd1832d.tar.gz?md5=3a027b8ff1d257b91fe257de6c43357d#egg=entrypoints==0.2.2
91 nbconvert==5.3.1
91 nbconvert==5.3.1
92 nbformat==4.4.0
92 nbformat==4.4.0
93 jupyter-client==5.0.0
93 jupyter-client==5.0.0
@@ -1,6 +1,6 b''
1 # contains not directly required libraries we want to pin the version.
1 # contains not directly required libraries we want to pin the version.
2
2
3 atomicwrites==1.3.0
3 atomicwrites==1.4.0
4 attrs==19.3.0
4 attrs==19.3.0
5 asn1crypto==0.24.0
5 asn1crypto==0.24.0
6 billiard==3.6.4.0
6 billiard==3.6.4.0
@@ -1,10 +1,6 b''
1 [aliases]
1 [aliases]
2 test = pytest
2 test = pytest
3
3
4 [egg_info]
5 tag_build =
6 tag_svn_revision = false
7
8 # Babel configuration
4 # Babel configuration
9 [compile_catalog]
5 [compile_catalog]
10 domain = rhodecode
6 domain = rhodecode
@@ -27,12 +27,12 b' let'
27 optionalDevelopInstall = attributeName:
27 optionalDevelopInstall = attributeName:
28 let
28 let
29 path = pkgs.lib.attrByPath [attributeName] null sources;
29 path = pkgs.lib.attrByPath [attributeName] null sources;
30 doIt = doDevelopInstall && path != null;
30 doDI = doDevelopInstall && path != null;
31
31
32 in
32 in
33 # do develop installation with empty hosts to skip any package duplicates to
33 # do develop installation with empty hosts to skip any package duplicates to
34 # be replaced. This only pushes the package to be locally available
34 # be replaced. This only pushes the package to be locally available
35 pkgs.lib.optionalString doIt (''
35 pkgs.lib.optionalString doDI (''
36 echo "[BEGIN] Develop install of '${attributeName}' from '${path}'"
36 echo "[BEGIN] Develop install of '${attributeName}' from '${path}'"
37 pushd ${path}
37 pushd ${path}
38 python setup.py develop --prefix $tmp_path --allow-hosts ""
38 python setup.py develop --prefix $tmp_path --allow-hosts ""
@@ -47,8 +47,8 b' let'
47 optionalDevelopInstallBuildInputs = attributeName:
47 optionalDevelopInstallBuildInputs = attributeName:
48 let
48 let
49 path = pkgs.lib.attrByPath [attributeName] null sources;
49 path = pkgs.lib.attrByPath [attributeName] null sources;
50 doIt = doDevelopInstall && path != null && pkgs.lib.pathExists "${nixFile}";
51 nixFile = "${path}/default.nix";
50 nixFile = "${path}/default.nix";
51 doDI = doDevelopInstall && path != null && pkgs.lib.pathExists "${nixFile}";
52
52
53 derivate = import "${nixFile}" {
53 derivate = import "${nixFile}" {
54 inherit
54 inherit
@@ -56,13 +56,30 b' let'
56 pythonPackages;
56 pythonPackages;
57 };
57 };
58 in
58 in
59 pkgs.lib.lists.optionals doIt (
59 pkgs.lib.lists.optionals doDI (
60 derivate.propagatedBuildInputs
60 derivate.propagatedBuildInputs
61 );
61 );
62
62
63 optionalBinDeps = attributeName:
64 let
65 path = pkgs.lib.attrByPath [attributeName] null sources;
66 nixFile = "${path}/default.nix";
67 doDI = doDevelopInstall && path != null && pkgs.lib.pathExists "${nixFile}";
68
69 derivate = import "${nixFile}" {
70 inherit
71 doCheck
72 pythonPackages;
73 };
74 in
75 pkgs.lib.optionalString doDI (''
76 echo "Wrapping PATH with vcsserver vcs binaries"
77 export PATH="${derivate.vcs_pkgs.subversion}/bin:${derivate.vcs_pkgs.git}/bin:${derivate.pythonPackages.mercurial}/bin:$PATH"
78 '');
79
63 developInstalls = [ "rhodecode-vcsserver" ];
80 developInstalls = [ "rhodecode-vcsserver" ];
64
81
65 in enterprise-ce.override (attrs: {
82 in enterprise-ce.override (attrs: rec {
66 # Avoid that we dump any sources into the store when entering the shell and
83 # Avoid that we dump any sources into the store when entering the shell and
67 # make development a little bit more convenient.
84 # make development a little bit more convenient.
68 src = null;
85 src = null;
@@ -90,10 +107,14 b' in enterprise-ce.override (attrs: {'
90 '';
107 '';
91
108
92 preShellHook = ''
109 preShellHook = ''
93 echo "Entering CE-Shell"
110 echo "Entering rhodecode-ce"
94
111
95 # Custom prompt to distinguish from other dev envs.
112 # Custom prompt to distinguish from other dev envs.
96 export PS1="\n\[\033[1;32m\][CE-shell:\w]$\[\033[0m\] "
113 export PS1="\n\[\033[1;32m\][rhodecode-ce-shell:\w]$\[\033[0m\] "
114
115 # Set locale
116 export LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive"
117 export LC_ALL="en_US.UTF-8"
97
118
98 echo "Building frontend assets"
119 echo "Building frontend assets"
99 ${enterprise-ce.linkNodePackages}
120 ${enterprise-ce.linkNodePackages}
@@ -111,9 +132,8 b' in enterprise-ce.override (attrs: {'
111
132
112 postShellHook = ''
133 postShellHook = ''
113 echo "** Additional develop installs **"
134 echo "** Additional develop installs **"
114 '' +
135 '' + pkgs.lib.strings.concatMapStrings optionalDevelopInstall developInstalls + ''
115 pkgs.lib.strings.concatMapStrings optionalDevelopInstall developInstalls
136 '' + pkgs.lib.strings.concatMapStrings optionalBinDeps [ "rhodecode-vcsserver" ] + ''
116 + ''
117 '';
137 '';
118
138
119 })
139 })
@@ -20,7 +20,7 b' let babelRCOptions = {'
20 }]
20 }]
21 ],
21 ],
22 "plugins": ["transform-object-rest-spread"]
22 "plugins": ["transform-object-rest-spread"]
23 }
23 };
24
24
25 module.exports = {
25 module.exports = {
26 // Tell Webpack which file kicks off our app.
26 // Tell Webpack which file kicks off our app.
@@ -33,6 +33,7 b' module.exports = {'
33 },
33 },
34 // Tell Webpack which directories to look in to resolve import statements.
34 // Tell Webpack which directories to look in to resolve import statements.
35 // Normally Webpack will look in node_modules by default but since we’re overriding
35 // Normally Webpack will look in node_modules by default but since we’re overriding
36 // the property we’ll need to tell it to look there.
36 resolve: {
37 resolve: {
37 modules: [
38 modules: [
38 path.resolve(__dirname, 'node_modules'),
39 path.resolve(__dirname, 'node_modules'),
@@ -55,8 +56,7 b' module.exports = {'
55 // polymer-webpack-loader, and hand the output to
56 // polymer-webpack-loader, and hand the output to
56 // babel-loader. This let's us transpile JS in our `<script>` elements.
57 // babel-loader. This let's us transpile JS in our `<script>` elements.
57 use: [
58 use: [
58 {loader: 'babel-loader',
59 {loader: 'babel-loader', options: babelRCOptions},
59 options: babelRCOptions},
60 {loader: 'polymer-webpack-loader',
60 {loader: 'polymer-webpack-loader',
61 options: {
61 options: {
62 processStyleLinks: true,
62 processStyleLinks: true,
General Comments 0
You need to be logged in to leave comments. Login now