Merge lp:~teknico/juju-gui/harden-npm-dependencies into lp:juju-gui/experimental
- harden-npm-dependencies
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 548 |
Proposed branch: | lp:~teknico/juju-gui/harden-npm-dependencies |
Merge into: | lp:juju-gui/experimental |
Diff against target: |
1174 lines (+1085/-23) 3 files modified
HACKING (+45/-9) npm-shrinkwrap.json (+1032/-0) package.json (+8/-14) |
To merge this branch: | bzr merge lp:~teknico/juju-gui/harden-npm-dependencies |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju GUI Hackers | Pending | ||
Review via email: mp+158659@code.launchpad.net |
Commit message
Description of the change
Freeze the versions of all nodejs dependencies.
Add a generated npm-shrinkwrap.json file that freezes the current versions
of all nodejs dependecies, even the recursive ones.
Update the package.json file keeping the currently fixed package versions.
Also remove the misleading "engines" entry (see
<https:/
between "dependencies" and "devDependencies" (see
<https:/
Add a documentation section, "Updating the nodejs dependencies" at the
bottom of the docs/hacking.rst file, explaining how this works and how to
update dependencies to new versions. Please check that the whole thing is
understandable and workable: you will use this stuff, after all. :-)
Sorry for the change size: it's mainly due to the 1k+ lines of the generated
npm-shrinkwrap.json file. No need to go over that one, just look at the
changes in the docs/hacking.rst and package.json files.
Nicola Larosa (teknico) wrote : | # |
Gary Poster (gary) wrote : | # |
LGTM. I tried this in the charm (PyJuju) and it worked great. Thank
you!
Gary
https:/
File package.json (left):
https:/
package.json:17: "devDependencies": {
I still think that collapsing dependencies and devDependencies makes
sense. Thank you.
https:/
File package.json (right):
https:/
package.json:13: "d3": "~2.10.3",
Why don't we keep the values we had before, instead? They were working
pretty well for us, and now the shrinkwrap actually hardens. Perhaps
this is a misunderstanding--I only intended to suggest that we nail down
our dependencies when we didn't have the shrinkwrap functionality.
Nicola Larosa (teknico) wrote : | # |
Thanks for the review. No remarks on the docs?
https:/
File package.json (left):
https:/
package.json:17: "devDependencies": {
gary.poster wrote:
> I still think that collapsing dependencies and devDependencies
> makes sense. Thank you.
That's good. :-)
https:/
File package.json (right):
https:/
package.json:13: "d3": "~2.10.3",
gary.poster wrote:
> Why don't we keep the values we had before, instead?
> They were working pretty well for us, and now the
> shrinkwrap actually hardens. Perhaps this is a
> misunderstanding--I only intended to suggest that we
> nail down our dependencies when we didn't have the
> shrinkwrap functionality.
Yes, it makes sense, I'm reverting most of these changes.
- 540. By Nicola Larosa
-
Merge from trunk.
- 541. By Nicola Larosa
-
Revert most version constraint changes.
Nicola Larosa (teknico) wrote : | # |
Please take a look.
Francesco Banconi (frankban) wrote : | # |
LGTM, see just a minor below.
Thank you.
https:/
File HACKING (right):
https:/
HACKING:57: sudo apt-get install nodejs imagemagick lbox python-sphinx
python-yaml python-tz \
I know this preexisted, but, while you are here, you could wrap this
line at 80?
https:/
HACKING:423: 4) check that everything works well;
Very clear.
https:/
File package.json (right):
https:/
package.json:9: "url": "lp:juju-gui"
Thank you!
Nicola Larosa (teknico) wrote : | # |
https:/
File HACKING (right):
https:/
HACKING:57: sudo apt-get install nodejs imagemagick lbox python-sphinx
python-yaml python-tz \
frankban wrote:
> I know this preexisted, but, while you are here,
> you could wrap this line at 80?
Oh right, doing it, thanks.
- 542. By Nicola Larosa
-
Fix wrapping of one doc line.
Nicola Larosa (teknico) wrote : | # |
*** Submitted:
Freeze the versions of all nodejs dependencies.
Add a generated npm-shrinkwrap.json file that freezes the current
versions
of all nodejs dependecies, even the recursive ones.
Update the package.json file keeping the currently fixed package
versions.
Also remove the misleading "engines" entry (see
<https:/
distinction
between "dependencies" and "devDependencies" (see
<https:/
Add a documentation section, "Updating the nodejs dependencies" at the
bottom of the docs/hacking.rst file, explaining how this works and how
to
update dependencies to new versions. Please check that the whole thing
is
understandable and workable: you will use this stuff, after all. :-)
Sorry for the change size: it's mainly due to the 1k+ lines of the
generated
npm-shrinkwrap.json file. No need to go over that one, just look at the
changes in the docs/hacking.rst and package.json files.
R=gary.poster, frankban
CC=
https:/
Preview Diff
1 | === modified file 'HACKING' |
2 | --- HACKING 2013-02-21 23:16:30 +0000 |
3 | +++ HACKING 2013-04-15 10:53:24 +0000 |
4 | @@ -44,8 +44,8 @@ |
5 | |
6 | python improv.py -f sample.json |
7 | |
8 | -Now it is time to actually get the GUI itself set up. Juju GUI uses nodejs- |
9 | -based development tools, so you will need ``nodejs`` and ``npm`` from Chris |
10 | +Now it is time to actually get the GUI itself set up. Juju GUI uses |
11 | +nodejs-based development tools, so you will need ``nodejs`` from Chris |
12 | Lea's node PPA. You also need ImageMagick for sprite generation, lbox to |
13 | propose branches, python-sphinx and python-yaml to build docs, PyTZ to make |
14 | releases, python-shelltoolbox and python-selenium for browser tests, and |
15 | @@ -54,7 +54,8 @@ |
16 | sudo add-apt-repository ppa:chris-lea/node.js |
17 | sudo add-apt-repository ppa:gophers/go |
18 | sudo apt-get update |
19 | - sudo apt-get install nodejs npm imagemagick lbox python-sphinx python-yaml python-tz python-virtualenv python-shelltoolbox python-selenium |
20 | + sudo apt-get install nodejs imagemagick lbox python-sphinx python-yaml \ |
21 | + python-tz python-virtualenv python-shelltoolbox python-selenium |
22 | |
23 | See docs/browser-testing.rst if you are curious about the reason for |
24 | python-shelltoolbox and python-selenium |
25 | @@ -272,16 +273,16 @@ |
26 | ============= |
27 | |
28 | The ``make docs`` command generates the code and the project documentation |
29 | -together. |
30 | +together. The ``make view-docs`` command does the above and also opens both |
31 | +docs in the browser. |
32 | |
33 | Code Documentation |
34 | ------------------ |
35 | |
36 | -Generated documentation for the JavaScript code is available in the ``yuidoc`` |
37 | +Generated documentation for the JavaScript code is available in the ``yuidoc/`` |
38 | directory. You can build and view the docs by running:: |
39 | |
40 | - make yuidoc |
41 | - xdg-open yuidoc/index.html |
42 | + make view-code-doc |
43 | |
44 | See the :ref:`style guide <embedded-docs>` document for details on how to |
45 | write the embedded documentation. |
46 | @@ -293,8 +294,7 @@ |
47 | mentioned in the developer installation instructions above, it needs Sphinx |
48 | and Python-yaml. To build and view the documentation, use these commands:: |
49 | |
50 | - make sphinx |
51 | - xdg-open docs/_build/html/index.html |
52 | + make view-main-doc |
53 | |
54 | Filing Bugs |
55 | =========== |
56 | @@ -399,3 +399,39 @@ |
57 | ``IS_TRUNK_BRANCH`` and ``BRANCH_IS_CLEAN``. Example usage:: |
58 | |
59 | BRANCH_IS_GOOD=1 make dist |
60 | + |
61 | +Updating the ``nodejs`` dependencies |
62 | +==================================== |
63 | + |
64 | +The ranges of allowed versions for the ``nodejs`` dependency packages are |
65 | +specified in the top-level ``package.json`` file. However, the actual installed |
66 | +versions are frozen in the top-level ``npm-shrinkwap.json`` file, which |
67 | +overrides the former. |
68 | + |
69 | +The ``npm-shrinkwap.json`` file is generated by the ``npm shrinkwrap`` command |
70 | +(see `shrinkwrap - Lock down dependency versions`_) on the basis of the |
71 | +packages currently installed by any of the ``make build-[something]`` commands. |
72 | + |
73 | +The procedure for updating the dependency versions is described in the |
74 | +`Building shrinkwrapped packages`_ section of the aforementioned document. In |
75 | +a nutshell: |
76 | + |
77 | +1) review the ``package.json`` file and see whether any constraints may be |
78 | + updated, in order to allow using newer package versions; |
79 | +2) delete the ``npm-shrinkwrap.json`` file; |
80 | +3) run ``make``, getting all new dependencies; |
81 | +4) check that everything works well; |
82 | + |
83 | +If everything is fine, regenerate the ``npm-shrinkwap.json`` file by running |
84 | +the ``npm shrinkwrap`` command. |
85 | + |
86 | +If something is broken find the culprit, adjust the ``package.json`` file |
87 | +accordingly, and go back to step #3. |
88 | + |
89 | +Alternatively, you might use the ``npm outdated`` command to get the update |
90 | +candidates, and do the job one step at a time rather than all at once. |
91 | + |
92 | +.. _`shrinkwrap - Lock down dependency versions`: |
93 | + https://npmjs.org/doc/shrinkwrap.html |
94 | +.. _`Building shrinkwrapped packages`: |
95 | + https://npmjs.org/doc/shrinkwrap.html#Building-shrinkwrapped-packages |
96 | |
97 | === added file 'npm-shrinkwrap.json' |
98 | --- npm-shrinkwrap.json 1970-01-01 00:00:00 +0000 |
99 | +++ npm-shrinkwrap.json 2013-04-15 10:53:24 +0000 |
100 | @@ -0,0 +1,1032 @@ |
101 | +{ |
102 | + "name": "juju-ui", |
103 | + "version": "0.0.1", |
104 | + "dependencies": { |
105 | + "cryptojs": { |
106 | + "version": "2.5.3", |
107 | + "from": "cryptojs@2.5.x" |
108 | + }, |
109 | + "chai": { |
110 | + "version": "1.5.0", |
111 | + "from": "chai@1.5.x" |
112 | + }, |
113 | + "expect.js": { |
114 | + "version": "0.1.2", |
115 | + "from": "expect.js@0.1.2" |
116 | + }, |
117 | + "graceful-fs": { |
118 | + "version": "1.1.14", |
119 | + "from": "graceful-fs@1.1.x" |
120 | + }, |
121 | + "node-markdown": { |
122 | + "version": "0.1.1", |
123 | + "from": "node-markdown@0.1.x" |
124 | + }, |
125 | + "rimraf": { |
126 | + "version": "2.0.3", |
127 | + "from": "rimraf@2.0.x" |
128 | + }, |
129 | + "should": { |
130 | + "version": "1.2.2", |
131 | + "from": "should@1.2.x" |
132 | + }, |
133 | + "less": { |
134 | + "version": "1.3.3", |
135 | + "from": "less@1.3.x", |
136 | + "dependencies": { |
137 | + "ycssmin": { |
138 | + "version": "1.0.1", |
139 | + "from": "ycssmin@>=1.0.1" |
140 | + } |
141 | + } |
142 | + }, |
143 | + "minimatch": { |
144 | + "version": "0.2.11", |
145 | + "from": "minimatch@0.2.x", |
146 | + "dependencies": { |
147 | + "lru-cache": { |
148 | + "version": "2.3.0", |
149 | + "from": "lru-cache@2" |
150 | + }, |
151 | + "sigmund": { |
152 | + "version": "1.0.0", |
153 | + "from": "sigmund@~1.0.0" |
154 | + } |
155 | + } |
156 | + }, |
157 | + "node-minify": { |
158 | + "version": "0.7.2", |
159 | + "from": "node-minify@0.7.x", |
160 | + "dependencies": { |
161 | + "sqwish": { |
162 | + "version": "0.2.1", |
163 | + "from": "sqwish@*" |
164 | + } |
165 | + } |
166 | + }, |
167 | + "express": { |
168 | + "version": "3.1.1", |
169 | + "from": "express@3.1.x", |
170 | + "dependencies": { |
171 | + "connect": { |
172 | + "version": "2.7.4", |
173 | + "from": "connect@2.7.4", |
174 | + "dependencies": { |
175 | + "qs": { |
176 | + "version": "0.5.1", |
177 | + "from": "qs@0.5.1" |
178 | + }, |
179 | + "formidable": { |
180 | + "version": "1.0.11", |
181 | + "from": "formidable@1.0.11" |
182 | + }, |
183 | + "buffer-crc32": { |
184 | + "version": "0.1.1", |
185 | + "from": "buffer-crc32@0.1.1" |
186 | + }, |
187 | + "bytes": { |
188 | + "version": "0.2.0", |
189 | + "from": "bytes@0.2.0" |
190 | + }, |
191 | + "pause": { |
192 | + "version": "0.0.1", |
193 | + "from": "pause@0.0.1" |
194 | + } |
195 | + } |
196 | + }, |
197 | + "commander": { |
198 | + "version": "0.6.1", |
199 | + "from": "commander@0.6.1" |
200 | + }, |
201 | + "range-parser": { |
202 | + "version": "0.0.4", |
203 | + "from": "range-parser@0.0.4" |
204 | + }, |
205 | + "mkdirp": { |
206 | + "version": "0.3.5", |
207 | + "from": "mkdirp@~0.3.4" |
208 | + }, |
209 | + "cookie": { |
210 | + "version": "0.0.5", |
211 | + "from": "cookie@0.0.5" |
212 | + }, |
213 | + "buffer-crc32": { |
214 | + "version": "0.2.1", |
215 | + "from": "buffer-crc32@~0.2.1" |
216 | + }, |
217 | + "fresh": { |
218 | + "version": "0.1.0", |
219 | + "from": "fresh@0.1.0" |
220 | + }, |
221 | + "methods": { |
222 | + "version": "0.0.1", |
223 | + "from": "methods@0.0.1" |
224 | + }, |
225 | + "send": { |
226 | + "version": "0.1.0", |
227 | + "from": "send@0.1.0", |
228 | + "dependencies": { |
229 | + "mime": { |
230 | + "version": "1.2.6", |
231 | + "from": "mime@1.2.6" |
232 | + } |
233 | + } |
234 | + }, |
235 | + "cookie-signature": { |
236 | + "version": "0.0.1", |
237 | + "from": "cookie-signature@0.0.1" |
238 | + }, |
239 | + "debug": { |
240 | + "version": "0.7.2", |
241 | + "from": "debug@*" |
242 | + } |
243 | + } |
244 | + }, |
245 | + "mocha": { |
246 | + "version": "1.8.2", |
247 | + "from": "mocha@1.8.x", |
248 | + "dependencies": { |
249 | + "commander": { |
250 | + "version": "0.6.1", |
251 | + "from": "commander@0.6.1" |
252 | + }, |
253 | + "growl": { |
254 | + "version": "1.7.0", |
255 | + "from": "growl@1.7.x" |
256 | + }, |
257 | + "jade": { |
258 | + "version": "0.26.3", |
259 | + "from": "jade@0.26.3", |
260 | + "dependencies": { |
261 | + "mkdirp": { |
262 | + "version": "0.3.0", |
263 | + "from": "mkdirp@0.3.0" |
264 | + } |
265 | + } |
266 | + }, |
267 | + "diff": { |
268 | + "version": "1.0.2", |
269 | + "from": "diff@1.0.2" |
270 | + }, |
271 | + "debug": { |
272 | + "version": "0.7.2", |
273 | + "from": "debug@*" |
274 | + }, |
275 | + "mkdirp": { |
276 | + "version": "0.3.3", |
277 | + "from": "mkdirp@0.3.3" |
278 | + }, |
279 | + "ms": { |
280 | + "version": "0.3.0", |
281 | + "from": "ms@0.3.0" |
282 | + } |
283 | + } |
284 | + }, |
285 | + "recess": { |
286 | + "version": "1.1.6", |
287 | + "from": "recess@1.1.x", |
288 | + "dependencies": { |
289 | + "colors": { |
290 | + "version": "0.6.0-1", |
291 | + "from": "colors@>= 0.3.0" |
292 | + }, |
293 | + "nopt": { |
294 | + "version": "2.1.1", |
295 | + "from": "nopt@>= 1.0.10", |
296 | + "dependencies": { |
297 | + "abbrev": { |
298 | + "version": "1.0.4", |
299 | + "from": "abbrev@1" |
300 | + } |
301 | + } |
302 | + }, |
303 | + "underscore": { |
304 | + "version": "1.4.4", |
305 | + "from": "underscore@>= 1.2.1" |
306 | + }, |
307 | + "watch": { |
308 | + "version": "0.7.0", |
309 | + "from": "watch@>= 0.5.1" |
310 | + } |
311 | + } |
312 | + }, |
313 | + "uglify-js": { |
314 | + "version": "2.2.5", |
315 | + "from": "uglify-js@2.2.x", |
316 | + "dependencies": { |
317 | + "source-map": { |
318 | + "version": "0.1.22", |
319 | + "from": "source-map@~0.1.7", |
320 | + "dependencies": { |
321 | + "amdefine": { |
322 | + "version": "0.0.4", |
323 | + "from": "amdefine@>=0.0.4" |
324 | + } |
325 | + } |
326 | + }, |
327 | + "optimist": { |
328 | + "version": "0.3.7", |
329 | + "from": "optimist@~0.3.5", |
330 | + "dependencies": { |
331 | + "wordwrap": { |
332 | + "version": "0.0.2", |
333 | + "from": "wordwrap@~0.0.2" |
334 | + } |
335 | + } |
336 | + } |
337 | + } |
338 | + }, |
339 | + "yuidocjs": { |
340 | + "version": "0.3.42", |
341 | + "from": "yuidocjs@0.3.x", |
342 | + "dependencies": { |
343 | + "express": { |
344 | + "version": "2.5.11", |
345 | + "from": "express@~2.5.0", |
346 | + "dependencies": { |
347 | + "connect": { |
348 | + "version": "1.9.2", |
349 | + "from": "connect@1.x", |
350 | + "dependencies": { |
351 | + "formidable": { |
352 | + "version": "1.0.13", |
353 | + "from": "formidable@1.0.x" |
354 | + } |
355 | + } |
356 | + }, |
357 | + "mime": { |
358 | + "version": "1.2.4", |
359 | + "from": "mime@1.2.4" |
360 | + }, |
361 | + "qs": { |
362 | + "version": "0.4.2", |
363 | + "from": "qs@0.4.x" |
364 | + }, |
365 | + "mkdirp": { |
366 | + "version": "0.3.0", |
367 | + "from": "mkdirp@0.3.0" |
368 | + } |
369 | + } |
370 | + } |
371 | + } |
372 | + }, |
373 | + "jshint": { |
374 | + "version": "0.9.1", |
375 | + "from": "jshint@0.9.1", |
376 | + "dependencies": { |
377 | + "cli": { |
378 | + "version": "0.4.3", |
379 | + "from": "cli@0.4.3", |
380 | + "dependencies": { |
381 | + "glob": { |
382 | + "version": "3.1.21", |
383 | + "from": "glob@>= 3.1.4", |
384 | + "dependencies": { |
385 | + "minimatch": { |
386 | + "version": "0.2.11", |
387 | + "from": "minimatch@~0.2.11", |
388 | + "dependencies": { |
389 | + "lru-cache": { |
390 | + "version": "2.3.0", |
391 | + "from": "lru-cache@2" |
392 | + }, |
393 | + "sigmund": { |
394 | + "version": "1.0.0", |
395 | + "from": "sigmund@~1.0.0" |
396 | + } |
397 | + } |
398 | + }, |
399 | + "graceful-fs": { |
400 | + "version": "1.2.0", |
401 | + "from": "graceful-fs@~1.2.0" |
402 | + }, |
403 | + "inherits": { |
404 | + "version": "1.0.0", |
405 | + "from": "inherits@1" |
406 | + } |
407 | + } |
408 | + } |
409 | + } |
410 | + }, |
411 | + "minimatch": { |
412 | + "version": "0.0.5", |
413 | + "from": "minimatch@0.0.x", |
414 | + "dependencies": { |
415 | + "lru-cache": { |
416 | + "version": "1.0.6", |
417 | + "from": "lru-cache@~1.0.2" |
418 | + } |
419 | + } |
420 | + } |
421 | + } |
422 | + }, |
423 | + "yui": { |
424 | + "version": "3.9.1", |
425 | + "from": "yui@3.9.1", |
426 | + "dependencies": { |
427 | + "request": { |
428 | + "version": "2.12.0", |
429 | + "from": "request@~2.12.0", |
430 | + "dependencies": { |
431 | + "form-data": { |
432 | + "version": "0.0.3", |
433 | + "from": "form-data", |
434 | + "dependencies": { |
435 | + "combined-stream": { |
436 | + "version": "0.0.3", |
437 | + "from": "combined-stream@0.0.3", |
438 | + "dependencies": { |
439 | + "delayed-stream": { |
440 | + "version": "0.0.5", |
441 | + "from": "delayed-stream@0.0.5" |
442 | + } |
443 | + } |
444 | + }, |
445 | + "async": { |
446 | + "version": "0.1.9", |
447 | + "from": "async@0.1.9" |
448 | + } |
449 | + } |
450 | + }, |
451 | + "mime": { |
452 | + "version": "1.2.7", |
453 | + "from": "mime" |
454 | + } |
455 | + } |
456 | + } |
457 | + } |
458 | + }, |
459 | + "d3": { |
460 | + "version": "2.10.3", |
461 | + "from": "d3@2.10.x", |
462 | + "dependencies": { |
463 | + "jsdom": { |
464 | + "version": "0.2.14", |
465 | + "from": "jsdom@0.2.14", |
466 | + "dependencies": { |
467 | + "htmlparser": { |
468 | + "version": "1.7.6", |
469 | + "from": "htmlparser@1.x" |
470 | + }, |
471 | + "request": { |
472 | + "version": "2.16.6", |
473 | + "from": "request@2.x", |
474 | + "dependencies": { |
475 | + "form-data": { |
476 | + "version": "0.0.7", |
477 | + "from": "form-data@~0.0.3", |
478 | + "dependencies": { |
479 | + "combined-stream": { |
480 | + "version": "0.0.4", |
481 | + "from": "combined-stream@~0.0.4", |
482 | + "dependencies": { |
483 | + "delayed-stream": { |
484 | + "version": "0.0.5", |
485 | + "from": "delayed-stream@0.0.5" |
486 | + } |
487 | + } |
488 | + }, |
489 | + "async": { |
490 | + "version": "0.1.22", |
491 | + "from": "async@~0.1.9" |
492 | + } |
493 | + } |
494 | + }, |
495 | + "mime": { |
496 | + "version": "1.2.9", |
497 | + "from": "mime@~1.2.7" |
498 | + }, |
499 | + "hawk": { |
500 | + "version": "0.10.2", |
501 | + "from": "hawk@~0.10.2", |
502 | + "dependencies": { |
503 | + "hoek": { |
504 | + "version": "0.7.6", |
505 | + "from": "hoek@0.7.x" |
506 | + }, |
507 | + "boom": { |
508 | + "version": "0.3.8", |
509 | + "from": "boom@0.3.x" |
510 | + }, |
511 | + "cryptiles": { |
512 | + "version": "0.1.3", |
513 | + "from": "cryptiles@0.1.x" |
514 | + }, |
515 | + "sntp": { |
516 | + "version": "0.1.4", |
517 | + "from": "sntp@0.1.x" |
518 | + } |
519 | + } |
520 | + }, |
521 | + "node-uuid": { |
522 | + "version": "1.4.0", |
523 | + "from": "node-uuid@~1.4.0" |
524 | + }, |
525 | + "cookie-jar": { |
526 | + "version": "0.2.0", |
527 | + "from": "cookie-jar@~0.2.0" |
528 | + }, |
529 | + "aws-sign": { |
530 | + "version": "0.2.0", |
531 | + "from": "aws-sign@~0.2.0" |
532 | + }, |
533 | + "oauth-sign": { |
534 | + "version": "0.2.0", |
535 | + "from": "oauth-sign@~0.2.0" |
536 | + }, |
537 | + "forever-agent": { |
538 | + "version": "0.2.0", |
539 | + "from": "forever-agent@~0.2.0" |
540 | + }, |
541 | + "tunnel-agent": { |
542 | + "version": "0.2.0", |
543 | + "from": "tunnel-agent@~0.2.0" |
544 | + }, |
545 | + "json-stringify-safe": { |
546 | + "version": "3.0.0", |
547 | + "from": "json-stringify-safe@~3.0.0" |
548 | + }, |
549 | + "qs": { |
550 | + "version": "0.5.6", |
551 | + "from": "qs@~0.5.4" |
552 | + } |
553 | + } |
554 | + }, |
555 | + "cssom": { |
556 | + "version": "0.2.5", |
557 | + "from": "cssom@0.2.x" |
558 | + }, |
559 | + "contextify": { |
560 | + "version": "0.1.5", |
561 | + "from": "contextify@0.1.x", |
562 | + "dependencies": { |
563 | + "bindings": { |
564 | + "version": "1.1.0", |
565 | + "from": "bindings@*" |
566 | + } |
567 | + } |
568 | + } |
569 | + } |
570 | + }, |
571 | + "sizzle": { |
572 | + "version": "1.1.0", |
573 | + "from": "sizzle@1.1.x" |
574 | + } |
575 | + } |
576 | + }, |
577 | + "node-spritesheet": { |
578 | + "version": "0.4.0", |
579 | + "from": "node-spritesheet@0.4.0", |
580 | + "dependencies": { |
581 | + "async": { |
582 | + "version": "0.1.22", |
583 | + "from": "async@~0.1.22" |
584 | + }, |
585 | + "q-fs": { |
586 | + "version": "0.1.36", |
587 | + "from": "q-fs@~0.1.32", |
588 | + "dependencies": { |
589 | + "q": { |
590 | + "version": "0.8.12", |
591 | + "from": "q@0.8.x" |
592 | + }, |
593 | + "q-io": { |
594 | + "version": "0.0.18", |
595 | + "from": "q-io@0.0.x" |
596 | + }, |
597 | + "fs-boot": { |
598 | + "version": "0.0.9", |
599 | + "from": "fs-boot@0.0.x" |
600 | + } |
601 | + } |
602 | + }, |
603 | + "grunt-contrib": { |
604 | + "version": "0.2.0", |
605 | + "from": "grunt-contrib@~0.2.0", |
606 | + "dependencies": { |
607 | + "grunt-contrib-clean": { |
608 | + "version": "0.2.0", |
609 | + "from": "grunt-contrib-clean@~0.2.0", |
610 | + "dependencies": { |
611 | + "grunt-contrib-lib": { |
612 | + "version": "0.1.0", |
613 | + "from": "grunt-contrib-lib@~0.1.0" |
614 | + } |
615 | + } |
616 | + }, |
617 | + "grunt-contrib-coffee": { |
618 | + "version": "0.2.0", |
619 | + "from": "grunt-contrib-coffee@~0.2.0", |
620 | + "dependencies": { |
621 | + "coffee-script": { |
622 | + "version": "1.3.3", |
623 | + "from": "coffee-script@~1.3.3" |
624 | + }, |
625 | + "grunt-contrib-lib": { |
626 | + "version": "0.2.1", |
627 | + "from": "grunt-contrib-lib@~0.2.0" |
628 | + } |
629 | + } |
630 | + }, |
631 | + "grunt-contrib-compress": { |
632 | + "version": "0.2.2", |
633 | + "from": "grunt-contrib-compress@~0.2.0", |
634 | + "dependencies": { |
635 | + "tar": { |
636 | + "version": "0.1.17", |
637 | + "from": "tar@~0.1.13", |
638 | + "dependencies": { |
639 | + "inherits": { |
640 | + "version": "1.0.0", |
641 | + "from": "inherits@1.x" |
642 | + }, |
643 | + "block-stream": { |
644 | + "version": "0.0.6", |
645 | + "from": "block-stream@*" |
646 | + } |
647 | + } |
648 | + }, |
649 | + "fstream": { |
650 | + "version": "0.1.22", |
651 | + "from": "fstream@~0.1.18", |
652 | + "dependencies": { |
653 | + "mkdirp": { |
654 | + "version": "0.3.5", |
655 | + "from": "mkdirp@0.3.x" |
656 | + }, |
657 | + "graceful-fs": { |
658 | + "version": "1.2.0", |
659 | + "from": "graceful-fs@~1.2.0" |
660 | + }, |
661 | + "inherits": { |
662 | + "version": "1.0.0", |
663 | + "from": "inherits@1.x" |
664 | + } |
665 | + } |
666 | + }, |
667 | + "zipstream-ctalkington": { |
668 | + "version": "0.3.4", |
669 | + "from": "zipstream-ctalkington@~0.3.0" |
670 | + }, |
671 | + "grunt-contrib-lib": { |
672 | + "version": "0.2.1", |
673 | + "from": "grunt-contrib-lib@~0.2.0" |
674 | + } |
675 | + } |
676 | + }, |
677 | + "grunt-contrib-copy": { |
678 | + "version": "0.2.4", |
679 | + "from": "grunt-contrib-copy@~0.2.0", |
680 | + "dependencies": { |
681 | + "grunt-contrib-lib": { |
682 | + "version": "0.2.1", |
683 | + "from": "grunt-contrib-lib@~0.2.0" |
684 | + } |
685 | + } |
686 | + }, |
687 | + "grunt-contrib-handlebars": { |
688 | + "version": "0.2.4", |
689 | + "from": "grunt-contrib-handlebars@~0.2.0", |
690 | + "dependencies": { |
691 | + "handlebars": { |
692 | + "version": "1.0.10", |
693 | + "from": "handlebars@~1.0.4", |
694 | + "dependencies": { |
695 | + "optimist": { |
696 | + "version": "0.3.7", |
697 | + "from": "optimist@~0.3", |
698 | + "dependencies": { |
699 | + "wordwrap": { |
700 | + "version": "0.0.2", |
701 | + "from": "wordwrap@~0.0.2" |
702 | + } |
703 | + } |
704 | + }, |
705 | + "uglify-js": { |
706 | + "version": "1.2.6", |
707 | + "from": "uglify-js@~1.2" |
708 | + } |
709 | + } |
710 | + }, |
711 | + "grunt-contrib-lib": { |
712 | + "version": "0.2.1", |
713 | + "from": "grunt-contrib-lib@~0.2.0" |
714 | + } |
715 | + } |
716 | + }, |
717 | + "grunt-contrib-jade": { |
718 | + "version": "0.2.0", |
719 | + "from": "grunt-contrib-jade@~0.2.0", |
720 | + "dependencies": { |
721 | + "jade": { |
722 | + "version": "0.27.7", |
723 | + "from": "jade@~0.27.2", |
724 | + "dependencies": { |
725 | + "commander": { |
726 | + "version": "0.6.1", |
727 | + "from": "commander@0.6.1" |
728 | + }, |
729 | + "mkdirp": { |
730 | + "version": "0.3.5", |
731 | + "from": "mkdirp@0.3.x" |
732 | + }, |
733 | + "coffee-script": { |
734 | + "version": "1.4.0", |
735 | + "from": "coffee-script@~1.4.0" |
736 | + } |
737 | + } |
738 | + }, |
739 | + "grunt-contrib-lib": { |
740 | + "version": "0.2.1", |
741 | + "from": "grunt-contrib-lib@~0.2.0" |
742 | + } |
743 | + } |
744 | + }, |
745 | + "grunt-contrib-jst": { |
746 | + "version": "0.2.4", |
747 | + "from": "grunt-contrib-jst@~0.2.0", |
748 | + "dependencies": { |
749 | + "underscore": { |
750 | + "version": "1.3.3", |
751 | + "from": "underscore@~1.3.3" |
752 | + }, |
753 | + "grunt-contrib-lib": { |
754 | + "version": "0.2.1", |
755 | + "from": "grunt-contrib-lib@~0.2.0" |
756 | + } |
757 | + } |
758 | + }, |
759 | + "grunt-contrib-less": { |
760 | + "version": "0.2.2", |
761 | + "from": "grunt-contrib-less@~0.2.0", |
762 | + "dependencies": { |
763 | + "grunt-contrib-lib": { |
764 | + "version": "0.2.1", |
765 | + "from": "grunt-contrib-lib@~0.2.0" |
766 | + } |
767 | + } |
768 | + }, |
769 | + "grunt-contrib-mincss": { |
770 | + "version": "0.2.0", |
771 | + "from": "grunt-contrib-mincss@~0.2.0", |
772 | + "dependencies": { |
773 | + "clean-css": { |
774 | + "version": "0.4.2", |
775 | + "from": "clean-css@~0.4.1", |
776 | + "dependencies": { |
777 | + "optimist": { |
778 | + "version": "0.3.7", |
779 | + "from": "optimist@0.3.x", |
780 | + "dependencies": { |
781 | + "wordwrap": { |
782 | + "version": "0.0.2", |
783 | + "from": "wordwrap@~0.0.2" |
784 | + } |
785 | + } |
786 | + } |
787 | + } |
788 | + }, |
789 | + "grunt-contrib-lib": { |
790 | + "version": "0.2.1", |
791 | + "from": "grunt-contrib-lib@~0.2.0" |
792 | + } |
793 | + } |
794 | + }, |
795 | + "grunt-contrib-requirejs": { |
796 | + "version": "0.2.0", |
797 | + "from": "grunt-contrib-requirejs@~0.2.0", |
798 | + "dependencies": { |
799 | + "requirejs": { |
800 | + "version": "2.0.6", |
801 | + "from": "requirejs@~2.0.6" |
802 | + }, |
803 | + "grunt-contrib-lib": { |
804 | + "version": "0.2.1", |
805 | + "from": "grunt-contrib-lib@~0.2.0" |
806 | + } |
807 | + } |
808 | + }, |
809 | + "grunt-contrib-stylus": { |
810 | + "version": "0.2.2", |
811 | + "from": "grunt-contrib-stylus@~0.2.0", |
812 | + "dependencies": { |
813 | + "stylus": { |
814 | + "version": "0.29.0", |
815 | + "from": "stylus@~0.29.0", |
816 | + "dependencies": { |
817 | + "cssom": { |
818 | + "version": "0.2.5", |
819 | + "from": "cssom@0.2.x" |
820 | + }, |
821 | + "mkdirp": { |
822 | + "version": "0.3.5", |
823 | + "from": "mkdirp@0.3.x" |
824 | + }, |
825 | + "debug": { |
826 | + "version": "0.7.2", |
827 | + "from": "debug@*" |
828 | + } |
829 | + } |
830 | + }, |
831 | + "nib": { |
832 | + "version": "0.8.2", |
833 | + "from": "nib@~0.8.2" |
834 | + }, |
835 | + "grunt-contrib-lib": { |
836 | + "version": "0.2.1", |
837 | + "from": "grunt-contrib-lib@~0.2.0" |
838 | + } |
839 | + } |
840 | + }, |
841 | + "grunt-contrib-yuidoc": { |
842 | + "version": "0.2.0", |
843 | + "from": "grunt-contrib-yuidoc@~0.2.0", |
844 | + "dependencies": { |
845 | + "grunt-contrib-lib": { |
846 | + "version": "0.2.1", |
847 | + "from": "grunt-contrib-lib@~0.2.0" |
848 | + } |
849 | + } |
850 | + } |
851 | + } |
852 | + }, |
853 | + "grunt-lib-contrib": { |
854 | + "version": "0.3.1", |
855 | + "from": "grunt-lib-contrib@~0.3.0" |
856 | + }, |
857 | + "underscore": { |
858 | + "version": "1.4.4", |
859 | + "from": "underscore@>= 1.2.1" |
860 | + } |
861 | + } |
862 | + }, |
863 | + "grunt": { |
864 | + "version": "0.3.17", |
865 | + "from": "grunt@0.3.17", |
866 | + "dependencies": { |
867 | + "async": { |
868 | + "version": "0.1.22", |
869 | + "from": "async@~0.1.18" |
870 | + }, |
871 | + "colors": { |
872 | + "version": "0.6.0-1", |
873 | + "from": "colors@~0.6.0" |
874 | + }, |
875 | + "connect": { |
876 | + "version": "2.4.6", |
877 | + "from": "connect@~2.4.4", |
878 | + "dependencies": { |
879 | + "qs": { |
880 | + "version": "0.5.1", |
881 | + "from": "qs@0.5.1" |
882 | + }, |
883 | + "formidable": { |
884 | + "version": "1.0.11", |
885 | + "from": "formidable@1.0.11" |
886 | + }, |
887 | + "crc": { |
888 | + "version": "0.2.0", |
889 | + "from": "crc@0.2.0" |
890 | + }, |
891 | + "cookie": { |
892 | + "version": "0.0.4", |
893 | + "from": "cookie@0.0.4" |
894 | + }, |
895 | + "bytes": { |
896 | + "version": "0.1.0", |
897 | + "from": "bytes@0.1.0" |
898 | + }, |
899 | + "send": { |
900 | + "version": "0.0.4", |
901 | + "from": "send@0.0.4", |
902 | + "dependencies": { |
903 | + "mime": { |
904 | + "version": "1.2.6", |
905 | + "from": "mime@1.2.6" |
906 | + }, |
907 | + "range-parser": { |
908 | + "version": "0.0.4", |
909 | + "from": "range-parser@0.0.4" |
910 | + } |
911 | + } |
912 | + }, |
913 | + "fresh": { |
914 | + "version": "0.1.0", |
915 | + "from": "fresh@0.1.0" |
916 | + }, |
917 | + "pause": { |
918 | + "version": "0.0.1", |
919 | + "from": "pause@0.0.1" |
920 | + }, |
921 | + "debug": { |
922 | + "version": "0.7.2", |
923 | + "from": "debug@*" |
924 | + } |
925 | + } |
926 | + }, |
927 | + "dateformat": { |
928 | + "version": "1.0.2-1.2.3", |
929 | + "from": "dateformat@1.0.2-1.2.3" |
930 | + }, |
931 | + "glob-whatev": { |
932 | + "version": "0.1.8", |
933 | + "from": "glob-whatev@~0.1.4" |
934 | + }, |
935 | + "hooker": { |
936 | + "version": "0.2.3", |
937 | + "from": "hooker@~0.2.3" |
938 | + }, |
939 | + "nodeunit": { |
940 | + "version": "0.7.4", |
941 | + "from": "nodeunit@~0.7.4", |
942 | + "dependencies": { |
943 | + "tap": { |
944 | + "version": "0.4.1", |
945 | + "from": "tap@>=0.2.3", |
946 | + "dependencies": { |
947 | + "inherits": { |
948 | + "version": "1.0.0" |
949 | + }, |
950 | + "yamlish": { |
951 | + "version": "0.0.5" |
952 | + }, |
953 | + "slide": { |
954 | + "version": "1.1.3", |
955 | + "from": "slide@*" |
956 | + }, |
957 | + "runforcover": { |
958 | + "version": "0.0.2", |
959 | + "from": "runforcover@~0.0.2", |
960 | + "dependencies": { |
961 | + "bunker": { |
962 | + "version": "0.1.2", |
963 | + "from": "bunker@0.1.X", |
964 | + "dependencies": { |
965 | + "burrito": { |
966 | + "version": "0.2.12", |
967 | + "from": "burrito@>=0.2.5 <0.3", |
968 | + "dependencies": { |
969 | + "traverse": { |
970 | + "version": "0.5.2", |
971 | + "from": "traverse@~0.5.1" |
972 | + }, |
973 | + "uglify-js": { |
974 | + "version": "1.1.1", |
975 | + "from": "uglify-js@~1.1.1" |
976 | + } |
977 | + } |
978 | + } |
979 | + } |
980 | + } |
981 | + } |
982 | + }, |
983 | + "nopt": { |
984 | + "version": "2.1.1", |
985 | + "from": "nopt@~2", |
986 | + "dependencies": { |
987 | + "abbrev": { |
988 | + "version": "1.0.4", |
989 | + "from": "abbrev@1" |
990 | + } |
991 | + } |
992 | + }, |
993 | + "mkdirp": { |
994 | + "version": "0.3.5", |
995 | + "from": "mkdirp@~0.3" |
996 | + }, |
997 | + "difflet": { |
998 | + "version": "0.2.3", |
999 | + "from": "difflet@~0.2.0", |
1000 | + "dependencies": { |
1001 | + "traverse": { |
1002 | + "version": "0.6.3", |
1003 | + "from": "traverse@0.6.x" |
1004 | + }, |
1005 | + "charm": { |
1006 | + "version": "0.0.8", |
1007 | + "from": "charm@0.0.x" |
1008 | + } |
1009 | + } |
1010 | + }, |
1011 | + "deep-equal": { |
1012 | + "version": "0.0.0", |
1013 | + "from": "deep-equal@~0.0.0" |
1014 | + }, |
1015 | + "buffer-equal": { |
1016 | + "version": "0.0.0", |
1017 | + "from": "buffer-equal@~0.0.0" |
1018 | + }, |
1019 | + "glob": { |
1020 | + "version": "3.1.21", |
1021 | + "from": "glob@~3.1.14", |
1022 | + "dependencies": { |
1023 | + "graceful-fs": { |
1024 | + "version": "1.2.0", |
1025 | + "from": "graceful-fs@~1.2.0" |
1026 | + }, |
1027 | + "inherits": { |
1028 | + "version": "1.0.0", |
1029 | + "from": "inherits@1" |
1030 | + } |
1031 | + } |
1032 | + } |
1033 | + } |
1034 | + } |
1035 | + } |
1036 | + }, |
1037 | + "nopt": { |
1038 | + "version": "1.0.10", |
1039 | + "from": "nopt@~1.0.10", |
1040 | + "dependencies": { |
1041 | + "abbrev": { |
1042 | + "version": "1.0.4", |
1043 | + "from": "abbrev@1" |
1044 | + } |
1045 | + } |
1046 | + }, |
1047 | + "prompt": { |
1048 | + "version": "0.1.12", |
1049 | + "from": "prompt@~0.1.12", |
1050 | + "dependencies": { |
1051 | + "pkginfo": { |
1052 | + "version": "0.3.0", |
1053 | + "from": "pkginfo@0.x.x" |
1054 | + }, |
1055 | + "winston": { |
1056 | + "version": "0.5.11", |
1057 | + "from": "winston@0.5.x", |
1058 | + "dependencies": { |
1059 | + "eyes": { |
1060 | + "version": "0.1.8", |
1061 | + "from": "eyes@0.1.x" |
1062 | + }, |
1063 | + "loggly": { |
1064 | + "version": "0.3.11", |
1065 | + "from": "loggly@0.3.x >=0.3.7", |
1066 | + "dependencies": { |
1067 | + "request": { |
1068 | + "version": "2.9.203", |
1069 | + "from": "request@2.9.x" |
1070 | + }, |
1071 | + "timespan": { |
1072 | + "version": "2.2.0", |
1073 | + "from": "timespan@2.x.x" |
1074 | + } |
1075 | + } |
1076 | + }, |
1077 | + "pkginfo": { |
1078 | + "version": "0.2.3", |
1079 | + "from": "pkginfo@0.2.x" |
1080 | + }, |
1081 | + "stack-trace": { |
1082 | + "version": "0.0.6", |
1083 | + "from": "stack-trace@0.0.x" |
1084 | + } |
1085 | + } |
1086 | + } |
1087 | + } |
1088 | + }, |
1089 | + "semver": { |
1090 | + "version": "1.0.14", |
1091 | + "from": "semver@~1.0.13" |
1092 | + }, |
1093 | + "uglify-js": { |
1094 | + "version": "1.3.4", |
1095 | + "from": "uglify-js@~1.3.3" |
1096 | + }, |
1097 | + "underscore": { |
1098 | + "version": "1.2.4", |
1099 | + "from": "underscore@~1.2.4" |
1100 | + }, |
1101 | + "underscore.string": { |
1102 | + "version": "2.1.1", |
1103 | + "from": "underscore.string@~2.1.1" |
1104 | + }, |
1105 | + "temporary": { |
1106 | + "version": "0.0.5", |
1107 | + "from": "temporary@~0.0.4", |
1108 | + "dependencies": { |
1109 | + "package": { |
1110 | + "version": "1.0.1", |
1111 | + "from": "package@>= 1.0.0 < 1.2.0" |
1112 | + } |
1113 | + } |
1114 | + }, |
1115 | + "gzip-js": { |
1116 | + "version": "0.3.1", |
1117 | + "from": "gzip-js@~0.3.1", |
1118 | + "dependencies": { |
1119 | + "crc32": { |
1120 | + "version": "0.2.2", |
1121 | + "from": "crc32@>= 0.2.2" |
1122 | + }, |
1123 | + "deflate-js": { |
1124 | + "version": "0.2.2", |
1125 | + "from": "deflate-js@>= 0.2.2" |
1126 | + } |
1127 | + } |
1128 | + } |
1129 | + } |
1130 | + } |
1131 | + } |
1132 | +} |
1133 | |
1134 | === modified file 'package.json' |
1135 | --- package.json 2013-04-08 11:13:07 +0000 |
1136 | +++ package.json 2013-04-15 10:53:24 +0000 |
1137 | @@ -1,22 +1,17 @@ |
1138 | { |
1139 | "author": "Juju Developers", |
1140 | - "name": "juju-ui", |
1141 | - "description": "Juju GUI", |
1142 | - "version": "0.0.1", |
1143 | - "homepage": "http://launchpad.net/juju-ui", |
1144 | + "name": "juju-gui", |
1145 | + "description": "Juju GUI build dependencies", |
1146 | + "version": "0.1.0", |
1147 | + "homepage": "http://launchpad.net/juju-gui", |
1148 | "repository": { |
1149 | "type": "bzr", |
1150 | - "url": "lp:juju-ui" |
1151 | - }, |
1152 | - "engines": { |
1153 | - "node": ">=0.10" |
1154 | + "url": "lp:juju-gui" |
1155 | }, |
1156 | "dependencies": { |
1157 | - "cryptojs": ">= 2.5.3" |
1158 | - }, |
1159 | - "devDependencies": { |
1160 | + "cryptojs": ">= 2.5.3", |
1161 | "d3": "<3.0.0", |
1162 | - "yui": "==3.9.1", |
1163 | + "yui": "3.9.1", |
1164 | "mocha": "1.8.x", |
1165 | "express": "3.x", |
1166 | "expect.js": "0.1.2", |
1167 | @@ -34,6 +29,5 @@ |
1168 | "grunt": "0.3.17", |
1169 | "node-spritesheet": "0.4.0", |
1170 | "node-minify": "0.7.x" |
1171 | - }, |
1172 | - "optionalDependencies": {} |
1173 | + } |
1174 | } |
Reviewers: mp+158659_ code.launchpad. net,
Message:
Please take a look.
Description:
Freeze the versions of all nodejs dependencies.
Add a generated npm-shrinkwrap.json file that freezes the current
versions
of all nodejs dependecies, even the recursive ones.
Update the package.json file keeping the currently fixed package /npmjs. org/doc/ json.html# Tilde-Version- Ranges>). /npmjs. org/doc/ json.html# engines>), and remove the useless /npmjs. org/doc/ json.html# devDependencies>).
versions, and
making all other ones have some leeway over the micro version by using
Tilde
Version Ranges (see
<https:/
Also remove the misleading "engines" entry (see
<https:/
distinction
between "dependencies" and "devDependencies" (see
<https:/
Add a documentation section, "Updating the nodejs dependencies" at the
bottom of the HACKING file, explaining how this works and how to update
dependencies to new versions. Please check that the whole thing is
understandable and workable: you will use this stuff, after all. :-)
Sorry for the change size: it's mainly due to the 1k+ lines of the
generated
npm-shrinkwrap.json file. No need to go over that one, just look at the
changes in the HACKING and package.json files.
https:/ /code.launchpad .net/~teknico/ juju-gui/ harden- npm-dependencie s/+merge/ 158659
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/8714043/
Affected files:
M HACKING
A [revision details]
A npm-shrinkwrap.json
M package.json