##// END OF EJS Templates
dependencies: Update bower packages...
johbo -
r719:a061f9b1 default
parent child Browse files
Show More
@@ -1,219 +1,226 b''
1 # Nix environment for the community edition
1 # Nix environment for the community edition
2 #
2 #
3 # This shall be as lean as possible, just producing the Enterprise
3 # This shall be as lean as possible, just producing the Enterprise
4 # derivation. For advanced tweaks to pimp up the development environment we use
4 # derivation. For advanced tweaks to pimp up the development environment we use
5 # "shell.nix" so that it does not have to clutter this file.
5 # "shell.nix" so that it does not have to clutter this file.
6
6
7 { pkgs ? (import <nixpkgs> {})
7 { pkgs ? (import <nixpkgs> {})
8 , pythonPackages ? "python27Packages"
8 , pythonPackages ? "python27Packages"
9 , pythonExternalOverrides ? self: super: {}
9 , pythonExternalOverrides ? self: super: {}
10 , doCheck ? true
10 , doCheck ? true
11 }:
11 }:
12
12
13 let pkgs_ = pkgs; in
13 let pkgs_ = pkgs; in
14
14
15 let
15 let
16 pkgs = pkgs_.overridePackages (self: super: {
16 pkgs = pkgs_.overridePackages (self: super: {
17 # Override subversion derivation to
17 # Override subversion derivation to
18 # - activate python bindings
18 # - activate python bindings
19 # - set version to 1.8
19 # - set version to 1.8
20 subversion = super.subversion18.override {
20 subversion = super.subversion18.override {
21 httpSupport = true;
21 httpSupport = true;
22 pythonBindings = true;
22 pythonBindings = true;
23 python = self.python27Packages.python;
23 python = self.python27Packages.python;
24 };
24 };
25 });
25 });
26
26
27 inherit (pkgs.lib) fix extends;
27 inherit (pkgs.lib) fix extends;
28
28
29 basePythonPackages = with builtins; if isAttrs pythonPackages
29 basePythonPackages = with builtins; if isAttrs pythonPackages
30 then pythonPackages
30 then pythonPackages
31 else getAttr pythonPackages pkgs;
31 else getAttr pythonPackages pkgs;
32
32
33 elem = builtins.elem;
33 elem = builtins.elem;
34 basename = path: with pkgs.lib; last (splitString "/" path);
34 basename = path: with pkgs.lib; last (splitString "/" path);
35 startsWith = prefix: full: let
35 startsWith = prefix: full: let
36 actualPrefix = builtins.substring 0 (builtins.stringLength prefix) full;
36 actualPrefix = builtins.substring 0 (builtins.stringLength prefix) full;
37 in actualPrefix == prefix;
37 in actualPrefix == prefix;
38
38
39 src-filter = path: type: with pkgs.lib;
39 src-filter = path: type: with pkgs.lib;
40 let
40 let
41 ext = last (splitString "." path);
41 ext = last (splitString "." path);
42 in
42 in
43 !elem (basename path) [
43 !elem (basename path) [
44 ".git" ".hg" "__pycache__" ".eggs" "node_modules"
44 ".git" ".hg" "__pycache__" ".eggs" "node_modules"
45 "build" "data" "tmp"] &&
45 "build" "data" "tmp"] &&
46 !elem ext ["egg-info" "pyc"] &&
46 !elem ext ["egg-info" "pyc"] &&
47 !startsWith "result" path;
47 !startsWith "result" path;
48
48
49 sources = pkgs.config.rc.sources or {};
49 sources = pkgs.config.rc.sources or {};
50 rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.;
50 rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.;
51
51
52 nodeEnv = import ./pkgs/node-default.nix {
52 nodeEnv = import ./pkgs/node-default.nix {
53 inherit pkgs;
53 inherit pkgs;
54 };
54 };
55 nodeDependencies = nodeEnv.shell.nodeDependencies;
55 nodeDependencies = nodeEnv.shell.nodeDependencies;
56
56
57 bowerComponents = pkgs.buildBowerComponents {
58 name = "enterprise-ce-bower-components";
59 generated = ./pkgs/bower-packages.nix;
60 src = rhodecode-enterprise-ce-src;
61 };
62
57 pythonGeneratedPackages = self: basePythonPackages.override (a: {
63 pythonGeneratedPackages = self: basePythonPackages.override (a: {
58 inherit self;
64 inherit self;
59 })
65 })
60 // (scopedImport {
66 // (scopedImport {
61 self = self;
67 self = self;
62 super = basePythonPackages;
68 super = basePythonPackages;
63 inherit pkgs;
69 inherit pkgs;
64 inherit (pkgs) fetchurl fetchgit;
70 inherit (pkgs) fetchurl fetchgit;
65 } ./pkgs/python-packages.nix);
71 } ./pkgs/python-packages.nix);
66
72
67 pythonOverrides = import ./pkgs/python-packages-overrides.nix {
73 pythonOverrides = import ./pkgs/python-packages-overrides.nix {
68 inherit
74 inherit
69 basePythonPackages
75 basePythonPackages
70 pkgs;
76 pkgs;
71 };
77 };
72
78
73 pythonLocalOverrides = self: super: {
79 pythonLocalOverrides = self: super: {
74 rhodecode-enterprise-ce =
80 rhodecode-enterprise-ce =
75 let
81 let
76 version = builtins.readFile ./rhodecode/VERSION;
82 version = builtins.readFile ./rhodecode/VERSION;
77 linkNodeModules = ''
83 linkNodeModules = ''
78 echo "Link node packages"
84 echo "Link node packages"
79 rm -fr node_modules
85 rm -fr node_modules
80 mkdir node_modules
86 mkdir node_modules
81
87
82 # johbo: Linking individual packages allows us to run "npm install"
88 # johbo: Linking individual packages allows us to run "npm install"
83 # inside of a shell to try things out. Re-entering the shell will
89 # inside of a shell to try things out. Re-entering the shell will
84 # restore a clean environment.
90 # restore a clean environment.
85 ln -s ${nodeDependencies}/lib/node_modules/* node_modules/
91 ln -s ${nodeDependencies}/lib/node_modules/* node_modules/
86
92
87 echo "DONE: Link node packages"
93 echo "DONE: Link node packages"
88 '';
94 '';
89 in super.rhodecode-enterprise-ce.override (attrs: {
95 in super.rhodecode-enterprise-ce.override (attrs: {
90
96
91 inherit
97 inherit
92 doCheck
98 doCheck
93 version;
99 version;
94 name = "rhodecode-enterprise-ce-${version}";
100 name = "rhodecode-enterprise-ce-${version}";
95 releaseName = "RhodeCodeEnterpriseCE-${version}";
101 releaseName = "RhodeCodeEnterpriseCE-${version}";
96 src = rhodecode-enterprise-ce-src;
102 src = rhodecode-enterprise-ce-src;
97
103
98 buildInputs =
104 buildInputs =
99 attrs.buildInputs ++
105 attrs.buildInputs ++
100 (with self; [
106 (with self; [
101 pkgs.nodePackages.bower
107 pkgs.nodePackages.bower
102 pkgs.nodePackages.grunt-cli
108 pkgs.nodePackages.grunt-cli
103 pkgs.subversion
109 pkgs.subversion
104 pytest-catchlog
110 pytest-catchlog
105 rhodecode-testdata
111 rhodecode-testdata
106 ]);
112 ]);
107
113
108 propagatedBuildInputs = attrs.propagatedBuildInputs ++ (with self; [
114 propagatedBuildInputs = attrs.propagatedBuildInputs ++ (with self; [
109 rhodecode-tools
115 rhodecode-tools
110 ]);
116 ]);
111
117
112 # TODO: johbo: Make a nicer way to expose the parts. Maybe
118 # TODO: johbo: Make a nicer way to expose the parts. Maybe
113 # pkgs/default.nix?
119 # pkgs/default.nix?
114 passthru = {
120 passthru = {
115 inherit
121 inherit
122 bowerComponents
116 linkNodeModules
123 linkNodeModules
117 myPythonPackagesUnfix
124 myPythonPackagesUnfix
118 pythonLocalOverrides;
125 pythonLocalOverrides;
119 pythonPackages = self;
126 pythonPackages = self;
120 };
127 };
121
128
122 LC_ALL = "en_US.UTF-8";
129 LC_ALL = "en_US.UTF-8";
123 LOCALE_ARCHIVE =
130 LOCALE_ARCHIVE =
124 if pkgs.stdenv ? glibc
131 if pkgs.stdenv ? glibc
125 then "${pkgs.glibcLocales}/lib/locale/locale-archive"
132 then "${pkgs.glibcLocales}/lib/locale/locale-archive"
126 else "";
133 else "";
127
134
128 # Somewhat snappier setup of the development environment
135 # Somewhat snappier setup of the development environment
129 # TODO: move into shell.nix
136 # TODO: move into shell.nix
130 # TODO: think of supporting a stable path again, so that multiple shells
137 # TODO: think of supporting a stable path again, so that multiple shells
131 # can share it.
138 # can share it.
132 shellHook = ''
139 shellHook = ''
133 tmp_path=$(mktemp -d)
140 tmp_path=$(mktemp -d)
134 export PATH="$tmp_path/bin:$PATH"
141 export PATH="$tmp_path/bin:$PATH"
135 export PYTHONPATH="$tmp_path/${self.python.sitePackages}:$PYTHONPATH"
142 export PYTHONPATH="$tmp_path/${self.python.sitePackages}:$PYTHONPATH"
136 mkdir -p $tmp_path/${self.python.sitePackages}
143 mkdir -p $tmp_path/${self.python.sitePackages}
137 python setup.py develop --prefix $tmp_path --allow-hosts ""
144 python setup.py develop --prefix $tmp_path --allow-hosts ""
138 '' + linkNodeModules;
145 '' + linkNodeModules;
139
146
140 preCheck = ''
147 preCheck = ''
141 export PATH="$out/bin:$PATH"
148 export PATH="$out/bin:$PATH"
142 '';
149 '';
143
150
144 postCheck = ''
151 postCheck = ''
145 rm -rf $out/lib/${self.python.libPrefix}/site-packages/pytest_pylons
152 rm -rf $out/lib/${self.python.libPrefix}/site-packages/pytest_pylons
146 rm -rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/tests
153 rm -rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/tests
147 '';
154 '';
148
155
149 preBuild = linkNodeModules + ''
156 preBuild = linkNodeModules + ''
150 grunt
157 grunt
151 rm -fr node_modules
158 rm -fr node_modules
152 '';
159 '';
153
160
154 postInstall = ''
161 postInstall = ''
155 # python based programs need to be wrapped
162 # python based programs need to be wrapped
156 ln -s ${self.supervisor}/bin/supervisor* $out/bin/
163 ln -s ${self.supervisor}/bin/supervisor* $out/bin/
157 ln -s ${self.gunicorn}/bin/gunicorn $out/bin/
164 ln -s ${self.gunicorn}/bin/gunicorn $out/bin/
158 ln -s ${self.PasteScript}/bin/paster $out/bin/
165 ln -s ${self.PasteScript}/bin/paster $out/bin/
159 ln -s ${self.channelstream}/bin/channelstream $out/bin/
166 ln -s ${self.channelstream}/bin/channelstream $out/bin/
160 ln -s ${self.pyramid}/bin/* $out/bin/ #*/
167 ln -s ${self.pyramid}/bin/* $out/bin/ #*/
161
168
162 # rhodecode-tools
169 # rhodecode-tools
163 # TODO: johbo: re-think this. Do the tools import anything from enterprise?
170 # TODO: johbo: re-think this. Do the tools import anything from enterprise?
164 ln -s ${self.rhodecode-tools}/bin/rhodecode-* $out/bin/
171 ln -s ${self.rhodecode-tools}/bin/rhodecode-* $out/bin/
165
172
166 # note that condition should be restricted when adding further tools
173 # note that condition should be restricted when adding further tools
167 for file in $out/bin/*; do #*/
174 for file in $out/bin/*; do #*/
168 wrapProgram $file \
175 wrapProgram $file \
169 --prefix PYTHONPATH : $PYTHONPATH \
176 --prefix PYTHONPATH : $PYTHONPATH \
170 --prefix PATH : $PATH \
177 --prefix PATH : $PATH \
171 --set PYTHONHASHSEED random
178 --set PYTHONHASHSEED random
172 done
179 done
173
180
174 mkdir $out/etc
181 mkdir $out/etc
175 cp configs/production.ini $out/etc
182 cp configs/production.ini $out/etc
176
183
177 echo "Writing meta information for rccontrol to nix-support/rccontrol"
184 echo "Writing meta information for rccontrol to nix-support/rccontrol"
178 mkdir -p $out/nix-support/rccontrol
185 mkdir -p $out/nix-support/rccontrol
179 cp -v rhodecode/VERSION $out/nix-support/rccontrol/version
186 cp -v rhodecode/VERSION $out/nix-support/rccontrol/version
180 echo "DONE: Meta information for rccontrol written"
187 echo "DONE: Meta information for rccontrol written"
181
188
182 # TODO: johbo: Make part of ac-tests
189 # TODO: johbo: Make part of ac-tests
183 if [ ! -f rhodecode/public/js/scripts.js ]; then
190 if [ ! -f rhodecode/public/js/scripts.js ]; then
184 echo "Missing scripts.js"
191 echo "Missing scripts.js"
185 exit 1
192 exit 1
186 fi
193 fi
187 if [ ! -f rhodecode/public/css/style.css ]; then
194 if [ ! -f rhodecode/public/css/style.css ]; then
188 echo "Missing style.css"
195 echo "Missing style.css"
189 exit 1
196 exit 1
190 fi
197 fi
191 '';
198 '';
192
199
193 });
200 });
194
201
195 rhodecode-testdata = import "${rhodecode-testdata-src}/default.nix" {
202 rhodecode-testdata = import "${rhodecode-testdata-src}/default.nix" {
196 inherit
203 inherit
197 doCheck
204 doCheck
198 pkgs
205 pkgs
199 pythonPackages;
206 pythonPackages;
200 };
207 };
201
208
202 };
209 };
203
210
204 rhodecode-testdata-src = sources.rhodecode-testdata or (
211 rhodecode-testdata-src = sources.rhodecode-testdata or (
205 pkgs.fetchhg {
212 pkgs.fetchhg {
206 url = "https://code.rhodecode.com/upstream/rc_testdata";
213 url = "https://code.rhodecode.com/upstream/rc_testdata";
207 rev = "v0.8.0";
214 rev = "v0.8.0";
208 sha256 = "0hy1ba134rq2f9si85yx7j4qhc9ky0hjzdk553s3q026i7km809m";
215 sha256 = "0hy1ba134rq2f9si85yx7j4qhc9ky0hjzdk553s3q026i7km809m";
209 });
216 });
210
217
211 # Apply all overrides and fix the final package set
218 # Apply all overrides and fix the final package set
212 myPythonPackagesUnfix =
219 myPythonPackagesUnfix =
213 (extends pythonExternalOverrides
220 (extends pythonExternalOverrides
214 (extends pythonLocalOverrides
221 (extends pythonLocalOverrides
215 (extends pythonOverrides
222 (extends pythonOverrides
216 pythonGeneratedPackages)));
223 pythonGeneratedPackages)));
217 myPythonPackages = (fix myPythonPackagesUnfix);
224 myPythonPackages = (fix myPythonPackagesUnfix);
218
225
219 in myPythonPackages.rhodecode-enterprise-ce
226 in myPythonPackages.rhodecode-enterprise-ce
@@ -1,31 +1,31 b''
1 { fetchbower, buildEnv }:
1 { fetchbower, buildEnv }:
2 buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
2 buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
3 (fetchbower "webcomponentsjs" "0.7.22" "^0.7.22" "0ggh3k8ssafd056ib1m5bvzi7cpz3ry7gr5176d79na1w0c3i7dz")
3 (fetchbower "webcomponentsjs" "0.7.22" "^0.7.22" "0ggh3k8ssafd056ib1m5bvzi7cpz3ry7gr5176d79na1w0c3i7dz")
4 (fetchbower "polymer" "Polymer/polymer#^1.6.1" "Polymer/polymer#^1.6.1" "09mm0jgk457gvwqlc155swch7gjr6fs3g7spnvhi6vh5b6518540")
4 (fetchbower "polymer" "Polymer/polymer#1.6.1" "Polymer/polymer#^1.6.1" "09mm0jgk457gvwqlc155swch7gjr6fs3g7spnvhi6vh5b6518540")
5 (fetchbower "paper-button" "PolymerElements/paper-button#^1.0.13" "PolymerElements/paper-button#^1.0.13" "0i3y153nqk06pn0gk282vyybnl3g1w3w41d5i9z659cgn27g3fvm")
5 (fetchbower "paper-button" "PolymerElements/paper-button#1.0.13" "PolymerElements/paper-button#^1.0.13" "0i3y153nqk06pn0gk282vyybnl3g1w3w41d5i9z659cgn27g3fvm")
6 (fetchbower "paper-spinner" "PolymerElements/paper-spinner#^1.2.0" "PolymerElements/paper-spinner#^1.2.0" "1av1m6y81jw3hjhz1yqy3rwcgxarjzl58ldfn4q6sn51pgzngfqb")
6 (fetchbower "paper-spinner" "PolymerElements/paper-spinner#1.2.0" "PolymerElements/paper-spinner#^1.2.0" "1av1m6y81jw3hjhz1yqy3rwcgxarjzl58ldfn4q6sn51pgzngfqb")
7 (fetchbower "paper-tooltip" "PolymerElements/paper-tooltip#^1.1.2" "PolymerElements/paper-tooltip#^1.1.2" "1j64nprcyk2d2bbl3qwjyr0lbjngm4wclpyfwgai1c4y6g6bigd2")
7 (fetchbower "paper-tooltip" "PolymerElements/paper-tooltip#1.1.2" "PolymerElements/paper-tooltip#^1.1.2" "1j64nprcyk2d2bbl3qwjyr0lbjngm4wclpyfwgai1c4y6g6bigd2")
8 (fetchbower "paper-toast" "PolymerElements/paper-toast#^1.3.0" "PolymerElements/paper-toast#^1.3.0" "0x9rqxsks5455s8pk4aikpp99ijdn6kxr9gvhwh99nbcqdzcxq1m")
8 (fetchbower "paper-toast" "PolymerElements/paper-toast#1.3.0" "PolymerElements/paper-toast#^1.3.0" "0x9rqxsks5455s8pk4aikpp99ijdn6kxr9gvhwh99nbcqdzcxq1m")
9 (fetchbower "paper-toggle-button" "PolymerElements/paper-toggle-button#^1.2.0" "PolymerElements/paper-toggle-button#^1.2.0" "0mphcng3ngspbpg4jjn0mb91nvr4xc1phq3qswib15h6sfww1b2w")
9 (fetchbower "paper-toggle-button" "PolymerElements/paper-toggle-button#1.2.0" "PolymerElements/paper-toggle-button#^1.2.0" "0mphcng3ngspbpg4jjn0mb91nvr4xc1phq3qswib15h6sfww1b2w")
10 (fetchbower "iron-ajax" "PolymerElements/iron-ajax#^1.4.3" "PolymerElements/iron-ajax#^1.4.3" "0m3dx27arwmlcp00b7n516sc5a51f40p9vapr1nvd57l3i3z0pzm")
10 (fetchbower "iron-ajax" "PolymerElements/iron-ajax#1.4.3" "PolymerElements/iron-ajax#^1.4.3" "0m3dx27arwmlcp00b7n516sc5a51f40p9vapr1nvd57l3i3z0pzm")
11 (fetchbower "iron-flex-layout" "PolymerElements/iron-flex-layout#^1.0.0" "PolymerElements/iron-flex-layout#^1.0.0" "0nswv3ih3bhflgcd2wjfmddqswzgqxb2xbq65jk9w3rkj26hplbl")
11 (fetchbower "iron-flex-layout" "PolymerElements/iron-flex-layout#1.3.1" "PolymerElements/iron-flex-layout#^1.0.0" "0nswv3ih3bhflgcd2wjfmddqswzgqxb2xbq65jk9w3rkj26hplbl")
12 (fetchbower "paper-behaviors" "PolymerElements/paper-behaviors#^1.0.0" "PolymerElements/paper-behaviors#^1.0.0" "012bqk97awgz55cn7rm9g7cckrdhkqhls3zvp8l6nd4rdwcrdzq8")
12 (fetchbower "paper-behaviors" "PolymerElements/paper-behaviors#1.0.12" "PolymerElements/paper-behaviors#^1.0.0" "012bqk97awgz55cn7rm9g7cckrdhkqhls3zvp8l6nd4rdwcrdzq8")
13 (fetchbower "paper-material" "PolymerElements/paper-material#^1.0.0" "PolymerElements/paper-material#^1.0.0" "0rljmknfdbm5aabvx9pk77754zckj3l127c3mvnmwkpkkr353xnh")
13 (fetchbower "paper-material" "PolymerElements/paper-material#1.0.6" "PolymerElements/paper-material#^1.0.0" "0rljmknfdbm5aabvx9pk77754zckj3l127c3mvnmwkpkkr353xnh")
14 (fetchbower "paper-styles" "PolymerElements/paper-styles#^1.0.0" "PolymerElements/paper-styles#^1.0.0" "0j8vg74xrcxlni8i93dsab3y80f34kk30lv4yblqpkp9c3nrilf7")
14 (fetchbower "paper-styles" "PolymerElements/paper-styles#1.1.4" "PolymerElements/paper-styles#^1.0.0" "0j8vg74xrcxlni8i93dsab3y80f34kk30lv4yblqpkp9c3nrilf7")
15 (fetchbower "neon-animation" "PolymerElements/neon-animation#^1.0.0" "PolymerElements/neon-animation#^1.0.0" "16mz9i2n5w0k5j8d6gha23cnbdgm5syz3fawyh89gdbq97bi2q5j")
15 (fetchbower "neon-animation" "PolymerElements/neon-animation#1.2.4" "PolymerElements/neon-animation#^1.0.0" "16mz9i2n5w0k5j8d6gha23cnbdgm5syz3fawyh89gdbq97bi2q5j")
16 (fetchbower "iron-a11y-announcer" "PolymerElements/iron-a11y-announcer#^1.0.0" "PolymerElements/iron-a11y-announcer#^1.0.0" "0n7c7j1pwk3835s7s2jd9125wdcsqf216yi5gj07wn5s8h8p7m9d")
16 (fetchbower "iron-a11y-announcer" "PolymerElements/iron-a11y-announcer#1.0.5" "PolymerElements/iron-a11y-announcer#^1.0.0" "0n7c7j1pwk3835s7s2jd9125wdcsqf216yi5gj07wn5s8h8p7m9d")
17 (fetchbower "iron-overlay-behavior" "PolymerElements/iron-overlay-behavior#^1.0.9" "PolymerElements/iron-overlay-behavior#^1.0.9" "14brn9gz6qqskarg3fxk91xs7vg02vgcsz9a9743kidxr0l0413m")
17 (fetchbower "iron-overlay-behavior" "PolymerElements/iron-overlay-behavior#1.8.6" "PolymerElements/iron-overlay-behavior#^1.0.9" "14brn9gz6qqskarg3fxk91xs7vg02vgcsz9a9743kidxr0l0413m")
18 (fetchbower "iron-fit-behavior" "PolymerElements/iron-fit-behavior#^1.1.0" "PolymerElements/iron-fit-behavior#^1.1.0" "1msnlh8lp1xg6v4h6dkjwj9kzac5q5q208ayla3x9hi483ki6rlf")
18 (fetchbower "iron-fit-behavior" "PolymerElements/iron-fit-behavior#1.2.5" "PolymerElements/iron-fit-behavior#^1.1.0" "1msnlh8lp1xg6v4h6dkjwj9kzac5q5q208ayla3x9hi483ki6rlf")
19 (fetchbower "iron-checked-element-behavior" "PolymerElements/iron-checked-element-behavior#^1.0.0" "PolymerElements/iron-checked-element-behavior#^1.0.0" "0l0yy4ah454s8bzfv076s8by7h67zy9ni6xb932qwyhx8br6c1m7")
19 (fetchbower "iron-checked-element-behavior" "PolymerElements/iron-checked-element-behavior#1.0.5" "PolymerElements/iron-checked-element-behavior#^1.0.0" "0l0yy4ah454s8bzfv076s8by7h67zy9ni6xb932qwyhx8br6c1m7")
20 (fetchbower "promise-polyfill" "polymerlabs/promise-polyfill#^1.0.0" "polymerlabs/promise-polyfill#^1.0.0" "045bj2caav3famr5hhxgs1dx7n08r4s46mlzwb313vdy17is38xb")
20 (fetchbower "promise-polyfill" "polymerlabs/promise-polyfill#1.0.1" "polymerlabs/promise-polyfill#^1.0.0" "045bj2caav3famr5hhxgs1dx7n08r4s46mlzwb313vdy17is38xb")
21 (fetchbower "iron-behaviors" "PolymerElements/iron-behaviors#^1.0.0" "PolymerElements/iron-behaviors#^1.0.0" "021qvkmbk32jrrmmphpmwgby4bzi5jyf47rh1bxmq2ip07ly4bpr")
21 (fetchbower "iron-behaviors" "PolymerElements/iron-behaviors#1.0.17" "PolymerElements/iron-behaviors#^1.0.0" "021qvkmbk32jrrmmphpmwgby4bzi5jyf47rh1bxmq2ip07ly4bpr")
22 (fetchbower "paper-ripple" "PolymerElements/paper-ripple#^1.0.0" "PolymerElements/paper-ripple#^1.0.0" "0r9sq8ik7wwrw0qb82c3rw0c030ljwd3s466c9y4qbcrsbvfjnns")
22 (fetchbower "paper-ripple" "PolymerElements/paper-ripple#1.0.8" "PolymerElements/paper-ripple#^1.0.0" "0r9sq8ik7wwrw0qb82c3rw0c030ljwd3s466c9y4qbcrsbvfjnns")
23 (fetchbower "font-roboto" "PolymerElements/font-roboto#^1.0.1" "PolymerElements/font-roboto#^1.0.1" "02jz43r0wkyr3yp7rq2rc08l5cwnsgca9fr54sr4rhsnl7cjpxrj")
23 (fetchbower "font-roboto" "PolymerElements/font-roboto#1.0.1" "PolymerElements/font-roboto#^1.0.1" "02jz43r0wkyr3yp7rq2rc08l5cwnsgca9fr54sr4rhsnl7cjpxrj")
24 (fetchbower "iron-meta" "PolymerElements/iron-meta#^1.0.0" "PolymerElements/iron-meta#^1.0.0" "1wl4dx8fnsknw9z9xi8bpc4cy9x70c11x4zxwxnj73hf3smifppl")
24 (fetchbower "iron-meta" "PolymerElements/iron-meta#1.1.2" "PolymerElements/iron-meta#^1.0.0" "1wl4dx8fnsknw9z9xi8bpc4cy9x70c11x4zxwxnj73hf3smifppl")
25 (fetchbower "iron-resizable-behavior" "PolymerElements/iron-resizable-behavior#^1.0.0" "PolymerElements/iron-resizable-behavior#^1.0.0" "1fd5zmbr2hax42vmcasncvk7lzi38fmb1kyii26nn8pnnjak7zkn")
25 (fetchbower "iron-resizable-behavior" "PolymerElements/iron-resizable-behavior#1.0.5" "PolymerElements/iron-resizable-behavior#^1.0.0" "1fd5zmbr2hax42vmcasncvk7lzi38fmb1kyii26nn8pnnjak7zkn")
26 (fetchbower "iron-selector" "PolymerElements/iron-selector#^1.0.0" "PolymerElements/iron-selector#^1.0.0" "1ajv46llqzvahm5g6g75w7nfyjcslp53ji0wm96l2k94j87spv3r")
26 (fetchbower "iron-selector" "PolymerElements/iron-selector#1.5.2" "PolymerElements/iron-selector#^1.0.0" "1ajv46llqzvahm5g6g75w7nfyjcslp53ji0wm96l2k94j87spv3r")
27 (fetchbower "web-animations-js" "web-animations/web-animations-js#^2.2.0" "web-animations/web-animations-js#^2.2.0" "1izfvm3l67vwys0bqbhidi9rqziw2f8wv289386sc6jsxzgkzhga")
27 (fetchbower "web-animations-js" "web-animations/web-animations-js#2.2.2" "web-animations/web-animations-js#^2.2.0" "1izfvm3l67vwys0bqbhidi9rqziw2f8wv289386sc6jsxzgkzhga")
28 (fetchbower "iron-a11y-keys-behavior" "PolymerElements/iron-a11y-keys-behavior#^1.0.0" "PolymerElements/iron-a11y-keys-behavior#^1.0.0" "070z46dbbz242002gmqrgy28x0y1fcqp9hnvbi05r3zphiqfx3l7")
28 (fetchbower "iron-a11y-keys-behavior" "PolymerElements/iron-a11y-keys-behavior#1.1.7" "PolymerElements/iron-a11y-keys-behavior#^1.0.0" "070z46dbbz242002gmqrgy28x0y1fcqp9hnvbi05r3zphiqfx3l7")
29 (fetchbower "iron-validatable-behavior" "PolymerElements/iron-validatable-behavior#^1.0.0" "PolymerElements/iron-validatable-behavior#^1.0.0" "1yhxlvywhw2klbbgm3f3cmanxfxggagph4ii635zv0c13707wslv")
29 (fetchbower "iron-validatable-behavior" "PolymerElements/iron-validatable-behavior#1.1.1" "PolymerElements/iron-validatable-behavior#^1.0.0" "1yhxlvywhw2klbbgm3f3cmanxfxggagph4ii635zv0c13707wslv")
30 (fetchbower "iron-form-element-behavior" "PolymerElements/iron-form-element-behavior#^1.0.0" "PolymerElements/iron-form-element-behavior#^1.0.0" "0rdhxivgkdhhz2yadgdbjfc70l555p3y83vjh8rfj5hr0asyn6q1")
30 (fetchbower "iron-form-element-behavior" "PolymerElements/iron-form-element-behavior#1.0.6" "PolymerElements/iron-form-element-behavior#^1.0.0" "0rdhxivgkdhhz2yadgdbjfc70l555p3y83vjh8rfj5hr0asyn6q1")
31 ]; }
31 ]; }
General Comments 0
You need to be logged in to leave comments. Login now