]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/CHANGELOG.md
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / CHANGELOG.md
1 ### v2.15.11 (2016-09-08):
2
3 On we go with our monthly release cadence! This week is pretty much all
4 dependency updates and some documentation changes, as can be expected by now.
5
6 Note that `npm@4` will almost certainly be released next month! It's not final
7 what we'll end up doing as far as LTS support goes, but the current thinking is
8 that, considering how small and resource-constrained our team is, support for
9 `npm@2` will be reduced to essentially maintenance, so we can better focus on
10 `npm@3` as the new LTS version (which will go into `node@6`), and `npm@4` as our
11 next main development version.
12
13 #### DOCUMENTATION UPDATES
14
15 * [`8f71038`](https://github.com/npm/npm/commit/8f71038310501ad5bc7445b2fa2ff0eaa377919a)
16   [#13892](https://github.com/npm/npm/pull/13892)
17   Update `LICENSE` file to match license on `master`.
18   ([@rvagg](https://github.com/rvagg))
19 * [`e81b4f1`](https://github.com/npm/npm/commit/e81b4f1d18a4d79b7af8342747f2ed7dc3e84f0a)
20   [#12438](https://github.com/npm/npm/issues/12438)
21   Remind folks to use `#!/usr/bin/env node` in their `bin` scripts to make files
22   executable directly.
23   ([@mxstbr](https://github.com/mxstbr))
24 * [`f89789f`](https://github.com/npm/npm/commit/f89789f43d65bfc74f64f15a99356841377e1af3)
25   [#13655](https://github.com/npm/npm/pull/13655)
26   Document line comment syntax for `.npmrc`.
27   ([@mdjasper](https://github.com/mdjasper))
28 * [`5cd3abc`](https://github.com/npm/npm/commit/5cd3abc3511515e09b4a1b781c0520e84c267c5b)
29   [#13493](https://github.com/npm/npm/pull/13493)
30   Document that the user config file can itself be configured either through the
31   `$NPM_CONFIG_USERCONFIG` environment variable, or `--userconfig` command line
32   flag.
33   ([@jasonkarns](https://github.com/jasonkarns))
34 * [`dd71ca0`](https://github.com/npm/npm/commit/dd71ca0efc2094b824ccc9e23af0fc915499f2e6)
35   [#13911](https://github.com/npm/npm/pull/13911)
36   Minor documentation reword and cleanup.
37   ([@othiym23](https://github.com/othiym23))
38 * [`f7a320c`](https://github.com/npm/npm/commit/f7a320c816947d578a050c97e0fb9878954be0e8)
39   [#13682](https://github.com/npm/npm/pull/13682)
40   Minor grammar fix in documentation for `npm scripts`.
41   ([@Ajedi32](https://github.com/Ajedi32))
42 * [`e5cb5e8`](https://github.com/npm/npm/commit/e5cb5e8fcf4642836fedf3f3421c994a8e27e19b)
43   [#13717](https://github.com/npm/npm/pull/13717)
44   Document that `npm link` will link the files specified in the `bin` field of
45   `package.json` to `{prefix}/bin/{name}`.
46   ([@legodude17](https://github.com/legodude17))
47
48 #### DEPENDENCY UPDATES
49 * [`8bef026`](https://github.com/npm/npm/commit/8bef026603b6da888edf0d41308d9e532abfcd54)
50   `graceful-fs@4.1.6`
51   ([@francescoinfante](https://github.com/francescoinfante))
52 * [`9f73f4a`](https://github.com/npm/npm/commit/9f73f4aab5f56b256c5cf9e461e81abfa2844945)
53   `glob@7.0.6`
54   ([@isaacs](https://github.com/isaacs))
55 * [`5391b7e`](https://github.com/npm/npm/commit/5391b7e8cd4401fbadbf54e810fdc965a3662a21)
56   `which@1.2.1`
57   ([@isaacs](https://github.com/isaacs))
58 * [`43bfec8`](https://github.com/npm/npm/commit/43bfec8376dd8ded7d56a8dabd6139919544760e)
59   `retry@0.10.0`
60   ([@tim-kos](https://github.com/tim-kos))
61 * [`39305f1`](https://github.com/npm/npm/commit/39305f1c76f74bf9789c769ef72a94ea9a81d119)
62   `readable-stream@2.1.5`
63   ([@calvinmetcalf](https://github.com/calvinmetcalf))
64 * [`a5512fa`](https://github.com/npm/npm/commit/a5512fafd72e23755e77e28f1122b008bc12a733)
65   `once@1.4.0`
66   ([@zkochan](https://github.com/zkochan))
67 * [`06a208b`](https://github.com/npm/npm/commit/06a208b178c1de3d0da58bc35a854d200fea8ef0)
68   `npm-registry-client@7.2.1`:
69   * [npm/npm-registry-client#142](https://github.com/npm/npm-registry-client/pull/142) Fix `EventEmitter` warning spam from error handlers on socket. ([@addaleax](https://github.com/addaleax))
70   * [npm/npm-registry-client#131](https://github.com/npm/npm-registry-client/pull/131) Adds support for streaming request bodies. ([@aredridel](https://github.com/aredridel))
71   * Fixes [#13656](https://github.com/npm/npm/issues/13656).
72   * Dependency updates.
73   * Documentation improvements.
74   ([@othiym23](https://github.com/othiym23))
75 * [`4f759be`](https://github.com/npm/npm/commit/4f759be1fb5e23180b970350e58f40a513daa680)
76   `inherits@2.0.3`
77   ([@isaacs](https://github.com/isaacs))
78 * [`4258b76`](https://github.com/npm/npm/commit/4258b764e2565f6294ae1e34a5653895290b62e3)
79   `tap@7.1.1`
80   ([@isaacs](https://github.com/isaacs))
81
82 ### v2.15.10 (2016-08-11):
83
84 Hi all, today's our first release coming out of the new monthly release
85 cadence. See below for details. We're all recovered from conferences now and
86 raring to go! For LTS we see some bug fixes, documentation improvements and
87 a host of dependency updates.
88
89 The most dramatic bug fix is probably the inclusion of scoped modules in
90 bundled dependencies. Prior to this release and
91 [v3.10.7](https://github.com/npm/npm/releases/v3.10.7), npm had ignored
92 scoped modules found in `bundleDependencies` entirely.
93
94 #### NEW RELEASE CADENCE
95
96 Releasing npm has been, for the most part, a very prominent part of our
97 weekly process process. As part of our efforts to find the most effective
98 ways to allocate our team's resources, we decided last month that we would
99 try and slow our releases down to a monthly cadence, and see if we found
100 ourselves with as much extra time and attention as we expected to have.
101 Process experiments are useful for finding more effective ways to do our
102 work, and we're at least going to keep doing this for a whole quarter, and
103 then measure how well it worked out. It's entirely likely that we'll switch
104 back to a more frequent cadence, specially if we find that the value that
105 weekly cadence was providing the community is not worth sacrificing for a
106 bit of extra time. Does this affect you significantly? Let us know!
107
108 #### WINDOWS CORNER CASES
109
110 * [`405c404`](https://github.com/npm/npm/commit/405c4048c69c14d66e6179aba0c8a35e504e8041)
111   [#13023](https://github.com/npm/npm/pull/13023)
112   Fixed a Windows issue with the cache where callbacks could be called more than once.
113   ([@zkat](https://github.com/zkat))
114
115 * [`bf348dc`](https://github.com/npm/npm/commit/bf348dcfb944dc4b9f71b779bf172f86a2e1f474)
116   [#13023](https://github.com/npm/npm/pull/13023)
117   Fixed a Windows corner case with correct-mkdir where if SUDO_UID or
118   SUDO_GID were set then we would try to chown things even though that can't
119   work on Windows.
120   ([@zkat](https://github.com/zkat))
121
122 #### RACES IN THE CACHE
123
124 * [`68f29f1`](https://github.com/npm/npm/commit/68f29f18f65c7a7e1c58eb6933af41d786971379)
125   [#12669](https://github.com/npm/npm/issues/12669)
126   Ignore ENOENT errors on chownr while adding packages to cache. This change
127   works around problems with race conditions and local packages.
128   ([@julianduque](https://github.com/julianduque))
129
130 #### BETTER GIT ENVIRONMENT WHITELISTING
131
132 * [`5e96566`](https://github.com/npm/npm/commit/5e96566088f0d88c1ed10c5a9cbb7c0cd4aa2aee)
133   [#13358](https://github.com/npm/npm/pull/13358)
134   Add GIT_EXEC_PATH to Git environment whitelist.
135   ([@mhart](https://github.com/mhart))
136
137 #### DOCUMENTATION
138
139 * [`363e381`](https://github.com/npm/npm/commit/363e381a4076ead89707a00cc4a447b1d59df3bc)
140   [#13319](https://github.com/npm/npm/pull/13319)
141   As Node.js 0.8 is no longer supported, remove mention of it from the README.
142   ([@watilde](https://github.com/watilde))
143 * [`e8fafa8`](https://github.com/npm/npm/commit/e8fafa887c60eb8842c76c4b3dffe85eb49fa434)
144   [#10167](https://github.com/npm/npm/pull/10167)
145   Clarify in scope documentation that npm@2 is required for scoped packages.
146   ([@danpaz](https://github.com/danpaz))
147
148 #### DEPENDENCIES
149
150 * [`66ef279`](https://github.com/npm/npm/commit/66ef279b7c3b3e4f9454474dddd057cc1f21873b)
151   [npm/fstream-npm#22](https://github.com/npm/fstream-npm/pull/22)
152   `fstream@1.1.1`:
153   Always include NOTICE files now. Fix inclusion of scoped modules as bundled dependencies.
154   ([@kemitchell](https://github.com/kemitchell))
155   ([@forivall](https://github.com/forivall))
156 * [`fe8385b`](https://github.com/npm/npm/commit/fe8385bd655502feb175eed175a6a06cafb2247a)
157   `glob@7.0.5`:
158   Update minimatch dep for security fix. See the minimatch update below for details.
159   ([@isaacs](https://github.com/isaacs))
160 * [`51d49d2`](https://github.com/npm/npm/commit/51d49d2f79b4c69264de73a492ed54f87188d554)
161   [isaacs/node-graceful-fs#71](https://github.com/isaacs/node-graceful-fs/pull/71)
162   `graceful-fs@4.1.5`:
163   `graceful-fs` had a [bug fix](https://github.com/isaacs/node-graceful-fs/pull/71) which
164   fixes a problem ([nodejs/node#7846](https://github.com/nodejs/node/pull/7846)) exposed
165   by recent changes to Node.js.
166   ([@thefourtheye](https://github.com/thefourtheye))
167 * [`5c8f39d`](https://github.com/npm/npm/commit/5c8f39d152c43e96b9006ffe865646a36a433a8a)
168   `minimatch@3.0.3`:
169   Handle extremely long and terrible patterns more gracefully.
170   There were some magic numbers that assumed that every extglob pattern starts
171   and ends with a specific number of characters in the regular expression.
172   Since !(||) patterns are a little bit more complicated, this led to creating
173   an invalid regular expression and throwing.
174   ([@isaacs](https://github.com/isaacs))
175 * [`d681e16`](https://github.com/npm/npm/commit/d681e16a475a49d6196af9a5cedaaf88712f3a9f)
176   [npm/npm-user-validate#9](https://github.com/npm/npm-user-validate/pull/9)
177   `npm-user-validate@0.1.5`:
178   Use correct, lower username length limit.
179   ([@aredridel](https://github.com/aredridel))
180 * [`f918994`](https://github.com/npm/npm/commit/f918994bd05ca965766cd573606ac35fb3032d6e)
181   `request@2.74.0`:
182   Update `request` dependency `tough-cookie` to `2.3.0` to
183   to address [https://nodesecurity.io/advisories/130](https://nodesecurity.io/advisories/130).
184   Versions 0.9.7 through 2.2.2 contain a vulnerable regular expression that,
185   under certain conditions involving long strings of semicolons in the
186   "Set-Cookie" header, causes the event loop to block for excessive amounts of
187   time.
188   ([@stash-sfdc](https://github.com/stash-sfdc))
189 * [`5540cc4`](https://github.com/npm/npm/commit/5540cc4d6bde65071fb6fc2cb074e8598bd1276f)
190   [isaacs/rimraf#111](https://github.com/isaacs/rimraf/issues/111)
191   `rimraf@2.5.4`: Clarify assertions: cb is required, options are not.
192   ([@isaacs](https://github.com/isaacs))
193 * [`6357928`](https://github.com/npm/npm/commit/6357928673be85f520dae2104fea58c35742bd65)
194   `spdx-license-ids@1.2.2`:
195   New licenses synced from spdx.org.
196   ([@shinnn](https://github.com/shinnn))
197
198 ### v2.15.9 (2016-06-30):
199
200 What's this? An LTS release? Yes, that is indeed so. Small, as usual, and as
201 LTSs should be, really, but a release nonetheless!
202
203 The star of the show is an updated `node-gyp` with some goodies. The rest is
204 just docs and some CI stuff.
205
206 Happy hacking!
207
208 #### DEPENDENCY UPDATE!
209
210 * [`f9a07cc`](https://github.com/npm/npm/commit/f9a07cc873f1915827d8df97d0c43204d1eb128c)
211   [#13200](https://github.com/npm/npm/pull/13200)
212   [`node-gyp@3.4.0`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md):
213   AIX, Visual Studio 2015, and logging improvements. Oh my~!
214   ([@rvagg](https://github.com/rvagg))
215
216 #### CI TWEAKS
217
218 * [`bee83b8`](https://github.com/npm/npm/commit/bee83b8500c31aba65451dfcb082f9b5d1d5ce34)
219   Globally install `rimraf` on CI to make the LTS self-install work better.
220   ([@othiym23](https://github.com/othiym23))
221 * [`6b8c0ab`](https://github.com/npm/npm/commit/6b8c0ab6fcbf8a37e8693acb8bbac22293b10893)
222   This new Travis configuration only runs coverage checks against Node.js LTS,
223   which speeds up all the other test runs. By, like, a lot. Also, the entire
224   file has been extensively commented, so the next time we need to mess with it,
225   we'll be able to better remember why all the weird bits are there.
226   ([@othiym23](https://github.com/othiym23))
227
228 #### DOCUMENTATION FIXES
229
230 * [`2c7a5be`](https://github.com/npm/npm/commit/2c7a5be080276e3fdca3375ab0f8f5edffff753e)
231   [#13156](https://github.com/npm/npm/pull/13156)
232   Fix old reference to `doc/install` in a source comment.
233   ([@sheerun](https://github.com/sheerun))
234 * [`e1cf78c`](https://github.com/npm/npm/commit/e1cf78c5b77f95383bd4a7fc6eeb8adbbe68e12e)
235   [#13189](https://github.com/npm/npm/pull/13189)
236   [#13113](https://github.com/npm/npm/issues/13113)
237   [#13189](https://github.com/npm/npm/pull/13189)
238   Fixes a link to `npm-tag(3)` that was breaking to instead point to
239   `npm-dist-tag(1)`, as reported by [@SimenB](https://github.com/SimenB)
240   ([@macdonst](https://github.com/macdonst))
241
242 ### v2.15.8 (2016-06-17):
243
244 There's a very important bug fix and a long-awaited (and significant!)
245 deprecation in this hotfix release. [Hold on.](http://butt.holdings/)
246
247 #### *WHOA*
248
249 When Node.js 6.0.0 was released, the CLI team noticed an alarming upsurge in
250 bugs related to important files (like `README.md`) not being included in
251 published packages. The new bugs looked much like
252 [#5082](https://github.com/npm/npm/issues/5082), which had been around in one
253 form or another since April, 2014. #5082 used to be a very rare (and obnoxious)
254 bug that the CLI team hadn't had much luck reproducing, and we'd basically
255 marked it down as a race condition that arose on machines using slow and / or
256 rotating-media-based hard drives.
257
258 Under 6.0.0, the behavior was reliable enough to be nearly deterministic, and
259 made it very difficult for publishers using `.npmignore` files in combination
260 with `"files"` stanzas in `package.json` to get their packages onto the
261 registry without one or more files missing from the packed tarball. The entire
262 saga is contained within [the issue](https://github.com/npm/npm/issues/5082),
263 but the summary is that an improvement to the performance of
264 [`fs.realpath()`](https://nodejs.org/api/fs.html#fs_fs_realpath_path_options_callback)
265 made it much more likely that the packing code would lose the race.
266
267 Fixing this has proven to be very difficult, in part because the code used by
268 npm to produce package tarballs is more complicated than, strictly speaking, it
269 needs to be. [**@evanlucas**](https://github.com/evanlucas) contributed [a
270 patch](https://github.com/npm/fstream/pull/50) that passed the tests in a
271 [special test suite](https://github.com/othiym23/eliminate-5082) that I
272 ([**@othiym23**](https://github.com/othiym23)) created (with help from
273 [**@addaleax**](https://github.com/addaleax)), but only _after_ we'd released
274 the fixed version of that package did we learn that it actually made the
275 problem _worse_ in other situations in npm proper. Eventually,
276 [**@rvagg**](https://github.com/rvagg) put together a more durable fix that
277 appears to completely address the errant behavior under Node.js 6.0.0. That's
278 the patch included in this release. Everybody should chip in for redback
279 insurance for Rod and his family; he's done the community a huge favor.
280
281 Does this mean the long (2+ year) saga of #5082 is now over? At this point, I'm
282 going to quote from my latest summary on the issue:
283
284 > The CLI team (mostly me, with input from the rest of the team) has decided that
285 > the overall complexity of the interaction between `fstream`, `fstream-ignore`,
286 > `fstream-npm`, and `node-tar` has grown more convoluted than the team is
287 > comfortable (maybe even capable of) supporting.
288 >
289 > - While I believe that @rvagg's (very targeted) fix addresses _this_ issue, I
290 >   would be shocked if there aren't other race conditions in npm's packing
291 >   logic. I've already identified a couple other places in the code that are
292 >   most likely race conditions, even if they're harder to trigger than the
293 >   current one.
294 > - The way that dependency bundling is integrated leads to a situation in
295 >   which a bunch of logic is duplicated between `fstream-npm` and
296 >   `lib/utils/tar.js` in npm itself, and the way `fstream`'s extension
297 >   mechanism works makes this difficult to clean up. This caused a nasty
298 >   regression ([#13088](https://github.com/npm/fstream/pull/50), see below) as
299 >   of ~`npm@3.8.7` where the dependencies of `bundledDependencies` were no
300 >   longer being included in the built package tarballs.
301 > - The interaction between `.npmignore`, `.gitignore`, and `files` is hopelessly
302 >   complicated, scattered in many places throughout the code. We've been
303 >   discussing [making the ignores and includes logic clearer and more
304 >   predictable](https://github.com/npm/npm/wiki/Files-and-Ignores), and the
305 >   current code fights our efforts to clean that up.
306 >
307 > So, our intention is still to replace `fstream`, `fstream-ignore`, and
308 > `fstream-npm` with something much simpler and purpose-built. There's no real
309 > reason to have a stream abstraction here when a simple recursive-descent
310 > filesystem visitor and a synchronous function that can answer whether a given
311 > path should be included in the packed tarball would do the job adequately.
312 >
313 > What's not yet clear is whether we'll need to replace `node-tar` in the
314 > process. `node-tar` is a very robust implementation of tar (it handles, like,
315 > everything), and it also includes some very important tweaks to prevent several
316 > classes of security exploits involving maliciously crafted packages. However,
317 > its packing API involves passing in an `fstream` instance, so we'd either need
318 > to produce something that follows enough of `fstream`'s contract for `node-tar`
319 > to keep working, or swap `node-tar` out for something like `tar-stream` (and
320 > then ensuring that our use of `tar-stream` is secure, which could involve
321 > security patches for either npm or `tar-stream`).
322
323 The testing and review of `fstream@1.0.10` that the team has done leads us to
324 believe that this bug is fixed, but I'm feeling more than a little paranoid
325 about fstream now, so it's important that people keep a close eye on their
326 publishes for a while and let us know immediately if they notice any
327 irregularities.
328
329 * [`2c49265`](https://github.com/npm/npm/commit/2c49265c6746d29ae0cd5f3532d28c5950f9847e)
330   [#5082](https://github.com/npm/npm/issues/5082) `fstream@1.0.10`: Ensure that
331   entries are collected after a paused stream resumes.
332   ([@rvagg](https://github.com/rvagg))
333 * [`92e4344`](https://github.com/npm/npm/commit/92e43444d9204f749f83512aeab5d5e0a2d085a7)
334   [#5082](https://github.com/npm/npm/issues/5082) Remove the warning introduced
335   in `npm@3.10.0`, because it should no longer be necessary.
336   ([@othiym23](https://github.com/othiym23))
337
338 #### GOODBYE, FAITHFUL FRIEND
339
340 At NodeConf Adventure 2016 (RIP in peace, Mikeal Rogers's NodeConf!), the CLI
341 team had an opportunity to talk to representatives from some of the larger
342 companies that we knew were still using Node.js 0.8 in production. After asking
343 them whether they were still using 0.8, we got back blank stares and questions
344 like, "0.8? You mean, from four years ago?" After establishing that being able
345 to run npm in their legacy environments was no longer necessary, the CLI team
346 made the decision to drop support for 0.8. (Faithful observers of our [team
347 meetings](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+npm+cli+team+meeting+)
348 will have known this was the plan for NodeConf since the beginning of 2016.)
349
350 In practice, this means only what's in the commit below: we've removed 0.8 from
351 our continuous integration test matrix below, and will no longer be habitually
352 testing changes under Node 0.8.  We may also give ourselves permission to use
353 `setImmediate()` in test code. However, since the project still supports
354 Node.js 0.10 and 0.12, it's unlikely that patches that rely on ES 2015
355 functionality will land anytime soon.
356
357 Looking forward, the team's current plan is to drop support for Node.js 0.10
358 when its LTS maintenace window expires in October, 2016, and 0.12 when its
359 maintenance / LTS window ends at the end of 2016. We will also drop support for
360 Node.js 5.x when Node.js 6 becomes LTS and Node.js 7 is released, also in the
361 October-December 2016 timeframe.
362
363 (Confused about Node.js's LTS policy? [Don't
364 be!](https://github.com/nodejs/LTS) If you look at [this
365 diagram](https://github.com/nodejs/LTS/blob/ce364a94b0e0619eba570cd57be396573e1ef889/schedule.png),
366 it should make all of the preceding clear.)
367
368 If, in practice, this doesn't work with distribution packagers or other
369 community stakeholders responsible for packaging and distributing Node.js and
370 npm, please reach out to us. Aligning the npm CLI's LTS policy with Node's
371 helps everybody minimize the amount of work they need to do, and since all of
372 our teams are small and very busy, this is somewhere between a necessity and
373 non-negotiable.
374
375 * [`4a1ecc0`](https://github.com/npm/npm/commit/4a1ecc068fb2660bd9bc3e2e2372aa0176d2193b)
376   Remove 0.8 from the Node.js testing matrix, and reorder to match real-world
377   priority, with comments. ([@othiym23](https://github.com/othiym23))
378
379 ### v2.15.7 (2016-06-16):
380
381 It pains me greatly that we haven't been able to fix
382 [#5082](https://github.com/npm/npm/issues/5082) yet, but warning you away from
383 potentially publishing incomplete packages takes priority over feeling cheesy
384 about landing a warning to help keep y'all out of trouble, so here you go
385 (_please read this next bit_ (_please clap_)):
386
387 #### DANGER: PUBLISHING ON NODE 6.0.0
388
389 Publishing and packing are buggy under Node versions greater than 6.0.0.
390 Please use Node.js LTS (4.4.x) to publish packages.  See
391 [#5082](https://github.com/npm/npm/issues/5082) for details and current
392 status.
393
394 * [`dff00ce`](https://github.com/npm/npm/commit/dff00cedd56b9c04370f840299a7e657a7a835c6)
395   [#13077](https://github.com/npm/npm/pull/13077)
396   Warn when using Node 6+.
397   ([@othiym23](https://github.com/othiym23))
398
399 #### PACKAGING CHANGES
400
401 * [`1877171`](https://github.com/npm/npm/commit/1877171648e20595a82de34073b643f7e01a339f)
402   [#12873](https://github.com/npm/npm/issues/12873)
403   Ignore `.nyc_output`. This will help avoid an accidental publish or commit filled with
404   code coverage data.
405   ([@TheAlphaNerd](https://github.com/TheAlphaNerd))
406
407 #### DOCUMENTATION CHANGES
408
409 * [`470ae86`](https://github.com/npm/npm/commit/470ae86e052ae2f29ebec15b7547230b6240042e)
410   [#12983](https://github.com/npm/npm/pull/12983)
411   Describe how to run the lifecycle scripts of dependencies. How you do
412   this changed with `npm` v2.
413   ([@Tapppi](https://github.com/Tapppi))
414 * [`9cedf37`](https://github.com/npm/npm/commit/9cedf37e5a3e26d0ffd6351af8cac974e3e011c2)
415   [#12776](https://github.com/npm/npm/pull/12776)
416   Remove mention of `<pkg>` arg for `run-script`.
417   ([@fibo](https://github.com/fibo))
418 * [`55b8424`](https://github.com/npm/npm/commit/55b8424d7229f2021cac55f0b03de72403e7c0ff)
419   [#12840](https://github.com/npm/npm/pull/12840)
420   Remove sexualized language from comment.
421   ([@geek](https://github.com/geek))
422 * [`d6bf0c3`](https://github.com/npm/npm/commit/d6bf0c393788a6398bf80b41c57956f2dbcf3b39)
423   [#12802](https://github.com/npm/npm/pull/12802)
424   Small grammar fix in `doc/cli/npm.md`.
425   ([@andresilveira](https://github.com/andresilveira))
426
427 #### DEPENDENCY UPDATES
428
429 * [`2c2c568`](https://github.com/npm/npm/commit/2c2c56857ff801d5fe1b6d3157870cd16e65891b)
430   `readable-stream@2.1.4`: Brought up to date with Node 6.1.0's streams implementation.
431   ([@calvinmetcalf](https://github.com/calvinmetcalf))
432 * [`d682e64`](https://github.com/npm/npm/commit/d682e6445845b0a2584935d5e2942409c43f6916)
433   [npm/npm-user-validate#8](https://github.com/npm/npm-user-validate/pull/8)
434   `npm-user-validate@0.1.4`: Add a maximum length limit for usernames based on
435   the (arbitrary) limit imposed by the primary npm registry.
436   ([@aredridel](https://github.com/aredridel))
437 * [`448b65b`](https://github.com/npm/npm/commit/448b65b48cda3b782b714057fb4b8311cc1fa36a)
438   `which@1.2.10`: Remove unused dependency `is-absolute`, bug fixes.
439   ([@isaacs](https://github.com/isaacs))
440 * [`7d15434`](https://github.com/npm/npm/commit/7d15434f0b0af8e70b119835b21968217224664f)
441   `require-inject@1.4.0`: Add `requireInject.withEmptyCache` and
442   `requireInject.installGlobally.andClearCache` to support loading modules to be
443   injected with an empty cache.
444   ([@iarna](https://github.com/iarna))
445 * [`31845c0`](https://github.com/npm/npm/commit/31845c081bc6f3f8a2f3d83a3c792dccffbaa2a8)
446   `init-package-json@1.9.4`:
447   Replace use of reserved identifier `package` in, uh, the package.
448   ([@adius](https://github.com/adius))
449 * [`d73ef3e`](https://github.com/npm/npm/commit/d73ef3e6b18d4905de668c5115bc6042905a02d9)
450   `glob@7.0.4`: Use userland `fs.realpath` implementation to get glob working under Node 6.
451   ([@isaacs](https://github.com/isaacs))
452 * [`b47da85`](https://github.com/npm/npm/commit/b47da85cf83b946f2c8d29ab612c92028f31f6b0)
453   `inflight@1.0.5`: Correct link to package repository, add `"files"` stanza.
454   ([@iarna](https://github.com/iarna), [@jamestalmage](https://github.com/jamestalmage))
455 * [`04815e4`](https://github.com/npm/npm/commit/04815e436035de785279fd000cdbc821cc1f3447)
456   [npm/npmlog#32](https://github.com/npm/npmlog/pull/32)
457   `npmlog@2.0.4`: Add `"files"` stanza to `package.json`.
458   ([@jamestalmage](https://github.com/jamestalmage))
459 * [`9e29ad2`](https://github.com/npm/npm/commit/9e29ad227300bb970e7bcd21029944d4733e40db)
460   `wrappy@1.0.2`: Add `"files"` stanza to `package.json`.
461   ([@jamestalmage](https://github.com/jamestalmage))
462 * [`44af4d4`](https://github.com/npm/npm/commit/44af4d475ac65bdce6d088173273ce4a4f74a49e)
463   `abbrev@1.0.9` ([@jorrit](https://github.com/jorrit))
464 * [`6c977c0`](https://github.com/npm/npm/commit/6c977c0031d074479a26c7bec6ec83fd6c6526b2)
465   `npm-registry-client@7.1.2`: Add support for newer versions of `npmlog`.
466   ([@iarna](https://github.com/iarna))
467
468 ### v2.15.6 (2016-05-12):
469
470 I have a couple of doc fixes and a shrinkwrap fix for you all this week.
471
472 #### PEER DEPENDENCIES AND SHRINKWRAPS
473
474 * [`55c998a`](https://github.com/npm/npm/commit/55c998a098a306b90a84beef163a8890f9a616b1)
475   [#5135](https://github.com/npm/npm/issues/5135)
476   Fix a bug where peerDependencies & shrinkwraps didn't play nice together. (Where
477   the peerDependency resolver would end up installing its dep when it wasn't needed.)
478   ([@majgis](https://github.com/majgis))
479
480 #### NPM AND `node-gyp` DOCS IMPROVEMENTS
481
482 * [`1826908`](https://github.com/npm/npm/commit/1826908b991510d8fbc71a0d0f2c01ff24fd83c2)
483   [#12636](https://github.com/npm/npm/pull/12636)
484   Improve `npm-scripts` documentation regarding when `node-gyp` is used.
485   ([@reconbot](https://github.com/reconbot))
486 * [`f9ff7f3`](https://github.com/npm/npm/commit/f9ff7f36cc2c2c3fbb4f6eef91491b589d049d5f)
487   [#12586](https://github.com/npm/npm/pull/12586)
488   Correct `package.json` documentation as to when `node-gyp rebuild` called.
489   This now matches https://docs.npmjs.com/misc/scripts#default-values
490   ([@reconbot](https://github.com/reconbot))
491
492 ### v2.15.5 (2016-05-05):
493
494 This is a minor LTS release, bringing dependencies up to date and updating
495 our CI matrix to match what we support.
496
497 Some of the dependency updates come out of our getting the development
498 branch's tests passing on Windows and so bring in fixes for a few Windows
499 related corner cases.
500
501 #### CI UPDATES
502
503 * [`bb6f0e5`](https://github.com/npm/npm/commit/bb6f0e5c95d4ad186768b1c962dd4c399f90ddb1)
504   [#12487](https://github.com/npm/npm/pull/12487)
505   Remove iojs from CI, add Node.js 6, prioritize 4 over 5.
506   ([@othiym23](https://github.com/othiym23))
507
508 #### DEPENDENCY UPDATES
509
510 * [`f2f8753`](https://github.com/npm/npm/commit/f2f8753c4aef2a604a4bdca2677711c940234b8f)
511   `which@1.2.8`:
512   Properly handle relative path executables.
513   ([@isaacs](https://github.com/isaacs))
514 * [`e287ca9`](https://github.com/npm/npm/commit/e287ca99c37680d8e4cfacf4cfebe2da98884865)
515   `read-package-json@2.0.4`:
516   Fix Windows issue with ENOTDIR detection.
517   ([@zkat](https://github.com/zkat))
518 * [`1a0ce6c`](https://github.com/npm/npm/commit/1a0ce6cff4c347bad035dc89bba2ceed9dacbf73)
519   `realize-package-specifier@3.0.3`:
520   Use npa with windows fix.
521   Fix relative path resolution when the local file might also be a tag.
522   ([@zkat](https://github.com/zkat))
523   ([@iarna](https://github.com/iarna))
524 * [`a475c9a`](https://github.com/npm/npm/commit/a475c9a4e4b36d00080b11f379657ce68185adc6)
525   `lru-cache@4.0.1`:
526   Use Symbol if available.
527   ([@isaacs](https://github.com/isaacs))
528 * [`7141e08`](https://github.com/npm/npm/commit/7141e08816c620b1889d7537c30dc5b254de4d1f)
529   `sorted-object@2.0.0`
530   ([@iamstarkov](https://github.com/iamstarkov))
531 * [`27c6190`](https://github.com/npm/npm/commit/27c6190216cc8a5a280f0efbabb3444581968d40)
532   `request@2.72.0`
533   ([@simov](https://github.com/simov))
534 * [`ab90daf`](https://github.com/npm/npm/commit/ab90daf70ba51b51f722fb4cd74ac5267621c4b4)
535   `readable-stream@2.1.2`
536   ([@calvinmetcalf](https://github.com/calvinmetcalf))
537 * [`b1715f8`](https://github.com/npm/npm/commit/b1715f805426403273225bcfa91d1a52d7b56eb8)
538   `graceful-fs@4.1.4`
539   ([@isaacs](https://github.com/isaacs))
540 * [`ca97de6`](https://github.com/npm/npm/commit/ca97de6c18059ef420235f4706898ad8758904e6)
541   `block-stream@0.0.9`
542   ([@isaacs](https://github.com/isaacs))
543
544 ### v2.15.4 (2016-04-21):
545
546 Gosh, it's been a peaceful couple of weeks!
547
548 Overall, the CLI team has been focused on the project to [get the test suite
549 passing on Windows](https://github.com/npm/npm/pull/11444). Our efforts should
550 be paying off soon -- there's only a couple of tests left!
551
552 It's very unlikely those particular changes will make their way into our current
553 `npm@2` LTS release, I think, but it will help `npm@3` a lot, as well as
554 whatever version makes it into [`node@6`, which will eventually be the next
555 Node.js LTS](https://github.com/nodejs/node/pull/6155).
556
557 As far as this week goes, we've got a couple of dep updates and doc fixes.
558 Always happy to see community contributions flying in. 💚
559
560 #### DEP UPDATE MAGIC
561
562 * [`b178c4a`](https://github.com/npm/npm/commit/b178c4ac9ce91c0a0794526a38b553c759132d18)
563   `spdx-license-ids@1.2.1`:
564   Minor project-related tweaks -- no license changes.
565   ([@shinnn](https://github.com/shinnn))
566 * [`1adf179`](https://github.com/npm/npm/commit/1adf179948ab8cb97dfb2f46a61e9f37d944c42a)
567   `normalize-git-url@3.0.2`:
568   Fixes `file://` URLs on Windows. Turns out stuff like `file://C:\hello` is
569   actually fairly weird for a URL (it's not actually a valid URL, but we're just
570   gonna pretend.😉)
571   ([@zkat](https://github.com/zkat))
572 * [`9cfd56c`](https://github.com/npm/npm/commit/9cfd56cdadc040c0b2fa7654cdb5e7d22dbef7cb)
573   `fs-vacuum@1.2.9`:
574   This one goes out to our fans at Big Blue: There was an AIX-specific issue
575   where `fs.rmDir` was failing with `EEXIST` instead of `ENOTEMPTY` with
576   non-empty directories.
577   ([@richardlau](https://github.com/richardlau))
578
579 #### HOORAY DOC CONTRIBUTIONS
580
581 No seriously, we love these. Keep 'em comin'!
582
583 * [`2afe8bf`](https://github.com/npm/npm/commit/2afe8bf415a159baa181a8102f72c96e1d189bc9)
584   [#12415](https://github.com/npm/npm/pull/12415)
585   Clarify that the `--cert` and `--key` options are actual certs and keys, not
586   paths to files containing them.
587   ([@rvedotrc](https://github.com/rvedotrc))
588 * [`3522560`](https://github.com/npm/npm/commit/3522560b0a4bb6c9717a34f9728f156fd9760cad)
589   [#12107](https://github.com/npm/npm/pull/12107)
590   Document `npm login` as an alias to `npm adduser`. People are still surprised
591   by this so often.
592   ([@gnerkus](https://github.com/gnerkus))
593
594 ### v2.15.3 (2016-03-31):
595
596 Hiiiiiii!~👋
597
598 We're really happy to be getting more and more community contributions! Keep it
599 up! We really appreciate folks trying to help us, and we'll do our best to help
600 point you in the right direction. Even things like documentation are a huge
601 help. And remember -- you get socks for it, too!🎁
602
603 This week is as quiet as usual, aside from fixing a regression to `npm
604 deprecate` you might want to pay attention to! Other than that, just docs and
605 deps, as any good LTS release train should be. 🙆
606
607 #### FIXME
608
609 * [`6e0b66e`](https://github.com/npm/npm/commit/6e0b66e282aa27d1b5371e2babaa859924121730)
610   [#11884](https://github.com/npm/npm/pull/11884)
611   Include `node_modules` in the list of files and directories that npm won't
612   include in packages ordinarily. (Modules listed in `bundledDependencies` and
613   things that those modules rely on, ARE included of course.)
614   ([@Jameskmonger](https://github.com/Jameskmonger))
615 * [`9896290`](https://github.com/npm/npm/commit/98962909b160364030705575202ad133971033c1)
616   [#12079](https://github.com/npm/npm/pull/12079)
617   Back in `npm@2.13.1` we included [a patch that made it so `npm install pkg`
618   was basically `npm install pkg@latest` instead of
619   `pkg@*`](https://github.com/npm/npm/pull/9170) This is probably what most
620   users expected, but it also ended up [breaking `npm
621   deprecate`](https://github.com/npm/npm/pull/9170) when no version was provided
622   for a package. In that case, we were using `*` to mean "deprecate all
623   versions" and relying on the `pkg` -> `pkg@*` conversion. This patch fixes
624   `npm deprecate pkg` to work as it used to by special casing that particular
625   command's behavior.
626   ([@polm](https://github.com/polm))
627 * [`6c1628f`](https://github.com/npm/npm/commit/6c1628f62b657db6c116be13849d00933a3388cd)
628   [#12146](https://github.com/npm/npm/pull/12146)
629   Adds `make doc-clean` to `prepublish` script, to clear out previously built
630   docs before publishing a new npm version.
631   ([@watilde](https://github.com/watilde))
632 * [`6d3017e`](https://github.com/npm/npm/commit/6d3017e6eed8a771b395d10130ac1f498e2d3211)
633   [#12146](https://github.com/npm/npm/pull/12146)
634   Adds `doc-clean` phony target to `make publish`.
635   ([@watilde](https://github.com/watilde))
636
637 #### DOCS
638
639 * [`d43921c`](https://github.com/npm/npm/commit/d43921c546617cdb94bbee444d7d67ef55f38dc5)
640   [#12147](https://github.com/npm/npm/pull/12147)
641   Document that the current behavior of `engines` is just to warn if the node
642   platform is incompatible.
643   ([@reconbot](https://github.com/reconbot))
644 * [`3cfe99e`](https://github.com/npm/npm/commit/3cfe99e3a757c5d8cbb1c2789410e9802563abac)
645   [#12093](https://github.com/npm/npm/pull/12093)
646   Update `bugs` url in `package.json` to use the `https` URL for Github.
647   ([@watilde](https://github.com/watilde))
648 * [`ecf865f`](https://github.com/npm/npm/commit/ecf865f4eed1419c75442e0d52bc34ba1647de15)
649   [#12075](https://github.com/npm/npm/pull/12075)
650   Add the `--ignore-scripts` flag to the `npm install` docs.
651   ([@paulirish](https://github.com/paulirish))
652 * [`f0e6db3`](https://github.com/npm/npm/commit/f0e6db32827d88680ef2320e60c0863754a4fbc5)
653   [#12063](https://github.com/npm/npm/pull/12063)
654   Various minor fixes to the html docs homepage.
655   ([@watilde](https://github.com/watilde))
656
657 #### DEPS
658
659 * [`e2660de`](https://github.com/npm/npm/commit/e2660de1c08ed68a1c6fc4ee75d10376595979be)
660   `npmlog@2.0.3`
661   ([@iarna](https://github.com/iarna))
662
663 ### v2.15.2 (2016-03-24):
664
665 It's always nice to see new contributors. 💚
666
667 This week sees another small release, but we're still chugging along on our
668 [Windows efforts](https://github.com/npm/npm/pull/11444).
669
670 There's also some small process changes to our LTS process relatively recently
671 that you might wanna know about! 💁
672
673 For one, the `2.x` branch was removed in favor of just `lts`. If you're making
674 PRs exclusively against npm's LTS, please use that name from now on. `2.x` was
675 deleted.
676
677 Also, [@othiym23](https://github.com/othiym23) put some time into [writing down
678 our LTS process and policy](https://github.com/npm/npm/wiki/LTS). Check it out
679 and ping us if you have questions or comments about it!
680
681 In general, we're trying to make sure all our policy and such for our
682 contributors is written down, and we hope it makes it easier in general for
683 y'all. Forrest is also working on a shiny new Contributor's Guide right now, but
684 we'll link to that in the (near?) future, when it's ready to roll out.
685
686 #### TESTS
687
688 * [`1d0e468`](https://github.com/npm/npm/commit/1d0e468c06c7b8e2b95b7fe874a3399a16d9db74)
689   [#11931](https://github.com/npm/npm/pull/11931)
690   Removes a bunch of old, disabled tests that have just been sitting around,
691   doing nothing.
692   ([@othiym23](https://github.com/othiym23))
693 * [`7ae8aa1`](https://github.com/npm/npm/commit/7ae8aa1d9dc47761024f6756114205db3fb2c80b)
694   [#11987](https://github.com/npm/npm/pull/11987)
695   There was a failure in the `outdated-symlink` test caused by using the default
696   registry instead of the mock registry tests.
697   ([@yodeyer](https://github.com/yodeyer))
698
699 #### DOCS
700
701 * [`b2649fb`](https://github.com/npm/npm/commit/b2649fb360f239aadef1ab51a580cbf4fdf29722)
702   [#12006](https://github.com/npm/npm/pull/12006)
703   Access was Team and Team was Access, but someone from the community rolled
704   around and corrected it for us. Thanks a bunch!
705   ([@yaelz](https://github.com/yaelz))
706
707 ### v2.15.1 (2016-03-17):
708
709 #### SECURITY ADVISORY: BEARER TOKEN DISCLOSURE
710
711 This release includes [the fix for a
712 vulnerability](https://github.com/npm/npm/commit/fea8cc92cee02c720b58f95f14d315507ccad401)
713 that could cause the unintentional leakage of bearer tokens.
714
715 Here are details on this vulnerability and how it affects you.
716
717 ##### DETAILS
718
719 Since 2014, npm’s registry has used HTTP bearer tokens to authenticate requests
720 from the npm’s command-line interface. A design flaw meant that the CLI was
721 sending these bearer tokens with _every_ request made by logged-in users,
722 regardless of the destination of their request. (The bearers only should have
723 been included for requests made against a registry or registries used for the
724 current install.)
725
726 An attacker could exploit this flaw by setting up an HTTP server that could
727 collect authentication information, then use this authentication information to
728 impersonate the users whose tokens they collected. This impersonation would
729 allow them to do anything the compromised users could do, including publishing
730 new versions of packages.
731
732 With the fixes we’ve released, the CLI will only send bearer tokens with
733 requests made against a registry.
734
735 ##### THINK YOU'RE AT RISK? REGENERATE YOUR TOKENS
736
737 If you believe that your bearer token may have been leaked, [invalidate your
738 current npm bearer tokens](https://www.npmjs.com/settings/tokens) and rerun
739 `npm login` to generate new tokens. Keep in mind that this may cause continuous
740 integration builds in services like Travis to break, in which case you’ll need
741 to update the tokens in your CI server’s configuration.
742
743 ##### WILL THIS BREAK MY CURRENT SETUP?
744
745 Maybe.
746
747 npm’s CLI team believes that the fix won’t break any existing registry setups.
748 Due to the large number of registry software suites out in the wild, though,
749 it’s possible our change will be breaking in some cases.
750
751 If so, please [file an issue](https://github.com/npm/npm/issues/new) describing
752 the software you’re using and how it broke. Our team will work with you to
753 mitigate the breakage.
754
755 ##### CREDIT & THANKS
756
757 Thanks to Mitar, Will White & the team at Mapbox, Max Motovilov, and James
758 Taylor for reporting this vulnerability to npm.
759
760 ### BACK TO YOUR REGULARLY SCHEDULED PROGRAMMING
761
762 Aside from that, it's another one of those releases again! Docs and tests, it
763 turns out, have a pretty easy time getting into LTS releases, and boring is
764 exactly how LTS should be. 💁
765
766 #### DOCS
767
768 * [`981c89c`](https://github.com/npm/npm/commit/981c89c8e398ca22ab6bf466123b25728ef6f543)
769   [#11820](https://github.com/npm/npm/pull/11820)
770   The basic explanation for how `npm link` works was a bit confusing, and
771   somewhat incorrect. It should be clearer now.
772   ([@rhgb](https://github.com/rhgb))
773 * [`35b2b45`](https://github.com/npm/npm/commit/35b2b45f181dcbfb297f53b577dc1f26efcf3aba)
774   [#11787](https://github.com/npm/npm/pull/11787)
775   The `verison` alias for `npm version` no longer shows up in the command list
776   when you do `npm -h`.
777   ([@doug-wade](https://github.com/doug-wade))
778 * [`1c9d00f`](https://github.com/npm/npm/commit/1c9d00f788298a81a8a7293d7dcf430f01bdd7fd)
779   [#11786](https://github.com/npm/npm/pull/11786)
780   Add a comment to the `npm-scope.md` docs about `npm@>=2` being required in
781   order to use scoped packaged.
782   ([@doug-wade](https://github.com/doug-wade))
783 * [`7d64fb1`](https://github.com/npm/npm/commit/7d64fb1452d360aa736f31c85d6776ce570b2365)
784   [#11762](https://github.com/npm/npm/pull/11762)
785   Roll back patch that previously advised people to use `--depth Infinity`
786   instead of `--depth 9999`. Just keep using `--depth 9999`.
787   ([@GriffinSchneider](https://github.com/GriffinSchneider))
788
789 #### TESTS
790
791 * [`98a9ee4`](https://github.com/npm/npm/commit/98a9ee4773f83994b8eb63c0ff75a9283408ba1a)
792   [#11912](https://github.com/npm/npm/pull/11912)
793   Did you know npm can install itself? `npm install -g npm` is the way to
794   upgrade! Turns out that one of the tests that verified this functionality got
795   rewritten as part of our recent push for better tests, and in the process
796   omitted a detail about *how* the test ran. We're testing that corner case
797   again, now, by moving the install folder to `/tmp`, where the original legacy
798   test ran.
799   ([@iarna](https://github.com/iarna))
800
801 ### v2.15.0 (2016-03-10):
802
803 #### WHY IS THIS SEMVER-MINOR I THOUGHT THIS WAS LTS
804
805 A brief note about LTS this week!
806
807 npm, as you may know if you're using this `2.x` branch, has an LTS process for
808 releases. We also try and play nice with [Node.js' own LTS release
809 process](https://github.com/nodejs/LTS#lts-plan). That means we generally try to
810 avoid things like minor version bumps on our `2.x` branch (which is also tagged
811 `lts` in the `dist-tag`s).
812
813 That said, we had a minor-bump update recently for `npm@3.8.0` which added a
814 `maxsockets` option to allow users to configure the number of concurrent sockets
815 that npm would keep open at a time -- a setting that has the potential to help a
816 bunch for people with fussy routers or internet connections that aren't very
817 happy with Node.js applications' usual concurrency storm. This change was done
818 to `npm-registry-client`, which we don't have a parallel LTS-tracking branch
819 for.
820
821 After talking it over, we ended up deciding that this was a reasonable enough
822 addition to LTS, even though it's *technically* a `semver-minor` bump, taking
823 into account both its potential for bugfixing (specially on `2.x`!) and the
824 general hassle it would be to maintain another branch for `npm-registry-client`.
825
826
827 * [`6dd61e7`](https://github.com/npm/npm/commit/6dd61e781c145480dc255a3e6a748729868443fd)
828   Expose `maxsockets` config setting from new `npm-registry-client`.
829   ([@misterbyrne](https://github.com/misterbyrne))
830 * [`8a021c3`](https://github.com/npm/npm/commit/8a021c35184e665bd1f3f70ae2f478af812ab614)
831   `npm-registry-client@7.1.0`:
832   Adds support for configuring the max number of concurrent sockets, defaulting
833   to `50`.
834   ([@iarna](https://github.com/iarna))
835
836 #### DOC PATCH IS HERE TOO
837
838 * [`0ae9f74`](https://github.com/npm/npm/commit/0ae9f740001a1bdf5920bc464cf9e284d5d139f0)
839   [#11748](https://github.com/npm/npm/pull/11748)
840   Add command aliases as a separate section in documentation for npm
841   subcommands.
842   ([@watilde](https://github.com/watilde))
843
844 #### DEP UPDATES
845
846 * [`bfc3888`](https://github.com/npm/npm/commit/bfc38887f832f701c16b7ee410c4e0220a90399f)
847   `strip-ansi@3.0.1`
848   ([@jbnicolai](https://github.com/jbnicolai))
849 * [`d5f4d51`](https://github.com/npm/npm/commit/d5f4d51a1b7ea78d7431c7ed4fed30200b2622f8)
850   `node-gyp@3.3.1`: Fixes Android generator
851   ([@bnoordhuis](https://github.com/bnoordhuis))
852 * [`4119df8`](https://github.com/npm/npm/commit/4119df8aecd2ae57b0492ad8c9a480d900833008)
853   `glob@7.0.3`: Some path-related fixes for Windows.
854   ([@isaacs](https://github.com/isaacs))
855
856 ### v2.14.22 (2016-03-03):
857
858 This week is all documentation improvements. In case you hadn't noticed, we
859 *love* doc patches. We love them so much, we give socks away if you submit
860 documentation PRs!
861
862 These folks are all getting socks if they ask for them. The socks are
863 super-sweet. Do you have yours yet? 👣
864
865 * [`3f3c7d0`](https://github.com/npm/npm/commit/3f3c7d080f052a5db91ff6091f8b1b13f26b53d6)
866   [#11441](https://github.com/npm/npm/pull/11441)
867   Add a link to the [Contribution
868   Guidelines](https://github.com/npm/npm/wiki/Contributing-Guidelines) to the
869   main npm docs.
870   ([@watilde](https://github.com/watilde))
871 * [`9f87bb1`](https://github.com/npm/npm/commit/9f87bb1934acb33b678c17b7827165b17c071a82)
872   [#11441](https://github.com/npm/npm/pull/11441)
873   Remove Google Group email from npm docs about contributing.
874   ([@watilde](https://github.com/watilde))
875 * [`93eaab3`](https://github.com/npm/npm/commit/93eaab3ee5ad16c7d90d1a4b38a95403fcf3f0f6)
876   [#11474](https://github.com/npm/npm/pull/11474)
877   Fix an invalid JSON error overlooked in
878   [#11196](https://github.com/npm/npm/pull/11196).
879   ([@robludwig](https://github.com/robludwig))
880 * [`a407ca2`](https://github.com/npm/npm/commit/a407ca2bcf6a05117e55cf2ab69376e09094995e)
881   [#11483](https://github.com/npm/npm/pull/11483)
882   Add more details and an example to the documentation for bundledDependencies.
883   ([@gnerkus](https://github.com/gnerkus))
884 * [`2c851a2`](https://github.com/npm/npm/commit/2c851a231afd874baa77c42ea5ba539c454ac79c)
885   [#11490](https://github.com/npm/npm/pull/11490)
886   Document the `--registry` flag for `npm search`.
887   ([@plumlee](https://github.com/plumlee))
888
889 ### v2.14.21 (2016-02-25):
890
891 Good news, everyone! There's a new LTS release with a few shinies here and there!
892
893 #### USE THIS ONE INSTEAD
894
895 We had some cases where the versions of npm and node used in some scripting situations were different than the ideal, or what folks actually expected. These should be particularly helpful to our Windows friends! <3
896
897 * [`02813c5`](https://github.com/npm/npm/commit/02813c55782a9def23f7f1e614edc38c6c88aed3) [#9253](https://github.com/npm/npm/issues/9253) Fix a bug where, when running lifecycle scripts, if the Node.js binary you ran `npm` with wasn't in your `PATH`, `npm` wouldn't use it to run your scripts. ([@segrey](https://github.com/segrey) and [@narqo](https://github.com/narqo))
898 * [`a985dd5`](https://github.com/npm/npm/commit/a985dd50e06ee51ba5544577f977c7440c227ba2) [#11526](https://github.com/npm/npm/pull/11526) Prefer locally installed npm in Git Bash -- previous behavior was to use the global one. This was done previously for other shells, but not for Git Bash. ([@destroyerofbuilds](https://github.com/destroyerofbuilds))
899
900 #### SOCKS FOR THE SOCK GOD
901
902 * [`f961092`](https://github.com/npm/npm/commit/f9610920079d8b88ae464b30007a92c594bd85a8)
903   [#11636.](https://github.com/npm/npm/issues/11636.)
904   Document the `--save-bundle` option for `npm install`.
905   ([@datyayu](https://github.com/datyayu))
906 * [`7c908b6`](https://github.com/npm/npm/commit/7c908b618f7123f0a3b860c71eb779e33df35964)
907   [#11644](https://github.com/npm/npm/pull/11644)
908   Add documentation for the `test` directory for packages.
909   ([@lewiscowper](https://github.com/lewiscowper))
910
911 #### INTERNAL TEST IMPROVEMENTS
912
913 The npm CLI team's time recently has been sunk into npm's many years of tech debt. Specifically, we've been working on improving the test suite. This isn't user visible, but in future should mean a more stable, easier to contribute to npm. Ordinarily we don't report these kinds of changes in the change log, but I thought I might share this week as this chunk is bigger than usual.
914
915 These patches were previously released for `npm@3`, and then ported back to `npm@2` LTS.
916
917 * [`437c537`](https://github.com/npm/npm/commit/437c537e2be5923c6d2c2753154564ba13db8fd9) [#11613](https://github.com/npm/npm/pull/11613) Fix up one of the tests after rebasing the legacy test rewrite to `npm@2`. ([@zkat](https://github.com/zkat))
918 * [`55abd0c`](https://github.com/npm/npm/commit/55abd0cc20e87a144d33ce2d459f65e7506da576) [#11613](https://github.com/npm/npm/pull/11613) Test that the `package.json` `files` section and `.npmignore` do what they're supposed to. ([@zkat](https://github.com/zkat))
919 * [`a2b99b6`](https://github.com/npm/npm/commit/a2b99b6273ada14b2121ebc0acb7933e630edd9d) [#11613](https://github.com/npm/npm/pull/11613) Test that npm's distribution binary is complete and can be installed and used. ([@iarna](https://github.com/iarna))
920 * [`8a8c36c`](https://github.com/npm/npm/commit/8a8c36ce51166006022e5c5d4f8655bbc458d651) [#11613](https://github.com/npm/npm/pull/11613) Test that environment variables are properly passed into scripts.
921   ([@iarna](https://github.com/zkat))
922 * [`a95b550`](https://github.com/npm/npm/commit/a95b5507616bd51e83d7eab5f2337b1aff6480b1) [#11613](https://github.com/npm/npm/pull/11613) Test that we don't leak auth info into the environment. ([@iarna](https://github.com/iarna))
923 * [`a1c1c52`](https://github.com/npm/npm/commit/a1c1c52efeab24f6dba154d054f85d9efc833486) [#11613](https://github.com/npm/npm/pull/11613) Remove all the relatively cryptic legacy tests and creates new tap tests that check the same functionality. The *legacy* tests were tests that were originally a shell script that was ported to javascript early in `npm`'s history. ([@iarna](https:\\github.com/iarna) and [@zkat](https://github.com/zkat))
924 * [`9d89581`](https://github.com/npm/npm/commit/9d895811d3ee70c2e672f3d8fa06574495b5b488) [#11613](https://github.com/npm/npm/pull/11613) `tacks@1.0.9`: Add a package that provides a tool to generate fixtures from folders and, relatedly, a module that an create and tear down filesystem fixtures easily. ([@iarna](https://github.com/iarna))
925
926 ### v2.14.20 (2016-02-18):
927
928 Hope y'all are having a nice week! As usual, it's a fairly limited release. The
929 most notable thing is some dependency updates that might help the Node.js CI
930 setup for Windows run a little better, even if we have some work to do on that
931 path length things, still.
932
933 #### WHITTLING AWAY AT PATH LENGTHS
934
935 So for all of you who don't know -- Node.js does, in fact, support long Windows
936 paths. Unfortunately, depending on the tool and the Windows version, a lot of
937 external tooling does not. This means, for example, that some (all?) versions of
938 Windows Explorer *can literally never delete npm from their system entirely
939 because of deeply-nested npm dependencies*. Which is pretty gnarly.
940
941 Incidentally, if you run into that in particularly, you can use
942 [rimraf](npm.im/rimraf) to remove such files 💁.
943
944 The latest victim of this issue was the Node.js CI setup for testing on Windows,
945 which uses some tooling or another that croaks on the usual path length limit
946 for that OS: 255 characters.
947
948 This issue, of course, is largely not a problem as of `npm@3`, with its flat
949 trees, but it still occasionally and viciously bites LTS.
950
951 We've taken another baby step towards alleviating this in this release by
952 updating a couple of dependencies that were preventing `npmlog` from deduping,
953 and then doing a dedupe on that and `gauge`. Hopefully it helps.
954
955 * [`4199551`](https://github.com/npm/npm/commit/41995517e617674710748ab6d262670c96124393)
956   [#11528](https://github.com/npm/npm/pull/11528)
957   `npm-install-checks@1.0.7`: Just updates the version of npmlog so we can
958   dedupe it better.
959   ([@zkat](https://github.com/zkat))
960 * [`14d72c7`](https://github.com/npm/npm/commit/14d72c756b89e2d167eb52c1849263dbddcb9f35)
961   [#11552](https://github.com/npm/npm/pull/11552)
962   [#11528](https://github.com/npm/npm/pull/11528)
963   `node-gyp@3.3.0`: AIX support, new `gyp`, update `npmlog` (for the dedupe),
964   adds `--cafile` command line option, and allows configuration of Node.js and
965   io.js mirrors.
966   ([@rvagg](https://github.com/rvagg))
967 * [`0453cb9`](https://github.com/npm/npm/commit/0453cb94b33520eb723b7072cd2654b1d0142533)
968   [#11528](https://github.com/npm/npm/pull/11528)
969   Do a `dedupe` on `gauge` to flatten our dependencies a bit more.
970   ([@zkat](https://github.com/zkat))
971
972 #### OTHER DEP STUFF
973
974 * [`686c0b3`](https://github.com/npm/npm/commit/686c0b37ec3a7b65f9b3849e1099805e5221c408)
975   `rimraf@2.5.2`: Just updates to glob@7.
976   ([@isaacs](https://github.com/isaacs))
977
978 #### @wyze, DOCUMENTATION HERO OF THE PEOPLE, GETS THEIR OWN HEADER
979
980 * [`7232948`](https://github.com/npm/npm/commit/72329484c775376cb40d5b348f453eaaf2f0b821)
981   [#11416](https://github.com/npm/npm/pull/11416)
982   Logout docs were using a section copy-pasted from the adduser docs.
983   ([@wyze](https://github.com/wyze))
984 * [`922b33a`](https://github.com/npm/npm/commit/922b33aba4362e1e90f42e9348f061a1cc73eafb)
985   [#11414](https://github.com/npm/npm/pull/11414)
986   Add colon for consistency.
987   ([@wyze](https://github.com/wyze))
988
989 ### v2.14.19 (2016-02-11):
990
991 Really tiny micro-release this week! The main thing to note is a dependency
992 update that means we no longer have `graceful-fs@3` in our dependency tree. This
993 has some implications for being able to run on future Node.js releases, so
994 better to get this out the door. 😁
995
996 #### DEPS
997
998 * [`a556e0f`](https://github.com/npm/npm/commit/a556e0f9dcb5d7b44224ba9c16c9d0dc6c8d2532)
999   `cmd-shim@2.0.2`: Final straggler using `graceful-fs@<4`.
1000   ([@ForbesLindesay](https://github.com/ForbesLindesay))
1001
1002 #### DOCS
1003
1004 * [`69a2d59`](https://github.com/npm/npm/commit/69a2d599bf0cba674ee268483e9bd5c14333b89f)
1005   [#11391](https://github.com/npm/npm/pull/11391)
1006   Fixed versions of `shrinkwrap.json` in examples in documentation for `npm
1007   shrinkwrap`, which did not quite match up.
1008   ([@xcatliu](https://github.com/xcatliu))
1009
1010 ### v2.14.18 (2016-02-04):
1011
1012 Clearly our docs are perfect after all those wonderful PRs, 'cause this week's
1013 gonna be all about dependency updates. Note: There is a small security-related
1014 fix included here!
1015
1016 #### SECURITY-RELATED DEPENDENCY UPDATE
1017
1018 * [`5c095ef`](https://github.com/npm/npm/commit/5c095eff8dc006980d4d083f2007e4dacff23be3)
1019   [#11341](https://github.com/npm/npm/pull/11341)
1020   `request@2.69.0`: Includes security-related dependency updates involving
1021   `hawk` and `is-my-json-valid`
1022   ([@remy](https://github.com/remy) and [@simov](https://github.com/simov))
1023
1024 #### OTHER DEPENDENCY UPDATES
1025
1026 * [`f9c2668`](https://github.com/npm/npm/commit/f9c2668ca3e6e2602d91250ce61280e5e12d0a00)
1027   `which@1.2.4`
1028   ([@isaacs](https://github.com/isaacs))
1029 * [`2907c43`](https://github.com/npm/npm/commit/2907c43ad4ef87e5f730c2576f680d6837fcbad0)
1030   `spdx-license-ids@1.2.0`
1031   ([@shinnn](https://github.com/shinnn))
1032 * [`7734069`](https://github.com/npm/npm/commit/773406960bf7f4a87b2ecb6ebf593c62d0e9f95d)
1033   `rimraf@2.5.1`
1034   ([@isaacs](https://github.com/isaacs))
1035 * [`f4b39a7`](https://github.com/npm/npm/commit/f4b39a7dd5e1335d92aa22c46d99abb33f271b8b)
1036   `retry@0.9.0`
1037   ([@tim-kos](https://github.com/tim-kos))
1038 * [`ded1e7a`](https://github.com/npm/npm/commit/ded1e7a1c9c7bec29bb7c30a8f85546670e75b56)
1039   Nest `retry@0.8.0` inside `npm-registry-client` to prevent invalid
1040   dependency issue until the latter gets a dependency update.
1041   ([@zkat](https://github.com/zkat))
1042 * [`ab9f867`](https://github.com/npm/npm/commit/ab9f8679f9687f91ad03adaab6211a897aeebbae)
1043   `read-package-json@2.0.3`
1044   ([@iarna](https://github.com/iarna))
1045 * [`b638c41`](https://github.com/npm/npm/commit/b638c41607bb936b9eaaceba2aeeda1d34e3a9b2)
1046   `npmlog@2.0.2`
1047   ([@iarna](https://github.com/iarna))
1048 * [`49f34af`](https://github.com/npm/npm/commit/49f34af463a674359269025d8438feb6a7c69960)
1049   `init-package-json@1.9.3`
1050   ([@iarna](https://github.com/iarna))
1051 * [`2305dab`](https://github.com/npm/npm/commit/2305dab4e7bff09bb7686cec653cf1e663dbf15d)
1052   `graceful-fs@4.1.3`: Fixed `.close()` not being patched.
1053   ([@isaacs](https://github.com/isaacs))
1054 * [`18496d9`](https://github.com/npm/npm/commit/18496d9a0fff94e3652655998e8333056aa52b15)
1055   `fs-write-stream-atomic@1.0.8`
1056   ([@iarna](https://github.com/iarna))
1057 * [`6637bc7`](https://github.com/npm/npm/commit/6637bc7a0e194d82554cd7c91e1794018fef5943)
1058   `config-chain@1.1.10`
1059   ([@dominictarr](https://github.com/dominictarr))
1060 * [`4222bad`](https://github.com/npm/npm/commit/4222badffed9e9edacea6a8a96a99a164d376158)
1061   `columnify@1.5.4`
1062   ([@timoxley](https://github.com/timoxley))
1063 * [`df9016f`](https://github.com/npm/npm/commit/df9016f327a2a9ce492ebc75b882b03069438e13)
1064   `ansi@0.3.1`: Added a license file.
1065   ([@TooTallNate](https://github.com/TooTallNate))
1066
1067 ### v2.14.17 (2016-01-28):
1068
1069 Another week, another small LTS release!
1070
1071 #### BETTER ERROR REPORTING YAY
1072
1073 So as it turns out, when stuff goes wrong, it's actually nice to give people a
1074 better clue rather than just say "oh well 😏".
1075
1076 * [`5b8ccb9`](https://github.com/npm/npm/commit/5b8ccb91cf11b4edb463609cd4ed1dee84ed4db0)
1077   [#11289](https://github.com/npm/npm/pull/11289)
1078   There is an obscure feature that lets you monkey-patch npm when it starts up.
1079   If the module being required with this feature failed, it would previous just
1080   make npm error out– this reduces that to a warning.
1081   ([@evanlucas](https://github.com/evanlucas))
1082 * [`556e42a`](https://github.com/npm/npm/commit/556e42ac6bab078722ddc1dc6cce4428d001133b)
1083   [#11300](https://github.com/npm/npm/pull/11300)
1084   Report symlinked packages as 'linked' in the output for `npm outdated`.
1085   ([@halhenke](https://github.com/halhenke))
1086 * [`3842317`](https://github.com/npm/npm/commit/3842317583e0ea2eca78e39aa03f5bc06ba21de7)
1087   [#11290](https://github.com/npm/npm/pull/11290)
1088   Suppress warnings about pre-release node versions. This should get node's CI
1089   passing on non-Windows platforms without needing to modify the node version to
1090   get rid of the pre-release suffix.
1091   ([@iarna](https://github.com/iarna))
1092
1093 #### EVERYONE WANTS THOSE NPM SOCKS, GEEZE
1094
1095 Did you know that you can get npm socks for contributing to our docs? I bet
1096 these people do, and now so do you!
1097
1098 * [`dcde451`](https://github.com/npm/npm/commit/dcde451cb85a6ca08acc6ef45782c652f1d8fc89)
1099   [#11232](https://github.com/npm/npm/pull/11232)
1100   Update automatically included/excluded packages in `package.json`.
1101   ([@jscissr](https://github.com/jscissr))
1102 * [`e3f8d5b`](https://github.com/npm/npm/commit/e3f8d5be5ac5ec1d72db42f7abf50cc4a8c5935c)
1103   [#11273](https://github.com/npm/npm/pull/11273)
1104   Add an example for `npm view <pkg> versions`.
1105   ([@vedatmahir](https://github.com/vedatmahir))
1106 * [`6a06ef2`](https://github.com/npm/npm/commit/6a06ef2252748089f0013de951f2d06160b90306)
1107   [#11272](https://github.com/npm/npm/pull/11272)
1108   Fix a typo in `npm-update.md`.
1109   ([@jonathanp](https://github.com/jonathanp))
1110 * [`2515ff1`](https://github.com/npm/npm/commit/2515ff1de28f0b261fb25c79a66bd762a65961c4)
1111   [#11215](https://github.com/npm/npm/pull/11215)
1112   Correct small thinko in docs for SPDX expressions.
1113   ([@kemitchell](https://github.com/kemitchell))
1114 * [`70f897b`](https://github.com/npm/npm/commit/70f897b03da9a5d5d4fd34614e9ee40e6f9e9653)
1115   [#11196](https://github.com/npm/npm/pull/11196)
1116   Make JSON snippets valid JSON in `npm update` docs.
1117   ([@s100](https://github.com/s100))
1118
1119 ### v2.14.16 (2016-01-21):
1120
1121 Good to see you all again! It's been a while since we had an LTS release, and
1122 the team continues to work hard to both get the issue tracker under control, and
1123 get our test suite to be awesome and reliable.
1124
1125 This is also the first LTS release of this year.
1126
1127 We're gonna have an interesting time -- most of our focus this year will be
1128 around stability and maintainability of the CLI, so you might actually end up
1129 seeing a number of updates even over here, just for the sake of making sure
1130 we're stable, that bugs get fixed, and tests have proper coverage.
1131
1132 What better way to start this effort, then, than getting Travis tests green, fix
1133 a few things here and there, and tweak a bunch of documentation? 😁
1134
1135 #### FIX ALL THE BUGS AND TWEAK ALL THE THINGS
1136
1137 * [`24b13fb`](https://github.com/npm/npm/commit/24b13fbc57d34db1d5b0a37bcca122c00deba978)
1138   [#11158](https://github.com/npm/npm/pull/11158)
1139   Fix custom node-gyp env var quoting on Windows.
1140   ([@orangemocha](https://github.com/orangemocha))
1141 * [`e2503f2`](https://github.com/npm/npm/commit/e2503f2be40157b05a9c500ec3b5d16090ffee50)
1142   [#11142](https://github.com/npm/npm/pull/11142)
1143   Fix race condition with `correctMkdir` in the cache directory.
1144   ([@Jimbly](https://github.com/Jimbly))
1145
1146 * [`5c0e4c4`](https://github.com/npm/npm/commit/5c0e4c45a29d774ab729e86044377d4e5e424252)
1147   [#10940](https://github.com/npm/npm/pull/10940)
1148   Ignore failures replacing `package.json`. writeFileAtomic is not atomic in
1149   Windows, it fails if the file is being accessed concurrently.
1150   ([@orangemocha](https://github.com/orangemocha))
1151 * [`2c44d8d`](https://github.com/npm/npm/commit/2c44d8dc8c267d5e054d0175ce2f4750f0986463)
1152   [#10903](https://github.com/npm/npm/pull/10903)
1153   Add tests for `npm adduser --scope`.
1154   ([@ekmartin](https://github.com/ekmartin))
1155 * [`4cb25d0`](https://github.com/npm/npm/commit/4cb25d0fed5c7792dfd1aec891380ecc1f8a5761)
1156   [#10903](https://github.com/npm/npm/pull/10903)
1157   Add a message informing users when they have been successfully logged in.
1158   ([@ekmartin](https://github.com/ekmartin))
1159 * [`fe3ec6d`](https://github.com/npm/npm/commit/fe3ec6d6658262054c0c19c55373c21e84ab9f17)
1160   [#10628](https://github.com/npm/npm/pull/10628)
1161   Tell users how to open an issue with a package that has errored.
1162   ([@trodrigues](https://github.com/trodrigues))
1163
1164 #### DOCS DOCS DOCS
1165
1166 We got a TON of lovely documentation patches, too! Thanks all for submitting!
1167
1168 * [`22482a1`](https://github.com/npm/npm/commit/22482a1f22079d72c3f8ca55c2f0c153bdd024c0)
1169   [#11188](https://github.com/npm/npm/pull/11188)
1170   Briefly explain what's included when you publish.
1171   ([@beaugunderson](https://github.com/beaugunderson))
1172 * [`fa47724`](https://github.com/npm/npm/commit/fa4772438df0c66a19309dd1c1a3ce43cbee5461)
1173   [#11150](https://github.com/npm/npm/pull/11150)
1174   Advise use of `--depth Infinity` instead of `--depth 9999` in `npm update`.
1175   ([@halhenke](https://github.com/halhenke))
1176 * [`248ddfe`](https://github.com/npm/npm/commit/248ddfe8f7ddd3318e14bf61de41cab4a638c8a3)
1177   [#11130](https://github.com/npm/npm/pull/11130)
1178   Nuke "using npm programmatically" section from README. The programmatic npm
1179   API is unsupported, and is not guaranteed not to break in non-major versions.
1180   Removing this section so newcomers aren't encouraged to discover or use it.
1181   ([@ljharb](https://github.com/ljharb))
1182 * [`ae9c452`](https://github.com/npm/npm/commit/ae9c4521222d60ab4a69c19fee5e361c62f41fae)
1183   [#11128](https://github.com/npm/npm/pull/11128)
1184   Add link to local paths section indocs for `package.json`.
1185   ([@orangejulius](https://github.com/orangejulius))
1186 * [`663a8c6`](https://github.com/npm/npm/commit/663a8c6b4b1647f9b86c15ef32e30023edc8c060)
1187   [#11044](https://github.com/npm/npm/pull/11044)
1188   Update default value documentation for the color option in npm's config.
1189   ([@scottaddie](https://github.com/scottaddie))
1190 * [`5c1dda0`](https://github.com/npm/npm/commit/5c1dda0d3a18b2954872dba33fbc696ff0700ffe)
1191   [#11037](https://github.com/npm/npm/pull/11037)
1192   Correct the name property max length constraint verbiage.
1193   ([@scottaddie](https://github.com/scottaddie))
1194 * [`8288365`](https://github.com/npm/npm/commit/8288365d08e97fa3a5b0d31703c015a8be49e07f)
1195   [#10990](https://github.com/npm/npm/pull/10990)
1196   Update folder docs to reflect that process.installPrefix was removed as of
1197   0.8.x.
1198   ([@jeffmcmahan](https://github.com/jeffmcmahan))
1199 * [`61d63fa`](https://github.com/npm/npm/commit/61d63fa22c4f09742180c2de460a4ffb6c32738e)
1200   [#10790](https://github.com/npm/npm/pull/10790)
1201   Clarify that `npm install foo` is the same as `npm install foo@latest` now.
1202   ([@cvrebert](https://github.com/cvrebert))
1203 * [`442c920`](https://github.com/npm/npm/commit/442c9207f375354c91d36df8711ba2d33e1c97f3)
1204   [#10789](https://github.com/npm/npm/pull/10789)
1205   Link over to `npm-dist-tag(1)` in `npm install` docs when they talk about the
1206   `pkg@<tag>` syntax.
1207   ([@cvrebert](https://github.com/cvrebert))
1208 * [`dca7a5e`](https://github.com/npm/npm/commit/dca7a5e2be3bfa306a870a123707d35c732406c0)
1209   [#10788](https://github.com/npm/npm/pull/10788)
1210   Link to tag docs in docs for `npm publish --tag`.
1211   ([@cvrebert](https://github.com/cvrebert))
1212 * [`a72904e`](https://github.com/npm/npm/commit/a72904e8d4ab1d43ae8150fbe3f6468b0cbb1efd)
1213   [#10787](https://github.com/npm/npm/pull/10787)
1214   Explain why the `latest` tag matters.
1215   ([@cvrebert](https://github.com/cvrebert))
1216 * [`9d0697a`](https://github.com/npm/npm/commit/9d0697a534046df7efda32170014041bbc1f4e7d)
1217   [#10785](https://github.com/npm/npm/pull/10785)
1218   Replace some quite marks in `npm dist-tag` docs for the sake of consistency.
1219   ([@cvrebert](https://github.com/cvrebert))
1220
1221 #### I REALLY LIKE GREEN. CAN YOU TELL?
1222
1223 So Travis is all green now on `npm@2`, thanks to the removal of nock and a few
1224 other test suite tweaks. This is a fantastic step towards making sure we can all
1225 have confidence in our test suite! 🎉
1226
1227 * [`64995be`](https://github.com/npm/npm/commit/64995be6d874356b15c136f9867302d805dfe1e9) [`75ab216`](https://github.com/npm/npm/commit/75ab2164cf79e28ac7f7ebe714f3c5aee99c6626) [`a9f6fe9`](https://github.com/npm/npm/commit/a9f6fe9dc558f17c4a7b9eb83329ac080f7df4b7) [`649c193`](https://github.com/npm/npm/commit/649c193adadf714c2819837f9372a29d724a5ec0) [`94cb05e`](https://github.com/npm/npm/commit/94cb05eaa9e5ad6675cf15c4ac0a44fbdde05900) [`6541690`](https://github.com/npm/npm/commit/65416907008061ac5a5f66b1630a57776803b526) [`255be6f`](https://github.com/npm/npm/commit/255be6f5bca9e3d216f3a5cbdf6714c6c9fcf132) [`9e84fa4`](https://github.com/npm/npm/commit/9e84fa43c49d04cf86ca1678e2a61412f5559cb9) [`8a587b0`](https://github.com/npm/npm/commit/8a587b0c1696ae7302891fa6355fc3e8670e00d3) [`bf812a5`](https://github.com/npm/npm/commit/bf812a54e497a573493346399798aa0b9373ac24)
1228   [#10903](https://github.com/npm/npm/pull/10903)
1229   Get rid of nock from tests, and get Travis green.
1230   ([@zkat](https://github.com/zkat) and [@iarna](https://github.com/iarna))
1231 * [`70a5310`](https://github.com/npm/npm/commit/70a5310712c6666e753ca8f3bfff4a780ec6292d)
1232   `npm-registry-couchapp@2.6.12`:
1233   Better 0.8 compatibility, and ability to run in travis docker stuff. This
1234   means the test suite should run a lot faster, too!
1235   ([@iarna](https://github.com/iarna))
1236 * [`28fae39`](https://github.com/npm/npm/commit/28fae399212eda5554e6c0ffd8c9591144ab7b9d)
1237   Get rid of sudo, for Travis!
1238   ([@zkat](https://github.com/zkat))
1239
1240 ### v2.14.15 (2015-12-10):
1241
1242 Did you know that Bob Ross reached the rank of master sergeant in the US Air
1243 Force before becoming perhaps the most soothing painter of all time?
1244
1245 #### TWO HAPPY LITTLE BUG FIXES
1246
1247 * [`f482664`](https://github.com/npm/npm/commit/f4826645dc6b5c0f05c5f9187efb28c1a293554f)
1248   [#10505](https://github.com/npm/npm/issues/10505) `npm ls --json --depth=0`
1249   now respects the depth parameter, when it is zero and when it is not zero.
1250   ([@MarkReeder](https://github.com/MarkReeder))
1251 * [`529fa1f`](https://github.com/npm/npm/commit/529fa1ff2c6432a773af99a1c5209c0865f7a19c)
1252   [#9099](https://github.com/npm/npm/issues/9099) I had always thought you
1253   could run `npm version` from subdirectories in your project, which is great,
1254   because now you can. I guess I was just ahead of my time.
1255   ([@ekmartin](https://github.com/ekmartin))
1256
1257 #### NOW PAINT IN SOME NICE DOCS CHANGES
1258
1259 * [`1fc7f2b`](https://github.com/npm/npm/commit/1fc7f2b523ea760e08adb9b861b28e3ba450e565)
1260   [#10546](https://github.com/npm/npm/issues/10546) Goodbye, FAQ! You were
1261   cheeky and fun until you weren't! Don't worry: npm still loves everyone,
1262   especially you! ([@ashleygwilliams](https://github.com/ashleygwilliams))
1263 * [`7fe6950`](https://github.com/npm/npm/commit/7fe6950b44d241bb4d90857a44d89d750af1e2b3)
1264   [#10570](https://github.com/npm/npm/issues/10570) Update documentation URLs
1265   to be HTTPS everywhere sensible. No HTTP shall be spared!
1266   ([@rsp](https://github.com/rsp))
1267 * [`96ebb90`](https://github.com/npm/npm/commit/96ebb902439e4f6f37f8beffb589769146fecf24)
1268   [#10650](https://github.com/npm/npm/issues/10650) Correctly note that there
1269   are two lifecycle scripts run by an install phase in an example, instead of
1270   three. ([@eymengunay](https://github.com/eymengunay))
1271 * [`5196893`](https://github.com/npm/npm/commit/5196893a7496f68a514b83641ff6b72f14d664dd)
1272   [#10687](https://github.com/npm/npm/issues/10687) `npm outdated`'s output can
1273   be a little puzzling sometimes. I've attempted to make it clearer, with some
1274   examples, of what's going on with "wanted" and "latest" in more cases.
1275   ([@othiym23](https://github.com/othiym23))
1276 * [`8e6712d`](https://github.com/npm/npm/commit/8e6712d4ee128858cab36c77723e35bddbb977ba)
1277   [#10700](https://github.com/npm/npm/issues/10700) Hey, do you remember when
1278   `search.npmjs.org` was a thing? I think I do? The last time I used it was in
1279   like 2012, and it's gone now, so remove it from the docs.
1280   ([@gagern](https://github.com/gagern))
1281 * [`27d2612`](https://github.com/npm/npm/commit/27d2612b3f5aa88b12c943d04e162ce4c3a350ae)
1282   `semver@5.1.0`: Include BNF for SemVer expression grammar (which is also now
1283   included in `npm help semver`). ([@isaacs](https://github.com/isaacs))
1284
1285 #### LAND YOUR DEPENDENCY UPGRADES IN PAIRS SO EVERYONE HAS A FRIEND
1286
1287 * [`fc6c3c5`](https://github.com/npm/npm/commit/fc6c3c53a31e9e11c2616fcd378202e5b80bf286)
1288   `request@2.67.0` ([@simov](https://github.com/simov))
1289 * [`07013fd`](https://github.com/npm/npm/commit/07013fd0fd55a2eb31fb9334631ee5d0dd5c41bb)
1290   [isaacs/rimraf#89](https://github.com/isaacs/rimraf/pull/89) `rimraf@2.4.4`
1291   ([@zerok](https://github.com/zerok))
1292 * [`bc149be`](https://github.com/npm/npm/commit/bc149bef871f0f00639509898cece531af3aa8b3)
1293   [isaacs/once#7](https://github.com/isaacs/once/pull/7) `once@1.3.3`
1294   ([@floatdrop](https://github.com/floatdrop))
1295 * [`ac598d3`](https://github.com/npm/npm/commit/ac598d36e1ad207bc0d8a7eadfd84b26146aec1f)
1296   `lru-cache@3.2.0` ([@isaacs](https://github.com/isaacs))
1297 * [`1b915ce`](https://github.com/npm/npm/commit/1b915ce1e0787ccb6d8aa235d002d66565f2175d)
1298   `npm-registry-client@7.0.9` ([@othiym23](https://github.com/othiym23))
1299 * [`df7dd78`](https://github.com/npm/npm/commit/df7dd78b8fe3cc58202996fa6c994fc55419bfa5)
1300   `tap@2.3.1` ([@isaacs](https://github.com/isaacs))
1301
1302 ### v2.14.14 (2015-12-03):
1303
1304 #### FIX URL IN LICENSE
1305
1306 The license incorrectly identified the registry URL as `registry.npmjs.com` and
1307 this has been corrected to `registry.npmjs.org`.
1308
1309 * [`6051a69`](https://github.com/npm/npm/commit/6051a69b1adc80f5f200077067e831643f655bd4)
1310   [#10685](https://github.com/npm/npm/pull/10685)
1311   Fix npm public registry URL in notices.
1312   ([@kemitchell](https://github.com/kemitchell))
1313
1314 #### NO MORE MD5
1315
1316 We updated modules that had been using MD5 for non-security purposes.  While
1317 this is perfectly safe, if you compile Node in FIPS-compliance mode it will
1318 explode if you try to use MD5. We've replaced MD5 with Murmur, which conveys
1319 our intent better and is faster to boot.
1320
1321 * [`30b5994`](https://github.com/npm/npm/commit/30b599496a9762482e1cef945a378e3a534fd366)
1322   [#10629](https://github.com/npm/npm/issues/10629)
1323   `write-file-atomic@1.1.4`
1324   ([@othiym23](https://github.com/othiym23))
1325 * [`68c63ff`](https://github.com/npm/npm/commit/68c63ff1279d3d5ea7b2c970ab5562a8e0536f27)
1326   [#10629](https://github.com/npm/npm/issues/10629)
1327   `fs-write-stream-atomic@1.0.5`
1328   ([@othiym23](https://github.com/othiym23))
1329
1330 #### DEPENDENCY UPDATES
1331
1332 * [`e48e5a9`](https://github.com/npm/npm/commit/e48e5a90b4dcf76124b7e9ea3b295c1383e7f0c8)
1333   [nodejs/node-gyp#831](https://github.com/nodejs/node-gyp/pull/831)
1334   `node-gyp@3.2.1`: Improved \*BSD support.
1335   ([@bnoordhuis](https://github.com/bnoordhuis))
1336
1337 ### v2.14.13 (2015-11-25):
1338
1339 #### THE npm CLI !== THE npm REGISTRY !== npm, INC.
1340
1341 npm-the-CLI is licensed under the terms of the [Artistic License
1342 2.0](https://github.com/npm/npm/blob/8d79c1a39dae908f27eaa37ff6b23515d505ef29/LICENSE),
1343 which is a liberal open-source license that allows you to take this code and do
1344 pretty much whatever you like with it (that is, of course, not legal language,
1345 and if you're doing anything with npm that leaves you in doubt about your legal
1346 rights, please seek the review of qualified counsel, which is to say, not
1347 members of the CLI team, none of whom have passed the bar, to my knowledge). At
1348 the same time the primary registry the CLI uses when looking up and downloading
1349 packages is a commercial service run by npm, Inc., and it has its own [Terms of
1350 Use](https://www.npmjs.com/policies/terms).
1351
1352 Aside from clarifying the terms of use (and trying to make sure they're more
1353 widely known), the only recent changes to npm's licenses have been making the
1354 split between the CLI and registry clearer. You are still free to do whatever
1355 you like with the CLI's source, and you are free to view, download, and publish
1356 packages to and from `registry.npmjs.org`, but now the existing terms under
1357 which you can do so are more clearly documented. Aside from the two commits
1358 below, see also [the release notes for
1359 `npm@2.14.11`](https://github.com/npm/npm/releases/tag/v2.14.11), which is where
1360 the split between the CLI's code and the terms of use for the registry was
1361 first made more clear.
1362
1363 * [`1f3e936`](https://github.com/npm/npm/commit/1f3e936aab6840667948ef281e0c3621df365131)
1364   [#10532](https://github.com/npm/npm/issues/10532) Clarify that
1365   `registry.npmjs.org` is the default, but that you're free to use the npm CLI
1366   with whatever registry you wish. ([@kemitchell](https://github.com/kemitchell))
1367 * [`6733539`](https://github.com/npm/npm/commit/6733539eeb9b32a5f2d1a6aa797987e2252fa760)
1368   [#10532](https://github.com/npm/npm/issues/10532) Having semi-duplicate
1369   release information in `README.md` was confusing and potentially inaccurate,
1370   so remove it. ([@kemitchell](https://github.com/kemitchell))
1371
1372 #### EASE UP ON WINDOWS BASH USERS
1373
1374 It turns out that a fair number of us use bash on Windows (through MINGW or
1375 bundled with Git, plz – Cygwin is still a bridge too far, for both npm and
1376 Node.js). [@jakub-g](https://github.com/jakub-g) did us all a favor and relaxed
1377 the check for npm completion to support MINGW bash. Thanks, Jakub!
1378
1379 * [`460cc09`](https://github.com/npm/npm/commit/460cc0950fd6a005c4e5c4f85af807814209b2bb)
1380   [#10156](https://github.com/npm/npm/issues/10156) completion: enable on
1381   Windows in git bash ([@jakub-g](https://github.com/jakub-g))
1382
1383 #### MAKE NODE-GYP A LITTLE BLUER
1384
1385 * [`333e118`](https://github.com/npm/npm/commit/333e1181082842c21edc62f0ce515928424dff1f)
1386   `node-gyp@3.2.0`: Support AIX, use `which` to find Python, updated to a newer
1387   version of `gyp`, and more! ([@bnoordhuis](https://github.com/bnoordhuis))
1388
1389 #### WE LIKE SPDX AND ALL BUT IT'S NOT ACTUALLY A DIRECT DEP, SORRY
1390
1391 * [`1f4b4bb`](https://github.com/npm/npm/commit/1f4b4bbdf8758281beecb7eaf75d05a6c4a77c15)
1392   Removed `spdx` as a direct npm dependency, since we don't actually need it at
1393   that level, and updated subdeps for `validate-npm-package-license`
1394   ([@othiym23](https://github.com/othiym23))
1395
1396 #### A BOUNTEOUS THANKSGIVING CORNUCOPIA OF DOC TWEAKS
1397
1398 These are great! Keep them coming! Sorry for letting them pile up so deep,
1399 everybody. Also, a belated Thanksgiving to our Canadian friends, and a happy
1400 Thanksgiving to all our friends in the USA.
1401
1402 * [`6101f44`](https://github.com/npm/npm/commit/6101f44737645d9379c3396fae81bbc4d94e1f7e)
1403   [#10250](https://github.com/npm/npm/issues/10250) Correct order of `org:team`
1404   in `npm team` documentation. ([@louislarry](https://github.com/louislarry))
1405 * [`e8769f9`](https://github.com/npm/npm/commit/e8769f9807b91582c15ef130733e2e72b6c7bda4)
1406   [#10371](https://github.com/npm/npm/issues/10371) Remove broken / duplicate
1407   link to tag. ([@WickyNilliams](https://github.com/WickyNilliams))
1408 * [`1ae2dbe`](https://github.com/npm/npm/commit/1ae2dbe759feb80d8634569221ec6ee2c6d1d1ff)
1409   [#10419](https://github.com/npm/npm/issues/10419) Remove references to
1410   nonexistent `npm-rm(1)` documentation. ([@KenanY](https://github.com/KenanY))
1411 * [`777a271`](https://github.com/npm/npm/commit/777a271830a42d4ee62540a89f764a6e7d62de19)
1412   [#10474](https://github.com/npm/npm/issues/10474) Clarify that install finds
1413   dependencies in `package.json`. ([@sleekweasel](https://github.com/sleekweasel))
1414 * [`dcf4b5c`](https://github.com/npm/npm/commit/dcf4b5cbece1b0ef55ab7665d9acacc0b6b7cd6e)
1415   [#10497](https://github.com/npm/npm/issues/10497) Clarify what a package is
1416   slightly. ([@aredridel](https://github.com/aredridel))
1417 * [`447b3d6`](https://github.com/npm/npm/commit/447b3d669b2b6c483b8203754ac0a002c67bf015)
1418   [#10539](https://github.com/npm/npm/issues/10539) Remove an extra, spuriously
1419   capitalized letter. ([@alexlukin-softgrad](https://github.com/alexlukin-softgrad))
1420
1421 ### v2.14.12 (2015-11-19):
1422
1423 #### TEEN ORCS AT THE GATES
1424
1425 This week heralds the general release of the primary npm registry's [new
1426 support for private packages for
1427 organizations](http://blog.npmjs.org/post/133542170540/private-packages-for-organizations).
1428 For many potential users, it's the missing piece needed to make it easy for you
1429 to move your organization's private work onto npm. And now it's here! The
1430 functionality to support it has been in place in the CLI for a while now,
1431 thanks to [@zkat](https://github.com/zkat)'s hard work.
1432
1433 During our final testing before the release, our ace support team member
1434 [@snopeks](https://github.com/snopeks) noticed that there had been some drift
1435 between the CLI team's implementation and what npm was actually preparing to
1436 ship. In the interests of everyone having a smooth experience with this
1437 _extremely useful_ new feature, we quickly made a few changes to square up the
1438 CLI and the web site experiences.
1439
1440 * [`0e8b15e`](https://github.com/npm/npm/commit/0e8b15e9fbc89e31bd00e573b648846beddfb835)
1441   [#9327](https://github.com/npm/npm/issues/9327) `npm access` no longer has
1442   problems when run in a directory that doesn't contain a `package.json`.
1443   ([@othiym23](https://github.com/othiym23))
1444 * [`c4e939c`](https://github.com/npm/npm/commit/c4e939c1d493601d25dcb88e6ffcca73076fd3fd)
1445   [npm/npm-registry-client#126](https://github.com/npm/npm-registry-client/issues/126)
1446   `npm-registry-client@7.0.8`: Allow the CLI to grant, revoke, and list
1447   permissions on unscoped (public) packages on the primary registry.
1448   ([@othiym23](https://github.com/othiym23))
1449
1450 #### A BRIEF NOTE ON NPM'S BACKWARDS COMPATIBILITY
1451
1452 We don't often have much to say about the changes we make to our internal
1453 testing and tooling, but I'm going to take this opportunity to reiterate that
1454 npm tries hard to maintain compatibility with a wide variety of Node versions.
1455 As this change shows, we want to ensure that npm works the same across:
1456
1457 * Node.js 0.8
1458 * Node.js 0.10
1459 * Node.js 0.12
1460 * the latest io.js release
1461 * Node.js 4 LTS
1462 * Node.js 5
1463
1464 Contributors who send us pull requests often notice that it's very rare that
1465 our tests pass across all of those versions (ironically, almost entirely due to
1466 the packages we use for testing instead of any issues within npm itself). We're
1467 currently beginning an effort, lasting the rest of 2015, to clean up our test
1468 suite, and not only get it passing on all of the above versions of Node.js, but
1469 working solidly on Windows as well. This is a compounding form of technical
1470 debt that we're finally paying down, and our hope is that cleaning up the tests
1471 will produce a more robust CLI that's a lot easier to write patches for.
1472
1473 * [`d743620`](https://github.com/npm/npm/commit/d743620a0005213a65d25de771661b4d48a09717)
1474   [#10233](https://github.com/npm/npm/issues/10233) Update Node.js versions
1475   that Travis uses to test npm. ([@iarna](https://github.com/iarna))
1476
1477 #### TYPOS IN THE LICENSE, OH MY
1478
1479 * [`58ac241`](https://github.com/npm/npm/commit/58ac241f556b2c202a8ee33321965e2540361ca7)
1480   [#10478](https://github.com/npm/npm/issues/10478) Correct two typos in npm's
1481   LICENSE. ([@jorrit](https://github.com/jorrit))
1482
1483 ### v2.14.11 (2015-11-12):
1484
1485 #### ASK FOR NOTHING, GET LATEST
1486
1487 When you run `npm install foo`, you probably expect that you'll get the
1488 `latest` version of `foo`, whatever that is. And good news! That's what this
1489 change makes it do.
1490
1491 We _think_ this is what everyone wants, but if this causes problems for you, we
1492 want to know! If it proves problematic for people we will consider reverting it
1493 (preferrably before this becomes `npm@latest`).
1494
1495 Previously, when you ran `npm install foo` we would act as if you typed `npm
1496 install foo@*`. Now, like any range-type specifier, in addition to matching the
1497 range, it would also have to be `<=` the value of the `latest` dist-tag.
1498 Further, it would exclude prerelease versions from the list of versions
1499 considered for a match.
1500
1501 This worked as expected most of the time, unless your `latest` was a prerelease
1502 version, in which case that version wouldn't be used, to everyone's surprise.
1503
1504 * [`6f0a646`](https://github.com/npm/npm/commit/6f0a646cd865b24fe3ff25365bf5421780e63e01)
1505   [#10189](https://github.com/npm/npm/issues/10189) `npm-package-arg@4.1.0`:
1506   Change the default version from `*` to `latest`.
1507   ([@zkat](https://github.com/zkat))
1508
1509 #### LICENSE CLARIFICATION
1510
1511 * [`54a9046`](https://github.com/npm/npm/commit/54a90461f068ea89baa5d70248cdf1581897936d)
1512   [#10326](https://github.com/npm/npm/issues/10326) Clarify what-all is covered
1513   by npm's license and point to the registry's terms of use.
1514   ([@kemitchell](https://github.com/kemitchell))
1515
1516 #### CLOSER TO GREEN TRAVIS
1517
1518 * [`28efd3d`](https://github.com/npm/npm/commit/28efd3d7dfb2fa3755076ae706ea4d38c6ee6900)
1519   [#10232](https://github.com/npm/npm/issues/10232) `nock@1.9.0`: Downgrade
1520   nock to a version that doesn't depend on streams2 in core so that more of our
1521   tests can pass in 0.8. ([@iarna](https://github.com/iarna))
1522
1523 #### A BUG FIX
1524
1525 * [`eacac8f`](https://github.com/npm/npm/commit/eacac8f05014d15217c3d8264d0b00a72eafe2d2)
1526   [#9965](https://github.com/npm/npm/issues/9965) Fix a corrupt `package.json`
1527   file introduced by a merge conflict in
1528   [`022691a`](https://github.com/npm/npm/commit/022691a).
1529   ([@waynebloss](https://github.com/waynebloss))
1530
1531 #### A DEPENDENCY UPGRADE
1532
1533 * [`ea7d8e0`](https://github.com/npm/npm/commit/ea7d8e00a67a3d5877ed72c9728909c848468a9b)
1534   [npm/nopt#51](https://github.com/npm/nopt/pull/51) `nopt@3.0.6`: Allow
1535   types checked to be validated by passed-in name in addition to the JS name of
1536   the type / class. ([@wbecker](https://github.com/wbecker))
1537
1538 ### v2.14.10 (2015-11-05):
1539
1540 There's nothing in here that that isn't in the `npm@3.4.0` release notes, but
1541 all of the commit shasums have been adjusted to be correct. Enjoy!
1542
1543 #### BUG FIXES VIA DEPENDENCY UPDATES
1544
1545 * [`204c558`](https://github.com/npm/npm/commit/204c558c06637a753c0b41d0cf19f564a1ac3715)
1546   [#8640](https://github.com/npm/npm/issues/8640)
1547   [npm/normalize-package-data#69](https://github.com/npm/normalize-package-data/pull/69)
1548   `normalize-package-data@2.3.5`: Fix a bug where if you didn't specify the
1549   name of a scoped module's binary, it would install it such that it was
1550   impossible to call it.  ([@iarna](https://github.com/iarna))
1551 * [`bbdf4ee`](https://github.com/npm/npm/commit/bbdf4ee0a3cd12be6a2ace255b67d573a72f1f8f)
1552   [npm/fstream-npm#14](https://github.com/npm/fstream-npm/pull/14)
1553   `fstream-npm@1.0.7`: Only filter `config.gypi` when it's in the build
1554   directory.  ([@mscdex](https://github.com/mscdex))
1555 * [`d82ff81`](https://github.com/npm/npm/commit/d82ff81403e906931fac701775723626dcb443b3)
1556   [npm/fstream-npm#15](https://github.com/npm/fstream-npm/pull/15)
1557   `fstream-npm@1.0.6`: Stop including directories that happened to have names
1558   matching whitelisted npm files in npm module tarballs. The most common cause
1559   was that if you had a README directory then everything in it would be
1560   included if wanted it or not. ([@taion](https://github.com/taion))
1561
1562 #### DOCUMENTATION FIXES
1563
1564 * [`16361d1`](https://github.com/npm/npm/commit/16361d122f2ff6d1a4729c66153b7c24c698fd19)
1565   [#10036](https://github.com/npm/npm/pull/10036) Fix typo / over-abbreviation.
1566   ([@ifdattic](https://github.com/ifdattic))
1567 * [`d1343dd`](https://github.com/npm/npm/commit/d1343dda42f113dc322f95687f5a8c7d71a97c35)
1568   [#10176](https://github.com/npm/npm/pull/10176) Fix broken link, scopes =>
1569   scope.  ([@ashleygwilliams](https://github.com/ashleygwilliams))
1570 * [`110663d`](https://github.com/npm/npm/commit/110663d000a3908a4853393d9abae481700cf4dc)
1571   [#9460](https://github.com/npm/npm/issue/9460) Specifying the default command
1572   run by "npm start" and the fact that you can pass it arguments.
1573   ([@JuanCaicedo](https://github.com/JuanCaicedo))
1574
1575 #### DEPENDENCY UPDATES FOR THEIR OWN SAKE
1576
1577 * [`7476d2d`](https://github.com/npm/npm/commit/7476d2d31552a41671c425aa7fcc2844e0381008)
1578   [npm/npmlog#19](https://github.com/npm/npmlog/pull/19)
1579   `npmlog@2.0.0`: Make it possible to emit log messages with `error` as the
1580   prefix.
1581   ([@bengl](https://github.com/bengl))
1582 * [`6ca7888`](https://github.com/npm/npm/commit/6ca7888862cfe8bf802dc7c66632c102acd94cf5)
1583   `read-package-json@2.0.2`: Minor cleanups.
1584   ([@KenanY](https://github.com/KenanY))
1585
1586 ### v2.14.9 (2015-10-29):
1587
1588 There's still life in `npm@2`, but for now, enjoy these dependency upgrades!
1589 Also, [@othiym23](https://github.com/othiym23) says hi! _waves_
1590 [@zkat](https://github.com/zkat) has her hands full, and
1591 [@iarna](https://github.com/iarna)'s handling `npm@3`, so I'm dealing with
1592 `npm@2` and the totally nonexistent weird bridge `npm@1.4` LTS release that may
1593 or may not be happening this week.
1594
1595 #### CAN'T STOP WON'T STOP UPDATING THOSE DEPENDENCIES
1596
1597 * [`f52f0cb`](https://github.com/npm/npm/commit/f52f0cb51526314197e9d67619feebbd82a397b7)
1598   [#10150](https://github.com/npm/npm/issues/10150) `chmodr@1.0.2`: Use
1599   `fs.lstat()` to check if an entry is a directory, making `chmodr()` work
1600   properly with NFS mounts on Windows. ([@sheerun](https://github.com/sheerun))
1601 * [`f7011d7`](https://github.com/npm/npm/commit/f7011d7b3b1d9148a6cd8f7b8359d6fe3269a912)
1602   [#10150](https://github.com/npm/npm/issues/10150) `which@1.2.0`: Additional
1603   command-line parameters, which is nice but not used by npm.
1604   ([@isaacs](https://github.com/isaacs))
1605 * [`ebcc0d8`](https://github.com/npm/npm/commit/ebcc0d8629388da0b849bbbad590382cd7268f51)
1606   [#10150](https://github.com/npm/npm/issues/10150) `minimatch@3.0.0`: Don't
1607   package browser version. ([@isaacs](https://github.com/isaacs))
1608 * [`8c98dce`](https://github.com/npm/npm/commit/8c98dce5ffe242bafbe92b849e73e8de1803e256)
1609   [#10150](https://github.com/npm/npm/issues/10150) `fstream-ignore@1.0.3`:
1610   Upgrade to use `minimatch@3` (for deduping purposes).
1611   ([@othiym23](https://github.com/othiym23))
1612 * [`db9ef33`](https://github.com/npm/npm/commit/db9ef337c253ecf21c921055bf8742e10d1cb3bb)
1613   [#10150](https://github.com/npm/npm/issues/10150) `request@2.65.0`:
1614   Dependency upgrades and a few bug fixes, mostly related to cookie handling.
1615   ([@simov](https://github.com/simov))
1616
1617 #### DEVDEPENDENCIES TOO, I GUESS, IT'S COOL
1618
1619 * [`dfbf621`](https://github.com/npm/npm/commit/dfbf621afa09c46991249b4f9a995d1823ea7ede)
1620   [#10150](https://github.com/npm/npm/issues/10150) `tap@2.2.0`: Better
1621   handling of test order handling (including some test fixes for npm).
1622   ([@isaacs](https://github.com/isaacs))
1623 * [`cf5ad5a`](https://github.com/npm/npm/commit/cf5ad5a8c88bfd72e30ef8a8d1d3c5508e0b3c23)
1624   [#10150](https://github.com/npm/npm/issues/10150) `nock@2.16.0`: More
1625   expectations, documentation, and bug fixes.
1626   ([@pgte](https://github.com/pgte))
1627
1628 ### v2.14.8 (2015-10-08):
1629
1630 #### SLOWLY RECOVERING FROM FEELINGS
1631
1632 OS&F is definitely my favorite convention I've gone to. Y'all should check it
1633 out next year! Rebecca and Kat are back, although Forrest is out at
1634 [&yet conf](http://andyetconf.com/).
1635
1636 This week sees another tiny LTS release with non-code-related patches -- just
1637 CI/release things.
1638
1639 Meanwhile, have you heard? `npm@3` is much faster now! Go upgrade with `npm
1640 install -g npm@latest` and give it a whirl if you haven't already!
1641
1642 #### IF YOU CHANGE CASING ON A FILE, YOU ARE NOT MY FRIEND
1643
1644 Seriously. I love me some case-sensitive filesystems, but a lot of us have to
1645 deal with `git` and its funky support for case normalizing systems. Have mercy
1646 and just don't bother if all you're changing is casing, please? Otherwise, I
1647 have to do this little dance to prevent horrible conflicts.
1648
1649 * [`c3a7b61`](https://github.com/npm/npm/commit/c3a7b619786650a45653c8b55b8741fc7bb5cfda)
1650   [#9804](https://github.com/npm/npm/pulls/9804) Remove the readme file with
1651   weird casing.
1652   ([@zkat](https://github.com/zkat))
1653 * [`f3f619e`](https://github.com/npm/npm/commit/f3f619e06e4be1378dbf286f897b50e9c69c9557)
1654   [#9804](https://github.com/npm/npm/pulls/9804) Add the readme file back in,
1655   with desired casing.
1656   ([@zkat](https://github.com/zkat))
1657
1658 #### IDK. OUR CI DOESN'T EVEN FULLY WORK YET BUT SURE
1659
1660 Either way, it's nice to make sure we're running stuff on the latest Node. `4.2`
1661 is getting released very soon, though (this week?), and that'll be the first
1662 official LTS release!
1663
1664 * [`bd0b9ab`](https://github.com/npm/npm/commit/bd0b9ab6e60a31448794bbd88f94672572c3cb55)
1665   [#9827](https://github.com/npm/npm/pulls/9827) Add node `4.0` and `4.1` to
1666   TravisCI
1667   ([@JaKXz](https://github.com/JaKXz))
1668
1669 ### v2.14.7 (2015-10-01):
1670
1671 #### MORE RELEASE STAGGERING?!
1672
1673 Hi all, and greetings from [Open Source & Feelings](http://osfeels.com)!
1674
1675 So we're switching gears a little with how we handle our weekly releases: from
1676 now on, we're going to stagger release weeks between dependency bumps and
1677 regular patches. So, this week, aside from a doc change, we'll be doing only
1678 version bumps. Expect actual patches next week!
1679
1680 #### TOTALLY FOLLOWING THE RULES ALREADY
1681
1682 So I snuck this in, because it's our own [@snopeks](https://github.com/snopeks)'
1683 first contribution to the main `npm` repo. She's been helping with building
1684 support documents for Orgs, and contributed her general intro guide to the new
1685 feature so you can read it with `npm help orgs` right in your terminal!
1686
1687 * [`8324ea0`](https://github.com/npm/npm/commit/8324ea023ace4e08b6b8959ad199e2457af9f9cf)
1688   [#9761](https://github.com/npm/npm/pull/9761) Added general user guide for
1689   Orgs.
1690   ([@snopeks](https://github.com/snopeks))
1691
1692 #### JUST. ONE. MORE.
1693
1694 * [`9a502ca`](https://github.com/npm/npm/commit/9a502ca96e2d43ec75a8f684c9ca33af7e910f0a)
1695   Use unique package name in tests to work around weird test-state-based
1696   failures.
1697   ([@iarna](https://github.com/iarna))
1698
1699 #### OKAY ACTUALLY THE THING I WAS SUPPOSED TO DO
1700
1701 Anyway -- here's your version bump! :)
1702
1703 * [`4aeb94c`](https://github.com/npm/npm/commit/4aeb94c9f0df3f41802cf2e0397a998f3b527c25)
1704   `request@2.64.0`: No longer defaulting to `application/json` for `json`
1705   requests. Also some minor doc and packaging patches.
1706   ([@simov](https://github.com/simov))
1707 * [`a18b213`](https://github.com/npm/npm/commit/a18b213e6945a8f5faf882927829ac95f844e2aa)
1708   `glob@5.0.15`: Upgraded `minimatch` dependency.
1709   ([@isaacs](https://github.com/isaacs))
1710 * [`9eb64d4`](https://github.com/npm/npm/commit/9eb64e44509519ca9d788502edb2eba4cea5c86b)
1711   `nock@2.13.0`
1712   ([@pgte](https://github.com/pgte))
1713
1714 ### v2.14.6 (2015-09-24):
1715
1716 #### `¯\_(ツ)_/¯`
1717
1718 Since `2.x` is LTS now, you can expect a slowdown in overall release sizes. On
1719 top of that, we had our all-company-npm-internal-conf thing on Monday and
1720 Tuesday so there wasn't really time to do much at all.
1721
1722 Still, we're bringing you a couple of tiny little changes this week!
1723
1724 * [`7b7da13`](https://github.com/npm/npm/commit/7b7da13c6cdf5eae53c20d5c69afc4c16e6f715d)
1725   [#9471](https://github.com/npm/npm/pull/9471) When the port for a tarball is
1726   different than the registry it's in, but the hostname is the same, the
1727   protocol is now allowed to change, too.
1728   ([@fastest963](https://github.com/fastest963))
1729 * [`6643ada`](https://github.com/npm/npm/commit/6643adaf9f37f08893e3ad28b797c55a36b2a152)
1730   `request@2.63.0`: Use `application/json` as the default content type when
1731   making `json` requests.
1732   ([@simov](https://github.com/simov))
1733
1734 ### v2.14.5 (2015-09-17):
1735
1736 #### NPM IS DEAD. LONG LIVE NPM
1737
1738 That's right folks. As of this week, `npm@latest` is `npm@3`! There's some
1739 really great shiny new things over there, and you should really take a look.
1740
1741 Many kudos to [@iarna](https://github.com/iarna) for her hard work on `npm@3`!
1742
1743 Don't worry, we'll keep `2.x` around for a while (as LTS), but you won't see
1744 many, if any, new features on this end. From now on, we're going to use
1745 `latest-2` and `next-2` as the dist tags for the `npm@2` branch.
1746
1747 #### OKAY THAT'S FINE CAN I DEPRECATE THINGS NOW?
1748
1749 Yes! Specially if you're using scoped packages. Apparently, deprecating them
1750 never worked, but that should be better now. :)
1751
1752 * [`eca7b24`](https://github.com/npm/npm/commit/eca7b24de9a0090da02a93a69726f5e70ab80543)
1753   [#9558](https://github.com/npm/npm/issues/9558) Add tests for npm deprecate.
1754   ([@zkat](https://github.com/zkat))
1755 * [`648fe16`](https://github.com/npm/npm/commit/648fe16157ef0db22395ae056d1dd4b4c1605bf4)
1756   [#9558](https://github.com/npm/npm/issues/9558) `npm-registry-client@7.0.7`:
1757   Fixes `npm deprecate` so you can actually deprecate scoped modules now (it
1758   never worked).
1759   ([@zkat](https://github.com/zkat))
1760
1761 #### WTF IS `node-waf`
1762
1763 idk. Some old thing. We don't talk about it anymore.
1764
1765 * [`cf1b39f`](https://github.com/npm/npm/commit/cf1b39fc95a9ffad7fba4c2fee705c53b19d1d16)
1766   [#9584](https://github.com/npm/npm/issues/9584) Fix ancient references to
1767   `node-waf` in the docs to refer to the `node-gyp` version of things.
1768   ([@KenanY](https://github.com/KenanY))
1769
1770 #### THE `graceful-fs` AND `node-gyp` SAGA CONTINUES
1771
1772 Last week had some sweeping `graceful-fs` upgrades, and this takes care of one
1773 of the stragglers, as well as bumping `node-gyp`. `node@4` users might be
1774 excited about this, or even `node@<4` users who previously had to cherry-pick a
1775 bunch of patches to get the latest npm working.
1776
1777 * [`e07354f`](https://github.com/npm/npm/commit/e07354f3ff3a6be568fe950f1f825897f72912d8)
1778   `sha@2.0.1`: Upgraded graceful-fs!
1779   ([@ForbesLindesay](https://github.com/ForbesLindesay))
1780 * [`83cb6ee`](https://github.com/npm/npm/commit/83cb6ee4045b85e565e9678ca1878877e1dc75bd)
1781   `node-gyp@3.0.3`
1782   ([@rvagg](https://github.com/rvagg))
1783
1784 #### DEPS! DEPS! MORE DEPS! OK STOP DEPS
1785
1786 * [`0d60888`](https://github.com/npm/npm/commit/0d608889615a1cb63f5f852337e955053f201aeb)
1787   `normalize-package-data@2.3.4`: Use an external package to check for built-in
1788   node modules.
1789   ([@sindresorhus](https://github.com/sindresorhus))
1790 * [`79b4dac`](https://github.com/npm/npm/commit/79b4dac11f1c2d8ad5489fc3104734e1c10d4793)
1791   `retry@0.8.0`
1792   ([@tim-kos](https://github.com/tim-kos))
1793 * [`c164941`](https://github.com/npm/npm/commit/c164941d3c792904d5b126a4fd36eefbe0699f52)
1794   `request@2.62.0`: node 4 added to build targets. Option initialization issues
1795   fixed.
1796   ([@simov](https://github.com/simov))
1797 * [`0fd878a`](https://github.com/npm/npm/commit/0fd878a44d5ae303325808d1f00df4dce7549d50)
1798   `lru-cache@2.7.0`: Cache serialization support and fixes a cache length bug.
1799   ([@isaacs](https://github.com/isaacs))
1800 * [`6a7a114`](https://github.com/npm/npm/commit/6a7a114a45b4699995d6e09164fdfd0fa1274591)
1801   `nock@2.12.0`
1802   ([@pgte](https://github.com/pgte))
1803 * [`6b25e6d`](https://github.com/npm/npm/commit/6b25e6d2235c11f4444104db4545cb42a0267666)
1804   `semver@5.0.3`: Removed uglify-js dead code.
1805   ([@isaacs](https://github.com/isaacs))
1806
1807 ### v2.14.4 (2015-09-10):
1808
1809 #### THE GREAT NODEv4 SAGA
1810
1811 So [Node 4 is out now](https://nodejs.org/en/blog/release/v4.0.0/) and that's
1812 going to involve a number of things over in npm land. Most importantly, it's the
1813 last major release that will include the `2.x` branch of npm. That also means
1814 that `2.x` is going to go into LTS mode in the coming weeks -- once `npm@3`
1815 becomes our official `latest` release. You can most likely expect Node 5 to
1816 include `npm@3` by default, whenever that happens. We'll go into more detail
1817 about LTS at that point, as well, so keep your eyes peeled for announcements!
1818
1819 #### NODE IS DEAD. LONG LIVE NODE!
1820
1821 Node 4 being released means that a few things that used to be floating patches
1822 are finally making it right into npm proper. This week, we've got two such
1823 updates, both to dependencies:
1824
1825 * [`505d9e4`](https://github.com/npm/npm/commit/505d9e40c13b8b0bb3f70ee9886f7b73ba569407)
1826   `node-gyp@3.0.1`: Support for node nightlies and compilation for both node and
1827   io.js without extra patching
1828   ([@rvagg](https://github.com/rvagg))
1829
1830 [@thefourtheye](https://github.com/thefourtheye) was kind enough to submit a
1831 *bunch* of PRs to npm's dependencies updating them to `graceful-fs@4.1.2`, which
1832 mainly makes it so we're no longer monkey-patching `fs`. The following are all
1833 updates related to this:
1834
1835 * [`10cb189`](https://github.com/npm/npm/commit/10cb189c773fef804214018d57509cc7a943184b)
1836   `write-file-atomic@1.1.3`
1837   ([@thefourtheye](https://github.com/thefourtheye))
1838 * [`edfb80b`](https://github.com/npm/npm/commit/edfb80b39f8cfce9a993f139eb98248001198e09)
1839   `tar@2.2.1`
1840   ([@thefourtheye](https://github.com/thefourtheye))
1841 * [`aa6e1ee`](https://github.com/npm/npm/commit/aa6e1eede7d71fa69d7256afdfbaa3406bc39a5b)
1842   `read-package-json@2.0.1`
1843   ([@thefourtheye](https://github.com/thefourtheye))
1844 * [`18971a3`](https://github.com/npm/npm/commit/18971a361635ed3958ecd39b63930ae1e56f8612)
1845   `read-installed@4.0.3`
1846   ([@thefourtheye](https://github.com/thefourtheye))
1847 * [`a4cba71`](https://github.com/npm/npm/commit/a4cba71bd2532236fda7385bf55e8790cafd4f0a)
1848   `fstream@1.0.8`
1849   ([@thefourtheye](https://github.com/thefourtheye))
1850 * [`70a38e2`](https://github.com/npm/npm/commit/70a38e29418951ac61ab6cf269d188074fe8ac3a)
1851   `fs-write-stream-atomic@1.0.4`
1852   ([@thefourtheye](https://github.com/thefourtheye))
1853 * [`9cbd20f`](https://github.com/npm/npm/commit/9cbd20f691e37960e4ba12d401abd1069657cb47)
1854   `fs-vacuum@1.2.7`
1855   ([@thefourtheye](https://github.com/thefourtheye))
1856
1857 #### OTHER PATCHES
1858
1859 * [`c4dd521`](https://github.com/npm/npm/commit/c4dd5213b2f3283ea0392845e5f78cac4573529e)
1860   [#9506](https://github.com/npm/npm/issues/9506) Make `npm link` work on
1861   Windows when using node pre-release/RC releases.
1862   ([@jon-hall](https://github.com/jon-hall))
1863 * [`b6bc29c`](https://github.com/npm/npm/commit/b6bc29c1401b3d6b570c09cbef1866bdb0436b59)
1864   [#9544](https://github.com/npm/npm/issues/9549) `process.binding` is being
1865   deprecated, so our only direct usage has been removed.
1866   ([@ChALkeR](https://github.com/ChALkeR))
1867
1868 #### MORE DEPENDENCIES!
1869
1870 * [`d940594`](https://github.com/npm/npm/commit/d940594e479a7f012b6dd6952e8ef985ba2a6216)
1871   `tap@1.4.1`
1872   ([@isaacs](https://github.com/isaacs))
1873 * [`ee38486`](https://github.com/npm/npm/commit/ee3848669331fd98879a3175789d963543f67ce3)
1874   `which@1.1.2`: Added tests for Windows-related dead code that was previously
1875   helping a silent failure happen.  Travis stuff, too.
1876   ([@isaacs](https://github.com/isaacs))
1877
1878 #### DOC UPDATES
1879
1880 * [`475daf5`](https://github.com/npm/npm/commit/475daf54ad07777938d1d7ee1a3e576961e84510)
1881   [#9492](https://github.com/npm/npm/issues/9492) Clarify how `.npmignore` and
1882   `.gitignore` are found and used by npm.
1883   ([@addaleax](https://github.com/addaleax))
1884 * [`b2c391d`](https://github.com/npm/npm/commit/b2c391d7833249626a6d7650363a83bcc778717a)
1885   `nopt@3.0.4`: Minor clarifications to docs about how array and errors work.
1886   ([@zkat](https://github.com/zkat))
1887
1888 ### v2.14.3 (2015-09-03):
1889
1890 #### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID.
1891
1892 Our closed beta for Teens and Orcs is happening! The web team is hard at work
1893 making sure everything looks pretty and usable and such. Once we fix things
1894 stemming from that beta, you can expect the feature to be available publicly.
1895 Some time after that, it'll even be available for free for FOSS orgs. It'll Be
1896 Done When It's Done™.
1897
1898 #### OH GOOD, I CAN ACTUALLY UPSTREAM NOW
1899
1900 Looks like last week's release foiled our own test suite when trying to upstream
1901 it to Node! Just a friendly reminder that no, `.npmrc` is no longer included
1902 then you pack/release a package! [@othiym23](https://github.com/othiym23) and
1903 [@isaacs](https://github.com/isaacs) managed to suss the really strange test
1904 failures resulting from that, and we've patched it in this release.
1905
1906 * [`01a3428`](https://github.com/npm/npm/commit/01a3428534b754dca89a56fd1e49f55cb22f6f25)
1907   [#9476](https://github.com/npm/npm/issues/9476) test: Recreate missing
1908   `.npmrc` files when missing so downstream packagers can run tests on packed
1909   npm.
1910   ([@othiym23](https://github.com/othiym23))
1911
1912 #### TALKING ABOUT THE CHANGELOG IN THE CHANGELOG IS LIKE, POMO OR SOMETHING
1913
1914 * [`c1e7a83`](https://github.com/npm/npm/commit/c1e7a83c0ae7aadf01aecc57cf8a0ae2009d4da8)
1915   [#9431](https://github.com/npm/npm/issues/9431) CHANGELOG: clarify
1916   windows-related nature of patch
1917   ([@saper](https://github.com/saper))
1918
1919 #### devDependencies UPDATED
1920
1921 No actual dep updates this week, but we're bumping a couple of devDeps:
1922
1923 * [`8454835`](https://github.com/npm/npm/commit/84548351bfd63e3e305d195abbcad24c6b7c3e8e)
1924   `tap@1.4.0`: Add `t.contains()` as alias to `t.match()`
1925   ([@isaacs](https://github.com/isaacs))
1926 * [`13d2216`](https://github.com/npm/npm/commit/13d22161bcdeb6e1ed095d5ba2f77e6abfffa5eb)
1927   `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode
1928   ([@isaacs](https://github.com/isaacs))
1929
1930 ### v2.14.2 (2015-08-27):
1931
1932 #### GETTING THAT PESKY `preferGlobal` WARNING RIGHT
1933
1934 So apparently the `preferGlobal` option hasn't quite been warning correctly for
1935 some time. But now it should be all better! tl;dr: if you try and install a
1936 dependency with `preferGlobal: true`, and it's _not already_ in your
1937 `package.json`, you'll get a warning that the author would really rather you
1938 install it with `--global`. This should prevent Windows PowerShell from thinking
1939 npm has failed just because of a benign warning.
1940
1941 * [`bbb25f3`](https://github.com/npm/npm/commit/bbb25f30d582f8979168c79233a9f8f840974f90)
1942   [#8841](https://github.com/npm/npm/issues/8841)
1943   [#9409](https://github.com/npm/npm/issues/9409) The `preferGlobal`
1944   warning shouldn't happen if the dependency being installed is listed in
1945   `devDependencies`. ([@saper](https://github.com/saper))
1946 * [`222fcec`](https://github.com/npm/npm/commit/222fcec85ccd30d35899e5037079fb14625af4e2)
1947   [#9409](https://github.com/npm/npm/issues/9409) `preferGlobal` now prints a
1948   warning when there are no dependencies for the current package.
1949   ([@zkat](https://github.com/zkat))
1950 * [`5cfed6d`](https://github.com/npm/npm/commit/5cfed6d7a1a5f2731688cfc8293b5e43a6355393)
1951   [#9409](https://github.com/npm/npm/issues/9409) Verify that
1952   `preferGlobal` is warning as expected (when a `preferGlobal` dependency is
1953   installed, but isn't listed in either `dependencies` or `devDependencies`).
1954   ([@zkat](https://github.com/zkat))
1955
1956 #### BUMP +1
1957
1958 * [`eeafce2`](https://github.com/npm/npm/commit/eeafce2d06883c0f51bf403415b6bc5f2647eba3)
1959   `validate-npm-package-license@3.0.1`: Include additional metadata in parsed license object,
1960   useful for license checkers. ([@kemitchell](https://github.com/kemitchell))
1961 * [`1502a28`](https://github.com/npm/npm/commit/1502a285f84aa548806b3eafc8889e6288e810f3)
1962   `normalise-package-data@2.3.2`: Updated to use `validate-npm-package-license@3.0.1`.
1963   ([@othiym23](https://github.com/othiym23))
1964 * [`cbde823`](https://github.com/npm/npm/commit/cbde8233436bf0ea62a4740869b4990322c20659)
1965   `init-package-json@1.9.1`: Add a `silent` option to suppress output on writing the
1966   generated `package.json`. Also, updated to use `validate-npm-package-license@3.0.1`.
1967   ([@zkat](https://github.com/zkat))
1968 * [`08fda46`](https://github.com/npm/npm/commit/08fda465452b4d77f1ced8050ee3a35a77fc30a5)
1969   `tar@2.2.0`: Minor improvements. ([@othiym23](https://github.com/othiym23))
1970 * [`dc2f20b`](https://github.com/npm/npm/commit/dc2f20b53fff77203139c863b48da0e959df2ac9)
1971   `rimraf@2.4.3`: `EPERM` now triggers a delay / retry loop (since Windows throws
1972   this when things still hold a handle). ([@isaacs](https://github.com/isaacs))
1973 * [`e8acb27`](https://github.com/npm/npm/commit/e8acb273aa67ee0394d0431650e1b2a7d09c8554)
1974   `read@1.0.7`: Fix licensing ambiguity. ([@isaacs](https://github.com/isaacs))
1975
1976 #### OTHER STUFF THAT'S RELEVANT
1977
1978 * [`73a1ee0`](https://github.com/npm/npm/commit/73a1ee0be90fa1928521b63f28bef83b8ffab61d)
1979   [#9386](https://github.com/npm/npm/issues/9386) Include additional unignorable files in
1980   documentation.
1981   ([@mjhasbach](https://github.com/mjhasbach))
1982 * [`0313e40`](https://github.com/npm/npm/commit/0313e40ee0f757fce8861be590ad668c23d7be53)
1983   [#9396](https://github.com/npm/npm/issues/9396) Improve the `EISDIR` error
1984   message returned by npm's error-handling code to give users a better hint of
1985   what's most likely going on.  Usually, error reports with this error code are
1986   about people trying to install things without a `package.json`.
1987   ([@KenanY](https://github.com/KenanY))
1988 * [`2677457`](https://github.com/npm/npm/commit/26774579c739c5951351e58263cf4d6ea3d66ec8)
1989   [#9360](https://github.com/npm/npm/issues/9360) Make it easier to run
1990   only _some_ of npm tests with lifecycle scripts via `npm tap test/tap/testname.js`.
1991   ([@iarna](https://github.com/iarna))
1992
1993 ### v2.14.1 (2015-08-20):
1994
1995 #### SECURITY FIX
1996
1997 There are patches for two information leaks of moderate severity in `npm@2.14.1`:
1998
1999 1. In some cases, npm was leaking sensitive credential information into the
2000    child environment when running package and lifecycle scripts. This could
2001    lead to packages being published with files (most notably `config.gypi`, a
2002    file created by `node-gyp` that is a cache of environmental information
2003    regenerated on every run) containing the bearer tokens used to authenticate
2004    users to the registry. Users with affected packages have been notified (and
2005    the affected tokens invalidated), and now npm has been modified to not
2006    upload files that could contain this information, as well as scrubbing the
2007    sensitive information out of the environment passed to child scripts.
2008 2. Per-package `.npmrc` files are used by some maintainers as a way to scope
2009    those packages to a specific registry and its credentials. This is a
2010    reasonable use case, but by default `.npmrc` was packed into packages,
2011    leaking those credentials.  npm will no longer include `.npmrc` when packing
2012    tarballs.
2013
2014 If you maintain packages and believe you may be affected by either
2015 of the above scenarios (especially if you've received a security
2016 notification from npm recently), please upgrade to `npm@2.14.1` as
2017 soon as possible. If you believe you may have inadvertently leaked
2018 your credentials, upgrade to `npm@2.14.1` on the affected machine,
2019 and run `npm logout` and then `npm login`. Your access tokens will be
2020 invalidated, which will eliminate any risk posed by tokens inadvertently
2021 included in published packages. We apologize for the inconvenience this
2022 causes, as well as the oversight that led to the existence of this issue
2023 in the first place.
2024
2025 Huge thanks to [@ChALkeR](https://github.com/ChALkeR) for bringing these
2026 issues to our attention, and for helping us identify affected packages
2027 and maintainers. Thanks also to the Node.js security working group for
2028 their coördination with the team in our response to this issue. We
2029 appreciate everybody's patience and understanding tremendously.
2030
2031 * [`b9474a8`](https://github.com/npm/npm/commit/b9474a843ca55b7c5fac6da33989e8eb39aff8b1)
2032   `fstream-npm@1.0.5`: Stop publishing build cruft (`config.gypi`) and per-project
2033   `.npmrc` files to keep local configuration out of published packages.
2034   ([@othiym23](https://github.com/othiym23))
2035 * [`13c286d`](https://github.com/npm/npm/commit/13c286dbdc3fa8fec4cb79fc4d1ee505c8a41b2e)
2036   [#9348](https://github.com/npm/npm/issues/9348) Filter "private"
2037   (underscore-prefixed, even when scoped to a registry) configuration values
2038   out of child environments. ([@othiym23](https://github.com/othiym23))
2039
2040 #### BETTER WINDOWS INTEGRATION, ONE STEP AT A TIME
2041
2042 * [`e40e71f`](https://github.com/npm/npm/commit/e40e71f2f838a8a42392f44e3eeec04e323ab743)
2043   [#6412](https://github.com/npm/npm/issues/6412) Improve the search strategy
2044   used by the npm shims for Windows to prioritize your own local npm installs.
2045   npm has really needed this tweak for a long time, so hammer on it and let us
2046   know if you run into issues, but with luck it will Just Work.
2047   ([@joaocgreis](https://github.com/joaocgreis))
2048 * [`204ebbb`](https://github.com/npm/npm/commit/204ebbb3e0cab696a429a878ceeb4a7e78ec2b94)
2049   [#8751](https://github.com/npm/npm/issues/8751)
2050   [#7333](https://github.com/npm/npm/issues/7333) Keep [autorun
2051   scripts](https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx) from
2052   interfering with npm package and lifecycle script execution on Windows by
2053   adding `/d` and `/s` when invoking `cmd.exe`.
2054   ([@saper](https://github.com/saper))
2055
2056 #### IT SEEMED LIKE AN IDEA AT THE TIME
2057
2058 * [`286f3d9`](https://github.com/npm/npm/commit/286f3d97103812f0fd84b70352addbe899e258f9)
2059   [#9201](https://github.com/npm/npm/pull/9201) For a while npm was building
2060   HTML partials for use on [`docs.npmjs.com`](https://docs.npmjs.com), but we
2061   weren't actually using them. Stop building them, which makes running the full
2062   test suite and installation process around a third faster.
2063   ([@isaacs](https://github.com/isaacs))
2064
2065 #### A SINGLE LONELY DEPENDENCY UPGRADE
2066
2067 * [`b343b95`](https://github.com/npm/npm/commit/b343b956ef777e321e4251ddc96ec6d80827d9e2)
2068   `request@2.61.0`: Bug fixes and keep-alive tweaks.
2069   ([@simov](https://github.com/simov))
2070
2071 ### v2.14.0 (2015-08-13):
2072
2073 #### IT'S HERE! KINDA!
2074
2075 This release adds support for teens and orcs (err, teams and organizations) to
2076 the npm CLI! Note that the web site and registry-side features of this are
2077 still not ready for public consumption.
2078
2079 A beta should be starting in the next couple of weeks, and the features
2080 themselves will become public once all that's done. Keep an eye out for more
2081 news!
2082
2083 All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9011):
2084
2085 * [`6424170`](https://github.com/npm/npm/commit/6424170fc17c666a6efc090370ec691e0cab1792)
2086   Added new `npm team` command and subcommands.
2087   ([@zkat](https://github.com/zkat))
2088 * [`52220d1`](https://github.com/npm/npm/commit/52220d146d474ec29b683bd99c06f75cbd46a9f4)
2089   Added documentation for new `npm team` command.
2090   ([@zkat](https://github.com/zkat))
2091 * [`4e66830`](https://github.com/npm/npm/commit/4e668304850d02df8eb27a779fda76fe5de645e7)
2092   Updated `npm access` to support teams and organizations.
2093   ([@zkat](https://github.com/zkat))
2094 * [`ea3eb87`](https://github.com/npm/npm/commit/ea3eb8733d9fa09ce34106b1b19fb1a8f95844a5)
2095   Gussied up docs for `npm access` with new commands.
2096   ([@zkat](https://github.com/zkat))
2097 * [`6e0b431`](https://github.com/npm/npm/commit/6e0b431c1de5e329c86e57d097aa88ebfedea864)
2098   Fix up `npm whoami` to make the underlying API usable elsewhere.
2099   ([@zkat](https://github.com/zkat))
2100 * [`f29c931`](https://github.com/npm/npm/commit/f29c931012ce5ccd69c29d83548f27e443bf7e62)
2101   `npm-registry-client@7.0.1`: Upgrade `npm-registry-client` API to support
2102   `team` and `access` calls against the registry.
2103   ([@zkat](https://github.com/zkat))
2104
2105 #### A FEW EXTRA VERSION BUMPS
2106
2107 * [`c977e12`](https://github.com/npm/npm/commit/c977e12cbfa50c2f52fc807f5cc19ba1cc1b39bf)
2108   `init-package-json@1.8.0`: Checks for some `npm@3` metadata.
2109   ([@iarna](https://github.com/iarna))
2110 * [`5c8c9e5`](https://github.com/npm/npm/commit/5c8c9e5ae177ba7d0d298cfa42f3fc7f0271e4ec)
2111   `columnify@1.5.2`: Updated some dependencies.
2112   ([@timoxley](https://github.com/timoxley))
2113 * [`5d56742`](https://github.com/npm/npm/commit/5d567425768b75aeab402c817a53d8b2bc60d8de)
2114   `chownr@1.0.1`: Tests, docs, and minor style nits.
2115   ([@isaacs](https://github.com/isaacs))
2116
2117 #### ALSO A DOC FIX
2118
2119 * [`846fcc7`](https://github.com/npm/npm/commit/846fcc79b86984b109a97366b0422f995a45f8bf)
2120   [`#9200`](https://github.com/npm/npm/pull/9200) Remove single quotes
2121   around semver range, thus making it valid semver.
2122   ([@KenanY](https://github.com/KenanY))
2123
2124 ### v2.13.5 (2015-08-07):
2125
2126 This is another quiet week for the `npm@2` release.
2127 [@zkat](https://github.com/zkat) has been working hard on polishing the CLI
2128 bits of the registry's new feature to support direct management of teams and
2129 organizations, and [@iarna](https://github.com/iarna) continues to work through
2130 the list of issues blocking the general release of `npm@3`, which is looking
2131 more and more solid all the time.
2132
2133 [@othiym23](https://github.com/othiym23) and [@zkat](https://github.com/zkat)
2134 have also been at this week's Node.js / io.js [collaborator
2135 summit](https://github.com/nodejs/summit/tree/master), both as facilitators and
2136 participants. This is a valuable opportunity to get some face time with other
2137 contributors and to work through a bunch of important discussions, but it does
2138 leave us feeling kind of sleepy. Running meetings is hard!
2139
2140 What does that leave for this release? A few of the more tricky bug fixes that
2141 have been sitting around for a little while now, and a couple dependency
2142 upgrades. Nothing too fancy, but most of these were contributed by developers
2143 like _you_, which we think is swell. Thanks!
2144
2145 #### BUG FIXES
2146
2147 * [`d7271b8`](https://github.com/npm/npm/commit/d7271b8226712479cdd339bf85faf7e394923e0d)
2148   [#4530](https://github.com/npm/npm/issues/4530) The bash completion script
2149   for npm no longer alters global completion behavior around word breaks.
2150   ([@whitty](https://github.com/whitty))
2151 * [`c9ce294`](https://github.com/npm/npm/commit/c9ce29415a0a8fc610690b6e9d91b64d6e36cfcc)
2152   [#7198](https://github.com/npm/npm/issues/7198) When setting up dependencies
2153   to be shared via `npm link <package>`, only run the lifecycle scripts during
2154   the original link, not when running `npm link <package>` or `npm install
2155   --link` against them. ([@murgatroid99](https://github.com/murgatroid99))
2156 * [`422da66`](https://github.com/npm/npm/commit/422da664bd3ce71313da447f170507faf5aac46a)
2157   [#9108](https://github.com/npm/npm/issues/9108) Clear up minor confusion
2158   around wording in `bundledDependencies` section of `package.json` docs.
2159   ([@derekpeterson](https://github.com/derekpeterson))
2160 * [`6b42d99`](https://github.com/npm/npm/commit/6b42d99460885e715772d3487b1c548d2bc8a738)
2161   [#9146](https://github.com/npm/npm/issues/9146) Include scripts that run for
2162   `preversion`, `version`, and `postversion` in the section for lifecycle
2163   scripts rather than the generic `npm run-script` output.
2164   ([@othiym23](https://github.com/othiym23))
2165
2166 #### NOPE, NOT DONE WITH DEPENDENCY UPDATES
2167
2168 * [`91a48bb`](https://github.com/npm/npm/commit/91a48bb5ef5a990781c86f8b69b8a32cf4fac2d9)
2169   `chmodr@1.0.1`: Ignore symbolic links when recursively changing mode, just
2170   like the Unix command. ([@isaacs](https://github.com/isaacs))
2171 * [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e)
2172   `nock@2.10.0` ([@pgte](https://github.com/pgte))
2173
2174 ### v2.13.4 (2015-07-30):
2175
2176 #### JULY ENDS ON A FAIRLY QUIET NOTE
2177
2178 Hey everyone! I hope you've had a great week. We're having a fairly small
2179 release this week while we wrap up Teams and Orgs (or, as we've taken to calling
2180 it internally, _Teens and Orcs_).
2181
2182 In other exciting news, a bunch of us are gonna be at the [Node.js Collaborator
2183 Summit](https://github.com/nodejs/summit/issues/1), and you can also find us at
2184 [wafflejs](https://wafflejs.com/) on Wednesday. Hopefully we'll be seeing some
2185 of you there. :)
2186
2187 #### THE PATCH!!!
2188
2189 So here it is. The patch. Hope it helps. (Thanks,
2190 [@ktarplee](https://github.com/ktarplee)!)
2191
2192 * [`2e58c48`](https://github.com/npm/npm/commit/2e58c4819e3cafe4ae23ab7f4a520fe09258cfd7)
2193   [#9033](https://github.com/npm/npm/pull/9033) `npm version` now works on git
2194   submodules
2195   ([@ktarplee](https://github.com/ktarplee))
2196
2197 #### OH AND THERE'S A DEV DEPENDENCIES UPDATE
2198
2199 Hooray.
2200
2201 * [`d204683`](https://github.com/npm/npm/commit/d2046839d471322e61e3ceb0f00e78e5c481f967)
2202   nock@2.9.1
2203   ([@pgte](https://github.com/pgte))
2204
2205 ### v2.13.3 (2015-07-23):
2206
2207 #### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES
2208
2209 It's pretty hard to outdo last week's release buuuuut~ I promise I'll have a
2210 treat when we release our shiny new **Teams and Organizations** feature! :D
2211 (Coming Soon™). It'll be a real *gem*.
2212
2213 That means it's a pretty low-key release this week. We got some nice
2214 documentation tweaks, a few bugfixes, and other such things, though!
2215
2216 Oh, and a _bunch of version bumps_. Thanks, `semver`!
2217
2218 #### IT'S THE LITTLE THINGS THAT MATTER
2219
2220 * [`2fac6ae`](https://github.com/npm/npm/commit/2fac6aeffefba2934c3db395b525d931599c34d8)
2221   [#9012](https://github.com/npm/npm/issues/9012) A convenience for releases --
2222   using the globally-installed npm before now was causing minor annoyances, so
2223   we just use the exact same npm we're releasing to build the new release.
2224   ([@zkat](https://github.com/zkat))
2225
2226 #### WHAT DOES THIS BUTTON DO?
2227
2228 There's a couple of doc updates! The last one might be interesting.
2229
2230 * [`4cd3205`](https://github.com/npm/npm/commit/4cd32050c0f89b7f1ae486354fa2c35eea302ba5)
2231   [#9002](https://github.com/npm/npm/issues/9002) Updated docs to list the
2232   various files that npm automatically includes and excludes, regardless of
2233   settings.
2234   ([@SimenB](https://github.com/SimenB))
2235 * [`cf09e75`](https://github.com/npm/npm/commit/cf09e754931739af32647d667b671e72a4c79081)
2236   [#9022](https://github.com/npm/npm/issues/9022) Document the `"access"` field
2237   in `"publishConfig"`. Did you know you don't need to use `--access=public`
2238   when publishing scoped packages?! Just put it in your `package.json`!
2239   Go refresh yourself on scopes packages by [checking our docs](https://docs.npmjs.com/getting-started/scoped-packages) on them.
2240   ([@boennemann](https://github.com/boennemann))
2241 * [`bfd73da`](https://github.com/npm/npm/commit/bfd73da33349cc2afb8278953b2ae16ea95023de)
2242   [#9013](https://github.com/npm/npm/issues/9013) fixed typo in changelog
2243   ([@radarhere](https://github.com/radarhere))
2244
2245 #### THE SEMVER MAJOR VERSION APOCALYPSE IS UPON US
2246
2247 Basically, `semver` is up to `@5`, and that meant we needed to go in an update a
2248 bunch of our dependencies manually. `node-gyp` is still pending update, since
2249 it's not ours, though!
2250
2251 * [`9232e58`](https://github.com/npm/npm/commit/9232e58d54c032c23716ef976023d36a42bfdcc9)
2252   [#8972](https://github.com/npm/npm/issues/8972) `init-package-json@1.7.1`
2253   ([@othiym23](https://github.com/othiym23))
2254 * [`ba44f6b`](https://github.com/npm/npm/commit/ba44f6b4201a4faee025341b123e372d8f45b6d9)
2255   [#8972](https://github.com/npm/npm/issues/8972) `normalize-package-data@2.3.1`
2256   ([@othiym23](https://github.com/othiym23))
2257 * [`3901d3c`](https://github.com/npm/npm/commit/3901d3cf191880bb4420b1d6b8aedbcd8fc26cdf)
2258   [#8972](https://github.com/npm/npm/issues/8972) `npm-install-checks@1.0.6`
2259   ([@othiym23](https://github.com/othiym23))
2260 * [`ffcc7dd`](https://github.com/npm/npm/commit/ffcc7dd12f8bb94ff0f64c465c57e460b3f24a24)
2261   [#8972](https://github.com/npm/npm/issues/8972) `npm-package-arg@4.0.2`
2262   ([@othiym23](https://github.com/othiym23))
2263 * [`7128f9e`](https://github.com/npm/npm/commit/7128f9ec10c0c8482087511b716dbddb54249626)
2264   [#8972](https://github.com/npm/npm/issues/8972) `npm-registry-client@6.5.1`
2265   ([@othiym23](https://github.com/othiym23))
2266 * [`af28911`](https://github.com/npm/npm/commit/af28911ecd54a844f848c6ae41887097d6aa2f3b)
2267   [#8972](https://github.com/npm/npm/issues/8972) `read-installed@4.0.2`
2268   ([@othiym23](https://github.com/othiym23))
2269 * [`3cc817a`](https://github.com/npm/npm/commit/3cc817a0f34f698b580ff6ff02308700efc54f7c)
2270   [#8972](https://github.com/npm/npm/issues/8972) node-gyp needs its own version
2271   of semver
2272   ([@othiym23](https://github.com/othiym23))
2273 * [`f98eccc`](https://github.com/npm/npm/commit/f98eccc6e3a6699ca0aa9ecbad93a3b995583871)
2274   [#8972](https://github.com/npm/npm/issues/8972) `semver@5.0.1`: Stop including
2275   browser builds.
2276   ([@isaacs](https://github.com/isaacs))
2277
2278 #### \*BUMP\*
2279
2280 And some other version bumps for good measure.
2281
2282 * [`254ecfb`](https://github.com/npm/npm/commit/254ecfb04f026c2fd16427db01a53600c1892c8b)
2283   [#8990](https://github.com/npm/npm/issues/8990) `marked-man@0.1.5`: Fixes an
2284   issue with documentation rendering where backticks in 2nd-level headers would
2285   break rendering (?!?!)
2286   ([@steveklabnik](https://github.com/steveklabnik))
2287 * [`79efd79`](https://github.com/npm/npm/commit/79efd79ac216da8cee8636fb2ed926b0196a4eb6)
2288   `minimatch@2.0.10`: A pattern like `'*.!(x).!(y)'` should not match a name
2289   like `'a.xyz.yab'`.
2290   ([@isaacs](https://github.com/isaacs))
2291 * [`39c7dc9`](https://github.com/npm/npm/commit/39c7dc9a4e17cd35a5ed882ba671821c9a900f9e)
2292   `request@2.60.0`: A few bug fixes and doc updates.
2293   ([@simov](https://github.com/simov))
2294 * [`72d3c3a`](https://github.com/npm/npm/commit/72d3c3a9e1e461608aa21b14c01a650333330da9)
2295   `rimraf@2.4.2`: Minor doc and dep updates
2296   ([@isaacs](https://github.com/isaacs))
2297 * [`7513035`](https://github.com/npm/npm/commit/75130356a06f5f4fbec3786aac9f9f0b36dfe010)
2298   `nock@2.9.1`
2299   ([@pgte](https://github.com/pgte))
2300 * [`3d9aa82`](https://github.com/npm/npm/commit/3d9aa82260f0643a32c13d0c1ed16f644b6fd4ab)
2301   Fixes this thing where Kat decided to save `nock` as a regular dependency ;)
2302   ([@othiym23](https://github.com/othiym23))
2303
2304 ### v2.13.2 (2015-07-16):
2305
2306 #### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME!
2307
2308 Kat: Hooray! Full team again, and we've got a pretty small patch  release this
2309 week, about everyone's favorite recurring issue: git URLs!
2310
2311 Rebecca: No Way! Again?
2312
2313 Kat: The ride never ends! In the meantime, there's some fun, exciting work in
2314 the background to get orgs and teams out the door. Keep an eye out for news. :)
2315
2316 Rebecca: And make sure to keep an eye out for patches for the super-fresh
2317 `npm@3`!
2318
2319 #### LET'S GIT INKY
2320
2321 Rebecca: So what's this about another git URL issue?
2322
2323 Kat: Welp, I apparently broke backwards-compatibility on what are actually
2324 invalid `git+https` URLs! So I'm making it work, but we're gonna deprecate URLs
2325 that look like `git+https://user@host:path/is/here`.
2326
2327 Rebecca: What should we use instead?!
2328
2329 Kat: Just do me a solid and use `git+ssh://user@host:path/here` or
2330 `git+https://user@host/absolute/https/path` instead!
2331
2332 * [`769f06e`](https://github.com/npm/npm/commit/769f06e5455d7a9fc738379de2e05868df0dab6f)
2333   Updated tests for `getResolved` so the URLs are run through
2334   `normalize-git-url`.
2335   ([@zkat](https://github.com/zkat))
2336 * [`edbae68`](https://github.com/npm/npm/commit/edbae685bf48971e878ced373d6825fc1891ee47)
2337   [#8881](https://github.com/npm/npm/issues/8881) Added tests to verify that `git+https:` URLs are handled compatibly.
2338   ([@zkat](https://github.com/zkat))
2339
2340 #### NEWS FLASH! DOCUMENTATION IMPROVEMENTS!
2341
2342 * [`bad4e014`](https://github.com/npm/npm/commit/bad4e0143cc95754a682f1da543b2b4e196e924b)
2343   [#8924](https://github.com/npm/npm/pull/8924) Make sure documented default
2344   values in `lib/cache.js` properly correspond to current code.
2345   ([@watilde](https://github.com/watilde))
2346 * [`e7a11fd`](https://github.com/npm/npm/commit/e7a11fdf70e333cdfe3dac94a1a30907adb76d59)
2347   [#8036](https://github.com/npm/npm/issues/8036) Clarify the documentation for
2348   `.npmrc` to clarify that it's not read at the project level when doing global
2349   installs.
2350   ([@espadrine](https://github.com/espadrine))
2351
2352 #### STAY FRESH~
2353
2354 Kat: That's it for npm core changes!
2355
2356 Rebecca: Great! Let's look at the fresh new dependencies, then!
2357
2358 Kat: See you all next week!
2359
2360 Both: Stay Freeesh~
2361
2362 (some cat form of Forrest can be seen snoring in the corner)
2363
2364 * [`bfa1f45`](https://github.com/npm/npm/bfa1f45ee760d05039557d2245b7e3df9fda8def)
2365   `normalize-git-url@3.0.1`: Fixes url normalization such that `git+https:`
2366   accepts scp syntax, but get converted into absolute-path `https:` URLs. Also
2367   fixes scp syntax so you can have absolute paths after the `:`
2368   (`git@myhost.org:/some/absolute/place.git`)
2369   ([@zkat](https://github.com/zkat))
2370 * [`6f757d2`](https://github.com/npm/npm/6f757d22b53f91da0bebec6b5d16c1f4dbe130b4)
2371   `glob@5.0.15`: Better handling of ENOTSUP
2372   ([@isaacs](https://github.com/isaacs))
2373 * [`0920819`](https://github.com/npm/npm/09208197fb8b0c6d5dbf6bd7f59970cf366de989)
2374   `node-gyp@2.0.2`: Fixes an issue with long paths on Win32
2375   ([@TooTallNate](https://github.com/TooTallNate))
2376
2377 ### v2.13.1 (2015-07-09):
2378
2379 #### KAUAI WAS NICE. I MISS IT.
2380
2381 But Forrest's still kinda on vacation, and not just mentally, because he's
2382 hanging out with the fine meatbags at CascadiaFest. Enjoy this small bug
2383 release.
2384
2385 #### MAKE OURSELVES HAPPY
2386
2387 * [`40981f2`](https://github.com/npm/npm/commit/40981f2e0c9c12bb003ccf188169afd1d201f5af)
2388   [#8862](https://github.com/npm/npm/issues/8862) Make the lifecycle's safety
2389   check work with scoped packages. ([@tcort](https://github.com/tcort))
2390 * [`5125856`](https://github.com/npm/npm/commit/512585622481dbbda9a0306932468d59efaff658)
2391   [#8855](https://github.com/npm/npm/issues/8855) Make dependency versions of
2392   `"*"` match `"latest"` when all versions are prerelease.
2393   ([@iarna](https://github.com/iarna))
2394 * [`22fdc1d`](https://github.com/npm/npm/commit/22fdc1d52602ba7098af978c75fca8f7d1060141)
2395   Visually emphasize the correct way to write lifecycle scripts.
2396   ([@josh-egan](https://github.com/josh-egan))
2397
2398 #### MAKE TRAVIS HAPPY
2399
2400 * [`413c3ac`](https://github.com/npm/npm/commit/413c3ac2ab2437f3011c6ca0d1630109ec14e604)
2401   Use npm's `2.x` branch for testing its `2.x` branch.
2402   ([@iarna](https://github.com/iarna))
2403 * [`7602f64`](https://github.com/npm/npm/commit/7602f64826f7a465d9f3a20bd87a376d992607e6)
2404   Don't prompt for GnuPG passphrase in version lifecycle tests.
2405   ([@othiym23](https://github.com/othiym23))
2406
2407 #### MAKE `npm outdated` HAPPY
2408
2409 * [`d338668`](https://github.com/npm/npm/commit/d338668601d1ebe5247a26237106e80ea8cd7f48)
2410   [#8796](https://github.com/npm/npm/issues/8796) `fstream-npm@1.0.4`: When packing the
2411   package tarball, npm no longer crashes for packages with certain combinations of
2412   `.npmignore` entries, `.gitignore` entries, and lifecycle scripts.
2413   ([@iarna](https://github.com/iarna))
2414 * [`dbe7c9c`](https://github.com/npm/npm/commit/dbe7c9c74734be870d16dd61b9e7f746123011f6)
2415   `nock@2.7.0`: Add matching based on query strings.
2416   ([@othiym23](https://github.com/othiym23))
2417
2418 There are new versions of `strip-ansi` and `ansi-regex`, but npm only uses them
2419 indirectly, so we pushed them down into their dependencies where they can get
2420 updated at their own pace.
2421
2422 * [`06b6ca5`](https://github.com/npm/npm/commit/06b6ca5b5333025f10c8d901628859bd4678e027)
2423   undeduplicate `ansi-regex` ([@othiym23](https://github.com/othiym23))
2424 * [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9)
2425   undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23))
2426
2427 ### v2.13.0 (2015-07-02):
2428
2429 #### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS!
2430
2431 Well, not _everything_. Just a couple of goodies, like the new `npm ping`
2432 command, and the ability to add files to the commits created by `npm version`
2433 with the new version hooks. There's also a couple of bugfixes in `npm` itself
2434 and some of its dependencies. Here we go!
2435
2436 #### YES HELLO THIS IS NPM REGISTRY SORRY NO DOG HERE
2437
2438 Yes, that's right! We now have a dedicated `npm ping` command. It's super simple
2439 and super easy. You ping. We tell you whether you pinged right by saying hello
2440 right back. This should help out folks dealing with things like proxy issues or
2441 other registry-access debugging issues. Give it a shot!
2442
2443 This addresses [#5750](https://github.com/npm/npm/issues/5750), and will help
2444 with the `npm doctor` stuff described in
2445 [#6756](https://github.com/npm/npm/issues/6756).
2446
2447 * [`f1f7a85`](https://github.com/npm/npm/commit/f1f7a85)
2448   Add ping command to CLI
2449   ([@michaelnisi](https://github.com/michaelnisi))
2450 * [`8cec629`](https://github.com/npm/npm/commit/8cec629)
2451   Add ping command to npm-registry-client
2452   ([@michaelnisi](https://github.com/michaelnisi))
2453 * [`0c0c92d`](https://github.com/npm/npm/0c0c92d)
2454   Fixed ping command issues (added docs, tests, fixed minor bugs, etc)
2455   ([@zkat](https://github.com/zkat))
2456
2457 #### I'VE WANTED THIS FOR `version` SINCE LIKE LITERALLY FOREVER AND A DAY
2458
2459 Seriously! This patch lets you add files to the `version` commit before it's
2460 made, So you can add additional metadata files, more automated changes to
2461 `package.json`, or even generate `CHANGELOG.md` automatically pre-commit if
2462 you're into that sort of thing. I'm so happy this is there I can't even. Do you
2463 have other fun usecases for this? Tell
2464 [npmbot (@npmjs)](http://twitter.com/npmjs) about it!
2465
2466 * [`582f170`](https://github.com/npm/npm/commit/582f170)
2467   [#8620](https://github.com/npm/npm/issues/8620) version: Allow scripts to add
2468   files to the commit.
2469   ([@jamestalmage](https://github.com/jamestalmage))
2470
2471 #### ALL YOUR FILE DESCRIPTORS ARE BELONG TO US
2472
2473 We've had problems in the past with things like `EMFILE` errors popping up when
2474 trying to install packages with a bunch of dependencies. Isaac patched up
2475 [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to handle this case
2476 better, so we should be seeing fewer of those.
2477
2478 * [`022691a`](https://github.com/npm/npm/commit/022691a)
2479   `graceful-fs@4.1.2`: Updated so we can monkey patch globally.
2480   ([@isaacs](https://github.com/isaacs))
2481 * [`c9fb0fd`](https://github.com/npm/npm/commit/c9fb0fd)
2482   Globally monkey-patch graceful-fs. This should fix some errors when installing
2483   packages with lots of dependencies.
2484   ([@isaacs](https://github.com/isaacs))
2485
2486 #### READ THE FINE DOCS. THEY'VE IMPROVED
2487
2488 * [`5587d0d`](https://github.com/npm/npm/commit/5587d0d)
2489   Nice clarification for `directories.bin`
2490   ([@ujane](https://github.com/ujane))
2491 * [`20673c7`](https://github.com/npm/npm/commit/20673c7)
2492   Hey, Windows folks! Check out
2493   [`nvm-windows`](https://github.com/coreybutler/nvm-windows)
2494   ([@ArtskydJ](https://github.com/ArtskydJ))
2495
2496 #### MORE NUMBERS! MORE VALUE!
2497
2498 * [`5afa2d5`](https://github.com/npm/npm/commit/5afa2d5)
2499   `validate-npm-package-name@2.2.2`: Documented package name rules in README
2500   ([@zeusdeux](https://github.com/zeusdeux))
2501 * [`021f4d9`](https://github.com/npm/npm/commit/021f4d9)
2502   `rimraf@2.4.1`: [#74](https://github.com/isaacs/rimraf/issues/74) Use async
2503   function for bin (to better handle Window's `EBUSY`)
2504   ([@isaacs](https://github.com/isaacs))
2505 * [`5223432`](https://github.com/npm/npm/commit/5223432)
2506   `osenv@0.1.3`: Use `os.homedir()` polyfill for more reliable output. io.js
2507   added the function and the polyfill does a better job than the prior solution.
2508   ([@sindresorhus](https://github.com/sindresorhus))
2509 * [`8ebbc90`](https://github.com/npm/npm/commit/8ebbc90)
2510   `npm-cache-filename@1.0.2`: Make sure different git references get different
2511   cache folders. This should prevent `foo/bar#v1.0` and `foo/bar#master` from
2512   sharing the same cache folder.
2513   ([@tomekwi](https://github.com/tomekwi))
2514 * [`367b854`](https://github.com/npm/npm/commit/367b854)
2515   `lru-cache@2.6.5`: Minor test/typo changes
2516   ([@isaacs](https://github.com/isaacs))
2517 * [`9fcae61`](https://github.com/npm/npm/commit/9fcae61)
2518   `glob@5.0.13`: Tiny doc change + stop firing 'match' events for ignored items.
2519   ([@isaacs](https://github.com/isaacs))
2520
2521 #### OH AND ONE MORE THING
2522
2523 * [`7827249`](https://github.com/npm/npm/commit/7827249)
2524   `PeerDependencies` errors now include the package version.
2525   ([@NickHeiner](https://github.com/NickHeiner))
2526
2527 ### v2.12.1 (2015-06-25):
2528
2529 #### HEY WHERE DID EVERYBODY GO
2530
2531 I keep [hearing some commotion](https://github.com/npm/npm/releases/tag/v3.0.0).
2532 Is there something going on? Like, a party or something? Anyway, here's a small
2533 release with at least two significant bug fixes, at least one of which some of
2534 you have been waiting for for quite a while.
2535
2536 #### REMEMBER WHEN I SAID "REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?"?
2537
2538 `npm@2.12.0` has a change that introduces a fix for a permissions problem
2539 whereby the `_locks` directory in the cache directory can up being owned by
2540 root. The fix in 2.12.0 takes care of that problem, but introduces a new
2541 problem for Windows users where npm tries to call `process.getuid()`, which
2542 doesn't exist on Windows. It was easy enough to fix (but more or less
2543 impossible to test, thanks to all the external dependencies involved with
2544 permissions and platforms and whatnot), but as a result, Windows users might
2545 want to skip `npm@2.12.0` and go straight to `npm@2.12.1`. Sorry about that!
2546
2547 * [`7e5da23`](https://github.com/npm/npm/commit/7e5da238ee869201fdb9027c27b79b0f76b440a8)
2548   When using the new, "fixed" cache directory creator, be extra-careful to not
2549   call `process.getuid()` on platforms that lack it.
2550   ([@othiym23](https://github.com/othiym23))
2551
2552 #### WHEW! ALL DONE FIXING GIT FOREVER!
2553
2554 New npm CLI team hero [@zkat](https://github.com/zkat) has finally (FINALLY)
2555 fixed the regression somebody (hi!) introduced a couple months ago whereby git
2556 URLs of the format `git+ssh://user@githost.com:org/repo.git` suddenly stopped
2557 working, and also started being saved (and cached) incorrectly. I am 100% sure
2558 there are absolutely no more bugs in the git caching code at all ever. Mm hm.
2559 Yep. Pretty sure. Maybe. Hmm... I hope.
2560
2561 *Sighs audibly.*
2562
2563 [Let us know](http://github.com/npm/npm/issues/new) if we broke something else
2564 with this fix.
2565
2566 * [`94ca4a7`](https://github.com/npm/npm/commit/94ca4a711619ba8e40ce3d20bc42b13cdb7611b7)
2567   [#8031](https://github.com/npm/npm/issues/8031) Even though
2568   `git+ssh://user@githost.com:org/repo.git` isn't a URL, treat it like one for
2569   the purposes of npm. ([@zkat](https://github.com/zkat))
2570 * [`e7f56e5`](https://github.com/npm/npm/commit/e7f56e5a97fcf1c52d5c5bee71303b0126129815)
2571   [#8031](https://github.com/npm/npm/issues/8031) `normalize-git-url@2.0.0`:
2572   Handle git URLs (and URL-like remote refs) in a manner consistent with npm's
2573   docs. ([@zkat](https://github.com/zkat))
2574
2575 #### YEP, THERE ARE STILL DEPENDENCY UPGRADES
2576
2577 * [`679bf47`](https://github.com/npm/npm/commit/679bf4745ac2cfbb01c9ce273e189807fd04fa33)
2578   [#40](http://github.com/npm/read-installed/issues/40) `read-installed@4.0.1`:
2579   Handle prerelease versions in top-level dependencies not in `package.json`
2580   without marking those packages as invalid.
2581   ([@benjamn](https://github.com/benjamn))
2582 * [`3a67410`](https://github.com/npm/npm/commit/3a6741068c9119174c920496778aeee870ebdac0)
2583   `tap@1.3.1` ([@isaacs](https://github.com/isaacs))
2584 * [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a)
2585   `nopt@3.0.3` ([@isaacs](https://github.com/isaacs))
2586
2587 ### v2.12.0 (2015-06-18):
2588
2589 #### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?
2590
2591 About [a million people](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+EACCES+_locks)
2592 have filed issues related to having a tough time using npm after they've run
2593 npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all
2594 those permissions problems ages ago! Use this one weird trick and you'll never
2595 have to deal with this again!"
2596
2597 Well, uh, if you run npm with root the first time you run npm on a machine, it
2598 turns out that the directory npm uses to store lockfiles ends up being owned by
2599 the wrong user (almost always root), and that can, well, it can cause problems
2600 sometimes. By which I mean every time you run npm without being root it'll barf
2601 with `EACCES` errors. Whoops!
2602
2603 This is an obnoxious regression, and to prevent it from recurring, we've made
2604 it so that the cache, cached git remotes, and the lockfile directories are all
2605 created and maintained using the same utilty module, which not only creates the
2606 relevant paths with the correct permissions, but will fix the permissions on
2607 those directories (if it can) when it notices that they're broken. An `npm
2608 install` run as root ought to be sufficient to fix things up (and if that
2609 doesn't work, first tell us about it, and then run `sudo chown -R $(whoami)
2610 $HOME/.npm`)
2611
2612 Also, I apologize for inadvertently gaslighting any of you by claiming this bug
2613 wasn't actually a bug. I do think we've got this permanently dealt with now,
2614 but I'll be paying extra-close attention to permissions issues related to the
2615 cache for a while.
2616
2617 * [`85d1a53`](https://github.com/npm/npm/commit/85d1a53d7b5e0fc04823187e522ae3711ede61fa)
2618   Set permissions on lock directory to the owner of the process.
2619   ([@othiym23](https://github.com/othiym23))
2620
2621 #### I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT
2622
2623 That's not literally true. We spent very little time discussing SPDX,
2624 [@kemitchell](https://github.com/kemitchell) is a champ, and I had a lot of fun
2625 playing drum & bass to a mostly empty Boogie Barn and only ended up with one
2626 moderately severe cold for my pains. Another winner of a NodeConf! (I would
2627 probably wear a SPDX T-shirt if somebody gave me one, though.)
2628
2629 A bunch of us did have a spirited discussion of the basics of open-source
2630 intellectual property, and the convergence of me,
2631 [@kemitchell](https://github.com/kemitchell), and
2632 [@jandrieu](https://github.com/jandrieu) in one place allowed us to hammmer out
2633 a small but significant issue that had been bedeviling early adopters of the
2634 new SPDX expression syntax in `package.json` license fields: how to deal with
2635 packages that are left without a license on purpose.
2636
2637 Refer to [the docs](https://github.com/npm/npm/blob/16a3dd545b10f8a2464e2037506ce39124739b41/doc/files/package.json.md#license)
2638 for the specifics, but the short version is that instead of using
2639 `LicenseRef-LICENSE` for proprietary licenses, you can now use either
2640 `UNLICENSED` if you want to make it clear that you don't _want_ your software
2641 to be licensed (and want npm to stop warning you about this), or `SEE LICENSE
2642 IN <filename>` if there's a license with custom text you want to use. At some
2643 point in the near term, we'll be updating npm to verify that the mentioned
2644 file actually exists, but for now you're all on the honor system.
2645
2646 * [`4827fc7`](https://github.com/npm/npm/commit/4827fc784117c17f35dd9b51b21d1eff6094f661)
2647   [#8557](https://github.com/npm/npm/issues/8557)
2648   `normalize-package-data@2.2.1`: Allow `UNLICENSED` and `SEE LICENSE IN
2649   <filename>` in "license" field of `package.json`.
2650   ([@kemitchell](https://github.com/kemitchell))
2651 * [`16a3dd5`](https://github.com/npm/npm/commit/16a3dd545b10f8a2464e2037506ce39124739b41)
2652   [#8557](https://github.com/npm/npm/issues/8557) Document the new accepted
2653   values for the "license" field.
2654   ([@kemitchell](https://github.com/kemitchell))
2655 * [`8155311`](https://github.com/npm/npm/commit/81553119350deaf199e79e38e35b52a5c8ad206c)
2656   [#8557](https://github.com/npm/npm/issues/8557) `init-package-json@1.7.0`:
2657   Support new "license" field values at init time.
2658   ([@kemitchell](https://github.com/kemitchell))
2659
2660 #### SMALLISH BUG FIXES
2661
2662 * [`9d8cac9`](https://github.com/npm/npm/commit/9d8cac94a258db648a2b1069b1c8c6529c79d013)
2663   [#8548](https://github.com/npm/npm/issues/8548) Remove extraneous newline
2664   from `npm view` output, making it easier to use in shell scripts.
2665   ([@eush77](https://github.com/eush77))
2666 * [`765fd4b`](https://github.com/npm/npm/commit/765fd4bfca8ea3e2a4a399765b17eec40a3d893d)
2667   [#8521](https://github.com/npm/npm/issues/8521) When checking for outdated
2668   packages, or updating packages, raise an error when the registry is
2669   unreachable instead of silently "succeeding".
2670   ([@ryantemple](https://github.com/ryantemple))
2671
2672 #### SMALLERISH DOCUMENTATION TWEAKS
2673
2674 * [`5018335`](https://github.com/npm/npm/commit/5018335ce1754a9f771954ecbc1a93acde9b8c0a)
2675   [#8365](https://github.com/npm/npm/issues/8365) Add details about which git
2676   environment variables are whitelisted by npm.
2677   ([@nmalaguti](https://github.com/nmalaguti))
2678 * [`bed9edd`](https://github.com/npm/npm/commit/bed9edddfdcc6d22a80feab33b53e4ef9172ec72)
2679   [#8554](https://github.com/npm/npm/issues/8554) Fix typo in version docs.
2680   ([@rainyday](https://github.com/rainyday))
2681
2682 #### WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES
2683
2684 * [`7ce2f06`](https://github.com/npm/npm/commit/7ce2f06f6f34d469b1d2e248084d4f3fef10c05e)
2685   `request@2.58.0`: Refactor tunneling logic, and use `extend` instead of
2686   abusing `util._extend`. ([@simov](https://github.com/simov))
2687 * [`e6c6195`](https://github.com/npm/npm/commit/e6c61954aad42e20eec49745615c7640b2026a6c)
2688   `nock@2.6.0`: Refined interception behavior.
2689   ([@pgte](https://github.com/pgte))
2690 * [`9583cc3`](https://github.com/npm/npm/commit/9583cc3cb192c2fced006927cfba7cd37b588605)
2691   `fstream-npm@1.0.3`: Ensure that `main` entry in `package.json` is always
2692   included in the bundled package tarball.
2693   ([@coderhaoxin](https://github.com/coderhaoxin))
2694 * [`df89493`](https://github.com/npm/npm/commit/df894930f2716adac28740b29b2e863170919990)
2695   `fstream@1.0.7` ([@isaacs](https://github.com/isaacs))
2696 * [`9744049`](https://github.com/npm/npm/commit/974404934758124aa8ae5b54f7d5257c3bd6b588)
2697   `dezalgo@1.0.3`: `dezalgo` should be usable in the browser, and can be now
2698   that `asap` has been upgraded to be browserifiable.
2699   ([@mvayngrib](https://github.com/mvayngrib))
2700
2701 ### v2.11.3 (2015-06-11):
2702
2703 This was a very quiet week. This release was done by
2704 [@iarna](https://github.com/iarna), while the rest of the team hangs out at
2705 NodeConf Adventure!
2706
2707 #### TESTS IN 0.8 FAIL LESS
2708
2709 * [`5b3b3c2`](https://github.com/npm/npm/commit/5b3b3c2)
2710   [#8491](//github.com/npm/npm/pull/8491)
2711   Updates a test to use only 0.8 compatible features
2712   ([@watilde](https://github.com/watilde))
2713
2714 #### THE TREADMILL OF UPDATES NEVER CEASES
2715
2716 * [`9f439da`](https://github.com/npm/npm/commit/9f439da)
2717   `spdx@0.4.1`: License range updates
2718   ([@kemitchell](https://github.com/kemitchell))
2719 * [`2dd055b`](https://github.com/npm/npm/commit/2dd055b)
2720   `normalize-package-data@2.2.1`: Fixes a crashing bug when the package.json
2721   `scripts` property is not an object.
2722   ([@iarna](https://github.com/iarna))
2723 * [`e02e85d`](https://github.com/npm/npm/commit/e02e85d)
2724   `osenv@0.1.2`: Switches to using the `os-tmpdir` module instead of
2725   `os.tmpdir()` for greate consistency in behavior between node versions.
2726   ([@iarna](https://github.com/iarna))
2727 * [`a6f0265`](https://github.com/npm/npm/commit/a6f0265)
2728   `ini@1.3.4` ([@isaacs](https://github.com/isaacs))
2729 * [`7395977`](https://github.com/npm/npm/commit/7395977)
2730   `rimraf@2.4.0` ([@isaacs](https://github.com/isaacs))
2731
2732 ### v2.11.2 (2015-06-04):
2733
2734 Another small release this week, brought to you by the latest addition to the
2735 CLI team, [@zkat](https://github.com/zkat) (Hi, all!)
2736
2737 Mostly small documentation tweaks and version updates. Oh! And `npm outdated`
2738 is actually sorted now. Rejoice!
2739
2740 It's gonna be a while before we get another palindromic version number. Enjoy it
2741 while it lasts. :3
2742
2743 #### QUALITY OF LIFE HAS NEVER BEEN BETTER
2744
2745 * [`31aada4`](https://github.com/npm/npm/commit/31aada4ccc369c0903ff7f233f464955d12c6fe2)
2746   [#8401](https://github.com/npm/npm/issues/8401) `npm outdated` output is just
2747   that much nicer to consume now, due to sorting by name.
2748   ([@watilde](https://github.com/watilde))
2749 * [`458a919`](https://github.com/npm/npm/commit/458a91925d8b20c5e672ba71a86745aad654abaf)
2750   [#8469](https://github.com/npm/npm/pull/8469) Explicitly set `cwd` for
2751   `preversion`, `version`, and `postversion` scripts. This makes the scripts
2752   findable relative to the root dir.
2753   ([@alexkwolfe](https://github.com/alexkwolfe))
2754 * [`55d6d71`](https://github.com/npm/npm/commit/55d6d71562e979e745c9db88861cc39f99b9f3ec)
2755   Ensure package name and version are included in display during `npm version`
2756   lifecycle execution. Gets rid of those little `undefined`s in the console.
2757   ([@othiym23](https://github.com/othiym23))
2758
2759 #### WORDS HAVE NEVER BEEN QUITE THIS READABLE
2760
2761 * [`3901e49`](https://github.com/npm/npm/commit/3901e4974c800e7f9fba4a5b2ff88da1126d5ef8)
2762   [#8462](https://github.com/npm/npm/pull/8462) English apparently requires
2763   correspondence between indefinite articles and attached nouns.
2764   ([@Enet4](https://github.com/Enet4))
2765 * [`5a744e4`](https://github.com/npm/npm/commit/5a744e4b143ef7b2f50c80a1d96fdae4204d452b)
2766   [#8421](https://github.com/npm/npm/pull/8421) The effect of `npm prune`'s
2767   `--production` flag and how to use it have been documented a bit better.
2768   ([@foiseworth](https://github.com/foiseworth))
2769 * [`eada625`](https://github.com/npm/npm/commit/eada625993485f0a2c5324b06f02bfa0a95ce4bc)
2770   We've updated our `.mailmap` and `AUTHORS` files to make sure credit is given
2771   where credit is due. ([@othiym23](https://github.com/othiym23))
2772
2773 #### VERSION NUMBERS HAVE NEVER BEEN BIGGER
2774
2775 * [`c929fd1`](https://github.com/npm/npm/commit/c929fd1d0604b5878ed05706447e078d3e41f5b3)
2776   `readable-stream@1.1.13`: Manually deduped `v1.1.13` (streams3) to make
2777   deduping more reliable on `npm@<3`. ([@othiym23](https://github.com/othiym23))
2778 * [`a9b4b78`](https://github.com/npm/npm/commit/a9b4b78dcc85571fd1cdd737903f7f37a5e6a755)
2779   `request@2.57.0`: Replace dependency on IncomingMessage's `.client` with
2780   `.socket` as the former was deprecated in io.js 2.2.0.
2781   ([@othiym23](https://github.com/othiym23))
2782 * [`4b5e557`](https://github.com/npm/npm/commit/4b5e557a23cdefd521ad154111e3d4dcc81f1cdb)
2783   `abbrev@1.0.7`: Better testing, with coverage.
2784   ([@othiym23](https://github.com/othiym23))
2785 * [`561affe`](https://github.com/npm/npm/commit/561affee21df9bbea5a47298f2452f533be8f359)
2786   `semver@4.3.6`: .npmignore added for less cruft, and better testing, with coverage.
2787   ([@othiym23](https://github.com/othiym23))
2788 * [`60aef3c`](https://github.com/npm/npm/commit/60aef3cf5d84d757752db3eb8ede2cb385469e7b)
2789   `graceful-fs@3.0.8`: io.js fixes.
2790   ([@zkat](https://github.com/zkat))
2791 * [`f8bd453`](https://github.com/npm/npm/commit/f8bd453b1a1c46ba7666cb166595e8a011eae443)
2792   `config-chain@1.1.9`: Added MIT license to package.json
2793   ([@zkat](https://github.com/zkat))
2794
2795 ### v2.11.1 (2015-05-28):
2796
2797 This release brought to you from poolside at the Omni Amelia Island Resort and
2798 JSConf 2015, which is why it's so tiny.
2799
2800 #### CONFERENCE WIFI CAN'T STOP THESE BUG FIXES
2801
2802 * [`cf109a6`](https://github.com/npm/npm/commit/cf109a682f38a059a994da953d5c1b4aaece5e2f)
2803   [#8381](https://github.com/npm/npm/issues/8381) Documented a subtle gotcha
2804   with `.npmrc`, which is that it needs to have its permissions set such that
2805   only the owner can read or write the file.
2806   ([@colakong](https://github.com/colakong))
2807 * [`180da67`](https://github.com/npm/npm/commit/180da67c9fa53103d625e2f031626c2453c7ebcd)
2808   [#8365](https://github.com/npm/npm/issues/8365) Git 2.3 adds support for
2809   `GIT_SSH_COMMAND`, which allows you to pass an explicit git command (with,
2810   for example, a specific identity passed in on the command line).
2811     ([@nmalaguti](https://github.com/nmalaguti))
2812
2813 #### MY (VIRGIN) PINA COLADA IS GETTING LOW, BETTER UPGRADE THESE DEPENDENCIES
2814
2815 * [`b72de41`](https://github.com/npm/npm/commit/b72de41c5cc9f0c46d3fa8f062c75bd273641474)
2816   `node-gyp@2.0.0`: Use a newer version of `gyp`, and generally improve support
2817   for Visual Studios and Windows.
2818     ([@TooTallNate](https://github.com/TooTallNate))
2819 * [`8edbe21`](https://github.com/npm/npm/commit/8edbe210af41e8f248f5bb92c72de92f54fda3b1)
2820   `node-gyp@2.0.1`: Don't crash when Python's version doesn't parse as valid
2821   semver. ([@TooTallNate](https://github.com/TooTallNate))
2822 * [`ba0e0a8`](https://github.com/npm/npm/commit/ba0e0a845a4f29717aba566b416a27d1a22f5d08)
2823   `glob@5.0.10`: Add coverage to tests. ([@isaacs](https://github.com/isaacs))
2824 * [`7333701`](https://github.com/npm/npm/commit/7333701b5d4f01673f37d64992c63c4e15864d6d)
2825   `request@2.56.0`: Bug fixes and dependency upgrades.
2826   ([@simov](https://github.com/simov))
2827
2828 ### v2.11.0 (2015-05-21):
2829
2830 For the first time in a very long time, we've added new events to the life
2831 cycle used by `npm run-script`. Since running `npm version (major|minor|patch)`
2832 is typically the last thing many developers do before publishing their updated
2833 packages, it makes sense to add life cycle hooks to run tests or otherwise
2834 preflight the package before doing a full publish. Thanks, as always, to the
2835 indefatigable [@watilde](https://github.com/watilde) for yet another great
2836 usability improvement for npm!
2837
2838 #### FEATURELETS
2839
2840 * [`b07f7c7`](https://github.com/npm/npm/commit/b07f7c7c1e5021730b3c320f1b3a46e70f8a21ff)
2841   [#7906](https://github.com/npm/npm/issues/7906)
2842   Add new [`scripts`](https://github.com/npm/npm/blob/master/doc/misc/npm-scripts.md) to
2843   allow you to run scripts before and after
2844   the [`npm version`](https://github.com/npm/npm/blob/master/doc/cli/npm-version.md)
2845   command has run. This makes it easy to, for instance, require that your
2846   test suite passes before bumping the version by just adding `"preversion":
2847   "npm test"` to the scripts section of your `package.json`.
2848   ([@watilde](https://github.com/watilde))
2849 * [`8a46136`](https://github.com/npm/npm/commit/8a46136f42e416cbadb533bcf89d73d681ed421d)
2850   [#8185](https://github.com/npm/npm/issues/8185)
2851   When we get a "not found" error from the registry, we'll now check to see
2852   if the package name you specified is invalid and if so, give you a better
2853   error message. ([@thefourtheye](https://github.com/thefourtheye))
2854
2855 #### BUG FIXES
2856
2857 * [`9bcf573`](https://github.com/npm/npm/commit/9bcf5730bd0316f210dafea898afe9103849cea9)
2858   [#8324](https://github.com/npm/npm/pull/8324) On Windows, when you've configured a
2859   custom `node-gyp`, run it with node itself instead of using the default open action (which
2860   is almost never what you want). ([@bangbang93](https://github.com/bangbang93))
2861 * [`1da9b04`](https://github.com/npm/npm/commit/1da9b0411d3416c7fca17d08cbbcfca7ae86e92d)
2862   [#7195](https://github.com/npm/npm/issues/7195)
2863   [#7260](https://github.com/npm/npm/issues/7260) `npm-registry-client@6.4.0`:
2864   (Re-)allow publication of existing mixed-case packages (part 1).
2865   ([@smikes](https://github.com/smikes))
2866 * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646)
2867   [#7195](https://github.com/npm/npm/issues/7195)
2868   [#7260](https://github.com/npm/npm/issues/7260)
2869   `normalize-package-data@2.2.0`: (Re-)allow publication of existing mixed-case
2870   packages (part 2). ([@smikes](https://github.com/smikes))
2871
2872 #### DOCUMENTATION IMPROVEMENTS
2873
2874 * [`f62ee05`](https://github.com/npm/npm/commit/f62ee05333b141539a8e851c620dd2e82ff06860)
2875   [#8314](https://github.com/npm/npm/issues/8314) Update the README to warn
2876   folks away from using the CLI's internal API. For the love of glob, just use a
2877   child process to run the CLI! ([@claycarpenter](https://github.com/claycarpenter))
2878 * [`1093921`](https://github.com/npm/npm/commit/1093921c04db41ab46db24a170a634a4b2acd8d9)
2879   [#8279](https://github.com/npm/npm/pull/8279)
2880   Update the documentation to note that, yes, you can publish scoped packages to the
2881   public registry now! ([@mantoni](https://github.com/mantoni))
2882 * [`f87cde5`](https://github.com/npm/npm/commit/f87cde5234a760d3e515ffdaacaed6f5b71dbf44)
2883   [#8292](https://github.com/npm/npm/pull/8292)
2884   Fix typo in an example and grammar in the description in
2885   the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md).
2886   ([@vshih](https://github.com/vshih))
2887 * [`d3526ce`](https://github.com/npm/npm/commit/d3526ceb09a0c29fdb7d4124536ae09057d033e7)
2888   Improve the formatting in
2889   the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md).
2890   ([@othiym23](https://github.com/othiym23))
2891 * [`19fe6d2`](https://github.com/npm/npm/commit/19fe6d20883e28956ff916fe4dae42d73ee6195b)
2892   [#8311](https://github.com/npm/npm/pull/8311)
2893   Update [README.md](https://github.com/npm/npm#readme) to use syntax highlighting in
2894   its code samples and bits of shell scripts. ([@SimenB](https://github.com/SimenB))
2895
2896 #### DEPENDENCY UPDATES! ALWAYS AND FOREVER!
2897
2898 * [`fc52160`](https://github.com/npm/npm/commit/fc52160d0223226fffe4166f42fdfd3b899b3c1e)
2899   [#4700](https://github.com/npm/npm/issues/4700) [#5044](https://github.com/npm/npm/issues/5044)
2900   `init-package-json@1.6.0`: Make entering an invalid version while running `npm init` give
2901   you an immediate error and prompt you to correct it. ([@watilde](https://github.com/watilde))
2902 * [`738853e`](https://github.com/npm/npm/commit/738853eb1f55636476a2a410c2c04732eec9d51e)
2903   [#7763](https://github.com/npm/npm/issues/7763) `fs-write-stream-atomic@1.0.3`: Fix a bug
2904   where errors would not propagate, making error messages unhelpful.
2905   ([@iarna](https://github.com/iarna))
2906 * [`6d74a2d`](https://github.com/npm/npm/commit/6d74a2d2ac7f92750cf6a2cfafae1af23b569098)
2907   `npm-package-arg@4.0.1`: Fix tests on windows ([@Bacra](https://github.com)) and with
2908   more recent `hosted-git-info`. ([@iarna](https://github.com/iarna))
2909 * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd)
2910   `hosted-git-info@2.1.4`: Correct spelling in its documentation.
2911   ([@iarna](https://github.com/iarna))
2912 * [`d7956ca`](https://github.com/npm/npm/commit/d7956ca17c057d5383ff0d3fc5cf6ac2940b034d)
2913   `glob@5.0.7`: Fix a bug where unusual error conditions could make
2914   further use of the module fail. ([@isaacs](https://github.com/isaacs))
2915 * [`44f7d74`](https://github.com/npm/npm/commit/44f7d74c5d3181d37da7ea7949c86b344153f8d9)
2916   `tap@1.1.0`: Update to the most recent tap to get a whole host of bug
2917   fixes and integration with [coveralls](https://coveralls.io/).
2918   ([@isaacs](https://github.com/isaacs))
2919 * [`c21e8a8`](https://github.com/npm/npm/commit/c21e8a8d94bcf0ad79dc583ddc53f8366d4813b3)
2920   `nock@2.2.0` ([@othiym23](https://github.com/othiym23))
2921
2922 #### LICENSE FILES FOR THE LICENSE GOD
2923
2924 * Add missing ISC license file to package ([@kasicka](https://github.com/kasicka)):
2925     * [`aa9908c`](https://github.com/npm/npm/commit/aa9908c20017729673b9d410b77f9a16b7aae8a4) `realize-package-specifier@3.0.1`
2926     * [`23a3b1a`](https://github.com/npm/npm/commit/23a3b1a726b9176c70ce0ccf3cd9d25c54429bdf) `fs-vacuum@1.2.6`
2927     * [`8e04bba`](https://github.com/npm/npm/commit/8e04bba830d4353d84751d21803cd127c96153a7) `dezalgo@1.0.2`
2928     * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) `hosted-git-info@2.1.4`
2929     * [`6a54917`](https://github.com/npm/npm/commit/6a54917fbd4df995495a95d4b548defd44b77c93) `write-file-atomic@1.1.2`
2930     * [`971f92c`](https://github.com/npm/npm/commit/971f92c4a4e5514217d1e4db45d1ccf71a60ff19) `async-some@1.0.2`
2931     * [`67b50b7`](https://github.com/npm/npm/commit/67b50b7667a42bb3340a660eb2e617e1a554d2d4) `normalize-git-url@1.0.1`
2932
2933 #### SPDX LICENSE UPDATES
2934
2935 * Switch license to
2936   [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) from
2937   plain "BSD" ([@isaacs](https://github.com/isaacs)):
2938     * [`efdb733`](https://github.com/npm/npm/commit/efdb73332eeedcad4c609796929070b62abb37ab) `npm-user-validate@0.1.2`
2939     * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) `normalize-package-data@2.2.0`
2940 * Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from
2941   [BSD](http://spdx.org/licenses/BSD-2-Clause.html#licenseText)
2942   ([@isaacs](https://github.com/isaacs)):
2943     * [`c300956`](https://github.com/npm/npm/commit/c3009565a964f0ead4ac4ab234b1a458e2365f17) `block-stream@0.0.8`
2944     * [`1de1253`](https://github.com/npm/npm/commit/1de125355765fecd31e682ed0ff9d2edbeac0bb0) `lockfile@1.0.1`
2945     * [`0d5698a`](https://github.com/npm/npm/commit/0d5698ab132e376c7aec93ae357c274932116220) `osenv@0.1.1`
2946     * [`2e84921`](https://github.com/npm/npm/commit/2e84921474e1ffb18de9fce4616e73171fa8046d) `abbrev@1.0.6`
2947     * [`872fac9`](https://github.com/npm/npm/commit/872fac9d10c11607e4d0348c08a683b84e64d30b) `chmodr@0.1.1`
2948     * [`01eb7f6`](https://github.com/npm/npm/commit/01eb7f60acba584346ad8aae846657899f3b6887) `chownr@0.0.2`
2949     * [`294336f`](https://github.com/npm/npm/commit/294336f0f31c7b9fe31a50075ed750db6db134d1) `read@1.0.6`
2950     * [`ebdf6a1`](https://github.com/npm/npm/commit/ebdf6a14d17962cdb7128402c53b452f91d44ca7) `graceful-fs@3.0.7`
2951 * Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from
2952   [MIT](http://spdx.org/licenses/MIT.html#licenseText)
2953   ([@isaacs](https://github.com/isaacs)):
2954     * [`e5d237f`](https://github.com/npm/npm/commit/e5d237fc0f436dd2a89437ebf8a9632a2e35ccbe) `nopt@3.0.2`
2955     * [`79fef14`](https://github.com/npm/npm/commit/79fef1421b78f044980f0d1bf0e97039b6992710) `rimraf@2.3.4`
2956     * [`22527da`](https://github.com/npm/npm/commit/22527da4816e7c2746cdc0317c5fb4a85152d554) `minimatch@2.0.8`
2957     * [`882ac87`](https://github.com/npm/npm/commit/882ac87a6c4123ca985d7ad4394ea5085e5b0ef5) `lru-cache@2.6.4`
2958     * [`9d9d015`](https://github.com/npm/npm/commit/9d9d015a2e972f68664dda54fbb204db28b21ede) `npmlog@1.2.1`
2959
2960 ### v2.10.1 (2015-05-14):
2961
2962 #### BUG FIXES & DOCUMENTATION TWEAKS
2963
2964 * [`dc77520`](https://github.com/npm/npm/commit/dc7752013ffce13a3d3f13e518a0052c22fc1158)
2965   When getting back a 404 from a request to a private registry that uses a
2966   registry path that extends past the root
2967   (`http://registry.enterprise.co/path/to/registry`), display the name of the
2968   nonexistent package, rather than the first element in the registry API path.
2969   Sorry, Artifactory users! ([@hayes](https://github.com/hayes))
2970 * [`f70dea9`](https://github.com/npm/npm/commit/f70dea9b4766f6eaa55012c3e8087e9cb04fd4ce)
2971   Make clearer that `--registry` can be used on a per-publish basis to push a
2972   package to a non-default registry. ([@mischkl](https://github.com/mischkl))
2973 * [`a3e26f5`](https://github.com/npm/npm/commit/a3e26f5b4465991a941a325468ab7725670d2a94)
2974   Did you know that GitHub shortcuts can have commit-ishes included
2975   (`org/repo#branch`)? They can! ([@iarna](https://github.com/iarna))
2976 * [`0e2c091`](https://github.com/npm/npm/commit/0e2c091a539b61fdc60423b6bbaaf30c24e4b1b8)
2977   Some errors from `readPackage` were being swallowed, potentially leading to
2978   invalid package trees on disk. ([@smikes](https://github.com/smikes))
2979
2980 #### DEPENDENCY UPDATES! STILL! MORE! AGAIN!
2981
2982 * [`0b901ad`](https://github.com/npm/npm/commit/0b901ad0811d84dda6ca0755a9adc8d47825edd0)
2983   `lru-cache@2.6.3`: Removed some cruft from the published package.
2984   ([@isaacs](https://github.com/isaacs))
2985 * [`d713e0b`](https://github.com/npm/npm/commit/d713e0b14930c563e3fdb6ac6323bae2a8924652)
2986   `mkdirp@0.5.1`: Made compliant with `standard`, dropped support for Node 0.6,
2987   added (Travis) support for Node 0.12 and io.js.
2988   ([@isaacs](https://github.com/isaacs))
2989 * [`a2d6578`](https://github.com/npm/npm/commit/a2d6578b6554c5c9d48fe2006751759f4da57520)
2990   `glob@1.0.3`: Updated to use `tap@1`. ([@isaacs](https://github.com/isaacs))
2991 * [`64cd1a5`](https://github.com/npm/npm/commit/64cd1a570aaa5f24ccba190948ec9456297c97f5)
2992   `fstream@ 1.0.6`: Made compliant with [`standard`](http://npm.im/standard)
2993   (done by [@othiym23](https://github.com/othiym23), and then debugged and
2994   fixed by [@iarna](https://github.com/iarna)), and license changed to ISC.
2995   ([@othiym23](https://github.com/othiym23) /
2996   [@iarna](https://github.com/iarna))
2997 * [`b527a7c`](https://github.com/npm/npm/commit/b527a7c2ba3c4002f443dd2c536ff4ff41a38b86)
2998   `which@1.1.1`: Callers can pass in their own `PATH` instead of relying on
2999   `process.env`. ([@isaacs](https://github.com/isaacs))
3000
3001 ### v2.10.0 (2015-05-8):
3002
3003 #### THE IMPLICATIONS ARE MORE PROFOUND THAN THEY APPEAR
3004
3005 If you've done much development in The Enterprise®™, you know that keeping
3006 track of software licenses is far more important than one might expect / hope /
3007 fear. Tracking licenses is a hassle, and while many (if not most) of us have
3008 (reluctantly) gotten around to setting a license to use by default with all our
3009 new projects (even if it's just WTFPL), that's about as far as most of us think
3010 about it. In big enterprise shops, ensuring that projects don't inadvertently
3011 use software with unacceptably encumbered licenses is serious business, and
3012 developers spend a surprising (and appalling) amount of time ensuring that
3013 licensing is covered by writing automated checkers and other license auditing
3014 tools.
3015
3016 The Linux Foundation has been working on a machine-parseable syntax for license
3017 expressions in the form of [SPDX](https://spdx.org/), an appropriately
3018 enterprisey acronym. IP attorney and JavaScript culture hero [Kyle
3019 Mitchell](http://kemitchell.com/) has put a considerable amount of effort into
3020 bringing SPDX to JavaScript and Node. He's written
3021 [`spdx.js`](https://github.com/kemitchell/spdx.js), a JavaScript SPDX
3022 expression parser, and has integrated it into npm in a few different ways.
3023
3024 For you as a user of npm, this means:
3025
3026 * npm now has proper support for dual licensing in `package.json`, due to
3027   SPDX's compound expression syntax. Run `npm help package.json` for details.
3028 * npm will warn you if the `package.json` for your project is either missing a
3029   `"license"` field, or if the value of that field isn't a valid SPDX
3030   expression (pro tip: `"BSD"` becomes `"BSD-2-Clause"` in SPDX (unless you
3031   really want one of its variants); `"MIT"` and `"ISC"` are fine as-is; the
3032   [full list](https://github.com/shinnn/spdx-license-ids/blob/master/spdx-license-ids.json)
3033   is its own package).
3034 * `npm init` now demands that you use a valid SPDX expression when using it
3035   interactively (pro tip: I mostly use `npm init -y`, having previously run
3036   `npm config set init.license=MIT` / `npm config set init.author.email=foo` /
3037   `npm config set init.author.name=me`).
3038 * The documentation for `package.json` has been updated to tell you how to use
3039   the `"license"` field properly with SPDX.
3040
3041 In general, this shouldn't be a big deal for anybody other than people trying
3042 to run their own automated license validators, but in the long run, if
3043 everybody switches to this format, many people's lives will be made much
3044 simpler. I think this is an important improvement for npm and am very thankful
3045 to Kyle for taking the lead on this. Also, even if you think all of this is
3046 completely stupid, just [choose a license](http://en.wikipedia.org/wiki/License-free_software)
3047 anyway. Future you will thank past you someday, unless you are
3048 [djb](http://cr.yp.to/), in which case you are djb, and more power to you.
3049
3050 * [`8669f7d`](https://github.com/npm/npm/commit/8669f7d88c472ccdd60e140106ac43cca636a648)
3051   [#8179](https://github.com/npm/npm/issues/8179) Document how to use SPDX in
3052   `license` stanzas in `package.json`, including how to migrate from old busted
3053   license declaration arrays to fancy new compound-license clauses.
3054   ([@kemitchell](https://github.com/kemitchell))
3055 * [`98ad98c`](https://github.com/npm/npm/commit/98ad98cb11f3d3ba29a488ef1ab050b066d9c7f6)
3056   [#8197](https://github.com/npm/npm/issues/8197) `init-package-json@1.5.0`
3057   Ensure that packages bootstrapped with `npm init` use an SPDX-compliant
3058   license expression. ([@kemitchell](https://github.com/kemitchell))
3059 * [`2ad3905`](https://github.com/npm/npm/commit/2ad3905e9139b0be2b22accf707b814469de813e)
3060   [#8197](https://github.com/npm/npm/issues/8197)
3061   `normalize-package-data@2.1.0`: Warn when a package is missing a license
3062   declaration, or using a license expression that isn't valid SPDX.
3063   ([@kemitchell](https://github.com/kemitchell))
3064 * [`127bb73`](https://github.com/npm/npm/commit/127bb73ccccc59a1267851c702d8ebd3f3a97e81)
3065   [#8197](https://github.com/npm/npm/issues/8197) `tar@2.1.1`: Switch from
3066   `BSD` to `ISC` for license, where the latter is valid SPDX.
3067   ([@othiym23](https://github.com/othiym23))
3068 * [`e9a933a`](https://github.com/npm/npm/commit/e9a933a9148180d9d799f99f4154f5110ff2cace)
3069   [#8197](https://github.com/npm/npm/issues/8197) `once@1.3.2`: Switch from
3070   `BSD` to `ISC` for license, where the latter is valid SPDX.
3071   ([@othiym23](https://github.com/othiym23))
3072 * [`412401f`](https://github.com/npm/npm/commit/412401fb6a19b18f3e02d97a24d4dafed650c186)
3073   [#8197](https://github.com/npm/npm/issues/8197) `semver@4.3.4`: Switch from
3074   `BSD` to `ISC` for license, where the latter is valid SPDX.
3075   ([@othiym23](https://github.com/othiym23))
3076
3077 As a corollary to the previous changes, I've put some work into making `npm
3078 install` spew out fewer pointless warnings about missing values in transitive
3079 dependencies. From now on, npm will only warn you about missing READMEs,
3080 license fields, and the like for top-level projects (including packages you
3081 directly install into your application, but we may relax that eventually).
3082
3083 Practically _nobody_ liked having those warnings displayed for child
3084 dependencies, for the simple reason that there was very little that anybody
3085 could _do_ about those warnings, unless they happened to be the maintainers of
3086 those dependencies themselves. Since many, many projects don't have
3087 SPDX-compliant licenses, the number of warnings reached a level where they ran
3088 the risk of turning into a block of visual noise that developers (read: me, and
3089 probably you) would ignore forever.
3090
3091 So I fixed it. If you still want to see the messages about child dependencies,
3092 they're still there, but have been pushed down a logging level to `info`. You
3093 can display them by running `npm install -d` or `npm install --loglevel=info`.
3094
3095 * [`eb18245`](https://github.com/npm/npm/commit/eb18245f55fb4cd62a36867744bcd1b7be0a33e2)
3096   Only warn on normalization errors for top-level dependencies. Transitive
3097   dependency validation warnings are logged at `info` level.
3098   ([@othiym23](https://github.com/othiym23))
3099
3100 #### BUG FIXES
3101
3102 * [`e40e809`](https://github.com/npm/npm/commit/e40e8095d2bc9fa4eb8f01aa22067e0068fa8a54)
3103   `tap@1.0.1`: TAP: The Next Generation. Fix up many tests to they work
3104   properly with the new major version of `node-tap`. Look at all the colors!
3105   ([@isaacs](https://github.com/isaacs))
3106 * [`f9314e9`](https://github.com/npm/npm/commit/f9314e97d26532c0ef2b03e98f3ed300b7cd5026)
3107   `nock@1.9.0`: Minor tweaks and bug fixes. ([@pgte](https://github.com/pgte))
3108 * [`45c2b1a`](https://github.com/npm/npm/commit/45c2b1aaa051733fa352074994ae6e569fd51e8b)
3109   [#8187](https://github.com/npm/npm/issues/8187) `npm ls` wasn't properly
3110   recognizing dependencies installed from GitHub repositories as git
3111   dependencies, and so wasn't displaying them as such.
3112   ([@zornme](https://github.com/zornme))
3113 * [`1ab57c3`](https://github.com/npm/npm/commit/1ab57c38116c0403965c92bf60121f0f251433e4)
3114   In some cases, `npm help` was using something that looked like a regular
3115   expression where a glob pattern should be used, and vice versa.
3116   ([@isaacs](https://github.com/isaacs))
3117
3118 ### v2.9.1 (2015-04-30):
3119
3120 #### WOW! MORE GIT FIXES! YOU LOVE THOSE!
3121
3122 The first item below is actually a pretty big deal, as it fixes (with a
3123 one-word change and a much, much longer test case (thanks again,
3124 [@iarna](https://github.com/iarna))) a regression that's been around for months
3125 now. If you're depending on multiple branches of a single git dependency in a
3126 single project, you probably want to check out `npm@2.9.1` and verify that
3127 things (again?) work correctly in your project.
3128
3129 * [`178a6ad`](https://github.com/npm/npm/commit/178a6ad540215820d16217465a5f220d8c95a313)
3130   [#7202](https://github.com/npm/npm/issues/7202) When caching git
3131   dependencies, do so by the whole URL, including the branch name, so that if a
3132   single application depends on multiple branches from the same repository (in
3133   practice, multiple version tags), every install is of the correct version,
3134   instead of reusing whichever branch the caching process happened to check out
3135   first.  ([@iarna](https://github.com/iarna))
3136 * [`63b79cc`](https://github.com/npm/npm/commit/63b79ccde092a9cb3b1f34abe43e1d2ba69c0dbf)
3137   [#8084](https://github.com/npm/npm/issues/8084) Ensure that Bitbucket,
3138   GitHub, and Gitlab dependencies are installed the same way as non-hosted git
3139   dependencies, fixing `npm install --link`.
3140   ([@laiso](https://github.com/laiso))
3141
3142 #### DOCUMENTATION FIXES AND TWEAKS
3143
3144 These changes may seem simple and small (except Lin's fix to the package name
3145 restrictions, which was more an egregious oversight on our part), but cleaner
3146 documentation makes npm significantly more pleasant to use. I really appreciate
3147 all the typo fixes, clarifications, and formatting tweaks people send us, and
3148 am delighted that we get so many of these pull requests. Thanks, everybody!
3149
3150 * [`ca478dc`](https://github.com/npm/npm/commit/ca478dcaa29b8f07cd6fe515a3c4518166819291)
3151   [#8137](https://github.com/npm/npm/issues/8137) Somehow, we had failed to
3152   clearly document the full restrictions on package names.
3153   [@linclark](https://github.com/linclark) has now fixed that, although we will
3154   take with us to our graves the reasons why the maximum package name length is 214
3155   characters (well, OK, it was that that was the longest name in the registry
3156   when we decided to put a cap on the name length).
3157   ([@linclark](https://github.com/linclark))
3158 * [`b574076`](https://github.com/npm/npm/commit/b5740767c320c1eff3576a8d63952534a0fbb936)
3159   [#8079](https://github.com/npm/npm/issues/8079) Make the `npm shrinkwrap`
3160   documentation use code formatting for examples consistently. It would be
3161   great to do this for more commands HINT HINT.
3162   ([@RichardLitt](https://github.com/RichardLitt))
3163 * [`1ff636e`](https://github.com/npm/npm/commit/1ff636e2db3852a53e38c866fed7eafdacd307fc)
3164   [#8105](https://github.com/npm/npm/issues/8105) Document that the global
3165   `npmrc` goes in `$PREFIX/etc/npmrc`, instead of `$PREFIX/npmrc`.
3166   ([@anttti](https://github.com/anttti))
3167 * [`c3f2f7c`](https://github.com/npm/npm/commit/c3f2f7c299342e1c1eccc55a976a63c607f51621)
3168   [#8127](https://github.com/npm/npm/issues/8127) Document how to use `npm run
3169   build` directly (hint: it's different from `npm build`!).
3170   ([@mikemaccana](https://github.com/mikemaccana))
3171 * [`873e467`](https://github.com/npm/npm/commit/873e46757e1986761b15353f94580a071adcb383)
3172   [#8069](https://github.com/npm/npm/issues/8069) Take the old, dead npm
3173   mailing list address out of `package.json`. It seems that people don't have
3174   much trouble figuring out how to report errors to npm.
3175   ([@robertkowalski](https://github.com/robertkowalski))
3176
3177 #### ENROBUSTIFICATIONMENT
3178
3179 * [`5abfc9c`](https://github.com/npm/npm/commit/5abfc9c9017da714e47a3aece750836b4f9af6a9)
3180   [#7973](https://github.com/npm/npm/issues/7973) `npm run-script` completion
3181   will only suggest run scripts, instead of including dependencies. If for some
3182   reason you still wanted it to suggest dependencies, let us know.
3183   ([@mantoni](https://github.com/mantoni))
3184 * [`4b564f0`](https://github.com/npm/npm/commit/4b564f0ce979dc74c09604f4d46fd25a2ee63804)
3185   [#8081](https://github.com/npm/npm/issues/8081) Use `osenv` to parse the
3186   environment's `PATH` in a platform-neutral way.
3187   ([@watilde](https://github.com/watilde))
3188 * [`a4b6238`](https://github.com/npm/npm/commit/a4b62387b41848818973eeed056fd5c6570274f3)
3189   [#8094](https://github.com/npm/npm/issues/8094) When we refactored the
3190   configuration code to split out checking for IPv4 local addresses, we
3191   inadvertently completely broke it by failing to return the values. In
3192   addition, just the call to `os.getInterfaces()` could throw on systems where
3193   querying the network configuration requires elevated privileges (e.g. Amazon
3194   Lambda). Add the return, and trap errors so they don't cause npm to explode.
3195   Thanks to [@mhart](https://github.com/mhart) for bringing this to our
3196   attention! ([@othiym23](https://github.com/othiym23))
3197
3198 #### DEPENDENCY UPDATES WAIT FOR NO SOPHONT
3199
3200 * [`000cd8b`](https://github.com/npm/npm/commit/000cd8b52104942ac3404f0ad0651d82f573da37)
3201   `rimraf@2.3.3`: More informative assertions on argument validation failure.
3202   ([@isaacs](https://github.com/isaacs))
3203 * [`530a2e3`](https://github.com/npm/npm/commit/530a2e369128270f3e098f0e9be061533003b0eb)
3204   `lru-cache@2.6.2`: Revert to old key access-time behavior, as it was correct
3205   all along. ([@isaacs](https://github.com/isaacs))
3206 * [`d88958c`](https://github.com/npm/npm/commit/d88958ca02ce81b027b9919aec539d0145875a59)
3207   `minimatch@2.0.7`: Feature detection and test improvements.
3208   ([@isaacs](https://github.com/isaacs))
3209 * [`3fa39e4`](https://github.com/npm/npm/commit/3fa39e4d492609d5d045033896dcd99f7b875329)
3210   `nock@1.7.1` ([@pgte](https://github.com/pgte))
3211
3212 ### v2.9.0 (2015-04-23):
3213
3214 This week was kind of a breather to concentrate on fixing up the tests on the
3215 `multi-stage` branch, and not mess with git issues for a little while.
3216 Unfortunately, There are now enough severe git issues that we'll probably have
3217 to spend another couple weeks tackling them. In the meantime, enjoy these two
3218 small features. They're just enough to qualify for a semver-minor bump:
3219
3220 #### NANOFEATURES
3221
3222 * [`2799322`](https://github.com/npm/npm/commit/279932298ce5b589c5eea9439ac40b88b99c6a4a)
3223   [#7426](https://github.com/npm/npm/issues/7426) Include local modules in `npm
3224   outdated` and `npm update`.  ([@ArnaudRinquin](https://github.com/ArnaudRinquin))
3225 * [`2114862`](https://github.com/npm/npm/commit/21148620fa03a582f4ec436bb16bd472664f2737)
3226   [#8014](https://github.com/npm/npm/issues/8014) The prefix used before the
3227   version on version tags is now configurable via `tag-version-prefix`. Be
3228   careful with this one and read the docs before using it.
3229   ([@kkragenbrink](https://github.com/kkragenbrink))
3230
3231 #### OTHER MINOR TWEAKS
3232
3233 * [`18ce0ec`](https://github.com/npm/npm/commit/18ce0ecd2d94ad3af01e997f1396515892dd363c)
3234   [#3032](https://github.com/npm/npm/issues/3032) `npm unpublish` will now use
3235   the registry set in `package.json`, just like `npm publish`. This only
3236   applies, for now, when unpublishing the entire package, as unpublishing a
3237   single version requires the name be included on the command line and
3238   therefore doesn't read from `package.json`. ([@watilde](https://github.com/watilde))
3239 * [`9ad2100`](https://github.com/npm/npm/commit/9ad210042242e51d52b2a8b633d8e59248f5faa4)
3240   [#8008](https://github.com/npm/npm/issues/8008) Once again, when considering
3241   what to install on `npm install`, include `devDependencies`.
3242   ([@smikes](https://github.com/smikes))
3243 * [`5466260`](https://github.com/npm/npm/commit/546626059909dca1906454e820ca4e315c1795bd)
3244   [#8003](https://github.com/npm/npm/issues/8003) Clarify the documentation
3245   around scopes to make it easier to understand how they support private
3246   packages. ([@smikes](https://github.com/smikes))
3247
3248 #### DEPENDENCIES WILL NOT STOP UNTIL YOU ARE VERY SLEEPY
3249
3250 * [`faf65a7`](https://github.com/npm/npm/commit/faf65a7bbb2fad13216f64ed8f1243bafe743f97)
3251   `init-package-json@1.4.2`: If there are multiple validation errors and
3252   warnings, ensure they all get displayed (includes a rad new way of testing
3253   `init-package-json` contributed by
3254   [@michaelnisi](https://github.com/michaelnisi)).
3255   ([@MisumiRize](https://github.com/MisumiRize))
3256 * [`7f10f38`](https://github.com/npm/npm/commit/7f10f38d29a8423d7cde8103fa7b64ac728da1e0)
3257   `editor@1.0.0`: `1.0.0` is literally more than `0.1.0` (no change aside from
3258   version number). ([@substack](https://github.com/substack))
3259 * [`4979af3`](https://github.com/npm/npm/commit/4979af3fcae5a3962383b7fdad3162381e62eefe)
3260   [#6805](https://github.com/npm/npm/issues/6805) `npm-registry-client@6.3.3`:
3261   Decode scoped package names sent by the registry so they look nicer.
3262   ([@mmalecki](https://github.com/mmalecki))
3263
3264 ### v2.8.4 (2015-04-16):
3265
3266 This is the fourth release of npm this week, so it's mostly just landing a few
3267 small outstanding PRs on dependencies and some tiny documentation tweaks.
3268 `npm@2.8.3` is where the real action is.
3269
3270 * [`ee2bd77`](https://github.com/npm/npm/commit/ee2bd77f3c64d38735d1d31028224a5c40422a9b)
3271   [#7983](https://github.com/npm/npm/issues/7983) `tar@2.1.0`: Better error
3272   reporting in corrupted tar files, and add support for the `fromBase` flag
3273   (rescued from the dustbin of history by
3274   [@deanmarano](https://github.com/deanmarano)).
3275   ([@othiym23](https://github.com/othiym23))
3276 * [`d8eee6c`](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af)
3277   `init-package-json@1.4.1`: Add support for a default author, and only add
3278   scope to a package name once. ([@othiym23](https://github.com/othiym23))
3279 * [`4fc5d98`](https://github.com/npm/npm/commit/4fc5d98b785f601c60d4dc0a2c8674f0cccf6262)
3280   `lru-cache@2.6.1`: Small tweaks to cache value aging and entry counting that
3281   are irrelevant to npm. ([@isaacs](https://github.com/isaacs))
3282 * [`1fe5840`](https://github.com/npm/npm/commit/1fe584089f5bef133de5518aa26eaf6064be2bf7)
3283   [#7946](https://github.com/npm/npm/issues/7946) Make `npm init` text
3284   friendlier. ([@sandfox](https://github.com/sandfox))
3285
3286 ### v2.8.3 (2015-04-15):
3287
3288 #### TWO SMALL GIT TWEAKS
3289
3290 This is the last of a set of releases intended to ensure npm's git support is
3291 robust enough that we can stop working on it for a while. These fixes are
3292 small, but prevent a common crasher and clear up one of the more confusing
3293 error messages coming out of npm when working with repositories hosted on git.
3294
3295 * [`387f889`](https://github.com/npm/npm/commit/387f889c0e8fb617d9cc9a42ed0a3ec49424ab5d)
3296   [#7961](https://github.com/npm/npm/issues/7961) Ensure that hosted git SSH
3297   URLs always have a valid protocol when stored in `resolved` fields in
3298   `npm-shrinkwrap.json`. ([@othiym23](https://github.com/othiym23))
3299 * [`394c2f5`](https://github.com/npm/npm/commit/394c2f5a1227232c0baf42fbba1402aafe0d6ffb)
3300   Switch the order in which hosted Git providers are checked to `git:`,
3301   `git+https:`, then `git+ssh:` (from `git:`, `git+ssh:`, then `git+https:`) in
3302   an effort to go from most to least likely to succeed, to make for less
3303   confusing error message. ([@othiym23](https://github.com/othiym23))
3304
3305 ### v2.8.2 (2015-04-14):
3306
3307 #### PEACE IN OUR TIME
3308
3309 npm has been having an issue with CouchDB's web server since the release
3310 of io.js and Node.js 0.12.0 that has consumed a huge amount of my time
3311 to little visible effect. Sam Mikes picked up the thread from me, and
3312 after a [_lot_ of effort](https://github.com/npm/npm/issues/7699#issuecomment-93091111)
3313 figured out that ultimately there are probably a couple problems with
3314 the new HTTP Agent keep-alive handling in new versions of Node. In
3315 addition, `npm-registry-client` was gratuitously sending a body along
3316 with a GET request which was triggering the bugs. Sam removed about 10 bytes from
3317 one file in `npm-registry-client`, and this problem, which has been bugging us for months,
3318 completely went away.
3319
3320 In conclusion, Sam Mikes is great, and anybody using a private registry
3321 hosted on CouchDB should thank him for his hard work. Also, thanks to
3322 the community at large for pitching in on this bug, which has been
3323 around for months now.
3324
3325 * [`431c3bf`](https://github.com/npm/npm/commit/431c3bf6cdec50f9f0c735f478cb2f3f337d3313)
3326   [#7699](https://github.com/npm/npm/issues/7699) `npm-registry-client@6.3.2`:
3327   Don't send body with HTTP GET requests when logging in.
3328   ([@smikes](https://github.com/smikes))
3329
3330 ### v2.8.1 (2015-04-12):
3331
3332 #### CORRECTION: NPM'S GIT INTEGRATION IS DOING OKAY
3333
3334 A [helpful bug report](https://github.com/npm/npm/issues/7872#issuecomment-91809553)
3335 led to another round of changes to
3336 [`hosted-git-info`](https://github.com/npm/hosted-git-info/commit/827163c74531b69985d1ede7abced4861e7b0cd4),
3337 some additional test-writing, and a bunch of hands-on testing against actual
3338 private repositories. While the complexity of npm's git dependency handling is
3339 nearly fractal (because npm is very complex, and git is even more complex),
3340 it's feeling way more solid than it has for a while. We think this is a
3341 substantial improvement over what we had before, so give `npm@2.8.1` a shot if
3342 you have particularly complex git use cases and
3343 [let us know](https://github.com/npm/npm/issues/new) how it goes.
3344
3345 (NOTE: These changes mostly affect cloning and saving references to packages
3346 hosted in git repositories, and don't address some known issues with things
3347 like lifecycle scripts not being run on npm dependencies. Work continues on
3348 other issues that affect parity between git and npm registry packages.)
3349
3350 * [`66377c6`](https://github.com/npm/npm/commit/66377c6ece2cf4d53d9a618b7d9824e1452bc293)
3351   [#7872](https://github.com/npm/npm/issues/7872) `hosted-git-info@2.1.2`: Pass
3352   through credentials embedded in SSH and HTTPs git URLs.
3353   ([@othiym23](https://github.com/othiym23))
3354 * [`15efe12`](https://github.com/npm/npm/commit/15efe124753257728a0ddc64074fa5a4b9c2eb30)
3355   [#7872](https://github.com/npm/npm/issues/7872) Use the new version of
3356   `hosted-git-info` to pass along credentials embedded in git URLs. Test it.
3357   Test it a lot. ([@othiym23](https://github.com/othiym23))
3358
3359 #### SCOPED DEPENDENCIES AND PEER DEPENDENCIES: NOT QUITE REESE'S
3360
3361 Big thanks to [@ewie](https://github.com/ewie) for identifying an issue with
3362 how npm was handling `peerDependencies` that were implicitly installed from the
3363 `package.json` files of scoped dependencies. This
3364 [will be a moot point](https://github.com/npm/npm/issues/6565#issuecomment-74971689)
3365 with the release of `npm@3`, but until then, it's important that
3366 `peerDependency` auto-installation work as expected.
3367
3368 * [`b027319`](https://github.com/npm/npm/commit/b0273190c71eba14395ddfdd1d9f7ba625297523)
3369   [#7920](https://github.com/npm/npm/issues/7920) Scoped packages with
3370   `peerDependencies` were installing the `peerDependencies` into the wrong
3371   directory. ([@ewie](https://github.com/ewie))
3372 * [`649e31a`](https://github.com/npm/npm/commit/649e31ae4fd02568bae5dc6b4ea783431ce3d63e)
3373   [#7920](https://github.com/npm/npm/issues/7920) Test `peerDependency`
3374   installs involving scoped packages using `npm-package-arg` instead of simple
3375   path tests, for consistency. ([@othiym23](https://github.com/othiym23))
3376
3377 #### MAKING IT EASIER TO WRITE NPM TESTS, VERSION 0.0.1
3378
3379 [@iarna](https://github.com/iarna) and I
3380 ([@othiym23](https://github.com/othiym23)) have been discussing a
3381 [candidate plan](https://github.com/npm/npm/wiki/rewriting-npm's-tests:-a-plan-maybe)
3382 for improving npm's test suite, with the goal of making it easier for new
3383 contributors to get involved with npm by reducing the learning curve
3384 necessary to be able to write good tests for proposed changes. This is the
3385 first substantial piece of that effort. Here's what the commit message for
3386 [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf)
3387 had to say about this work:
3388
3389 > It's too difficult for npm contributors to figure out what the conventional
3390 > style is for tests. Part of the problem is that the documentation in
3391 > CONTRIBUTING.md is inadequate, but another important factor is that the tests
3392 > themselves are written in a variety of styles.  One of the most notable
3393 > examples of this is the fact that many tests use fixture directories to store
3394 > precooked test scenarios and package.json files.
3395 >
3396 > This had some negative consequences:
3397 >
3398 >   * tests weren't idempotent
3399 >   * subtle dependencies between tests existed
3400 >   * new tests get written in this deprecated style because it's not
3401 >     obvious that the style is out of favor
3402 >   * it's hard to figure out why a lot of those directories existed,
3403 >     because they served a variety of purposes, so it was difficult to
3404 >     tell when it was safe to remove them
3405 >
3406 > All in all, the fixture directories were a major source of technical debt, and
3407 > cleaning them up, while time-consuming, makes the whole test suite much more
3408 > approachable, and makes it more likely that new tests written by outside
3409 > contributors will follow a conventional style. To support that, all of the
3410 > tests touched by this changed were cleaned up to pass the `standard` style
3411 > checker.
3412
3413 And here's a little extra context from a comment I left on [#7929](https://github.com/npm/npm/issues/7929):
3414
3415 > One of the other things that encouraged me was looking at this
3416 > [presentation on technical debt](http://www.slideshare.net/nnja/pycon-2015-technical-debt-the-monster-in-your-closet)
3417 > from Pycon 2015, especially slide 53, which I interpreted in terms of
3418 > difficulty getting new contributors to submit patches to an OSS project like
3419 > npm. npm has a long ways to go, but I feel good about this change.
3420
3421 * [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf)
3422   [#7929](https://github.com/npm/npm/issues/7929) Eliminate fixture directories
3423   from `test/tap`, leaving each test self-contained.
3424   ([@othiym23](https://github.com/othiym23))
3425 * [`4928d30`](https://github.com/npm/npm/commit/4928d30140821c63e03fffed73f8d88ebdc43710)
3426   [#7929](https://github.com/npm/npm/issues/7929) Move fixture files from
3427   `test/tap/*` to `test/fixtures`. ([@othiym23](https://github.com/othiym23))
3428 * [`e925deb`](https://github.com/npm/npm/commit/e925debca91092a814c1a00933babc3a8cf975be)
3429   [#7929](https://github.com/npm/npm/issues/7929) Tweak the run scripts to stop
3430   slaughtering the CPU on doc rebuild.
3431   ([@othiym23](https://github.com/othiym23))
3432 * [`65bf7cf`](https://github.com/npm/npm/commit/65bf7cffaf91c426b676c47529eee796f8b8b75c)
3433   [#7923](https://github.com/npm/npm/issues/7923) Use an alias of scripts and
3434   run-scripts in `npm run test-all` ([@watilde](https://github.com/watilde))
3435 * [`756a3fb`](https://github.com/npm/npm/commit/756a3fbb852a2469afe706635ed88d22c37743e5)
3436   [#7923](https://github.com/npm/npm/issues/7923) Sync timeout time of `npm
3437   run-script test-all` to be the same as `test` and `tap` scripts.
3438   ([@watilde](https://github.com/watilde))
3439 * [`8299b5f`](https://github.com/npm/npm/commit/8299b5fb6373354a7fbaab6f333863758812ae90)
3440   Set a timeout for tap tests for `npm run-script test-all`.
3441   ([@othiym23](https://github.com/othiym23))
3442
3443 #### THE EVER-BEATING DRUM OF DEPENDENCY UPDATES
3444
3445 * [`d90d0b9`](https://github.com/npm/npm/commit/d90d0b992acbf62fd5d68debf9d1dbd6cfa20804)
3446   [#7924](https://github.com/npm/npm/issues/7924) Remove `child-process-close`,
3447   as it was included for Node 0.6 compatibility, and npm no longer supports
3448   0.6. ([@robertkowalski](https://github.com/robertkowalski))
3449 * [`16427c1`](https://github.com/npm/npm/commit/16427c1f3ea3d71ee753c62eb4c2663c7b32b84f)
3450   `lru-cache@2.5.2`: More accurate updating of expiry times when `maxAge` is
3451   set. ([@isaacs](https://github.com/isaacs))
3452 * [`03cce83`](https://github.com/npm/npm/commit/03cce83b64344a9e0fe036dce214f4d68cfcc9e7)
3453   `nock@1.6.0`: Mocked network error handling.
3454   ([@pgte](https://github.com/pgte))
3455 * [`f93b1f0`](https://github.com/npm/npm/commit/f93b1f0b7eb5d1b8a7967e837bbd756db1091d00)
3456   `glob@5.0.5`: Use `path-is-absolute` polyfill, allowing newer Node.js and
3457   io.js versions to use `path.isAbsolute()`.
3458   ([@sindresorhus](https://github.com/sindresorhus))
3459 * [`a70d694`](https://github.com/npm/npm/commit/a70d69495a6e96997e64855d9e749d943ee6d64f)
3460   `request@2.55.0`: Bug fixes and simplification.
3461   ([@simov](https://github.com/simov))
3462 * [`2aecc6f`](https://github.com/npm/npm/commit/2aecc6f4083526feeb14615b4e5484edc66175b5)
3463   `columnify@1.5.1`: Switch to using babel from 6to5.
3464   ([@timoxley](https://github.com/timoxley))
3465
3466 ### v2.8.0 (2015-04-09):
3467
3468 #### WE WILL NEVER BE DONE FIXING NPM'S GIT SUPPORT
3469
3470 If you look at [the last release's release
3471 notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#git-mean-git-tuff-git-all-the-way-away-from-my-stuff),
3472 you will note that they confidently assert that it's perfectly OK to force all
3473 GitHub URLs through the same `git:` -> `git+ssh:` fallback flow for cloning. It
3474 turns out that many users depend on `git+https:` URLs in their build
3475 environments because they use GitHub auth tokens instead of SSH keys. Also, in
3476 some cases you just want to be able to explicitly say how a given dependency
3477 should be cloned from GitHub.
3478
3479 Because of the way we resolved the inconsistency in GitHub shorthand handling
3480 [before](https://github.com/npm/npm/blob/master/CHANGELOG.md#bug-fixes-1), this
3481 turned out to be difficult to work around. So instead of hacking around it, we
3482 completely redid how git is handled within npm and its attendant packages.
3483 Again. This time, we changed things so that `normalize-package-data` and
3484 `read-package-json` leave more of the git logic to npm itself, which makes
3485 handling shorthand syntax consistently much easier, and also allows users to
3486 resume using explicit, fully-qualified git URLs without npm messing with them.
3487
3488 Here's a summary of what's changed:
3489
3490 * Instead of converting the GitHub shorthand syntax to a `git+ssh:`, `git:`, or
3491   `git+https:` URL and saving that, save the shorthand itself to
3492   `package.json`.
3493 * If presented with shortcuts, try cloning via the git protocol, SSH, and HTTPS
3494   (in that order).
3495 * No longer prompt for credentials -- it didn't work right with the spinner,
3496   and wasn't guaranteed to work anyway. We may experiment with doing this a
3497   better way in the future. Users can override this by setting `GIT_ASKPASS` in
3498   their environment if they want to experiment with interactive cloning, but
3499   should also set `--no-spin` on the npm command line (or run `npm config set
3500   spin=false`).
3501 * **EXPERIMENTAL FEATURE**: Add support for `github:`, `gist:`, `bitbucket:`,
3502   and `gitlab:` shorthand prefixes. GitHub shortcuts will continue to be
3503   normalized to `org/repo` instead of being saved as `github:org/repo`, but
3504   `gitlab:`, `gist:`, and `bitbucket:` prefixes will be used on the command
3505   line and from `package.json`. BE CAREFUL WITH THIS. `package.json` files
3506   published with the new shorthand syntax can _only_ be read by `npm@2.8.0` and
3507   later, and this feature is mostly meant for playing around with it. If you
3508   want to save git dependencies in a form that older versions of npm can read,
3509   use `--save-exact`, which will save the git URL and resolved commit hash of
3510   the head of the branch in a manner similar to the way that `--save-exact`
3511   pins versions for registry dependencies.  This is documented (so check `npm
3512   help install` for details), but we're not going to make a lot of noise about
3513   it until it has a chance to bake in a little more.
3514
3515 It is [@othiym23](https://github.com/othiym23)'s sincere hope that this will
3516 resolve all of the inconsistencies users were seeing with GitHub and git-hosted
3517 packages, but given the level of change here, that may just be a fond wish.
3518 Extra testing of this change is requested.
3519
3520 * [`6b0f588`](https://github.com/npm/npm/commit/6b0f58877f37df9904490ffbaaad33862bd36dce)
3521   [#7867](https://github.com/npm/npm/issues/7867) Use git shorthand and git
3522   URLs as presented by user. Support new `hosted-git-info` shortcut syntax.
3523   Save shorthand in `package.json`. Try cloning via `git:`, `git+ssh:`, and
3524   `git+https:`, in that order, when supported by the underlying hosting
3525   provider. ([@othiym23](https://github.com/othiym23))
3526 * [`75d4267`](https://github.com/npm/npm/commit/75d426787869d54ca7400408f562f971b34649ef)
3527   [#7867](https://github.com/npm/npm/issues/7867) Document new GitHub, GitHub
3528   gist, Bitbucket, and GitLab shorthand syntax.
3529   ([@othiym23](https://github.com/othiym23))
3530 * [`7d92c75`](https://github.com/npm/npm/commit/7d92c7592998d90ec883fa989ca74f04ec1b93de)
3531   [#7867](https://github.com/npm/npm/issues/7867) When `--save-exact` is used
3532   with git shorthand or URLs, save the fully-resolved URL, with branch name
3533   resolved to the exact hash for the commit checked out.
3534   ([@othiym23](https://github.com/othiym23))
3535 * [`9220e59`](https://github.com/npm/npm/commit/9220e59f8def8c82c6d331a39ba29ad4c44e3a9b)
3536   [#7867](https://github.com/npm/npm/issues/7867) Ensure that non-prefixed and
3537   non-normalized GitHub shortcuts are saved to `package.json`.
3538   ([@othiym23](https://github.com/othiym23))
3539 * [`dd398e9`](https://github.com/npm/npm/commit/dd398e98a8eba27eeba84378200da3d078fdf980)
3540   [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.1`:
3541   Ensure that `gist:` shorthand survives being round-tripped through
3542   `package.json`. ([@othiym23](https://github.com/othiym23))
3543 * [`33d1420`](https://github.com/npm/npm/commit/33d1420bf2f629332fceb2ac7e174e63ac48f96a)
3544   [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.0`: Add
3545   support for auth embedded directly in git URLs.
3546   ([@othiym23](https://github.com/othiym23))
3547 * [`23a1d5a`](https://github.com/npm/npm/commit/23a1d5a540e8db27f5cd0245de7c3694e2bddad1)
3548   [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.0.2`: Make
3549   it possible to determine in which form a hosted git URL was passed.
3550   ([@iarna](https://github.com/iarna))
3551 * [`eaf75ac`](https://github.com/npm/npm/commit/eaf75acb718611ad5cfb360084ec86938d9c66c5)
3552   [#7867](https://github.com/npm/npm/issues/7867)
3553   `normalize-package-data@2.0.0`: Normalize GitHub specifiers so they pass
3554   through shortcut syntax and preserve explicit URLs.
3555   ([@iarna](https://github.com/iarna))
3556 * [`95e0535`](https://github.com/npm/npm/commit/95e0535e365e0aca49c634dd2061a0369b0475f1)
3557   [#7867](https://github.com/npm/npm/issues/7867) `npm-package-arg@4.0.0`: Add
3558   git URL and shortcut to hosted git spec and use `hosted-git-info@2.0.2`.
3559   ([@iarna](https://github.com/iarna))
3560 * [`a808926`](https://github.com/npm/npm/commit/a8089268d5f3d57f42dbaba02ff6437da5121191)
3561   [#7867](https://github.com/npm/npm/issues/7867)
3562   `realize-package-specifier@3.0.0`: Use `npm-package-arg@4.0.0` and test
3563   shortcut specifier behavior. ([@iarna](https://github.com/iarna))
3564 * [`6dd1e03`](https://github.com/npm/npm/commit/6dd1e039bddf8cf5383343f91d84bc5d78acd083)
3565   [#7867](https://github.com/npm/npm/issues/7867) `init-package-json@1.4.0`:
3566   Allow dependency on `read-package-json@2.0.0`.
3567   ([@iarna](https://github.com/iarna))
3568 * [`63254bb`](https://github.com/npm/npm/commit/63254bb6358f66752aca6aa1a275271b3ae03f7c)
3569   [#7867](https://github.com/npm/npm/issues/7867) `read-installed@4.0.0`: Use
3570   `read-package-json@2.0.0`. ([@iarna](https://github.com/iarna))
3571 * [`254b887`](https://github.com/npm/npm/commit/254b8871f5a173bb464cc5b0ace460c7878b8097)
3572   [#7867](https://github.com/npm/npm/issues/7867) `read-package-json@2.0.0`:
3573   Use `normalize-package-data@2.0.0`. ([@iarna](https://github.com/iarna))
3574 * [`0b9f8be`](https://github.com/npm/npm/commit/0b9f8be62fe5252abe54d49e36a696f4816c2eca)
3575   [#7867](https://github.com/npm/npm/issues/7867) `npm-registry-client@6.3.0`:
3576   Mark compatibility with `normalize-package-data@2.0.0` and
3577   `npm-package-arg@4.0.0`. ([@iarna](https://github.com/iarna))
3578 * [`f40ecaa`](https://github.com/npm/npm/commit/f40ecaad68f77abc50eb6f5b224e31dec3d250fc)
3579   [#7867](https://github.com/npm/npm/issues/7867) Extract a common method to
3580   use when cloning git repos for testing.
3581   ([@othiym23](https://github.com/othiym23))
3582
3583 #### TEST FIXES FOR NODE 0.8
3584
3585 npm continues to [get closer](https://github.com/npm/npm/issues/7842) to being
3586 completely green on Travis for Node 0.8.
3587
3588 * [`26d36e9`](https://github.com/npm/npm/commit/26d36e9cf0eca69fe1863d2ea536c28555b9e8de)
3589   [#7842](https://github.com/npm/npm/issues/7842) When spawning child
3590   processes, map exit code 127 to ENOENT so Node 0.8 handles child process
3591   failures the same as later versions.
3592   ([@SonicHedgehog](https://github.com/SonicHedgehog))
3593 * [`54cd895`](https://github.com/npm/npm/commit/54cd8956ea783f96749e46597d8c2cb9397c5d5f)
3594   [#7842](https://github.com/npm/npm/issues/7842) Node 0.8 requires -e with -p
3595   when evaluating snippets; fix test.
3596   ([@SonicHedgehog](https://github.com/SonicHedgehog))
3597
3598 #### SMALL FIX AND DOC TWEAK
3599
3600 * [`20e9003`](https://github.com/npm/npm/commit/20e90031b847e9f7c7168f3dad8b1e526f9a2586)
3601   `tar@2.0.1`: Fix regression where relative symbolic links within an
3602   extraction root that pointed within an extraction root would get normalized
3603   to absolute symbolic links. ([@isaacs](https://github.com/isaacs))
3604 * [`2ef8898`](https://github.com/npm/npm/commit/2ef88989c41bee1578570bb2172c90ede129dbd1)
3605   [#7879](https://github.com/npm/npm/issues/7879) Better document that `npm
3606   publish --tag=foo` will not set `latest` to that version.
3607   ([@linclark](https://github.com/linclark))
3608
3609 ### v2.7.6 (2015-04-02):
3610
3611 #### GIT MEAN, GIT TUFF, GIT ALL THE WAY AWAY FROM MY STUFF
3612
3613 Part of the reason that we're reluctant to take patches to how npm deals with
3614 git dependencies is that every time we touch the git support, something breaks.
3615 The last few releases are a case in point. `npm@2.7.4` completely broke
3616 installing private modules from GitHub, and `npm@2.7.5` fixed them at the cost
3617 of logging a misleading error message that caused many people to believe that
3618 their dependencies hadn't been successfully installed when they actually had
3619 been.
3620
3621 This all started from a desire to ensure that GitHub shortcut syntax is being
3622 handled correctly.  The correct behavior is for npm to try to clone all
3623 dependencies on GitHub (whether they're specified with the GitHub
3624 `organization/repository` shortcut syntax or not) via the plain `git:` protocol
3625 first, and to fall back to using `git+ssh:` if `git:` doesn't work. Previously,
3626 sometimes npm would use `git:` and `git+ssh:` in some cases (most notably when
3627 using GitHub shortcut syntax on the command line), and use `git+https:` in
3628 others (when the GitHub shortcut syntax was present in `package.json`). This
3629 led to subtle and hard-to-understand inconsistencies, and we're glad that as of
3630 `npm@2.7.6`, we've finally gotten things to where they were before we started,
3631 only slightly more consistent overall.
3632
3633 We are now going to go back to our policy of being extremely reluctant to touch
3634 the code that handles Git dependencies.
3635
3636 * [`b747593`](https://github.com/npm/npm/commit/b7475936f473f029e6a027ba1b16277523747d0b)
3637   [#7630](https://github.com/npm/npm/issues/7630) Don't automatically log all
3638   git failures as errors. `maybeGithub` needs to be able to fail without
3639   logging to support its fallback logic.
3640   ([@othiym23](https://github.com/othiym23))
3641 * [`cd67a0d`](https://github.com/npm/npm/commit/cd67a0db07891d20871822696c26692c8a84866a)
3642   [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote
3643   URL, handle failures gracefully (without assuming standard output exists).
3644   ([@othiym23](https://github.com/othiym23))
3645 * [`637c7d1`](https://github.com/npm/npm/commit/637c7d1411fe07f409cf91f2e65fd70685cb253c)
3646   [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote
3647   URL, handle failures gracefully (without assuming standard _error_ exists).
3648   ([@othiym23](https://github.com/othiym23))
3649
3650 #### OTHER SIGNIFICANT FIXES
3651
3652 * [`78005eb`](https://github.com/npm/npm/commit/78005ebb6f4103c20f077669c3929b7ea46a4c0d)
3653   [#7743](https://github.com/npm/npm/issues/7743) Always quote arguments passed
3654   to `npm run-script`. This allows build systems and the like to safely escape
3655   glob patterns passed as arguments to `run-scripts` with `npm run-script
3656   <script> -- <arguments>`. This is a tricky change to test, and may be
3657   reverted or moved to `npm@3` if it turns out it breaks things for users.
3658   ([@mantoni](https://github.com/mantoni))
3659 * [`da015ee`](https://github.com/npm/npm/commit/da015eee45f6daf384598151d06a9b57ffce136e)
3660   [#7074](https://github.com/npm/npm/issues/7074) `read-package-json@1.3.3`:
3661   `read-package-json` no longer caches `package.json` files, which trades a
3662   very small performance loss for the elimination of a large class of really
3663   annoying race conditions. See [#7074](https://github.com/npm/npm/issues/7074)
3664   for the grisly details. ([@othiym23](https://github.com/othiym23))
3665 * [`dd20f57`](https://github.com/npm/npm/commit/dd20f5755291b9433f0d298ee0eead22cda6db36)
3666   `init-package-json@1.3.2`: Only add the `@` to scoped package names if it's
3667   not already there when reading from the filesystem
3668   ([@watilde](https://github.com/watilde)), and support inline validation of
3669   package names ([@michaelnisi](https://github.com/michaelnisi)).
3670
3671 #### SMALL FIXES AND DEPENDENCY UPGRADES
3672
3673 * [`1f380f6`](https://github.com/npm/npm/commit/1f380f66c1e944b8ffbf096fa94d09e931626e12)
3674   [#7820](https://github.com/npm/npm/issues/7820) `are-we-there-yet@1.0.4`: Use
3675   `readable-stream` instead of built-in `stream` module to better support
3676   Node.js 0.8.x. ([@SonicHedgehog](https://github.com/SonicHedgehog))
3677 * [`d380188`](https://github.com/npm/npm/commit/d380188e161be31f5a4f53947de6bc28df4732d8)
3678   `semver@4.3.3`: Don't throw on `semver.parse(null)`, and parse numeric
3679   version strings more robustly. ([@isaacs](https://github.com/isaacs))
3680 * [`01d9964`](https://github.com/npm/npm/commit/01d99649265f921e1c61cf406613e7042bcea008)
3681   `nock@1.4.0`: This change may need to be rolled back, or rolled forward,
3682   because [nock depends on
3683   `setImmediate`](https://github.com/npm/npm/issues/7842), which causes tests
3684   to fail when run with Node.js 0.8. ([@othiym23](https://github.com/othiym23))
3685 * [`91f5cb1`](https://github.com/npm/npm/commit/91f5cb1fb91520fbe25a4da5b80848ed540b9ad3)
3686   [#7791](https://github.com/npm/npm/issues/7791) Fix brackets in npmconf so
3687   that `loaded` is set correctly.
3688   ([@charmander](https://github.com/charmander))
3689 * [`1349e27`](https://github.com/npm/npm/commit/1349e27c936a8b0fc9f6440a6d6404ef3b19c587)
3690   [#7818](https://github.com/npm/npm/issues/7818) Update `README.md` to point
3691   out that the install script now lives on https://www.npmjs.com.
3692   ([@weisjohn](https://github.com/weisjohn))
3693
3694 ### v2.7.5 (2015-03-26):
3695
3696 #### SECURITY FIXES
3697
3698 * [`300834e`](https://github.com/npm/npm/commit/300834e91a4e2a95fb7fb59c309e7c3fc91d2312)
3699   `tar@2.0.0`: Normalize symbolic links that point to targets outside the
3700   extraction root. This prevents packages containing symbolic links from
3701   overwriting targets outside the expected paths for a package. Thanks to [Tim
3702   Cuthbertson](http://gfxmonk.net/) and the team at [Lift
3703   Security](https://liftsecurity.io/) for working with the npm team to identify
3704   this issue. ([@othiym23](https://github.com/othiym23))
3705 * [`0dc6875`](https://github.com/npm/npm/commit/0dc68757cffd5397c280bc71365d106523a5a052)
3706   `semver@4.3.2`: Package versions can be no more than 256 characters long.
3707   This prevents a situation in which parsing the version number can use
3708   exponentially more time and memory to parse, leading to a potential denial of
3709   service. Thanks to Adam Baldwin at Lift Security for bringing this to our
3710   attention.  ([@isaacs](https://github.com/isaacs))
3711
3712 #### BUG FIXES
3713
3714 * [`5811468`](https://github.com/npm/npm/commit/5811468e104ccb6b26b8715dff390d68daa10066)
3715   [#7713](https://github.com/npm/npm/issues/7713) Add a test for `npm link` and
3716   `npm link <package>`. ([@watilde](https://github.com/watilde))
3717 * [`3cf3b0c`](https://github.com/npm/npm/commit/3cf3b0c8fddb6b66f969969feebea85fabd0360b)
3718   [#7713](https://github.com/npm/npm/issues/7713) Only use absolute symbolic
3719   links when `npm link`ing. ([@hokaccha](https://github.com/hokaccha))
3720 * [`f35aa93`](https://github.com/npm/npm/commit/f35aa933e136228a89e3fcfdebe8c7cc4f1e7c00)
3721   [#7443](https://github.com/npm/npm/issues/7443) Keep relative URLs when
3722   hitting search endpoint. ([@othiym23](https://github.com/othiym23))
3723 * [`eab6184`](https://github.com/npm/npm/commit/eab618425c51e3aa4416da28dcd8ca4ba63aec41)
3724   [#7766](https://github.com/npm/npm/issues/7766) One last tweak to ensure that
3725   GitHub shortcuts work with private repositories.
3726   ([@iarna](https://github.com/iarna))
3727 * [`5d7f704`](https://github.com/npm/npm/commit/5d7f704823f5f92ddd7ff3e7dd2b8bcc66c73005)
3728   [#7656](https://github.com/npm/npm/issues/7656) Don't try to load a deleted
3729   CA file, allowing the `cafile` config to be changed.
3730   ([@KenanY](https://github.com/KenanY))
3731 * [`a840a13`](https://github.com/npm/npm/commit/a840a13bbf0330157536381ea8e58d0bd93b4c05)
3732   [#7746](https://github.com/npm/npm/issues/7746) Only fix up URL paths when
3733   there are paths to fix up. ([@othiym23](https://github.com/othiym23))
3734
3735 #### DEPENDENCY UPDATES
3736
3737 * [`94df809`](https://github.com/npm/npm/commit/94df8095985bf5ba9d8db99dc445d05dac136aaf)
3738   `request@2.54.0`: Fixes for Node.js 0.12 and io.js.
3739   ([@simov](https://github.com/simov))
3740 * [`98a13ea`](https://github.com/npm/npm/commit/98a13eafdf098b53069ad15297008fcab9c61653)
3741   `opener@1.4.1`: Deal with `start` on Windows more conventionally.
3742   ([@domenic](https://github.com/domenic))
3743 * [`c2417c7`](https://github.com/npm/npm/commit/c2417c7702459a446f07d43ca3c4e99bde7fe9d6)
3744   `require-inject@1.2.0`: Add installGlobally to bypass cleanups.
3745   ([@iarna](https://github.com/iarna))
3746
3747 #### DOCUMENTATION FIXES
3748
3749 * [`f87c728`](https://github.com/npm/npm/commit/f87c728f8732c9e977c0dc2060c0610649e79155)
3750   [#7696](https://github.com/npm/npm/issues/7696) Months and minutes were
3751   swapped in doc-build.sh ([@MeddahJ](https://github.com/MeddahJ))
3752 * [`4e216b2`](https://github.com/npm/npm/commit/4e216b29b30463f06afe6e3c645e205da5f50922)
3753   [#7752](https://github.com/npm/npm/issues/7752) Update string examples to be
3754   properly quoted. ([@snuggs](https://github.com/snuggs))
3755 * [`402f52a`](https://github.com/npm/npm/commit/402f52ab201efa348feb87cad753fc4b91e8a3fb)
3756   [#7635](https://github.com/npm/npm/issues/7635) Clarify Windows installation
3757   instructions. ([@msikma](https://github.com/msikma))
3758 * [`c910399`](https://github.com/npm/npm/commit/c910399ecfd8db49fe4496dd26887765a8aed20f)
3759   small typo fix to `CHANGELOG.md` ([@e-jigsaw](https://github.com/e-jigsaw))
3760
3761 ### v2.7.4 (2015-03-20):
3762
3763 #### BUG FIXES
3764
3765 * [`fe1bc38`](https://github.com/npm/npm/commit/fe1bc387a14475e373557de669e03d9d006d3173)
3766   [#7672](https://github.com/npm/npm/issues/7672) `npm-registry-client@3.1.2`:
3767   Fix client-side certificate handling by correcting property name.
3768   ([@atamon](https://github.com/atamon))
3769 * [`3ce3cc2`](https://github.com/npm/npm/commit/3ce3cc242fc345bca6820185a4f5a013c5bc1944)
3770   [#7635](https://github.com/npm/npm/issues/7635) `fstream-npm@1.0.2`: Raise a
3771   more descriptive error when `bundledDependencies` isn't an array.
3772   ([@KenanY](https://github.com/KenanY))
3773 * [`3a12723`](https://github.com/npm/npm/commit/3a127235076a1f00bc8befba56c024c6d0e7f477)
3774   [#7661](https://github.com/npm/npm/issues/7661) Allow setting `--registry` on
3775   the command line to trump the mapped registry for `--scope`.
3776   ([@othiym23](https://github.com/othiym23))
3777 * [`89ce829`](https://github.com/npm/npm/commit/89ce829a00b526d0518f5cd855c323bffe182af0)
3778   [#7630](https://github.com/npm/npm/issues/7630) `hosted-git-info@1.5.3`: Part
3779   3 of ensuring that GitHub shorthand is handled consistently.
3780   ([@othiym23](https://github.com/othiym23))
3781 * [`63313eb`](https://github.com/npm/npm/commit/63313eb0c37891c355546fd1093010c8a0c3cd81)
3782   [#7630](https://github.com/npm/npm/issues/7630)
3783   `realize-package-specifier@2.2.0`: Part 2 of ensuring that GitHub shorthand
3784   is handled consistently. ([@othiym23](https://github.com/othiym23))
3785 * [`3ed41bf`](https://github.com/npm/npm/commit/3ed41bf64a1bb752bb3155c74dd6ffbbd28c89c9)
3786   [#7630](https://github.com/npm/npm/issues/7630) `npm-package-arg@3.1.1`: Part
3787   1 of ensuring that GitHub shorthand is handled consistently.
3788   ([@othiym23](https://github.com/othiym23))
3789
3790 #### DEPENDENCY UPDATES
3791
3792 * [`6a498c6`](https://github.com/npm/npm/commit/6a498c6aaa00611a0a1ea405255900c327103f8b)
3793   `npm-registry-couchapp@2.6.7`: Ensure that npm continues to work with new
3794   registry architecture. ([@bcoe](https://github.com/bcoe))
3795 * [`bd72c47`](https://github.com/npm/npm/commit/bd72c47ce8c58e287d496902c11845c8fea420d6)
3796   `glob@5.0.3`: Updated to latest version.
3797   ([@isaacs](https://github.com/isaacs))
3798 * [`4bfbaa2`](https://github.com/npm/npm/commit/4bfbaa2d8b9dc7067d999de8f55676db3a4f4196)
3799   `npmlog@1.2.0`: Getting up to date with latest version (but not using any of
3800   the new features). ([@othiym23](https://github.com/othiym23))
3801
3802 #### A NEW REGRESSION TEST
3803
3804 * [`3703b0b`](https://github.com/npm/npm/commit/3703b0b87c127a64649bdbfc3bc697ebccc4aa24)
3805   Add regression test for `npm version` to ensure `message` property in config
3806   continues to be honored. ([@dannyfritz](https://github.com/dannyfritz))
3807
3808 ### v2.7.3 (2015-03-16):
3809
3810 #### HAHA WHOOPS LIL SHINKWRAP ISSUE THERE LOL
3811
3812 * [`1549106`](https://github.com/npm/npm/commit/1549106f518000633915686f5f1ccc6afcf77f8f)
3813   [#7641](https://github.com/npm/npm/issues/7641) Due to 448efd0, running `npm
3814   shrinkwrap --dev` caused production dependencies to no longer be included in
3815   `npm-shrinkwrap.json`. Whoopsie! ([@othiym23](https://github.com/othiym23))
3816
3817 ### v2.7.2 (2015-03-12):
3818
3819 #### NPM GASTROENTEROLOGY
3820
3821 * [`fb0ac26`](https://github.com/npm/npm/commit/fb0ac26eecdd76f6eaa4a96a865b7c6f52ce5aa5)
3822   [#7579](https://github.com/npm/npm/issues/7579) Only block removing files and
3823   links when we're sure npm isn't responsible for them. This change is hard to
3824   summarize, because if things are working correctly you should never see it,
3825   but if you want more context, just [go read the commit
3826   message](https://github.com/npm/npm/commit/fb0ac26eecdd76f6eaa4a96a865b7c6f52ce5aa5),
3827   which lays it all out. ([@othiym23](https://github.com/othiym23))
3828 * [`051c473`](https://github.com/npm/npm/commit/051c4738486a826300f205b71590781ce7744f01)
3829   [#7552](https://github.com/npm/npm/issues/7552) `bundledDependencies` are now
3830   properly included in the installation context. This is another fantastically
3831   hard-to-summarize bug, and once again, I encourage you to [read the commit
3832   message](https://github.com/npm/npm/commit/051c4738486a826300f205b71590781ce7744f01)
3833   if you're curious about the details. The snappy takeaway is that this
3834   unbreaks many use cases for `ember-cli`. ([@othiym23](https://github.com/othiym23))
3835
3836 #### LESS DRAMATIC CHANGES
3837
3838 * [`fcd9247`](https://github.com/npm/npm/commit/fcd92476f3a9092f6f8c83a19a24fe63b206edcd)
3839   [#7597](https://github.com/npm/npm/issues/7597) Awk varies pretty
3840   dramatically from platform to platform, so use Perl to generate the AUTHORS
3841   list instead. ([@KenanY](https://github.com/KenanY))
3842 * [`721b17a`](https://github.com/npm/npm/commit/721b17a31690bec074eb8763d823d6de63406005)
3843   [#7598](https://github.com/npm/npm/issues/7598) `npm install --save` really
3844   isn't experimental anymore. ([@RichardLitt](https://github.com/RichardLitt))
3845
3846 #### DEPENDENCY REFRESH
3847
3848 * [`a91f2c7`](https://github.com/npm/npm/commit/a91f2c7c9a5183d9cde7aae040ebd9ccdf104be7)
3849   [#7559](https://github.com/npm/npm/issues/7559) `node-gyp@1.0.3` Switch
3850   `node-gyp` to use `stdio` instead of `customFds` so it stops printing a
3851   deprecation warning every time you build a native dependency.
3852   ([@jeffbski](https://github.com/jeffbski))
3853 * [`0c85db7`](https://github.com/npm/npm/commit/0c85db7f0dde41762411e40a029153e6a65ef483)
3854   `rimraf@2.3.2`: Globbing now deals with paths containing valid glob
3855   metacharacters better. ([@isaacs](https://github.com/isaacs))
3856 * [`d14588e`](https://github.com/npm/npm/commit/d14588ed09b032c4c770e34b4c0f2436f5fccf6e)
3857   `minimatch@2.0.4`: Bug fixes. ([@isaacs](https://github.com/isaacs))
3858 * [`aa9952e`](https://github.com/npm/npm/commit/aa9952e8270a6c1b7f97e579875dd6e3aa22abfd)
3859   `graceful-fs@3.0.6`: Bug fixes. ([@isaacs](https://github.com/isaacs))
3860
3861 ### v2.7.1 (2015-03-05):
3862
3863 #### GITSANITY
3864
3865 * [`6823807`](https://github.com/npm/npm/commit/6823807bba6c00228a724e1205ae90d67df0adad)
3866   [#7121](https://github.com/npm/npm/issues/7121) `npm install --save` for Git
3867   dependencies saves the URL passed in, instead of the temporary directory used
3868   to clone the remote repo. Fixes using Git dependencies when shrinkwrapping.
3869   In the process, rewrote the Git dependency caching code. Again. No more
3870   single-letter variable names, and a much clearer workflow.
3871   ([@othiym23](https://github.com/othiym23))
3872 * [`c8258f3`](https://github.com/npm/npm/commit/c8258f31365b045e5fcf15b865a363abbc3be616)
3873   [#7486](https://github.com/npm/npm/issues/7486) When installing Git remotes,
3874   the caching code was passing in the function `gitEnv` instead of the results
3875   of invoking it. ([@functino](https://github.com/functino))
3876 * [`c618eed`](https://github.com/npm/npm/commit/c618eeda3e321fd454d77c476b53a0330f2344cc)
3877   [#2556](https://github.com/npm/npm/issues/2556) Make it possible to install
3878   Git dependencies when using `--link` by not linking just the Git
3879   dependencies. ([@smikes](https://github.com/smikes))
3880
3881 #### WHY DID THIS TAKE SO LONG.
3882
3883 * [`abdd040`](https://github.com/npm/npm/commit/abdd040da90932535472f593d5433a67ee074801)
3884   `read-package-json@1.3.2`: Provide more helpful error messages when JSON
3885   parse errors are encountered by using a more forgiving JSON parser than
3886   JSON.parse. ([@smikes](https://github.com/smikes))
3887
3888 #### BUGS & TWEAKS
3889
3890 * [`c56cfcd`](https://github.com/npm/npm/commit/c56cfcd79cd8ab4ccd06d2c03d7e04030d576683)
3891   [#7525](https://github.com/npm/npm/issues/7525) `npm dedupe` handles scoped
3892   packages. ([@KidkArolis](https://github.com/KidkArolis))
3893 * [`1b8ba74`](https://github.com/npm/npm/commit/1b8ba7426393cbae2c76ad2c35953782d4401871)
3894   [#7531](https://github.com/npm/npm/issues/7531) `npm stars` and `npm whoami`
3895   will no longer send the registry the error text saying you need to log in as
3896   your username.  ([@othiym23](https://github.com/othiym23))
3897 * [`6de1e91`](https://github.com/npm/npm/commit/6de1e91116a5105dfa75126532b9083d8672e034)
3898   [#6441](https://github.com/npm/npm/issues/6441) Prevent needless reinstalls
3899   by only updating packages when the current version isn't the same as the
3900   version returned as `wanted` by `npm outdated`.
3901   ([@othiym23](https://github.com/othiym23))
3902 * [`2abc3ee`](https://github.com/npm/npm/commit/2abc3ee08f0cabc4e7bfd7b973c0b59dc44715ff)
3903   Add `npm upgrade` as an alias for `npm update`.
3904   ([@othiym23](https://github.com/othiym23))
3905 * [`bcd4722`](https://github.com/npm/npm/commit/bcd47224e18884191a5d0057c2b2fff83ac8206e)
3906   [#7508](https://github.com/npm/npm/issues/7508) FreeBSD uses `EAI_FAIL`
3907   instead of `ENOTFOUND`. ([@othiym23](https://github.com/othiym23))
3908 * [`21c1ac4`](https://github.com/npm/npm/commit/21c1ac41280f0716a208cde14025a2ad5ef61fed)
3909   [#7507](https://github.com/npm/npm/issues/7507) Update support URL in generic
3910   error handler to `https:` from `http:`.
3911   ([@watilde](https://github.com/watilde))
3912 * [`b6bd99a`](https://github.com/npm/npm/commit/b6bd99a73f575545fbbaef95c12237c47dd32561)
3913   [#7492](https://github.com/npm/npm/issues/7492) On install, the
3914   `package.json` `engineStrict` deprecation only warns for the current package.
3915   ([@othiym23](https://github.com/othiym23))
3916 * [`4ef1412`](https://github.com/npm/npm/commit/4ef1412d0061239da2b1c4460ed6db37cc9ded27)
3917   [#7075](https://github.com/npm/npm/issues/7075) If you try to tag a release
3918   as a valid semver range, `npm publish` and `npm tag` will error early instead
3919   of proceeding. ([@smikes](https://github.com/smikes))
3920 * [`ad53d0f`](https://github.com/npm/npm/commit/ad53d0f666125d9f50d661b54901c6e5bab4d603)
3921   Use `rimraf` in npm build script because Windows doesn't know what rm is.
3922   ([@othiym23](https://github.com/othiym23))
3923 * [`8885c4d`](https://github.com/npm/npm/commit/8885c4dfb618f2838930b5c5149abea300a762d6)
3924   `rimraf@2.3.1`: Better Windows support.
3925   ([@isaacs](https://github.com/isaacs))
3926 * [`8885c4d`](https://github.com/npm/npm/commit/8885c4dfb618f2838930b5c5149abea300a762d6)
3927   `glob@4.4.2`: Handle bad symlinks properly.
3928   ([@isaacs](https://github.com/isaacs))
3929
3930 ###E TYPSO & CLARFIICATIONS
3931
3932 dId yuo know that submiting fxies for doc tpyos is an exclelent way to get
3933 strated contriburting to a new open-saurce porject?
3934
3935 * [`42c605c`](https://github.com/npm/npm/commit/42c605c7b401f603c32ea70427e1a7666adeafd9)
3936   Fix typo in `CHANGELOG.md` ([@adrianblynch](https://github.com/adrianblynch))
3937 * [`c9bd58d`](https://github.com/npm/npm/commit/c9bd58dd637b9c41441023584a13e3818d5db336)
3938   Add note about `node_modules/.bin` being added to the path in `npm
3939   run-script`. ([@quarterto](https://github.com/quarterto))
3940 * [`903bdd1`](https://github.com/npm/npm/commit/903bdd105b205d6e45d3a2ab83eea8e4071e9aeb)
3941   Matt Ranney confused the world when he renamed `node-redis` to `redis`. "The
3942   world" includes npm's documentation.
3943   ([@RichardLitt](https://github.com/RichardLitt))
3944 * [`dea9bb2`](https://github.com/npm/npm/commit/dea9bb2319183fe54bf4d173d8533d46d2c6611c)
3945   Fix typo in contributor link. ([@watilde](https://github.com/watilde))
3946 * [`1226ca9`](https://github.com/npm/npm/commit/1226ca98d4d7650cc3ba16bf7ac62e44820f3bfa)
3947   Properly close code block in npm-install.md.
3948   ([@olizilla](https://github.com/olizilla))
3949
3950 ### v2.7.0 (2015-02-26):
3951
3952 #### SOMETIMES SEMVER MEANS "SUBJECTIVE-EMPATHETIC VERSIONING"
3953
3954 For a very long time (maybe forever?), the documentation for `npm run-script`
3955 has said that `npm restart` will only call `npm stop` and `npm start` when
3956 there is no command defined as `npm restart` in `package.json`. The problem
3957 with this documentation is that `npm run-script` was apparently never wired up
3958 to actually work this way.
3959
3960 Until now.
3961
3962 If the patch below were landed on its own, free of context, it would be a
3963 breaking change. But, since the "new" behavior is how the documentation claims
3964 this feature has always worked, I'm classifying it as a patch-level bug fix. I
3965 apologize in advance if this breaks anybody's deployment scripts, and if it
3966 turns out to be a significant regression in practice, we can revert this change
3967 and move it to `npm@3`, which is allowed to make breaking changes due to being
3968 a new major version of semver.
3969
3970 * [`2f6a1df`](https://github.com/npm/npm/commit/2f6a1df3e1e3e0a3bc4abb69e40f59a64204e7aa)
3971   [#1999](https://github.com/npm/npm/issues/1999) Only run `stop` and `start`
3972   scripts (plus their pre- and post- scripts) when there's no `restart` script
3973   defined. This makes it easier to support graceful restarts of services
3974   managed by npm.  ([@watilde](https://github.com/watilde) /
3975   [@scien](https://github.com/scien))
3976
3977 #### A SMALL FEATURE WITH BIG IMPLICATIONS
3978
3979 * [`145af65`](https://github.com/npm/npm/commit/145af6587f45de135cc876be2027ed818ed4ca6a)
3980   [#4887](https://github.com/npm/npm/issues/4887) Replace calls to the
3981   `node-gyp` script bundled with npm by passing the
3982   `--node-gyp=/path/to/node-gyp` option to npm. Swap in `pangyp` or a version
3983   of `node-gyp` modified to work better with io.js without having to touch
3984   npm's code!  ([@ackalker](https://github.com/ackalker))
3985
3986 #### [@WATILDE'S](https://github.com/watilde) NPM USABILITY CORNER
3987
3988 Following `npm@2.6.1`'s unexpected fix of many of the issues with `npm update
3989 -g` simply by making `--depth=0` the default for `npm outdated`, friend of npm
3990 [@watilde](https://github.com/watilde) has made several modest changes to npm's
3991 behavior that together justify bumping npm's minor version, as well as making
3992 npm significantly more pleasant to use:
3993
3994 * [`448efd0`](https://github.com/npm/npm/commit/448efd0eaa6f97af0889bf47efc543a1ea2f8d7e)
3995   [#2853](https://github.com/npm/npm/issues/2853) Add support for `--dev` and
3996   `--prod` to `npm ls`, so that you can list only the trees of production or
3997   development dependencies, as desired.
3998   ([@watilde](https://github.com/watilde))
3999 * [`a0a8777`](https://github.com/npm/npm/commit/a0a87777af8bee180e4e9321699f050c29ed5ac4)
4000   [#7463](https://github.com/npm/npm/issues/7463) Split the list printed by
4001   `npm run-script` into lifecycle scripts and scripts directly invoked via `npm
4002   run-script`. ([@watilde](https://github.com/watilde))
4003 * [`a5edc17`](https://github.com/npm/npm/commit/a5edc17d5ef1435b468a445156a4a109df80f92b)
4004   [#6749](https://github.com/npm/npm/issues/6749) `init-package-json@1.3.1`:
4005   Support for passing scopes to `npm init` so packages are initialized as part
4006   of that scope / organization / team. ([@watilde](https://github.com/watilde))
4007
4008 #### SMALLER FEATURES AND FIXES
4009
4010 It turns out that quite a few pull requests had piled up on npm's issue
4011 tracker, and they included some nice small features and fixes:
4012
4013 * [`f33e8b8`](https://github.com/npm/npm/commit/f33e8b8ff2de094071c5976be95e35110cf2ab1a)
4014   [#7354](https://github.com/npm/npm/issues/7354) Add `--if-present` flag to
4015   allow e.g. CI systems to call (semi-) standard build tasks defined in
4016   `package.json`, but don't raise an error if no such script is defined.
4017   ([@jussi-kalliokoski](https://github.com/jussi-kalliokoski))
4018 * [`7bf85cc`](https://github.com/npm/npm/commit/7bf85cc372ab5698593b01e139c383fa62c92516)
4019   [#4005](https://github.com/npm/npm/issues/4005)
4020   [#6248](https://github.com/npm/npm/issues/6248) Globally unlink a package
4021   when `npm rm` / `npm unlink` is called with no arguments.
4022   ([@isaacs](https://github.com/isaacs))
4023 * [`a2e04bd`](https://github.com/npm/npm/commit/a2e04bd921feab8f9e40a27e180ca9308eb709d7)
4024   [#7294](https://github.com/npm/npm/issues/7294) Ensure that when depending on
4025   `git+<proto>` URLs, npm doesn't keep tacking additional `git+` prefixes onto
4026   the front. ([@twhid](https://github.com/twhid))
4027 * [`0f87f5e`](https://github.com/npm/npm/commit/0f87f5ed28960d962f34977953561d22983da4f9)
4028   [#6422](https://github.com/npm/npm/issues/6422) When depending on GitHub
4029   private repositories, make sure we construct the Git URLS correctly.
4030   ([@othiym23](https://github.com/othiym23))
4031 * [`50f461d`](https://github.com/npm/npm/commit/50f461d248c4d22e881a9535dccc1d57d994dbc7)
4032   [#4595](https://github.com/npm/npm/issues/4595) Support finding compressed
4033   manpages. It's still up to the system to figure out how to display them,
4034   though. ([@pshevtsov](https://github.com/pshevtsov))
4035 * [`44da664`](https://github.com/npm/npm/commit/44da66456b530c049ff50953f78368460df87461)
4036   [#7465](https://github.com/npm/npm/issues/7465) When calling git, log the
4037   **full** command, with all arguments, on error.
4038   ([@thriqon](https://github.com/thriqon))
4039 * [`9748d5c`](https://github.com/npm/npm/commit/9748d5cd195d0269b32caf45129a93d29359a796)
4040   Add parent to error on `ETARGET` error.
4041   ([@davglass](https://github.com/davglass))
4042 * [`37038d7`](https://github.com/npm/npm/commit/37038d7db47a986001f77ac17b3e164000fc8ff3)
4043   [#4663](https://github.com/npm/npm/issues/4663) Remove hackaround for Linux
4044   tests, as it's evidently no longer necessary.
4045   ([@mmalecki](https://github.com/mmalecki))
4046 * [`d7b7853`](https://github.com/npm/npm/commit/d7b785393dffce93bb70317fbc039a6428ca37c5)
4047   [#2612](https://github.com/npm/npm/issues/2612) Add support for path
4048   completion on `npm install`, which narrows completion to only directories
4049   containing `package.json` files. ([@deestan](https://github.com/deestan))
4050 * [`628fcdb`](https://github.com/npm/npm/commit/628fcdb0be4e14c0312085a50dc2ae01dc713fa6)
4051   Remove all command completion calls to `-/short`, because it's been removed
4052   from the primary registry for quite some time, and is generally a poor idea
4053   on any registry with more than a few hundred packages.
4054   ([@othiym23](https://github.com/othiym23))
4055 * [`3f6061d`](https://github.com/npm/npm/commit/3f6061d75650441ee690472d1fa9c8dd7a7b1b28)
4056   [#6659](https://github.com/npm/npm/issues/6659) Instead of removing zsh
4057   completion global, make it a local instead.
4058   ([@othiym23](https://github.com/othiym23))
4059
4060 #### DOCUMENTATION TWEAKS
4061
4062 * [`5bc70e6`](https://github.com/npm/npm/commit/5bc70e6cfb3598da433806c6f447fc94c8e1d35d)
4063   [#7417](https://github.com/npm/npm/issues/7417) Provide concrete examples of
4064   how the new `npm update` defaults work in practice, tied to actual test
4065   cases. Everyone interested in using `npm update -g` now that it's been fixed
4066   should read these documents, as should anyone interested in writing
4067   documentation for npm. ([@smikes](https://github.com/smikes))
4068 * [`8ac6f21`](https://github.com/npm/npm/commit/8ac6f2123a6af13dc9447fad96ec9cb583c45a71)
4069   [#6543](https://github.com/npm/npm/issues/6543) Clarify `npm-scripts`
4070   warnings to de-emphasize dangers of using `install` scripts.
4071   ([@zeke](https://github.com/zeke))
4072 * [`ebe3b37`](https://github.com/npm/npm/commit/ebe3b37098efdada41dcc4c52a291e29296ea242)
4073   [#6711](https://github.com/npm/npm/issues/6711) Note that git tagging of
4074   versions can be disabled via `--no-git-tag-verson`.
4075   ([@smikes](https://github.com/smikes))
4076 * [`2ef5771`](https://github.com/npm/npm/commit/2ef5771632006e6cee8cf17f836c0f98ab494bd1)
4077   [#6711](https://github.com/npm/npm/issues/6711) Document `git-tag-version`
4078   configuration option. ([@KenanY](https://github.com/KenanY))
4079 * [`95e59b2`](https://github.com/npm/npm/commit/95e59b287c9517780318e145371a859e8ebb2d20)
4080   Document that `NODE_ENV=production` behaves analogously to `--production` on
4081   `npm install`. ([@stefaneg](https://github.com/stefaneg))
4082 * [`687117a`](https://github.com/npm/npm/commit/687117a5bcd6a838cd1532ea7020ec6fcf0c33c0)
4083   [#7463](https://github.com/npm/npm/issues/7463) Document the new script
4084   grouping behavior in the man page for `npm run-script`.
4085   ([@othiym23](https://github.com/othiym23))
4086 * [`536b2b6`](https://github.com/npm/npm/commit/536b2b6f55c349247b3e79b5d11b4c033ef5a3df)
4087   Rescue one of the the disabled tests and make it work properly.
4088   ([@smikes](https://github.com/smikes))
4089
4090 #### DEPENDENCY UPDATES
4091
4092 * [`89fc6a4`](https://github.com/npm/npm/commit/89fc6a4e7ff8c524675fcc14493ca0a1e3a76d38)
4093   `which@1.0.9`: Test for being run as root, as well as the current user.
4094   ([@isaacs](https://github.com/isaacs))
4095 * [`5d0612f`](https://github.com/npm/npm/commit/5d0612f31e226cba32a05351c47b055c0ab6c557)
4096   `glob@4.4.1`: Better error message to explain why calling sync glob with a
4097   callback results in an error. ([@isaacs](https://github.com/isaacs))
4098 * [`64b07f6`](https://github.com/npm/npm/commit/64b07f6caf6cb07e4102f1e4e5f2ff2b944e452e)
4099   `tap@0.7.1`: More accurate counts of pending & skipped tests.
4100   ([@rmg](https://github.com/rmg))
4101 * [`8fda451`](https://github.com/npm/npm/commit/8fda45195dae1d6f792be556abe87f7763fab09b)
4102   `semver@4.3.1`: Make official the fact that `node-semver` has moved from
4103   [@isaacs](https://github.com/isaacs)'s organization to
4104   [@npm](https://github.com/npm)'s. ([@isaacs](https://github.com/isaacs))
4105
4106 ### v2.6.1 (2015-02-19):
4107
4108 * [`8b98f0e`](https://github.com/npm/npm/commit/8b98f0e709d77a8616c944aebd48ab726f726f76)
4109   [#4471](https://github.com/npm/npm/issues/4471) `npm outdated` (and only `npm
4110   outdated`) now defaults to `--depth=0`. See the [docs for
4111   `--depth`](https://github.com/npm/npm/blob/82f484672adb1a3caf526a8a48832789495bb43d/doc/misc/npm-config.md#depth)
4112   for the mildly confusing details. ([@smikes](https://github.com/smikes))
4113 * [`aa79194`](https://github.com/npm/npm/commit/aa791942a9f3c8af6a650edec72a675deb7a7c6e)
4114   [#6565](https://github.com/npm/npm/issues/6565) Tweak `peerDependency`
4115   deprecation warning to include which peer dependency on which package is
4116   going to need to change. ([@othiym23](https://github.com/othiym23))
4117 * [`5fa067f`](https://github.com/npm/npm/commit/5fa067fd47682ac3cdb12a2b009d8ca59b05f992)
4118   [#7171](https://github.com/npm/npm/issues/7171) Tweak `engineStrict`
4119   deprecation warning to include which `package.json` is using it.
4120   ([@othiym23](https://github.com/othiym23))
4121 * [`0fe0caa`](https://github.com/npm/npm/commit/0fe0caa7eddb7acdacbe5ee81ceabaca27175c78)
4122   `glob@4.4.0`: Glob patterns can now ignore matches.
4123   ([@isaacs](https://github.com/isaacs))
4124
4125 ### v2.6.0 (2015-02-12):
4126
4127 #### A LONG-AWAITED GUEST
4128
4129 * [`38c4825`](https://github.com/npm/npm/commit/38c48254d3d217b4babf5027cb39492be4052fc2)
4130   [#5068](https://github.com/npm/npm/issues/5068) Add new logout command, and
4131   make it do something useful on both bearer-based and basic-based authed
4132   clients. ([@othiym23](https://github.com/othiym23))
4133 * [`4bf0f5d`](https://github.com/npm/npm/commit/4bf0f5d56c33649124b486e016ba4a620c105c1c)
4134   `npm-registry-client@6.1.1`: Support new `logout` endpoint to invalidate
4135   token for sessions. ([@othiym23](https://github.com/othiym23))
4136
4137 #### DEPRECATIONS
4138
4139 * [`c8e08e6`](https://github.com/npm/npm/commit/c8e08e6d91f4016c80f572aac5a2080df0f78098)
4140   [#6565](https://github.com/npm/npm/issues/6565) Warn that `peerDependency`
4141   behavior is changing and add a note to the docs.
4142   ([@othiym23](https://github.com/othiym23))
4143 * [`7c81a5f`](https://github.com/npm/npm/commit/7c81a5f5f058941f635a92f22641ea68e79b60db)
4144   [#7171](https://github.com/npm/npm/issues/7171) Warn that `engineStrict` in
4145   `package.json` will be going away in the next major version of npm (coming
4146   soon!) ([@othiym23](https://github.com/othiym23))
4147
4148 #### BUG FIXES & TWEAKS
4149
4150 * [`add5890`](https://github.com/npm/npm/commit/add5890ce447dabf120b907a85f715df1e065f44)
4151   [#4668](https://github.com/npm/npm/issues/4668) `read-package-json@1.3.1`:
4152   Warn when a `bin` symbolic link is a dangling reference.
4153   ([@nicks](https://github.com/nicks))
4154 * [`4b42071`](https://github.com/npm/npm/commit/4b420714dfb84338d85def78c30bd665e32d72c1)
4155   `semver@4.3.0`: Add functions to extract parts of the version triple, fix a
4156   typo. ([@isaacs](https://github.com/isaacs))
4157 * [`a9aff38`](https://github.com/npm/npm/commit/a9aff38719918486fc381d67ad3371c475632ff7)
4158   Use full path for man pages as the symbolic link source, instead of just the
4159   file name. ([@bengl](https://github.com/bengl))
4160 * [`6fd0fbd`](https://github.com/npm/npm/commit/6fd0fbd8a0347fd47cb7ee0064e0902a2f8a087c)
4161   [#7233](https://github.com/npm/npm/issues/7233) Ensure `globalconfig` path
4162   exists before trying to edit it. ([@ljharb](https://github.com/ljharb))
4163 * [`a0a2620`](https://github.com/npm/npm/commit/a0a262047647d9e2690cebe5a89e6a0dd33202bb)
4164   `ini@1.3.3`: Allow embedded, quoted equals signs in ini field names.
4165   ([@isaacs](https://github.com/isaacs))
4166
4167 Also typos and other documentation issues were addressed by
4168 [@rutsky](https://github.com/rutsky), [@imurchie](https://github.com/imurchie),
4169 [@marcin-wosinek](https://github.com/marcin-wosinek),
4170 [@marr](https://github.com/marr), [@amZotti](https://github.com/amZotti), and
4171 [@karlhorky](https://github.com/karlhorky). Thank you, everyone!
4172
4173 ### v2.5.1 (2015-02-06):
4174
4175 This release doesn't look like much, but considerable effort went into ensuring
4176 that npm's tests will pass on io.js 1.1.0 and Node 0.11.16 / 0.12.0 on both OS
4177 X and Linux.
4178
4179 **NOTE:** there are no actual changes to npm's code in `npm@2.5.1`. Only test
4180 code (and the upgrade of `request` to the latest version) has changed.
4181
4182 #### `npm-registry-mock@1.0.0`:
4183
4184 * [`0e8d473`](https://github.com/npm/npm/commit/0e8d4736a1cbdda41ae8eba8a02c7ff7ce80c2ff)
4185   [#7281](https://github.com/npm/npm/issues/7281) `npm-registry-mock@1.0.0`:
4186   Clean up API, set `connection: close`.
4187   ([@robertkowalski](https://github.com/robertkowalski))
4188 * [`4707bba`](https://github.com/npm/npm/commit/4707bba7d44dfab85cc45c2ecafa9c1601ba2e9a)
4189   Further update tests to work with `npm-registry-mock@1.0.0`.
4190   ([@othiym23](https://github.com/othiym23))
4191 * [`41a0f89`](https://github.com/npm/npm/commit/41a0f8959d4e02af9661588afa7d2b4543cc21b6)
4192   Got rid of completely gratuitous global config manipulation in tests.
4193   ([@othiym23](https://github.com/othiym23))
4194
4195 #### MINOR DEPENDENCY TWEAK
4196
4197 * [`a4c7af9`](https://github.com/npm/npm/commit/a4c7af9c692f250c0fd017397ed9514fc263b752)
4198   `request@2.53.0`: Tweaks to tunneling proxy behavior.
4199   ([@nylen](https://github.com/nylen))
4200
4201 ### v2.5.0 (2015-01-29):
4202
4203 #### SMALL FEATURE I HAVE ALREADY USED TO MAINTAIN NPM ITSELF
4204
4205 * [`9d61e96`](https://github.com/npm/npm/commit/9d61e96fb1f48687a85c211e4e0cd44c7f95a38e)
4206   `npm outdated --long` now includes a column showing the type of dependency.
4207   ([@watilde](https://github.com/watilde))
4208
4209 #### BUG FIXES & TWEAKS
4210
4211 * [`fec4c96`](https://github.com/npm/npm/commit/fec4c967ee235030bf31393e8605e9e2811f4a39)
4212   Allow `--no-proxy` to override `HTTP_PROXY` setting in environment.
4213   ([@othiym23](https://github.com/othiym23))
4214 * [`589acb9`](https://github.com/npm/npm/commit/589acb9714f395c2ad0d98cb0ac4236f1842d2cc)
4215   Only set `access` when publshing when it's explicitly set.
4216   ([@othiym23](https://github.com/othiym23))
4217 * [`1027087`](https://github.com/npm/npm/commit/102708704c8c4f0ea99775d38f8d1efecf584940)
4218   Add script and `Makefile` stanza to update AUTHORS.
4219   ([@KenanY](https://github.com/KenanY))
4220 * [`eeff04d`](https://github.com/npm/npm/commit/eeff04da7979a0181becd36b8777d607e7aa1787)
4221   Add `NPMOPTS` to top-level install in `Makefile` to override `userconfig`.
4222   ([@aredridel](https://github.com/aredridel))
4223 * [`0d17328`](https://github.com/npm/npm/commit/0d173287336650606d4c91818bb7bcfb0c5d57a1)
4224   `fstream@1.0.4`: Run chown only when necessary.
4225   ([@silkentrance](https://github.com/silkentrance))
4226 * [`9aa4622`](https://github.com/npm/npm/commit/9aa46226ee63b9e183fd49fc72d9bdb0fae9605e)
4227   `columnify@1.4.1`: ES6ified! ([@timoxley](https://github.com/timoxley))
4228 * [`51b2fd1`](https://github.com/npm/npm/commit/51b2fd1974e38b825ac5ca4a852ab3c4142624cc)
4229   Update default version in `docs/npm-config.md`.
4230   ([@lucthev](https://github.com/lucthev))
4231
4232 #### `npm-registry-client@6.0.7`:
4233
4234 * [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
4235   [#7226](https://github.com/npm/npm/issues/7226) Ensure that all request
4236   settings are copied onto the agent.
4237   ([@othiym23](https://github.com/othiym23))
4238 * [`e186f6e`](https://github.com/npm/npm/commit/e186f6e7cfeb4db9c94d7375638f0b2f0d472947)
4239   Only set `access` on publish when it differs from the norm.
4240   ([@othiym23](https://github.com/othiym23))
4241 * [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
4242   Allow overriding request's environment-based proxy handling.
4243   ([@othiym23](https://github.com/othiym23))
4244 * [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
4245   Properly handle retry failures on fetch.
4246   ([@othiym23](https://github.com/othiym23))
4247
4248 ### v2.4.1 (2015-01-23):
4249
4250 ![bridge that doesn't meet in the middle](http://www.static-18.themodernnomad.com/wp-content/uploads/2011/08/bridge-fail.jpg)
4251
4252 Let's accentuate the positive: the `dist-tag` endpoints for `npm dist-tag
4253 {add,rm,ls}` are now live on the public npm registry.
4254
4255 * [`f70272b`](https://github.com/npm/npm/commit/f70272bed7d77032d1e21553371dd5662fef32f2)
4256   `npm-registry-client@6.0.3`: Properly escape JSON tag version strings and
4257   filter `_etag` from CouchDB docs. ([@othiym23](https://github.com/othiym23))
4258
4259 ### v2.4.0 (2015-01-22):
4260
4261 #### REGISTRY 2: ACCESS AND DIST-TAGS
4262
4263 NOTE: This week's registry-2 commands are leading the implementation on
4264 registry.npmjs.org a little bit, so some of the following may not work for
4265 another week or so. Also note that `npm access` has documentation and
4266 subcommands that are not yet finished, because they depend on incompletely
4267 specified registry API endpoints. Things are coming together very quickly,
4268 though, so expect the missing pieces to be filled in the coming weeks.
4269
4270 * [`c963eb2`](https://github.com/npm/npm/commit/c963eb295cf766921b1680f4a71fd0ed3e1bcad8)
4271   [#7181](https://github.com/npm/npm/issues/7181) NEW `npm access public` and
4272   `npm access restricted`: Toggle visibility of scoped packages.
4273   ([@othiym23](https://github.com/othiym23))
4274 * [`dc51810`](https://github.com/npm/npm/commit/dc51810e08c0f104259146c9c035d255de4f7d1d)
4275   [#6243](https://github.com/npm/npm/issues/6243) /
4276   [#6854](https://github.com/npm/npm/issues/6854) NEW `npm dist-tags`: Directly
4277   manage `dist-tags` on packages. Most notably, `dist-tags` can now be deleted.
4278   ([@othiym23](https://github.com/othiym23))
4279 * [`4c7c132`](https://github.com/npm/npm/commit/4c7c132a6b8305dca2974943226c39c0cdc64ff9)
4280   [#7181](https://github.com/npm/npm/issues/7181) /
4281   [#6854](https://github.com/npm/npm/issues/6854) `npm-registry-client@6.0.1`:
4282   Add new `access` and `dist-tags` endpoints
4283   ([@othiym23](https://github.com/othiym23))
4284
4285 #### NOT EXACTLY SELF-DEPRECATING
4286
4287 * [`10d5c77`](https://github.com/npm/npm/commit/10d5c77653487f15759ac7de262a97e9c655240c)
4288   [#6274](https://github.com/npm/npm/issues/6274) Deprecate `npm tag` in favor
4289   of `npm dist-tag`. ([@othiym23](https://github.com/othiym23))
4290
4291 #### BUG FIX AND TINY FEATURE
4292
4293 * [`29a6ef3`](https://github.com/npm/npm/commit/29a6ef38ef86ac318c5d9ea4bee28ce614672fa6)
4294   [#6850](https://github.com/npm/npm/issues/6850) Be smarter about determining
4295   base of file deletion when unbuilding. ([@phated](https://github.com/phated))
4296 * [`4ad01ea`](https://github.com/npm/npm/commit/4ad01ea2930a7a1cf88be121cc5ce9eba40c6807)
4297   `init-package-json@1.2.0`: Support `--save-exact` in `npm init`.
4298   ([@gustavnikolaj](https://github.com/gustavnikolaj))
4299
4300 ### v2.3.0 (2015-01-15):
4301
4302 #### REGISTRY 2: OH MY STARS! WHO AM I?
4303
4304 * [`e662a60`](https://github.com/npm/npm/commit/e662a60e2f9a542effd8e72279d4622fe514415e)
4305   The new `whoami` endpoint might not return a value.
4306   ([@othiym23](https://github.com/othiym23))
4307 * [`c2cccd4`](https://github.com/npm/npm/commit/c2cccd4bbc65885239ed646eb510155f7b8af13d)
4308   `npm-registry-client@5.0.0`: Includes the following fine changes
4309   ([@othiym23](https://github.com/othiym23)):
4310   * [`ba6b73e`](https://github.com/npm/npm-registry-client/commit/ba6b73e351027246c228622014e4441412409bad)
4311     [#92](https://github.com/npm/npm-registry-client/issues/92) BREAKING CHANGE:
4312     Move `/whoami` endpoint out of the package namespace (to `/-/whoami`).
4313     ([@othiym23](https://github.com/othiym23))
4314   * [`3b174b7`](https://github.com/npm/npm-registry-client/commit/3b174b75c0c9ea77e298e6bb664fb499824ecc7c)
4315     [#93](https://github.com/npm/npm-registry-client/issues/93) Registries based
4316     on token-based auth can now offer starring.
4317     ([@bcoe](https://github.com/bcoe))
4318   * [`4701a29`](https://github.com/npm/npm-registry-client/commit/4701a29bcda41bc14aa91f361dd0d576e24677d7)
4319     Fix HTTP[S] connection keep-alive on Node 0.11 / io.js 1.0.
4320     ([@fengmk2](https://github.com/fengmk2))
4321
4322 #### BETTER REGISTRY METADATA CACHING
4323
4324 * [`98e1e10`](https://github.com/npm/npm/commit/98e1e1080df1f2cab16ed68035603950ea3d2d48)
4325   [#6791](https://github.com/npm/npm/issues/6791) Add caching based on
4326   Last-Modified / If-Modified-Since headers. Includes this
4327   `npm-registry-client@5.0.0` change ([@lxe](https://github.com/lxe)):
4328   * [`07bc335`](https://github.com/npm/npm-registry-client/commit/07bc33502b93554cd7539bfcce37d6e2d5404cd0)
4329     [#86](https://github.com/npm/npm-registry-client/issues/86) Add Last-Modified
4330     / If-Modified-Since cache header handling. ([@lxe](https://github.com/lxe))
4331
4332 #### HOW MUCH IS THAT WINDOWS IN THE DOGGY?
4333
4334 * [`706d49a`](https://github.com/npm/npm/commit/706d49ab45521360fce1a68779b8de899015d8c2)
4335   [#7107](https://github.com/npm/npm/issues/7107) `getCacheStat` passes a stub
4336   stat on Windows. ([@rmg](https://github.com/rmg))
4337 * [`5fce278`](https://github.com/npm/npm/commit/5fce278a688a1cb79183e012bde40b089c2e97a4)
4338   [#5267](https://github.com/npm/npm/issues/5267) Use `%COMSPEC%` when set on
4339   Windows. ([@edmorley](https://github.com/edmorley))
4340 * [`cc2e099`](https://github.com/npm/npm/commit/cc2e09912ce2f91567c485422e4e797c4deb9842)
4341   [#7083](https://github.com/npm/npm/issues/7083) Ensure Git cache prefix
4342   exists before repo clone on Windows.
4343   ([@othiym23](https://github.com/othiym23))
4344
4345 #### THRILLING BUG FIXES
4346
4347 * [`c6fb430`](https://github.com/npm/npm/commit/c6fb430e55672b3caf87d25cbd2aeeebc449e2f2)
4348   [#4197](https://github.com/npm/npm/issues/4197) Report `umask` as a 0-padded
4349   octal literal. ([@smikes](https://github.com/smikes))
4350 * [`209713e`](https://github.com/npm/npm/commit/209713ebd4b77da11ce27d90c3346f78d760ba52)
4351   [#4197](https://github.com/npm/npm/issues/4197) `umask@1.1.0`: Properly
4352   handle `umask`s (i.e. not decimal numbers).
4353   ([@smikes](https://github.com/smikes))
4354 * [`9eac0a1`](https://github.com/npm/npm/commit/9eac0a14488c5979ebde4c17881c8cd74f395069)
4355   Make the example for bin links non-destructive.
4356   ([@KevinSheedy](https://github.com/KevinSheedy))
4357 * [`6338bcf`](https://github.com/npm/npm/commit/6338bcfcd9cd1b0cc48b051dae764dc436ab5332)
4358   `glob@4.3.5`: " -> ', for some reason. ([@isaacs](https://github.com/isaacs))
4359
4360 ### v2.2.0 (2015-01-08):
4361
4362 * [`88c531d`](https://github.com/npm/npm/commit/88c531d1c0b3aced8f2a09632db01b5635e7226a)
4363   [#7056](https://github.com/npm/npm/issues/7056) version doesn't need a
4364   package.json. ([@othiym23](https://github.com/othiym23))
4365 * [`2656c19`](https://github.com/npm/npm/commit/2656c19f6b915c3173acc3b6f184cc321563da5f)
4366   [#7095](https://github.com/npm/npm/issues/7095) Link to npm website instead
4367   of registry. ([@konklone](https://github.com/konklone))
4368 * [`c76b801`](https://github.com/npm/npm/commit/c76b8013bf1758587565822626171b76cb465c9e)
4369   [#7067](https://github.com/npm/npm/issues/7067) Obfuscate secrets, including
4370   nerfed URLs. ([@smikes](https://github.com/smikes))
4371 * [`17f66ce`](https://github.com/npm/npm/commit/17f66ceb1bd421084e4ae82a6b66634a6e272929)
4372   [#6849](https://github.com/npm/npm/issues/6849) Explain the tag workflow more
4373   clearly. ([@smikes](https://github.com/smikes))
4374 * [`e309df6`](https://github.com/npm/npm/commit/e309df642de33d10d6dffadaa8a5d214a924d0dc)
4375   [#7096](https://github.com/npm/npm/issues/7096) Really, `npm update -g` is
4376   almost always a terrible idea. ([@smikes](https://github.com/smikes))
4377 * [`acf287d`](https://github.com/npm/npm/commit/acf287d2547c8a0a8871652c164019261b666d55)
4378   [#6999](https://github.com/npm/npm/issues/6999) `npm run-script env`: add a
4379   new default script that will print out environment values.
4380   ([@gcb](https://github.com/gcb))
4381 * [`560c009`](https://github.com/npm/npm/commit/560c00945d4dec926cd29193e336f137c7f3f951)
4382   [#6745](https://github.com/npm/npm/issues/6745) Document `npm update --dev`.
4383   ([@smikes](https://github.com/smikes))
4384 * [`226a677`](https://github.com/npm/npm/commit/226a6776a1a9e28570485623b8adc2ec4b041335)
4385   [#7046](https://github.com/npm/npm/issues/7046) We have never been the Node
4386   package manager. ([@linclark](https://github.com/linclark))
4387 * [`38eef22`](https://github.com/npm/npm/commit/38eef2248f03bb8ab04cae1833e2a228fb887f3c)
4388   `npm-install-checks@1.0.5`: Compatibility with npmlog@^1.
4389   ([@iarna](https://github.com/iarna))
4390
4391 ### v2.1.18 (2015-01-01):
4392
4393 * [`bf8640b`](https://github.com/npm/npm/commit/bf8640b0395b5dff71260a0cede7efc699a7bcf5)
4394   [#7044](https://github.com/npm/npm/issues/7044) Document `.npmignore` syntax.
4395   ([@zeke](https://github.com/zeke))
4396
4397 ### v2.1.17 (2014-12-25):
4398
4399 merry npm xmas
4400
4401 Working with [@phated](https://github.com/phated), I discovered that npm still
4402 had some lingering race conditions around how it handles Git dependencies. The
4403 following changes were intended to remedy to these issues. Thanks to
4404 [@phated](https://github.com/phated) for all his help getting to the bottom of
4405 these.
4406
4407 * [`bdf1c84`](https://github.com/npm/npm/commit/bdf1c8483f5c4ad79b712db12d73276e15883923)
4408   [#7006](https://github.com/npm/npm/issues/7006) Only `chown` template and
4409   top-level Git cache directories. ([@othiym23](https://github.com/othiym23))
4410 * [`581a72d`](https://github.com/npm/npm/commit/581a72da18f35ec87edef6255adf4ef4714a478c)
4411   [#7006](https://github.com/npm/npm/issues/7006) Map Git remote inflighting to
4412   clone paths rather than Git URLs. ([@othiym23](https://github.com/othiym23))
4413 * [`1c48d08`](https://github.com/npm/npm/commit/1c48d08dea31a11ac11a285cac598a482481cade)
4414   [#7009](https://github.com/npm/npm/issues/7009) `normalize-git-url@1.0.0`:
4415   Normalize Git URLs while caching. ([@othiym23](https://github.com/othiym23))
4416 * [`5423cf0`](https://github.com/npm/npm/commit/5423cf0be8ff2b76bfff7c8e780e5f261235a86a)
4417   [#7009](https://github.com/npm/npm/issues/7009) Pack tarballs to their final
4418   locations atomically. ([@othiym23](https://github.com/othiym23))
4419 * [`7f6557f`](https://github.com/npm/npm/commit/7f6557ff317469ee4a87c542ff9a991e74ce9f38)
4420   [#7009](https://github.com/npm/npm/issues/7009) Inflight local directory
4421   packing, just to be safe. ([@othiym23](https://github.com/othiym23))
4422
4423 Other changes:
4424
4425 * [`1c491e6`](https://github.com/npm/npm/commit/1c491e65d70af013e8d5ac008d6d9762d6d91793)
4426   [#6991](https://github.com/npm/npm/issues/6991) `npm version`: fix regression
4427   in dirty-checking behavior ([@rlidwka](https://github.com/rlidwka))
4428 * [`55ceb2b`](https://github.com/npm/npm/commit/55ceb2b08ff8a0f56b94cc972ca15d7862e8733c)
4429   [#1991](https://github.com/npm/npm/issues/1991) modify docs to reflect actual
4430   `npm restart` behavior ([@smikes](https://github.com/smikes))
4431 * [`fb8e31b`](https://github.com/npm/npm/commit/fb8e31b95476a50bda35a665a99eec8a5d25a4db)
4432   [#6982](https://github.com/npm/npm/issues/6982) when doing registry
4433   operations, ensure registry URL always ends with `/`
4434   ([@othiym23](https://github.com/othiym23))
4435 * [`5bcba65`](https://github.com/npm/npm/commit/5bcba65bed2678ffe80fb596f72abe9871d131c8)
4436   pull whitelisted Git environment variables out into a named constant
4437   ([@othiym23](https://github.com/othiym23))
4438 * [`be04bbd`](https://github.com/npm/npm/commit/be04bbdc52ebfc820cd939df2f7d79fe87067747)
4439   [#7000](https://github.com/npm/npm/issues/7000) No longer install badly-named
4440   manpage files, and log an error when trying to uninstall them.
4441   ([@othiym23](https://github.com/othiym23))
4442 * [`6b7c5ec`](https://github.com/npm/npm/commit/6b7c5eca6b65e1247d0e51f6400cf2637ac880ce)
4443   [#7011](https://github.com/npm/npm/issues/7011) Send auth for tarball fetches
4444   for packages in `npm-shrinkwrap.json` from private registries.
4445     ([@othiym23](https://github.com/othiym23))
4446 * [`9b9de06`](https://github.com/npm/npm/commit/9b9de06a99893b40aa23f0335726dec6df7979db)
4447   `glob@4.3.2`: Better handling of trailing slashes.
4448   ([@isaacs](https://github.com/isaacs))
4449 * [`030f3c7`](https://github.com/npm/npm/commit/030f3c7450b8ce124a19073bfbae0948a0a1a02c)
4450   `semver@4.2.0`: Diffing between version strings.
4451   ([@isaacs](https://github.com/isaacs))
4452
4453 ### v2.1.16 (2014-12-22):
4454
4455 * [`a4e4e33`](https://github.com/npm/npm/commit/a4e4e33edb35c68813f04bf42bdf933a6f727bcd)
4456   [#6987](https://github.com/npm/npm/issues/6987) `read-installed@3.1.5`: fixed
4457   a regression where a new / empty package would cause read-installed to throw.
4458   ([@othiym23](https://github.com/othiym23) /
4459   [@pgilad](https://github.com/pgilad))
4460
4461 ### v2.1.15 (2014-12-18):
4462
4463 * [`e5a2dee`](https://github.com/npm/npm/commit/e5a2dee47c74f26c56fee5998545b97497e830c8)
4464   [#6951](https://github.com/npm/npm/issues/6951) `fs-vacuum@1.2.5`: Use
4465   `path-is-inside` for better Windows normalization.
4466   ([@othiym23](https://github.com/othiym23))
4467 * [`ac6167c`](https://github.com/npm/npm/commit/ac6167c2b9432939c57296f7ddd11ad5f8f918b2)
4468   [#6955](https://github.com/npm/npm/issues/6955) Call `path.normalize` in
4469   `lib/utils/gently-rm.js` for better Windows normalization.
4470   ([@ben-page](https://github.com/ben-page))
4471 * [`c625d71`](https://github.com/npm/npm/commit/c625d714795e3b5badd847945e2401adfad5a196)
4472   [#6964](https://github.com/npm/npm/issues/6964) Clarify CA configuration
4473   docs. ([@jeffjo](https://github.com/jeffjo))
4474 * [`58b8cb5`](https://github.com/npm/npm/commit/58b8cb5cdf26a854358b7c2ab636572dba9bac16)
4475   [#6950](https://github.com/npm/npm/issues/6950) Fix documentation typos.
4476   ([@martinvd](https://github.com/martinvd))
4477 * [`7c1299d`](https://github.com/npm/npm/commit/7c1299d00538ea998684a1903a4091eafc63b7f1)
4478   [#6909](https://github.com/npm/npm/issues/6909) Remove confusing mention of
4479   rubygems `~>` semver operator. ([@mjtko](https://github.com/mjtko))
4480 * [`7dfdcc6`](https://github.com/npm/npm/commit/7dfdcc6debd8ef1fc52a2b508997d15887aad824)
4481   [#6909](https://github.com/npm/npm/issues/6909) `semver@4.1.1`: Synchronize
4482   documentation with PR [#6909](https://github.com/npm/npm/issues/6909)
4483   ([@othiym23](https://github.com/othiym23))
4484 * [`adfddf3`](https://github.com/npm/npm/commit/adfddf3b682e0ae08e4b59d87c1b380dd651c572)
4485   [#6925](https://github.com/npm/npm/issues/6925) Correct typo in
4486   `doc/api/npm-ls.md` ([@oddurs](https://github.com/oddurs))
4487 * [`f5c534b`](https://github.com/npm/npm/commit/f5c534b711ab173129baf366c4f08d68f6117333)
4488   [#6920](https://github.com/npm/npm/issues/6920) Remove recommendation to run
4489   as root from `README.md`.
4490   ([@robertkowalski](https://github.com/robertkowalski))
4491 * [`3ef4459`](https://github.com/npm/npm/commit/3ef445922cd39f25b992d91bd22c4d367882ea22)
4492   [#6920](https://github.com/npm/npm/issues/6920) `npm-@googlegroups.com` has
4493   gone the way of all things. That means it's gone.
4494   ([@robertkowalski](https://github.com/robertkowalski))
4495
4496 ### v2.1.14 (2014-12-13):
4497
4498 * [`cf7aeae`](https://github.com/npm/npm/commit/cf7aeae3c3a24e48d3de4006fa082f0c6040922a)
4499   [#6923](https://github.com/npm/npm/issues/6923) Overaggressive link update
4500   for new website broke node-gyp. ([@othiym23](https://github.com/othiym23))
4501
4502 ### v2.1.13 (2014-12-11):
4503
4504 * [`cbb890e`](https://github.com/npm/npm/commit/cbb890eeacc0501ba1b8c6955f1c829c8af9f486)
4505   [#6897](https://github.com/npm/npm/issues/6897) npm is a nice package manager
4506   that runs server-side JavaScript. ([@othiym23](https://github.com/othiym23))
4507 * [`d9043c3`](https://github.com/npm/npm/commit/d9043c3b8d7450c3cb9ca795028c0e1c05377820)
4508   [#6893](https://github.com/npm/npm/issues/6893) Remove erroneous docs about
4509   preupdate / update / postupdate lifecycle scripts, which have never existed.
4510   ([@devTristan](https://github.com/devTristan))
4511 * [`c5df4d0`](https://github.com/npm/npm/commit/c5df4d0d683cd3506808d1cd1acebff02a8b82db)
4512   [#6884](https://github.com/npm/npm/issues/6884) Update npmjs.org to npmjs.com
4513   in docs. ([@linclark](https://github.com/linclark))
4514 * [`cb6ff8d`](https://github.com/npm/npm/commit/cb6ff8dace1b439851701d4784d2d719c22ca7a7)
4515   [#6879](https://github.com/npm/npm/issues/6879) npm version: Update
4516   shrinkwrap post-check. ([@othiym23](https://github.com/othiym23))
4517 * [`2a340bd`](https://github.com/npm/npm/commit/2a340bdd548c6449468281e1444a032812bff677)
4518   [#6868](https://github.com/npm/npm/issues/6868) Use magic numbers instead of
4519   regexps to distinguish tarballs from other things.
4520   ([@daxxog](https://github.com/daxxog))
4521 * [`f1c8bdb`](https://github.com/npm/npm/commit/f1c8bdb3f6b753d0600597e12346bdc3a34cb9c1)
4522   [#6861](https://github.com/npm/npm/issues/6861) `npm-registry-client@4.0.5`:
4523   Distinguish between error properties that are part of the response and error
4524   strings that should be returned to the user.
4525   ([@disrvptor](https://github.com/disrvptor))
4526 * [`d3a1b63`](https://github.com/npm/npm/commit/d3a1b6397fddef04b5198ca89d36d720aeb05eb6)
4527   [#6762](https://github.com/npm/npm/issues/6762) Make `npm outdated` ignore
4528   private packages. ([@KenanY](https://github.com/KenanY))
4529 * [`16d8542`](https://github.com/npm/npm/commit/16d854283ca5bcdb0cb2812fc5745d841652b952)
4530   install.sh: Drop support for node < 0.8, remove engines bits.
4531   ([@isaacs](https://github.com/isaacs))
4532 * [`b9c6046`](https://github.com/npm/npm/commit/b9c60466d5b713b1dc2947da14a5dfe42352e029)
4533   `init-package-json@1.1.3`: ([@terinstock](https://github.com/terinstock))
4534   noticed that `init.license` configuration doesn't stick. Make sure that
4535   dashed defaults don't trump dotted parameters.
4536   ([@othiym23](https://github.com/othiym23))
4537 * [`b6d6acf`](https://github.com/npm/npm/commit/b6d6acfc02c8887f78067931babab8f7c5180fed)
4538   `which@1.0.8`: No longer use graceful-fs for some reason.
4539   ([@isaacs](https://github.com/isaacs))
4540 * [`d39f673`](https://github.com/npm/npm/commit/d39f673caf08a90fb2bb001d79c98062d2cd05f4)
4541   `request@2.51.0`: Incorporate bug fixes. ([@nylen](https://github.com/nylen))
4542 * [`c7ad727`](https://github.com/npm/npm/commit/c7ad7279cc879930ec58ccc62fa642e621ecb65c)
4543   `columnify@1.3.2`: Incorporate bug fixes.
4544   ([@timoxley](https://github.com/timoxley))
4545
4546 ### v2.1.12 (2014-12-04):
4547
4548 * [`e5b1e44`](https://github.com/npm/npm/commit/e5b1e448bb4a9d6eae4ba0f67b1d3c2cea8ed383)
4549   add alias verison=version ([@isaacs](https://github.com/isaacs))
4550 * [`5eed7bd`](https://github.com/npm/npm/commit/5eed7bddbd7bb92a44c4193c93e8529500c558e6)
4551   `request@2.49.0` ([@nylen](https://github.com/nylen))
4552 * [`e72f81d`](https://github.com/npm/npm/commit/e72f81d8412540ae7d1e0edcc37c11bcb8169051)
4553   `glob@4.3.1` / `minimatch@2.0.1` ([@isaacs](https://github.com/isaacs))
4554 * [`b8dcc36`](https://github.com/npm/npm/commit/b8dcc3637b5b71933b97162b7aff1b1a622c13e2)
4555   `graceful-fs@3.0.5` ([@isaacs](https://github.com/isaacs))
4556
4557 ### v2.1.11 (2014-11-27):
4558
4559 * [`4861d28`](https://github.com/npm/npm/commit/4861d28ad0ebd959fe6bc15b9c9a50fcabe57f55)
4560   `which@1.0.7`: License update. ([@isaacs](https://github.com/isaacs))
4561 * [`30a2ea8`](https://github.com/npm/npm/commit/30a2ea80c891d384b31a1cf28665bba4271915bd)
4562   `ini@1.3.2`: License update. ([@isaacs](https://github.com/isaacs))
4563 * [`6a4ea05`](https://github.com/npm/npm/commit/6a4ea054f6ddf52fc58842ba2046564b04c5c0e2)
4564   `fstream@1.0.3`: Propagate error events to downstream streams.
4565   ([@gfxmonk](https://github.com/gfxmonk))
4566 * [`a558695`](https://github.com/npm/npm/commit/a5586954f1c18df7c96137e0a79f41a69e7a884e)
4567   `tar@1.0.3`: Don't extract broken files, propagate `drain` event.
4568   ([@gfxmonk](https://github.com/gfxmonk))
4569 * [`989624e`](https://github.com/npm/npm/commit/989624e8321f87734c1b1272fc2f646e7af1f81c)
4570   [#6767](https://github.com/npm/npm/issues/6767) Actually pass parameters when
4571   adding git repo to cach under Windows.
4572   ([@othiym23](https://github.com/othiym23))
4573 * [`657af73`](https://github.com/npm/npm/commit/657af7308f7d6cd2f81389fcf0d762252acaf1ce)
4574   [#6774](https://github.com/npm/npm/issues/6774) When verifying paths on
4575   unbuild, resolve both source and target as symlinks.
4576   ([@hokaccha](https://github.com/hokaccha))
4577 * [`fd19c40`](https://github.com/npm/npm/commit/fd19c4046414494f9647a6991c00f8406a939929)
4578   [#6713](https://github.com/npm/npm/issues/6713)
4579   `realize-package-specifier@1.3.0`: Make it so that `npm install foo@1` work
4580   when a file named `1` exists. ([@iarna](https://github.com/iarna))
4581 * [`c8ac37a`](https://github.com/npm/npm/commit/c8ac37a470491b2ed28514536e2e198494638c79)
4582   `npm-registry-client@4.0.4`: Fix regression in failed fetch retries.
4583   ([@othiym23](https://github.com/othiym23))
4584
4585 ### v2.1.10 (2014-11-20):
4586
4587 * [`756f3d4`](https://github.com/npm/npm/commit/756f3d40fe18bc02bc93afe17016dfcc266c4b6b)
4588   [#6735](https://github.com/npm/npm/issues/6735) Log "already built" messages
4589   at info, not error. ([@smikes](https://github.com/smikes))
4590 * [`1b7330d`](https://github.com/npm/npm/commit/1b7330dafba3bbba171f74f1e58b261cb1b9301e)
4591   [#6729](https://github.com/npm/npm/issues/6729) `npm-registry-client@4.0.3`:
4592   GitHub won't redirect you through an HTML page to a compressed tarball if you
4593   don't tell it you accept JSON responses.
4594   ([@KenanY](https://github.com/KenanY))
4595 * [`d9c7857`](https://github.com/npm/npm/commit/d9c7857be02dacd274e55bf6d430d90d91509d53)
4596   [#6506](https://github.com/npm/npm/issues/6506)
4597   `readdir-scoped-modules@1.0.1`: Use `graceful-fs` so the whole dependency
4598   tree gets read,  even in case of `EMFILE`.
4599   ([@sakana](https://github.com/sakana))
4600 * [`3a085be`](https://github.com/npm/npm/commit/3a085be158ace8f1e4395e69f8c102d3dea00c5f)
4601   Grammar fix in docs. ([@icylace](https://github.com/icylace))
4602 * [`3f8e2ff`](https://github.com/npm/npm/commit/3f8e2ff8342d327d6f1375437ecf4bd945dc360f)
4603   Did you know that npm has a Code of Conduct? Add a link to it to
4604   CONTRIBUTING.md. ([@isaacs](https://github.com/isaacs))
4605 * [`319ccf6`](https://github.com/npm/npm/commit/319ccf633289e06e57a80d74c39706899348674c)
4606   `glob@4.2.1`: Performance tuning. ([@isaacs](https://github.com/isaacs))
4607 * [`835f046`](https://github.com/npm/npm/commit/835f046e7568c33e81a0b48c84cff965024d8b8a)
4608   `readable-stream@1.0.33`: Bug fixes. ([@rvagg](https://github.com/rvagg))
4609 * [`a34c38d`](https://github.com/npm/npm/commit/a34c38d0732fb246d11f2a776d2ad0d8db654338)
4610   `request@2.48.0`: Bug fixes. ([@nylen](https://github.com/nylen))
4611
4612 ### v2.1.9 (2014-11-13):
4613
4614 * [`eed9f61`](https://github.com/npm/npm/commit/eed9f6101963364acffc59d7194fc1655180e80c)
4615   [#6542](https://github.com/npm/npm/issues/6542) `npm owner add / remove` now
4616   works properly with scoped packages
4617   ([@othiym23](https://github.com/othiym23))
4618 * [`cd25973`](https://github.com/npm/npm/commit/cd25973825aa5315b7ebf26227bd32bd6be5533f)
4619   [#6548](https://github.com/npm/npm/issues/6548) using sudo won't leave the
4620   cache's git directories with bad permissions
4621   ([@othiym23](https://github.com/othiym23))
4622 * [`56930ab`](https://github.com/npm/npm/commit/56930abcae6a6ea41f1b75e23765c61259cef2dd)
4623   fixed irregular `npm cache ls` output (yes, that's a thing)
4624   ([@othiym23](https://github.com/othiym23))
4625 * [`740f483`](https://github.com/npm/npm/commit/740f483db6ec872b453065842da080a646c3600a)
4626   legacy tests no longer poison user's own cache
4627   ([@othiym23](https://github.com/othiym23))
4628 * [`ce37f14`](https://github.com/npm/npm/commit/ce37f142a487023747a9086335618638ebca4372)
4629   [#6169](https://github.com/npm/npm/issues/6169) add terse output similar to
4630   `npm publish / unpublish` for `npm owner add / remove`
4631   ([@KenanY](https://github.com/KenanY))
4632 * [`bf2b8a6`](https://github.com/npm/npm/commit/bf2b8a66d7188900bf1e957c052b893948b67e0e)
4633   [#6680](https://github.com/npm/npm/issues/6680) pass auth credentials to
4634   registry when downloading search index
4635   ([@terinjokes](https://github.com/terinjokes))
4636 * [`00ecb61`](https://github.com/npm/npm/commit/00ecb6101422984696929f602e14da186f9f669c)
4637   [#6400](https://github.com/npm/npm/issues/6400) `.npmignore` is respected for
4638   git repos on cache / pack / publish
4639   ([@othiym23](https://github.com/othiym23))
4640 * [`d1b3a9e`](https://github.com/npm/npm/commit/d1b3a9ec5e2b6d52765ba5da5afb08dba41c49c1)
4641   [#6311](https://github.com/npm/npm/issues/6311) `npm ls -l --depth=0` no
4642   longer prints phantom duplicate children
4643   ([@othiym23](https://github.com/othiym23))
4644 * [`07c5f34`](https://github.com/npm/npm/commit/07c5f34e45c9b18c348ed53b5763b1c5d4325740)
4645   [#6690](https://github.com/npm/npm/issues/6690) `uid-number@0.0.6`: clarify
4646   confusing names in error-handling code ([@isaacs](https://github.com/isaacs))
4647 * [`1ac9be9`](https://github.com/npm/npm/commit/1ac9be9f3bab816211d72d13cb05b5587878a586)
4648   [#6684](https://github.com/npm/npm/issues/6684) `npm init`: don't report
4649   write if canceled ([@smikes](https://github.com/smikes))
4650 * [`7bb207d`](https://github.com/npm/npm/commit/7bb207d1d6592a9cffc986871e4b671575363c2f)
4651   [#5754](https://github.com/npm/npm/issues/5754) never remove app directories
4652   on failed install ([@othiym23](https://github.com/othiym23))
4653 * [`705ce60`](https://github.com/npm/npm/commit/705ce601e7b9c5428353e02ebb30cb76c1991fdd)
4654   [#5754](https://github.com/npm/npm/issues/5754) `fs-vacuum@1.2.2`: don't
4655   throw when another fs task writes to a directory being vacuumed
4656   ([@othiym23](https://github.com/othiym23))
4657 * [`1b650f4`](https://github.com/npm/npm/commit/1b650f4f217c413a2ffb96e1701beb5aa67a0de2)
4658   [#6255](https://github.com/npm/npm/issues/6255) ensure that order credentials
4659   are used from `.npmrc` doesn't regress
4660   ([@othiym23](https://github.com/othiym23))
4661 * [`9bb2c34`](https://github.com/npm/npm/commit/9bb2c3435cedef40b45d3e9bd7a8edfb8cbe7209)
4662   [#6644](https://github.com/npm/npm/issues/6644) `warn` rather than `info` on
4663   fetch failure ([@othiym23](https://github.com/othiym23))
4664 * [`e34a7b6`](https://github.com/npm/npm/commit/e34a7b6b7371b1893a062f627ae8e168546d7264)
4665   [#6524](https://github.com/npm/npm/issues/6524) `npm-registry-client@4.0.2`:
4666   proxy via `request` more transparently
4667   ([@othiym23](https://github.com/othiym23))
4668 * [`40afd6a`](https://github.com/npm/npm/commit/40afd6aaf34c11a10e80ec87b115fb2bb907e3bd)
4669   [#6524](https://github.com/npm/npm/issues/6524) push proxy settings into
4670   `request` ([@tauren](https://github.com/tauren))
4671
4672 ### v2.1.8 (2014-11-06):
4673
4674 * [`063d843`](https://github.com/npm/npm/commit/063d843965f9f0bfa5732d7c2d6f5aa37a8260a2)
4675   npm version now updates version in npm-shrinkwrap.json
4676   ([@faiq](https://github.com/faiq))
4677 * [`3f53cd7`](https://github.com/npm/npm/commit/3f53cd795f8a600e904a97f215ba5b5a9989d9dd)
4678   [#6559](https://github.com/npm/npm/issues/6559) save local dependencies in
4679   npm-shrinkwrap.json ([@Torsph](https://github.com/Torsph))
4680 * [`e249262`](https://github.com/npm/npm/commit/e24926268b2d2220910bc81cce6d3b2e08d94eb1)
4681   npm-faq.md: mention scoped pkgs in namespace Q
4682   ([@smikes](https://github.com/smikes))
4683 * [`6b06ec4`](https://github.com/npm/npm/commit/6b06ec4ef5da490bdca1512fa7f12490245c192b)
4684   [#6642](https://github.com/npm/npm/issues/6642) `init-package-json@1.1.2`:
4685   Handle both `init-author-name` and `init.author.name`.
4686   ([@othiym23](https://github.com/othiym23))
4687 * [`9cb334c`](https://github.com/npm/npm/commit/9cb334c8a895a55461aac18791babae779309a0e)
4688   [#6409](https://github.com/npm/npm/issues/6409) document commit-ish with
4689   GitHub URLs ([@smikes](https://github.com/smikes))
4690 * [`0aefae9`](https://github.com/npm/npm/commit/0aefae9bc2598a4b7a3ee7bb2306b42e3e12bb28)
4691   [#2959](https://github.com/npm/npm/issues/2959) npm run no longer fails
4692   silently ([@flipside](https://github.com/flipside))
4693 * [`e007a2c`](https://github.com/npm/npm/commit/e007a2c1e4fac1759fa61ac6e78c6b83b2417d11)
4694   [#3908](https://github.com/npm/npm/issues/3908) include command in spawn
4695   errors ([@smikes](https://github.com/smikes))
4696
4697 ### v2.1.7 (2014-10-30):
4698
4699 * [`6750b05`](https://github.com/npm/npm/commit/6750b05dcba20d8990a672957ec56c48f97e241a)
4700   [#6398](https://github.com/npm/npm/issues/6398) `npm-registry-client@4.0.0`:
4701   consistent API, handle relative registry paths, use auth more consistently
4702   ([@othiym23](https://github.com/othiym23))
4703 * [`7719cfd`](https://github.com/npm/npm/commit/7719cfdd8b204dfeccc41289707ea58b4d608905)
4704   [#6560](https://github.com/npm/npm/issues/6560) use new npm-registry-client
4705   API ([@othiym23](https://github.com/othiym23))
4706 * [`ed61971`](https://github.com/npm/npm/commit/ed619714c93718b6c1922b8c286f4b6cd2b97c80)
4707   move caching of search metadata from `npm-registry-client` to npm itself
4708   ([@othiym23](https://github.com/othiym23))
4709 * [`3457041`](https://github.com/npm/npm/commit/34570414cd528debeb22943873440594d7f47abf)
4710   handle caching of metadata independently from `npm-registry-client`
4711   ([@othiym23](https://github.com/othiym23))
4712 * [`20a331c`](https://github.com/npm/npm/commit/20a331ced6a52faac6ec242e3ffdf28bcd447c40)
4713   [#6538](https://github.com/npm/npm/issues/6538) map registry URLs to
4714   credentials more safely ([@indexzero](https://github.com/indexzero))
4715 * [`4072e97`](https://github.com/npm/npm/commit/4072e97856bf1e7affb38333d080c172767eea27)
4716   [#6589](https://github.com/npm/npm/issues/6589) `npm-registry-client@4.0.1`:
4717   allow publishing of packages with names identical to built-in Node modules
4718   ([@feross](https://github.com/feross))
4719 * [`254f0e4`](https://github.com/npm/npm/commit/254f0e4adaf2c56e9df25c7343c43b0b0804a3b5)
4720   `tar@1.0.2`: better error-handling ([@runk](https://github.com/runk))
4721 * [`73ee2aa`](https://github.com/npm/npm/commit/73ee2aa4f1a47e43fe7cf4317a5446875f7521fa)
4722   `request@2.47.0` ([@mikeal](https://github.com/mikeal))
4723
4724 ### v2.1.6 (2014-10-23):
4725
4726 * [`681b398`](https://github.com/npm/npm/commit/681b3987a18e7aba0aaf78c91a23c7cc0ab82ce8)
4727   [#6523](https://github.com/npm/npm/issues/6523) fix default `logelevel` doc
4728   ([@KenanY](https://github.com/KenanY))
4729 * [`80b368f`](https://github.com/npm/npm/commit/80b368ffd786d4d008734b56c4a6fe12d2cb2926)
4730   [#6528](https://github.com/npm/npm/issues/6528) `npm version` should work in
4731   a git directory without git ([@terinjokes](https://github.com/terinjokes))
4732 * [`5f5f9e4`](https://github.com/npm/npm/commit/5f5f9e4ddf544c2da6adf3f8c885238b0e745076)
4733   [#6483](https://github.com/npm/npm/issues/6483) `init-package-json@1.1.1`:
4734   Properly pick up default values from environment variables.
4735   ([@othiym23](https://github.com/othiym23))
4736 * [`a114870`](https://github.com/npm/npm/commit/a1148702f53f82d49606b2e4dac7581261fff442)
4737   perl 5.18.x doesn't like -pi without filenames
4738   ([@othiym23](https://github.com/othiym23))
4739 * [`de5ba00`](https://github.com/npm/npm/commit/de5ba007a48db876eb5bfb6156435f3512d58977)
4740   `request@2.46.0`: Tests and cleanup.
4741   ([@othiym23](https://github.com/othiym23))
4742 * [`76933f1`](https://github.com/npm/npm/commit/76933f169f17b5273b32e924a7b392d5729931a7)
4743   `fstream-npm@1.0.1`: Always include `LICENSE[.*]`, `LICENCE[.*]`,
4744   `CHANGES[.*]`, `CHANGELOG[.*]`, and `HISTORY[.*]`.
4745   ([@jonathanong](https://github.com/jonathanong))
4746
4747 ### v2.1.5 (2014-10-16):
4748
4749 * [`6a14b23`](https://github.com/npm/npm/commit/6a14b232a0e34158bd95bb25c607167be995c204)
4750   [#6397](https://github.com/npm/npm/issues/6397) Defactor npmconf back into
4751   npm. ([@othiym23](https://github.com/othiym23))
4752 * [`4000e33`](https://github.com/npm/npm/commit/4000e3333a76ca4844681efa8737cfac24b7c2c8)
4753   [#6323](https://github.com/npm/npm/issues/6323) Install `peerDependencies`
4754   from top. ([@othiym23](https://github.com/othiym23))
4755 * [`5d119ae`](https://github.com/npm/npm/commit/5d119ae246f27353b14ff063559d1ba8c616bb89)
4756   [#6498](https://github.com/npm/npm/issues/6498) Better error messages on
4757   malformed `.npmrc` properties. ([@nicks](https://github.com/nicks))
4758 * [`ae18efb`](https://github.com/npm/npm/commit/ae18efb65fed427b1ef18e4862885bf60b87b92e)
4759   [#6093](https://github.com/npm/npm/issues/6093) Replace instances of 'hash'
4760   with 'object' in documentation. ([@zeke](https://github.com/zeke))
4761 * [`53108b2`](https://github.com/npm/npm/commit/53108b276fec5f97a38250933a2768d58b6928da)
4762   [#1558](https://github.com/npm/npm/issues/1558) Clarify how local paths
4763   should be used. ([@KenanY](https://github.com/KenanY))
4764 * [`344fa1a`](https://github.com/npm/npm/commit/344fa1a219ac8867022df3dc58a47636dde8a242)
4765   [#6488](https://github.com/npm/npm/issues/6488) Work around bug in marked.
4766   ([@othiym23](https://github.com/othiym23))
4767
4768 OUTDATED DEPENDENCY CLEANUP JAMBOREE
4769
4770 * [`60c2942`](https://github.com/npm/npm/commit/60c2942e13655d9ecdf6e0f1f97f10cb71a75255)
4771   `realize-package-specifier@1.2.0`: Handle names and rawSpecs more
4772   consistently. ([@iarna](https://github.com/iarna))
4773 * [`1b5c95f`](https://github.com/npm/npm/commit/1b5c95fbda77b87342bd48c5ecac5b1fd571ccfe)
4774   `sha@1.3.0`: Change line endings?
4775   ([@ForbesLindesay](https://github.com/ForbesLindesay))
4776 * [`d7dee3f`](https://github.com/npm/npm/commit/d7dee3f3f7d9e7c2061a4ecb4dd93e3e4bfe4f2e)
4777   `request@2.45.0`: Dependency updates, better proxy support, better compressed
4778   response handling, lots of 'use strict'.
4779   ([@mikeal](https://github.com/mikeal))
4780 * [`3d75180`](https://github.com/npm/npm/commit/3d75180c2cc79fa3adfa0e4cb783a27192189a65)
4781   `opener@1.4.0`: Added gratuitous return.
4782   ([@Domenic](https://github.com/Domenic))
4783 * [`8e2703f`](https://github.com/npm/npm/commit/8e2703f78d280d1edeb749e257dda1f288bad6e3)
4784   `retry@0.6.1` / `npm-registry-client@3.2.4`: Change of ownership.
4785   ([@tim-kos](https://github.com/tim-kos))
4786 * [`c87b00f`](https://github.com/npm/npm/commit/c87b00f82f92434ee77831915012c77a6c244c39)
4787   `once@1.3.1`: Wrap once with wrappy. ([@isaacs](https://github.com/isaacs))
4788 * [`01ec790`](https://github.com/npm/npm/commit/01ec790fd47def56eda6abb3b8d809093e8f493f)
4789   `npm-user-validate@0.1.1`: Correct repository URL.
4790   ([@robertkowalski](https://github.com/robertkowalski))
4791 * [`389e52c`](https://github.com/npm/npm/commit/389e52c2d94c818ca8935ccdcf392994fec564a2)
4792   `glob@4.0.6`: Now absolutely requires `graceful-fs`.
4793   ([@isaacs](https://github.com/isaacs))
4794 * [`e15ab15`](https://github.com/npm/npm/commit/e15ab15a27a8f14cf0d9dc6f11dee452080378a0)
4795   `ini@1.3.0`: Tighten up whitespace handling.
4796   ([@isaacs](https://github.com/isaacs))
4797 * [`7610f3e`](https://github.com/npm/npm/commit/7610f3e62e699292ece081bfd33084d436e3246d)
4798   `archy@1.0.0` ([@substack](https://github.com/substack))
4799 * [`9c13149`](https://github.com/npm/npm/commit/9c1314985e513e20ffa3ea0ca333ba2ab78299c9)
4800   `semver@4.1.0`: Add support for prerelease identifiers.
4801   ([@bromanko](https://github.com/bromanko))
4802 * [`f096c25`](https://github.com/npm/npm/commit/f096c250441b031d758f03afbe8d2321f94c7703)
4803   `graceful-fs@3.0.4`: Add a bunch of additional tests, skip the unfortunate
4804   complications of `graceful-fs@3.0.3`. ([@isaacs](https://github.com/isaacs))
4805
4806 ### v2.1.4 (2014-10-09):
4807
4808 * [`3aeb440`](https://github.com/npm/npm/commit/3aeb4401444fad83cc7a8d11bf2507658afa5248)
4809   [#6442](https://github.com/npm/npm/issues/6442) proxying git needs `GIT_SSL_CAINFO`
4810   ([@wmertens](https://github.com/wmertens))
4811 * [`a8da8d6`](https://github.com/npm/npm/commit/a8da8d6e0cd56d97728c0b76b51604ee06ef6264)
4812   [#6413](https://github.com/npm/npm/issues/6413) write builtin config on any
4813   global npm install ([@isaacs](https://github.com/isaacs))
4814 * [`9e4d632`](https://github.com/npm/npm/commit/9e4d632c0142ba55df07d624667738b8727336fc)
4815   [#6343](https://github.com/npm/npm/issues/6343) don't pass run arguments to
4816   pre & post scripts ([@TheLudd](https://github.com/TheLudd))
4817 * [`d831b1f`](https://github.com/npm/npm/commit/d831b1f7ca1a9921ea5b394e39b7130ecbc6d7b4)
4818   [#6399](https://github.com/npm/npm/issues/6399) race condition: inflight
4819   installs, prevent `peerDependency` problems
4820   ([@othiym23](https://github.com/othiym23))
4821 * [`82b775d`](https://github.com/npm/npm/commit/82b775d6ff34c4beb6c70b2344d491a9f2026577)
4822   [#6384](https://github.com/npm/npm/issues/6384) race condition: inflight
4823   caching by URL rather than semver range
4824   ([@othiym23](https://github.com/othiym23))
4825 * [`7bee042`](https://github.com/npm/npm/commit/7bee0429066fedcc9e6e962c043eb740b3792809)
4826   `inflight@1.0.4`: callback can take arbitrary number of parameters
4827   ([@othiym23](https://github.com/othiym23))
4828 * [`3bff494`](https://github.com/npm/npm/commit/3bff494f4abf17d6d7e0e4a3a76cf7421ecec35a)
4829   [#5195](https://github.com/npm/npm/issues/5195) fixed regex color regression
4830   for `npm search` ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
4831 * [`33ba2d5`](https://github.com/npm/npm/commit/33ba2d585160a0a2a322cb76c4cd989acadcc984)
4832   [#6387](https://github.com/npm/npm/issues/6387) allow `npm view global` if
4833   package is specified ([@evanlucas](https://github.com/evanlucas))
4834 * [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
4835   [#6388](https://github.com/npm/npm/issues/6388) npm-publish →
4836   npm-developers(7) ([@kennydude](https://github.com/kennydude))
4837
4838 TEST CLEANUP EXTRAVAGANZA:
4839
4840 * [`8d6bfcb`](https://github.com/npm/npm/commit/8d6bfcb88408f5885a2a67409854c43e5c3a23f6)
4841   tap tests run with no system-wide side effects
4842   ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
4843 * [`7a1472f`](https://github.com/npm/npm/commit/7a1472fbdbe99956ad19f629e7eb1cc07ba026ef)
4844   added npm cache cleanup script
4845   ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
4846 * [`0ce6a37`](https://github.com/npm/npm/commit/0ce6a3752fa9119298df15671254db6bc1d8e64c)
4847   stripped out dead test code (othiym23)
4848 * replace spawn with common.npm (@chrismeyersfsu):
4849     * [`0dcd614`](https://github.com/npm/npm/commit/0dcd61446335eaf541bf5f2d5186ec1419f86a42)
4850       test/tap/cache-shasum-fork.js
4851     * [`97f861c`](https://github.com/npm/npm/commit/97f861c967606a7e51e3d5047cf805d9d1adea5a)
4852       test/tap/false_name.js
4853     * [`d01b3de`](https://github.com/npm/npm/commit/d01b3de6ce03f25bbf3db97bfcd3cc85830d6801)
4854       test/tap/git-cache-locking.js
4855     * [`7b63016`](https://github.com/npm/npm/commit/7b63016778124c6728d6bd89a045c841ae3900b6)
4856       test/tap/pack-scoped.js
4857     * [`c877553`](https://github.com/npm/npm/commit/c877553265c39673e03f0a97972f692af81a595d)
4858       test/tap/scripts-whitespace-windows.js
4859     * [`df98525`](https://github.com/npm/npm/commit/df98525331e964131299d457173c697cfb3d95b9)
4860       test/tap/prepublish.js
4861     * [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
4862       test/tap/prune.js
4863
4864 ### v2.1.3 (2014-10-02):
4865
4866 BREAKING CHANGE FOR THE SQRT(i) PEOPLE ACTUALLY USING `npm submodule`:
4867
4868 * [`1e64473`](https://github.com/npm/npm/commit/1e6447360207f45ad6188e5780fdf4517de6e23d)
4869   `rm -rf npm submodule` command, which has been broken since the Carter
4870   Administration ([@isaacs](https://github.com/isaacs))
4871
4872 BREAKING CHANGE IF YOU ARE FOR SOME REASON STILL USING NODE 0.6 AND YOU SHOULD
4873 NOT BE DOING THAT CAN YOU NOT:
4874
4875 * [`3e431f9`](https://github.com/npm/npm/commit/3e431f9d6884acb4cde8bcb8a0b122a76b33ee1d)
4876   [joyent/node#8492](https://github.com/joyent/node/issues/8492) bye bye
4877   customFds, hello stdio ([@othiym23](https://github.com/othiym23))
4878
4879 Other changes:
4880
4881 * [`ea607a8`](https://github.com/npm/npm/commit/ea607a8a20e891ad38eed11b5ce2c3c0a65484b9)
4882   [#6372](https://github.com/npm/npm/issues/6372) noisily error (without
4883   aborting) on multi-{install,build} ([@othiym23](https://github.com/othiym23))
4884 * [`3ee2799`](https://github.com/npm/npm/commit/3ee2799b629fd079d2db21d7e8f25fa7fa1660d0)
4885   [#6372](https://github.com/npm/npm/issues/6372) only make cache creation
4886   requests in flight ([@othiym23](https://github.com/othiym23))
4887 * [`1a90ec2`](https://github.com/npm/npm/commit/1a90ec2f2cfbefc8becc6ef0c480e5edacc8a4cb)
4888   [#6372](https://github.com/npm/npm/issues/6372) wait to put Git URLs in
4889   flight until normalized ([@othiym23](https://github.com/othiym23))
4890 * [`664795b`](https://github.com/npm/npm/commit/664795bb7d8da7142417b3f4ef5986db3a394071)
4891   [#6372](https://github.com/npm/npm/issues/6372) log what is and isn't in
4892   flight ([@othiym23](https://github.com/othiym23))
4893 * [`00ef580`](https://github.com/npm/npm/commit/00ef58025a1f52dfabf2c4dc3898621d16a6e062)
4894   `inflight@1.0.3`: fix largely theoretical race condition, because we really
4895   really hate race conditions ([@isaacs](https://github.com/isaacs))
4896 * [`1cde465`](https://github.com/npm/npm/commit/1cde4658d897ae0f93ff1d65b258e1571b391182)
4897   [#6363](https://github.com/npm/npm/issues/6363)
4898   `realize-package-specifier@1.1.0`: handle local dependencies better
4899   ([@iarna](https://github.com/iarna))
4900 * [`86f084c`](https://github.com/npm/npm/commit/86f084c6c6d7935cd85d72d9d94b8784c914d51e)
4901   `realize-package-specifier@1.0.2`: dependency realization! in its own module!
4902   ([@iarna](https://github.com/iarna))
4903 * [`553d830`](https://github.com/npm/npm/commit/553d830334552b83606b6bebefd821c9ea71e964)
4904   `npm-package-arg@2.1.3`: simplified semver, better tests
4905   ([@iarna](https://github.com/iarna))
4906 * [`bec9b61`](https://github.com/npm/npm/commit/bec9b61a316c19f5240657594f0905a92a474352)
4907   `readable-stream@1.0.32`: for some reason
4908   ([@rvagg](https://github.com/rvagg))
4909 * [`ff08ec5`](https://github.com/npm/npm/commit/ff08ec5f6d717bdbd559de0b2ede769306a9a763)
4910   `dezalgo@1.0.1`: use wrappy for instrumentability
4911   ([@isaacs](https://github.com/isaacs))
4912
4913 ### v2.1.2 (2014-09-29):
4914
4915 * [`a1aa20e`](https://github.com/npm/npm/commit/a1aa20e44bb8285c6be1e7fa63b9da920e3a70ed)
4916   [#6282](https://github.com/npm/npm/issues/6282)
4917   `normalize-package-data@1.0.3`: don't prune bundledDependencies
4918   ([@isaacs](https://github.com/isaacs))
4919 * [`a1f5fe1`](https://github.com/npm/npm/commit/a1f5fe1005043ce20a06e8b17a3e201aa3215357)
4920   move locks back into cache, now path-aware
4921   ([@othiym23](https://github.com/othiym23))
4922 * [`a432c4b`](https://github.com/npm/npm/commit/a432c4b48c881294d6d79b5f41c2e1c16ad15a8a)
4923   convert lib/utils/tar.js to use atomic streams
4924   ([@othiym23](https://github.com/othiym23))
4925 * [`b8c3c74`](https://github.com/npm/npm/commit/b8c3c74a3c963564233204161cc263e0912c930b)
4926   `fs-write-stream-atomic@1.0.2`: Now works with streams1 fs.WriteStreams.
4927   ([@isaacs](https://github.com/isaacs))
4928 * [`c7ab76f`](https://github.com/npm/npm/commit/c7ab76f44cce5f42add5e3ba879bd10e7e00c3e6)
4929   logging cleanup ([@othiym23](https://github.com/othiym23))
4930 * [`4b2d95d`](https://github.com/npm/npm/commit/4b2d95d0641435b09d047ae5cb2226f292bf38f0)
4931   [#6329](https://github.com/npm/npm/issues/6329) efficiently validate tmp
4932   tarballs safely ([@othiym23](https://github.com/othiym23))
4933
4934 ### v2.1.1 (2014-09-26):
4935
4936 * [`563225d`](https://github.com/npm/npm/commit/563225d813ea4c12f46d4f7821ac7f76ba8ee2d6)
4937   [#6318](https://github.com/npm/npm/issues/6318) clean up locking; prefix
4938   lockfile with "." ([@othiym23](https://github.com/othiym23))
4939 * [`c7f30e4`](https://github.com/npm/npm/commit/c7f30e4550fea882d31fcd4a55b681cd30713c44)
4940   [#6318](https://github.com/npm/npm/issues/6318) remove locking code around
4941   tarball packing and unpacking ([@othiym23](https://github.com/othiym23))
4942
4943 ### v2.1.0 (2014-09-25):
4944
4945 NEW FEATURE:
4946
4947 * [`3635601`](https://github.com/npm/npm/commit/36356011b6f2e6a5a81490e85a0a44eb27199dd7)
4948   [#5520](https://github.com/npm/npm/issues/5520) Add `'npm view .'`.
4949   ([@evanlucas](https://github.com/evanlucas))
4950
4951 Other changes:
4952
4953 * [`f24b552`](https://github.com/npm/npm/commit/f24b552b596d0627549cdd7c2d68fcf9006ea50a)
4954   [#6294](https://github.com/npm/npm/issues/6294) Lock cache → lock cache
4955   target. ([@othiym23](https://github.com/othiym23))
4956 * [`ad54450`](https://github.com/npm/npm/commit/ad54450104f94c82c501138b4eee488ce3a4555e)
4957   [#6296](https://github.com/npm/npm/issues/6296) Ensure that npm-debug.log
4958   file is created when rollbacks are done.
4959   ([@isaacs](https://github.com/isaacs))
4960 * [`6810071`](https://github.com/npm/npm/commit/681007155a40ac9d165293bd6ec5d8a1423ccfca)
4961   docs: Default loglevel "http" → "warn".
4962   ([@othiym23](https://github.com/othiym23))
4963 * [`35ac89a`](https://github.com/npm/npm/commit/35ac89a940f23db875e882ce2888208395130336)
4964   Skip installation of installed scoped packages.
4965   ([@timoxley](https://github.com/timoxley))
4966 * [`e468527`](https://github.com/npm/npm/commit/e468527256ec599892b9b88d61205e061d1ab735)
4967   Ensure cleanup executes for scripts-whitespace-windows test.
4968   ([@timoxley](https://github.com/timoxley))
4969 * [`ef9101b`](https://github.com/npm/npm/commit/ef9101b7f346797749415086956a0394528a12c4)
4970   Ensure cleanup executes for packed-scope test.
4971   ([@timoxley](https://github.com/timoxley))
4972 * [`69b4d18`](https://github.com/npm/npm/commit/69b4d18cdbc2ae04c9afaffbd273b436a394f398)
4973   `fs-write-stream-atomic@1.0.1`: Fix a race condition in our race-condition
4974   fixer. ([@isaacs](https://github.com/isaacs))
4975 * [`26b17ff`](https://github.com/npm/npm/commit/26b17ff2e3b21ee26c6fdbecc8273520cff45718)
4976   [#6272](https://github.com/npm/npm/issues/6272) `npmconf` decides what the
4977   default prefix is. ([@othiym23](https://github.com/othiym23))
4978 * [`846faca`](https://github.com/npm/npm/commit/846facacc6427dafcf5756dcd36d9036539938de)
4979   Fix development dependency is preferred over dependency.
4980   ([@andersjanmyr](https://github.com/andersjanmyr))
4981 * [`9d1a9db`](https://github.com/npm/npm/commit/9d1a9db3af5adc48a7158a5a053eeb89ee41a0e7)
4982   [#3265](https://github.com/npm/npm/issues/3265) Re-apply a71615a. Fixes
4983   [#3265](https://github.com/npm/npm/issues/3265) again, with a test!
4984   ([@glasser](https://github.com/glasser))
4985 * [`1d41db0`](https://github.com/npm/npm/commit/1d41db0b2744a7bd50971c35cc060ea0600fb4bf)
4986   `marked-man@0.1.4`: Fixes formatting of synopsis blocks in man docs.
4987   ([@kapouer](https://github.com/kapouer))
4988 * [`a623da0`](https://github.com/npm/npm/commit/a623da01bea1b2d3f3a18b9117cfd2d8e3cbdd77)
4989   [#5867](https://github.com/npm/npm/issues/5867) Specify dummy git template
4990   dir when cloning to prevent copying hooks.
4991   ([@boneskull](https://github.com/boneskull))
4992
4993 ### v2.0.2 (2014-09-19):
4994
4995 * [`42c872b`](https://github.com/npm/npm/commit/42c872b32cadc0e555638fc78eab3a38a04401d8)
4996   [#5920](https://github.com/npm/npm/issues/5920)
4997   `fs-write-stream-atomic@1.0.0` ([@isaacs](https://github.com/isaacs))
4998 * [`6784767`](https://github.com/npm/npm/commit/6784767fe15e28b44c81a1d4bb1738c642a65d78)
4999   [#5920](https://github.com/npm/npm/issues/5920) make all write streams atomic
5000   ([@isaacs](https://github.com/isaacs))
5001 * [`f6fac00`](https://github.com/npm/npm/commit/f6fac000dd98ebdd5ea1d5921175735d463d328b)
5002   [#5920](https://github.com/npm/npm/issues/5920) barf on 0-length cached
5003   tarballs ([@isaacs](https://github.com/isaacs))
5004 * [`3b37592`](https://github.com/npm/npm/commit/3b37592a92ea98336505189ae8ca29248b0589f4)
5005   `write-file-atomic@1.1.0`: use graceful-fs
5006   ([@iarna](https://github.com/iarna))
5007
5008 ### v2.0.1 (2014-09-18):
5009
5010 * [`74c5ab0`](https://github.com/npm/npm/commit/74c5ab0a676793c6dc19a3fd5fe149f85fecb261)
5011   [#6201](https://github.com/npm/npm/issues/6201) `npmconf@2.1.0`: scope
5012   always-auth to registry URI ([@othiym23](https://github.com/othiym23))
5013 * [`774b127`](https://github.com/npm/npm/commit/774b127da1dd6fefe2f1299e73505d9146f00294)
5014   [#6201](https://github.com/npm/npm/issues/6201) `npm-registry-client@3.2.2`:
5015   use scoped always-auth settings ([@othiym23](https://github.com/othiym23))
5016 * [`f2d2190`](https://github.com/npm/npm/commit/f2d2190aa365d22378d03afab0da13f95614a583)
5017   [#6201](https://github.com/npm/npm/issues/6201) support saving
5018   `--always-auth` when logging in ([@othiym23](https://github.com/othiym23))
5019 * [`17c941a`](https://github.com/npm/npm/commit/17c941a2d583210fe97ed47e2968d94ce9f774ba)
5020   [#6163](https://github.com/npm/npm/issues/6163) use `write-file-atomic`
5021   instead of `fs.writeFile()` ([@fiws](https://github.com/fiws))
5022 * [`fb5724f`](https://github.com/npm/npm/commit/fb5724fd98e1509c939693568df83d11417ea337)
5023   [#5925](https://github.com/npm/npm/issues/5925) `npm init -f`: allow `npm
5024   init` to run without prompting
5025   ([@michaelnisi](https://github.com/michaelnisi))
5026 * [`b706d63`](https://github.com/npm/npm/commit/b706d637d5965dbf8f7ce07dc5c4bc80887f30d8)
5027   [#3059](https://github.com/npm/npm/issues/3059) disable prepublish when
5028   running `npm install --production`
5029   ([@jussi-kalliokoski](https://github.com/jussi-kalliokoski))
5030 * [`119f068`](https://github.com/npm/npm/commit/119f068eae2a36fa8b9c9ca557c70377792243a4)
5031   attach the node version used when publishing a package to its registry
5032   metadata ([@othiym23](https://github.com/othiym23))
5033 * [`8fe0081`](https://github.com/npm/npm/commit/8fe008181665519c2ac201ee432a3ece9798c31f)
5034   seriously, don't use `npm -g update npm`
5035   ([@thomblake](https://github.com/thomblake))
5036 * [`ea5b3d4`](https://github.com/npm/npm/commit/ea5b3d446b86dcabb0dbc6dba374d3039342ecb3)
5037   `request@2.44.0` ([@othiym23](https://github.com/othiym23))
5038
5039 ### v2.0.0 (2014-09-12):
5040
5041 BREAKING CHANGES:
5042
5043 * [`4378a17`](https://github.com/npm/npm/commit/4378a17db340404a725ffe2eb75c9936f1612670)
5044   `semver@4.0.0`: prerelease versions no longer show up in ranges; `^0.x.y`
5045   behaves the way it did in `semver@2` rather than `semver@3`; docs have been
5046   reorganized for comprehensibility ([@isaacs](https://github.com/isaacs))
5047 * [`c6ddb64`](https://github.com/npm/npm/commit/c6ddb6462fe32bf3a27b2c4a62a032a92e982429)
5048   npm now assumes that node is newer than 0.6
5049   ([@isaacs](https://github.com/isaacs))
5050
5051 Other changes:
5052
5053 * [`ea515c3`](https://github.com/npm/npm/commit/ea515c3b858bf493a7b87fa4cdc2110a0d9cef7f)
5054   [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all
5055   callbacks have finished before proceeding
5056   ([@othiym23](https://github.com/othiym23))
5057 * [`0b0a59d`](https://github.com/npm/npm/commit/0b0a59d504f20f424294b1590ace73a7464f0378)
5058   [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just
5059   before the CLI exits ([@isaacs](https://github.com/isaacs))
5060 * [`a11c88b`](https://github.com/npm/npm/commit/a11c88bdb1488b87d8dcac69df9a55a7a91184b6)
5061   [#6175](https://github.com/npm/npm/issues/6175) pack scoped packages
5062   correctly ([@othiym23](https://github.com/othiym23))
5063 * [`e4e48e0`](https://github.com/npm/npm/commit/e4e48e037d4e95fdb6acec80b04c5c6eaee59970)
5064   [#6121](https://github.com/npm/npm/issues/6121) `read-installed@3.1.2`: don't
5065   mark linked dev dependencies as extraneous
5066   ([@isaacs](https://github.com/isaacs))
5067 * [`d673e41`](https://github.com/npm/npm/commit/d673e4185d43362c2b2a91acbca8c057e7303c7b)
5068   `cmd-shim@2.0.1`: depend on `graceful-fs` directly
5069   ([@ForbesLindesay](https://github.com/ForbesLindesay))
5070 * [`9d54d45`](https://github.com/npm/npm/commit/9d54d45e602d595bdab7eae09b9fa1dc46370147)
5071   `npm-registry-couchapp@2.5.3`: make tests more reliable on Travis
5072   ([@iarna](https://github.com/iarna))
5073 * [`673d738`](https://github.com/npm/npm/commit/673d738c6142c3d043dcee0b7aa02c9831a2e0ca)
5074   ensure permissions are set correctly in cache when running as root
5075   ([@isaacs](https://github.com/isaacs))
5076 * [`6e6a5fb`](https://github.com/npm/npm/commit/6e6a5fb74af10fd345411df4e121e554e2e3f33e)
5077   prepare for upgrade to `node-semver@4.0.0`
5078   ([@isaacs](https://github.com/isaacs))
5079 * [`ab8dd87`](https://github.com/npm/npm/commit/ab8dd87b943262f5996744e8d4cc30cc9358b7d7)
5080   swap out `ronn` for `marked-man@0.1.3` ([@isaacs](https://github.com/isaacs))
5081 * [`803da54`](https://github.com/npm/npm/commit/803da5404d5a0b7c9defa3fe7fa0f2d16a2b19d3)
5082   `npm-registry-client@3.2.0`: prepare for `node-semver@4.0.0` and include more
5083   error information ([@isaacs](https://github.com/isaacs))
5084 * [`4af0e71`](https://github.com/npm/npm/commit/4af0e7134f5757c3d456d83e8349224a4ba12660)
5085   make default error display less scary ([@isaacs](https://github.com/isaacs))
5086 * [`4fd9e79`](https://github.com/npm/npm/commit/4fd9e7901a15abff7a3dd478d99ce239b9580bca)
5087   `npm-registry-client@3.2.1`: handle errors returned by the registry much,
5088   much better ([@othiym23](https://github.com/othiym23))
5089 * [`ca791e2`](https://github.com/npm/npm/commit/ca791e27e97e51c1dd491bff6622ac90b54c3e23)
5090   restore a long (always?) missing pass for deduping
5091   ([@othiym23](https://github.com/othiym23))
5092 * [`ca0ef0e`](https://github.com/npm/npm/commit/ca0ef0e99bbdeccf28d550d0296baa4cb5e7ece2)
5093   correctly interpret relative paths for local dependencies
5094   ([@othiym23](https://github.com/othiym23))
5095 * [`5eb8db2`](https://github.com/npm/npm/commit/5eb8db2c370eeb4cd34f6e8dc6a935e4ea325621)
5096   `npm-package-arg@2.1.2`: support git+file:// URLs for local bare repos
5097   ([@othiym23](https://github.com/othiym23))
5098 * [`860a185`](https://github.com/npm/npm/commit/860a185c43646aca84cb93d1c05e2266045c316b)
5099   tweak docs to no longer advocate checking in `node_modules`
5100   ([@hunterloftis](https://github.com/hunterloftis))
5101 * [`80e9033`](https://github.com/npm/npm/commit/80e9033c40e373775e35c674faa6c1948661782b)
5102   add links to nodejs.org downloads to docs
5103   ([@meetar](https://github.com/meetar))
5104
5105 ### v1.4.28 (2014-09-12):
5106
5107 * [`f4540b6`](https://github.com/npm/npm/commit/f4540b6537a87e653d7495a9ddcf72949fdd4d14)
5108   [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just
5109   before the CLI exits ([@isaacs](https://github.com/isaacs))
5110 * [`1eabfd5`](https://github.com/npm/npm/commit/1eabfd5c03f33c2bd28823714ff02059eeee3899)
5111   [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all
5112   callbacks have finished before proceeding
5113   ([@othiym23](https://github.com/othiym23))
5114
5115 ### v2.0.0-beta.3 (2014-09-04):
5116
5117 * [`fa79413`](https://github.com/npm/npm/commit/fa794138bec8edb7b88639db25ee9c010d2f4c2b)
5118   [#6119](https://github.com/npm/npm/issues/6119) fall back to registry installs
5119   if package.json is missing in a local directory ([@iarna](https://github.com/iarna))
5120 * [`16073e2`](https://github.com/npm/npm/commit/16073e2d8ae035961c4c189b602d4aacc6d6b387)
5121   `npm-package-arg@2.1.0`: support file URIs as local specs
5122   ([@othiym23](https://github.com/othiym23))
5123 * [`9164acb`](https://github.com/npm/npm/commit/9164acbdee28956fa816ce5e473c559395ae4ec2)
5124   `github-url-from-username-repo@1.0.2`: don't match strings that are already
5125   URIs ([@othiym23](https://github.com/othiym23))
5126 * [`4067d6b`](https://github.com/npm/npm/commit/4067d6bf303a69be13f3af4b19cf4fee1b0d3e12)
5127   [#5629](https://github.com/npm/npm/issues/5629) support saving of local packages
5128   in `package.json` ([@dylang](https://github.com/dylang))
5129 * [`1b2ffdf`](https://github.com/npm/npm/commit/1b2ffdf359a8c897a78f91fc5a5d535c97aaec97)
5130   [#6097](https://github.com/npm/npm/issues/6097) document scoped packages
5131   ([@seldo](https://github.com/seldo))
5132 * [`0a67d53`](https://github.com/npm/npm/commit/0a67d536067c4808a594d81288d34c0f7e97e105)
5133   [#6007](https://github.com/npm/npm/issues/6007) `request@2.42.0`: properly
5134   set headers on proxy requests ([@isaacs](https://github.com/isaacs))
5135 * [`9bac6b8`](https://github.com/npm/npm/commit/9bac6b860b674d24251bb7b8ba412fdb26cbc836)
5136   `npmconf@2.0.8`: disallow semver ranges in tag configuration
5137   ([@isaacs](https://github.com/isaacs))
5138 * [`d2d4d7c`](https://github.com/npm/npm/commit/d2d4d7cd3c32f91a87ffa11fe464d524029011c3)
5139   [#6082](https://github.com/npm/npm/issues/6082) don't allow tagging with a
5140   semver range as the tag name ([@isaacs](https://github.com/isaacs))
5141
5142 ### v1.4.27 (2014-09-04):
5143
5144 * [`4cf3c8f`](https://github.com/npm/npm/commit/4cf3c8fd78c9e2693a5f899f50c28f4823c88e2e)
5145   [#6007](https://github.com/npm/npm/issues/6007) request@2.42.0: properly set
5146   headers on proxy requests ([@isaacs](https://github.com/isaacs))
5147 * [`403cb52`](https://github.com/npm/npm/commit/403cb526be1472bb7545fa8e62d4976382cdbbe5)
5148   [#6055](https://github.com/npm/npm/issues/6055) npmconf@1.1.8: restore
5149   case-insensitivity of environmental config
5150   ([@iarna](https://github.com/iarna))
5151
5152 ### v2.0.0-beta.2 (2014-08-29):
5153
5154 SPECIAL LABOR DAY WEEKEND RELEASE PARTY WOOO
5155
5156 * [`ed207e8`](https://github.com/npm/npm/commit/ed207e88019de3150037048df6267024566e1093)
5157   `npm-registry-client@3.1.7`: Clean up auth logic and improve logging around
5158   auth decisions. Also error on trying to change a user document without
5159   writing to it. ([@othiym23](https://github.com/othiym23))
5160 * [`66c7423`](https://github.com/npm/npm/commit/66c7423b7fb07a326b83c83727879410d43c439f)
5161   `npmconf@2.0.7`: support -C as an alias for --prefix
5162   ([@isaacs](https://github.com/isaacs))
5163 * [`0dc6a07`](https://github.com/npm/npm/commit/0dc6a07c778071c94c2251429c7d107e88a45095)
5164   [#6059](https://github.com/npm/npm/issues/6059) run commands in prefix, not
5165   cwd ([@isaacs](https://github.com/isaacs))
5166 * [`65d2179`](https://github.com/npm/npm/commit/65d2179af96737eb9038eaa24a293a62184aaa13)
5167   `github-url-from-username-repo@1.0.1`: part 3 handle slashes in branch names
5168   ([@robertkowalski](https://github.com/robertkowalski))
5169 * [`e8d75d0`](https://github.com/npm/npm/commit/e8d75d0d9f148ce2b3e8f7671fa281945bac363d)
5170   [#6057](https://github.com/npm/npm/issues/6057) `read-installed@3.1.1`:
5171   properly handle extraneous dev dependencies of required dependencies
5172   ([@othiym23](https://github.com/othiym23))
5173 * [`0602f70`](https://github.com/npm/npm/commit/0602f708f070d524ad41573afd4c57171cab21ad)
5174   [#6064](https://github.com/npm/npm/issues/6064) ls: do not show deps of
5175   extraneous deps ([@isaacs](https://github.com/isaacs))
5176
5177 ### v2.0.0-beta.1 (2014-08-28):
5178
5179 * [`78a1fc1`](https://github.com/npm/npm/commit/78a1fc12307a0cbdbc944775ed831b876ee65855)
5180   `github-url-from-git@1.4.0`: add support for git+https and git+ssh
5181   ([@stefanbuck](https://github.com/stefanbuck))
5182 * [`bf247ed`](https://github.com/npm/npm/commit/bf247edf5429c6b3ec4d4cb798fa0eb0a9c19fc1)
5183   `columnify@1.2.1` ([@othiym23](https://github.com/othiym23))
5184 * [`4bbe682`](https://github.com/npm/npm/commit/4bbe682a6d4eabcd23f892932308c9f228bf4de3)
5185   `cmd-shim@2.0.0`: upgrade to graceful-fs 3
5186   ([@ForbesLindesay](https://github.com/ForbesLindesay))
5187 * [`ae1d590`](https://github.com/npm/npm/commit/ae1d590bdfc2476a4ed446e760fea88686e3ae05)
5188   `npm-package-arg@2.0.4`: accept slashes in branch names
5189   ([@thealphanerd](https://github.com/thealphanerd))
5190 * [`b2f51ae`](https://github.com/npm/npm/commit/b2f51aecadf585711e145b6516f99e7c05f53614)
5191   `semver@3.0.1`: semver.clean() is cleaner
5192   ([@isaacs](https://github.com/isaacs))
5193 * [`1d041a8`](https://github.com/npm/npm/commit/1d041a8a5ebd5bf6cecafab2072d4ec07823adab)
5194   `github-url-from-username-repo@1.0.0`: accept slashes in branch names
5195   ([@robertkowalski](https://github.com/robertkowalski))
5196 * [`02c85d5`](https://github.com/npm/npm/commit/02c85d592c4058e5d9eafb0be36b6743ae631998)
5197   `async-some@1.0.1` ([@othiym23](https://github.com/othiym23))
5198 * [`5af493e`](https://github.com/npm/npm/commit/5af493efa8a463cd1acc4a9a394699e2c0793b9c)
5199   ensure lifecycle spawn errors caught properly
5200   ([@isaacs](https://github.com/isaacs))
5201 * [`60fe012`](https://github.com/npm/npm/commit/60fe012fac9570d6c72554cdf34a6fa95bf0f0a6)
5202   `npmconf@2.0.6`: init.version defaults to 1.0.0
5203   ([@isaacs](https://github.com/isaacs))
5204 * [`b4c717b`](https://github.com/npm/npm/commit/b4c717bbf58fb6a0d64ad229036c79a184297ee2)
5205   `npm-registry-client@3.1.4`: properly encode % in passwords
5206   ([@isaacs](https://github.com/isaacs))
5207 * [`7b55f44`](https://github.com/npm/npm/commit/7b55f44420252baeb3f30da437d22956315c31c9)
5208   doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs))
5209
5210 ### v1.4.26 (2014-08-28):
5211
5212 * [`eceea95`](https://github.com/npm/npm/commit/eceea95c804fa15b18e91c52c0beb08d42a3e77d)
5213   `github-url-from-git@1.4.0`: add support for git+https and git+ssh
5214   ([@stefanbuck](https://github.com/stefanbuck))
5215 * [`e561758`](https://github.com/npm/npm/commit/e5617587e7d7ab686192391ce55357dbc7fed0a3)
5216   `columnify@1.2.1` ([@othiym23](https://github.com/othiym23))
5217 * [`0c4fab3`](https://github.com/npm/npm/commit/0c4fab372ee76eab01dda83b6749429a8564902e)
5218   `cmd-shim@2.0.0`: upgrade to graceful-fs 3
5219   ([@ForbesLindesay](https://github.com/ForbesLindesay))
5220 * [`2d69e4d`](https://github.com/npm/npm/commit/2d69e4d95777671958b5e08d3b2f5844109d73e4)
5221   `github-url-from-username-repo@1.0.0`: accept slashes in branch names
5222   ([@robertkowalski](https://github.com/robertkowalski))
5223 * [`81f9b2b`](https://github.com/npm/npm/commit/81f9b2bac9d34c223ea093281ba3c495f23f10d1)
5224   ensure lifecycle spawn errors caught properly
5225   ([@isaacs](https://github.com/isaacs))
5226 * [`bfaab8c`](https://github.com/npm/npm/commit/bfaab8c6e0942382a96b250634ded22454c36b5a)
5227   `npm-registry-client@2.0.7`: properly encode % in passwords
5228   ([@isaacs](https://github.com/isaacs))
5229 * [`91cfb58`](https://github.com/npm/npm/commit/91cfb58dda851377ec604782263519f01fd96ad8)
5230   doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs))
5231
5232 ### v2.0.0-beta.0 (2014-08-21):
5233
5234 * [`685f8be`](https://github.com/npm/npm/commit/685f8be1f2770cc75fd0e519a8d7aac72735a270)
5235   `npm-registry-client@3.1.3`: Print the notification header returned by the
5236   registry, and make sure status codes are printed without gratuitous quotes
5237   around them. ([@isaacs](https://github.com/isaacs) /
5238   [@othiym23](https://github.com/othiym23))
5239 * [`a8cb676`](https://github.com/npm/npm/commit/a8cb676aef0561eaf04487d2719672b097392c85)
5240   [#5900](https://github.com/npm/npm/issues/5900) remove `npm` from its own
5241   `engines` field in `package.json`. None of us remember why it was there.
5242   ([@timoxley](https://github.com/timoxley))
5243 * [`6c47201`](https://github.com/npm/npm/commit/6c47201a7d071e8bf091b36933daf4199cc98e80)
5244   [#5752](https://github.com/npm/npm/issues/5752),
5245   [#6013](https://github.com/npm/npm/issues/6013) save git URLs correctly in
5246   `_resolved` fields ([@isaacs](https://github.com/isaacs))
5247 * [`e4e1223`](https://github.com/npm/npm/commit/e4e1223a91c37688ba3378e1fc9d5ae045654d00)
5248   [#5936](https://github.com/npm/npm/issues/5936) document the use of tags in
5249   `package.json` ([@KenanY](https://github.com/KenanY))
5250 * [`c92b8d4`](https://github.com/npm/npm/commit/c92b8d4db7bde2a501da5b7d612684de1d629a42)
5251   [#6004](https://github.com/npm/npm/issues/6004) manually installed scoped
5252   packages are tracked correctly ([@dead](https://github.com/dead)-horse)
5253 * [`21ca0aa`](https://github.com/npm/npm/commit/21ca0aaacbcfe2b89b0a439d914da0cae62de550)
5254   [#5945](https://github.com/npm/npm/issues/5945) link scoped packages
5255   correctly ([@dead](https://github.com/dead)-horse)
5256 * [`16bead7`](https://github.com/npm/npm/commit/16bead7f2c82aec35b83ff0ec04df051ba456764)
5257   [#5958](https://github.com/npm/npm/issues/5958) ensure that file streams work
5258   in all versions of node ([@dead](https://github.com/dead)-horse)
5259 * [`dbf0cab`](https://github.com/npm/npm/commit/dbf0cab29d0db43ac95e4b5a1fbdea1e0af75f10)
5260   you can now pass quoted args to `npm run-script`
5261   ([@bcoe](https://github.com/bcoe))
5262 * [`0583874`](https://github.com/npm/npm/commit/05838743f01ccb8d2432b3858d66847002fb62df)
5263   `tar@1.0.1`: Add test for removing an extract target immediately after
5264   unpacking.
5265   ([@isaacs](https://github.com/isaacs))
5266 * [`cdf3b04`](https://github.com/npm/npm/commit/cdf3b0428bc0b0183fb41dcde9e34e8f42c5e3a7)
5267   `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`, and
5268   `retries` options. Part 2 of race condition leading to `ENOENT`
5269   ([@isaacs](https://github.com/isaacs))
5270   errors.
5271 * [`22d72a8`](https://github.com/npm/npm/commit/22d72a87a9e1a9ab56d9585397f63551887d9125)
5272   `fstream@1.0.2`: Fix a double-finish call which can result in excess FS
5273   operations after the `close` event. Part 1 of race condition leading to
5274   `ENOENT` errors.
5275   ([@isaacs](https://github.com/isaacs))
5276
5277 ### v1.4.25 (2014-08-21):
5278
5279 * [`64c0ec2`](https://github.com/npm/npm/commit/64c0ec241ef5d83761ca8de54acb3c41b079956e)
5280   `npm-registry-client@2.0.6`: Print the notification header returned by the
5281   registry, and make sure status codes are printed without gratuitous quotes
5282   around them.
5283   ([@othiym23](https://github.com/othiym23))
5284 * [`a8ed12b`](https://github.com/npm/npm/commit/a8ed12b) `tar@1.0.1`:
5285   Add test for removing an extract target immediately after unpacking.
5286   ([@isaacs](https://github.com/isaacs))
5287 * [`70fd11d`](https://github.com/npm/npm/commit/70fd11d)
5288   `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`,
5289   and `retries` options.  Part 2 of race condition leading to `ENOENT`
5290   errors.
5291   ([@isaacs](https://github.com/isaacs))
5292 * [`0072c4d`](https://github.com/npm/npm/commit/0072c4d)
5293   `fstream@1.0.2`: Fix a double-finish call which can result in excess
5294   FS operations after the `close` event.  Part 2 of race condition
5295   leading to `ENOENT` errors.
5296   ([@isaacs](https://github.com/isaacs))
5297
5298 ### v2.0.0-alpha.7 (2014-08-14):
5299
5300 * [`f23f1d8`](https://github.com/npm/npm/commit/f23f1d8e8f86ec1b7ab8dad68250bccaa67d61b1)
5301   doc: update version doc to include `pre-*` increment args
5302   ([@isaacs](https://github.com/isaacs))
5303 * [`b6bb746`](https://github.com/npm/npm/commit/b6bb7461824d4dc1c0936f46bd7929b5cd597986)
5304   build: add 'make tag' to tag current release as latest
5305   ([@isaacs](https://github.com/isaacs))
5306 * [`27c4bb6`](https://github.com/npm/npm/commit/27c4bb606e46e5eaf604b19fe8477bc6567f8b2e)
5307   build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs))
5308 * [`cff66c3`](https://github.com/npm/npm/commit/cff66c3bf2850880058ebe2a26655dafd002495e)
5309   build: add script to output `v1.4-next` publish tag
5310   ([@isaacs](https://github.com/isaacs))
5311 * [`22abec8`](https://github.com/npm/npm/commit/22abec8833474879ac49b9604c103bc845dad779)
5312   build: remove outdated `docpublish` make target
5313   ([@isaacs](https://github.com/isaacs))
5314 * [`1be4de5`](https://github.com/npm/npm/commit/1be4de51c3976db8564f72b00d50384c921f0917)
5315   build: remove `unpublish` step from `make publish`
5316   ([@isaacs](https://github.com/isaacs))
5317 * [`e429e20`](https://github.com/npm/npm/commit/e429e2011f4d78e398f2461bca3e5a9a146fbd0c)
5318   doc: add new changelog ([@othiym23](https://github.com/othiym23))
5319 * [`9243d20`](https://github.com/npm/npm/commit/9243d207896ea307082256604c10817f7c318d68)
5320   lifecycle: test lifecycle path modification
5321   ([@isaacs](https://github.com/isaacs))
5322 * [`021770b`](https://github.com/npm/npm/commit/021770b9cb07451509f0a44afff6c106311d8cf6)
5323   lifecycle: BREAKING CHANGE do not add the directory containing node executable
5324   ([@chulkilee](https://github.com/chulkilee))
5325 * [`1d5c41d`](https://github.com/npm/npm/commit/1d5c41dd0d757bce8b87f10c4135f04ece55aeb9)
5326   install: rename .gitignore when unpacking foreign tarballs
5327   ([@isaacs](https://github.com/isaacs))
5328 * [`9aac267`](https://github.com/npm/npm/commit/9aac2670a73423544d92b27cc301990a16a9563b)
5329   cache: detect non-gzipped tar files more reliably
5330   ([@isaacs](https://github.com/isaacs))
5331 * [`3f24755`](https://github.com/npm/npm/commit/3f24755c8fce3c7ab11ed1dc632cc40d7ef42f62)
5332   `readdir-scoped-modules@1.0.0` ([@isaacs](https://github.com/isaacs))
5333 * [`151cd2f`](https://github.com/npm/npm/commit/151cd2ff87b8ac2fc9ea366bc9b7f766dc5b9684)
5334   `read-installed@3.1.0` ([@isaacs](https://github.com/isaacs))
5335 * [`f5a9434`](https://github.com/npm/npm/commit/f5a94343a8ebe4a8cd987320b55137aef53fb3fd)
5336   test: fix Travis timeouts ([@dylang](https://github.com/dylang))
5337 * [`126cafc`](https://github.com/npm/npm/commit/126cafcc6706814c88af3042f2ffff408747bff4)
5338   `npm-registry-couchapp@2.5.0` ([@othiym23](https://github.com/othiym23))
5339
5340 ### v1.4.24 (2014-08-14):
5341
5342 * [`9344bd9`](https://github.com/npm/npm/commit/9344bd9b2929b5c399a0e0e0b34d45bce7bc24bb)
5343   doc: add new changelog ([@othiym23](https://github.com/othiym23))
5344 * [`4be76fd`](https://github.com/npm/npm/commit/4be76fd65e895883c337a99f275ccc8c801adda3)
5345   doc: update version doc to include `pre-*` increment args
5346   ([@isaacs](https://github.com/isaacs))
5347 * [`e4f2620`](https://github.com/npm/npm/commit/e4f262036080a282ad60e236a9aeebd39fde9fe4)
5348   build: add `make tag` to tag current release as `latest`
5349   ([@isaacs](https://github.com/isaacs))
5350 * [`ec2596a`](https://github.com/npm/npm/commit/ec2596a7cb626772780b25b0a94a7e547a812bd5)
5351   build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs))
5352 * [`9ee55f8`](https://github.com/npm/npm/commit/9ee55f892b8b473032a43c59912c5684fd1b39e6)
5353   build: add script to output `v1.4-next` publish tag
5354   ([@isaacs](https://github.com/isaacs))
5355 * [`aecb56f`](https://github.com/npm/npm/commit/aecb56f95a84687ea46920a0b98aaa587fee1568)
5356   build: remove outdated `docpublish` make target
5357   ([@isaacs](https://github.com/isaacs))
5358 * [`b57a9b7`](https://github.com/npm/npm/commit/b57a9b7ccd13e6b38831ed63595c8ea5763da247)
5359   build: remove unpublish step from `make publish`
5360   ([@isaacs](https://github.com/isaacs))
5361 * [`2c6acb9`](https://github.com/npm/npm/commit/2c6acb96c71c16106965d5cd829b67195dd673c7)
5362   install: rename `.gitignore` when unpacking foreign tarballs
5363   ([@isaacs](https://github.com/isaacs))
5364 * [`22f3681`](https://github.com/npm/npm/commit/22f3681923e993a47fc1769ba735bfa3dd138082)
5365   cache: detect non-gzipped tar files more reliably
5366   ([@isaacs](https://github.com/isaacs))
5367
5368 ### v2.0.0-alpha.6 (2014-08-07):
5369
5370 BREAKING CHANGE:
5371
5372 * [`ea547e2`](https://github.com/npm/npm/commit/ea547e2) Bump semver to
5373   version 3: `^0.x.y` is now functionally the same as `=0.x.y`.
5374   ([@isaacs](https://github.com/isaacs))
5375
5376 Other changes:
5377
5378 * [`d987707`](https://github.com/npm/npm/commit/d987707) move fetch into
5379   npm-registry-client ([@othiym23](https://github.com/othiym23))
5380 * [`9b318e2`](https://github.com/npm/npm/commit/9b318e2) `read-installed@3.0.0`
5381   ([@isaacs](https://github.com/isaacs))
5382 * [`9d73de7`](https://github.com/npm/npm/commit/9d73de7) remove unnecessary
5383   mkdirps ([@isaacs](https://github.com/isaacs))
5384 * [`33ccd13`](https://github.com/npm/npm/commit/33ccd13) Don't squash execute
5385   perms in `_git-remotes/` dir ([@adammeadows](https://github.com/adammeadows))
5386 * [`48fd233`](https://github.com/npm/npm/commit/48fd233) `npm-package-arg@2.0.1`
5387   ([@isaacs](https://github.com/isaacs))
5388
5389 ### v1.4.23 (2014-07-31):
5390
5391 * [`8dd11d1`](https://github.com/npm/npm/commit/8dd11d1) update several
5392   dependencies to avoid using `semver`s starting with 0.
5393
5394 ### v1.4.22 (2014-07-31):
5395
5396 * [`d9a9e84`](https://github.com/npm/npm/commit/d9a9e84) `read-package-json@1.2.4`
5397   ([@isaacs](https://github.com/isaacs))
5398 * [`86f0340`](https://github.com/npm/npm/commit/86f0340)
5399   `github-url-from-git@1.2.0` ([@isaacs](https://github.com/isaacs))
5400 * [`a94136a`](https://github.com/npm/npm/commit/a94136a) `fstream@0.1.29`
5401   ([@isaacs](https://github.com/isaacs))
5402 * [`bb82d18`](https://github.com/npm/npm/commit/bb82d18) `glob@4.0.5`
5403   ([@isaacs](https://github.com/isaacs))
5404 * [`5b6bcf4`](https://github.com/npm/npm/commit/5b6bcf4) `cmd-shim@1.1.2`
5405   ([@isaacs](https://github.com/isaacs))
5406 * [`c2aa8b3`](https://github.com/npm/npm/commit/c2aa8b3) license: Cleaned up
5407   legalese with actual lawyer ([@isaacs](https://github.com/isaacs))
5408 * [`63fe0ee`](https://github.com/npm/npm/commit/63fe0ee) `init-package-json@1.0.0`
5409   ([@isaacs](https://github.com/isaacs))
5410
5411 ### v2.0.0-alpha-5 (2014-07-22):
5412
5413 This release bumps up to 2.0 because of this breaking change, which could
5414 potentially affect how your package's scripts are run:
5415
5416 * [`df4b0e7`](https://github.com/npm/npm/commit/df4b0e7fc1abd9a54f98db75ec9e4d03d37d125b)
5417   [#5518](https://github.com/npm/npm/issues/5518) BREAKING CHANGE: support
5418   passing arguments to `run` scripts ([@bcoe](https://github.com/bcoe))
5419
5420 Other changes:
5421
5422 * [`cd422c9`](https://github.com/npm/npm/commit/cd422c9de510766797c65720d70f085000f50543)
5423   [#5748](https://github.com/npm/npm/issues/5748) link binaries for scoped
5424   packages ([@othiym23](https://github.com/othiym23))
5425 * [`4c3c778`](https://github.com/npm/npm/commit/4c3c77839920e830991e0c229c3c6a855c914d67)
5426   [#5758](https://github.com/npm/npm/issues/5758) `npm link` includes scope
5427   when linking scoped package ([@fengmk2](https://github.com/fengmk2))
5428 * [`f9f58dd`](https://github.com/npm/npm/commit/f9f58dd0f5b715d4efa6619f13901916d8f99c47)
5429   [#5707](https://github.com/npm/npm/issues/5707) document generic pre- /
5430   post-commands ([@sudodoki](https://github.com/sudodoki))
5431 * [`ac7a480`](https://github.com/npm/npm/commit/ac7a4801d80361b41dce4a18f22bcdf75e396000)
5432   [#5406](https://github.com/npm/npm/issues/5406) `npm cache` displays usage
5433   when called without arguments
5434   ([@michaelnisi](https://github.com/michaelnisi))
5435 * [`f4554e9`](https://github.com/npm/npm/commit/f4554e99d34f77a8a02884493748f7d49a9a9d8b)
5436   Test fixes for Windows ([@isaacs](https://github.com/isaacs))
5437 * update dependencies ([@othiym23](https://github.com/othiym23))
5438
5439
5440 ### v1.5.0-alpha-4 (2014-07-18):
5441
5442 * fall back to `_auth` config as default auth when using default registry
5443   ([@isaacs](https://github.com/isaacs))
5444 * support for 'init.version' for those who don't want to deal with semver 0.0.x
5445   oddities ([@rvagg](https://github.com/rvagg))
5446 * [`be06213`](https://github.com/npm/npm/commit/be06213415f2d51a50d2c792b4cd0d3412a9a7b1)
5447   remove residual support for `win` log level
5448   ([@aterris](https://github.com/aterris))
5449
5450 ### v1.5.0-alpha-3 (2014-07-17):
5451
5452 * [`a3a85dd`](https://github.com/npm/npm/commit/a3a85dd004c9245a71ad2f0213bd1a9a90d64cd6)
5453   `--save` scoped packages correctly ([@othiym23](https://github.com/othiym23))
5454 * [`18a3385`](https://github.com/npm/npm/commit/18a3385bcf8bfb8312239216afbffb7eec759150)
5455   `npm-registry-client@3.0.2` ([@othiym23](https://github.com/othiym23))
5456 * [`375988b`](https://github.com/npm/npm/commit/375988b9bf5aa5170f06a790d624d31b1eb32c6d)
5457   invalid package names are an early error for optional deps
5458   ([@othiym23](https://github.com/othiym23))
5459 * consistently use `node-package-arg` instead of arbitrary package spec
5460   splitting ([@othiym23](https://github.com/othiym23))
5461
5462 ### v1.4.21 (2014-07-14):
5463
5464 * [`88f51aa`](https://github.com/npm/npm/commit/88f51aa27eb9a958d1fa7ec50fee5cfdedd05110)
5465   fix handling for 301s in `npm-registry-client@2.0.3`
5466   ([@Raynos](https://github.com/Raynos))
5467
5468 ### v1.5.0-alpha-2 (2014-07-01):
5469
5470 * [`54cf625`](https://github.com/npm/npm/commit/54cf62534e3331e3f454e609e44f0b944e819283)
5471   fix handling for 301s in `npm-registry-client@3.0.1`
5472   ([@Raynos](https://github.com/Raynos))
5473 * [`e410861`](https://github.com/npm/npm/commit/e410861c69a3799c1874614cb5b87af8124ff98d)
5474   don't crash if no username set on `whoami`
5475   ([@isaacs](https://github.com/isaacs))
5476 * [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406)
5477   respect `--json` for output ([@isaacs](https://github.com/isaacs))
5478 * [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6)
5479   outdated: Don't show headings if there's nothing to output
5480   ([@isaacs](https://github.com/isaacs))
5481 * [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3)
5482   outdated: Default to `latest` rather than `*` for unspecified deps
5483   ([@isaacs](https://github.com/isaacs))
5484
5485 ### v1.4.20 (2014-07-02):
5486
5487 * [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406)
5488   respect `--json` for output ([@isaacs](https://github.com/isaacs))
5489 * [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6)
5490   outdated: Don't show headings if there's nothing to output
5491   ([@isaacs](https://github.com/isaacs))
5492 * [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3)
5493   outdated: Default to `latest` rather than `*` for unspecified deps
5494   ([@isaacs](https://github.com/isaacs))
5495
5496 ### v1.5.0-alpha-1 (2014-07-01):
5497
5498 * [`eef4884`](https://github.com/npm/npm/commit/eef4884d6487ee029813e60a5f9c54e67925d9fa)
5499   use the correct piece of the spec for GitHub shortcuts
5500   ([@othiym23](https://github.com/othiym23))
5501
5502 ### v1.5.0-alpha-0 (2014-07-01):
5503
5504 * [`7f55057`](https://github.com/npm/npm/commit/7f55057807cfdd9ceaf6331968e666424f48116c)
5505   install scoped packages ([#5239](https://github.com/npm/npm/issues/5239))
5506   ([@othiym23](https://github.com/othiym23))
5507 * [`0df7e16`](https://github.com/npm/npm/commit/0df7e16c0232d8f4d036ebf4ec3563215517caac)
5508   publish scoped packages ([#5239](https://github.com/npm/npm/issues/5239))
5509   ([@othiym23](https://github.com/othiym23))
5510 * [`0689ba2`](https://github.com/npm/npm/commit/0689ba249b92b4c6279a26804c96af6f92b3a501)
5511   support (and save) --scope=@s config
5512   ([@othiym23](https://github.com/othiym23))
5513 * [`f34878f`](https://github.com/npm/npm/commit/f34878fc4cee29901e4daf7bace94be01e25cad7)
5514   scope credentials to registry ([@othiym23](https://github.com/othiym23))
5515 * [`0ac7ca2`](https://github.com/npm/npm/commit/0ac7ca233f7a69751fe4386af6c4daa3ee9fc0da)
5516   capture and store bearer tokens when sent by registry
5517   ([@othiym23](https://github.com/othiym23))
5518 * [`63c3277`](https://github.com/npm/npm/commit/63c3277f089b2c4417e922826bdc313ac854cad6)
5519   only delete files that are created by npm
5520   ([@othiym23](https://github.com/othiym23))
5521 * [`4f54043`](https://github.com/npm/npm/commit/4f540437091d1cbca3915cd20c2da83c2a88bb8e)
5522   `npm-package-arg@2.0.0` ([@othiym23](https://github.com/othiym23))
5523 * [`9e1460e`](https://github.com/npm/npm/commit/9e1460e6ac9433019758481ec031358f4af4cd44)
5524   `read-package-json@1.2.3` ([@othiym23](https://github.com/othiym23))
5525 * [`719d8ad`](https://github.com/npm/npm/commit/719d8adb9082401f905ff4207ede494661f8a554)
5526   `fs-vacuum@1.2.1` ([@othiym23](https://github.com/othiym23))
5527 * [`9ef8fe4`](https://github.com/npm/npm/commit/9ef8fe4d6ead3acb3e88c712000e2d3a9480ebec)
5528   `async-some@1.0.0` ([@othiym23](https://github.com/othiym23))
5529 * [`a964f65`](https://github.com/npm/npm/commit/a964f65ab662107b62a4ca58535ce817e8cca331)
5530   `npmconf@2.0.1` ([@othiym23](https://github.com/othiym23))
5531 * [`113765b`](https://github.com/npm/npm/commit/113765bfb7d3801917c1d9f124b8b3d942bec89a)
5532   `npm-registry-client@3.0.0` ([@othiym23](https://github.com/othiym23))
5533
5534 ### v1.4.19 (2014-07-01):
5535
5536 * [`f687433`](https://github.com/npm/npm/commit/f687433) relative URLS for
5537   working non-root registry URLS ([@othiym23](https://github.com/othiym23))
5538 * [`bea190c`](https://github.com/npm/npm/commit/bea190c)
5539   [#5591](https://github.com/npm/npm/issues/5591) bump nopt and npmconf
5540   ([@isaacs](https://github.com/isaacs))
5541
5542 ### v1.4.18 (2014-06-29):
5543
5544 * Bump glob dependency from 4.0.2 to 4.0.3. It now uses graceful-fs when
5545   available, increasing resilience to [various filesystem
5546   errors](https://github.com/isaacs/node-graceful-fs#improvements-over-fs-module).
5547   ([@isaacs](https://github.com/isaacs))
5548
5549 ### v1.4.17 (2014-06-27):
5550
5551 * replace escape codes with ansicolors
5552   ([@othiym23](https://github.com/othiym23))
5553 * Allow to build all the docs OOTB. ([@GeJ](https://github.com/GeJ))
5554 * Use core.longpaths on win32 git - fixes
5555   [#5525](https://github.com/npm/npm/issues/5525) ([@bmeck](https://github.com/bmeck))
5556 * `npmconf@1.1.2` ([@isaacs](https://github.com/isaacs))
5557 * Consolidate color sniffing in config/log loading process
5558   ([@isaacs](https://github.com/isaacs))
5559 * add verbose log when project config file is ignored
5560   ([@isaacs](https://github.com/isaacs))
5561 * npmconf: Float patch to remove 'scope' from config defs
5562   ([@isaacs](https://github.com/isaacs))
5563 * doc: npm-explore can't handle a version
5564   ([@robertkowalski](https://github.com/robertkowalski))
5565 * Add user-friendly errors for ENOSPC and EROFS.
5566   ([@voodootikigod](https://github.com/voodootikigod))
5567 * bump tar and fstream deps ([@isaacs](https://github.com/isaacs))
5568 * Run the npm-registry-couchapp tests along with npm tests
5569   ([@isaacs](https://github.com/isaacs))
5570
5571 ### v1.2.8000 (2014-06-17):
5572
5573 * Same as v1.4.16, but with the spinner disabled, and a version number that
5574   starts with v1.2.
5575
5576 ### v1.4.16 (2014-06-17):
5577
5578 * `npm-registry-client@2.0.2` ([@isaacs](https://github.com/isaacs))
5579 * `fstream@0.1.27` ([@isaacs](https://github.com/isaacs))
5580 * `sha@1.2.4` ([@isaacs](https://github.com/isaacs))
5581 * `rimraf@2.2.8` ([@isaacs](https://github.com/isaacs))
5582 * `npmlog@1.0.1` ([@isaacs](https://github.com/isaacs))
5583 * `npm-registry-client@2.0.1` ([@isaacs](https://github.com/isaacs))
5584 * removed redundant dependency ([@othiym23](https://github.com/othiym23))
5585 * `npmconf@1.0.5` ([@isaacs](https://github.com/isaacs))
5586 * Properly handle errors that can occur in the config-loading process
5587   ([@isaacs](https://github.com/isaacs))
5588
5589 ### v1.4.15 (2014-06-10):
5590
5591 * cache: atomic de-race-ified package.json writing
5592   ([@isaacs](https://github.com/isaacs))
5593 * `fstream@0.1.26` ([@isaacs](https://github.com/isaacs))
5594 * `graceful-fs@3.0.2` ([@isaacs](https://github.com/isaacs))
5595 * `osenv@0.1.0` ([@isaacs](https://github.com/isaacs))
5596 * Only spin the spinner when we're fetching stuff
5597   ([@isaacs](https://github.com/isaacs))
5598 * Update `osenv@0.1.0` which removes ~/tmp as possible tmp-folder
5599   ([@robertkowalski](https://github.com/robertkowalski))
5600 * `ini@1.2.1` ([@isaacs](https://github.com/isaacs))
5601 * `graceful-fs@3` ([@isaacs](https://github.com/isaacs))
5602 * Update glob and things depending on glob
5603   ([@isaacs](https://github.com/isaacs))
5604 * github-url-from-username-repo and read-package-json updates
5605   ([@isaacs](https://github.com/isaacs))
5606 * `editor@0.1.0` ([@isaacs](https://github.com/isaacs))
5607 * `columnify@1.1.0` ([@isaacs](https://github.com/isaacs))
5608 * bump ansi and associated deps ([@isaacs](https://github.com/isaacs))
5609
5610 ### v1.4.14 (2014-06-05):
5611
5612 * char-spinner: update to not bork windows
5613   ([@isaacs](https://github.com/isaacs))
5614
5615 ### v1.4.13 (2014-05-23):
5616
5617 * Fix `npm install` on a tarball.
5618   ([`ed3abf1`](https://github.com/npm/npm/commit/ed3abf1aa10000f0f687330e976d78d1955557f6),
5619   [#5330](https://github.com/npm/npm/issues/5330),
5620   [@othiym23](https://github.com/othiym23))
5621 * Fix an issue with the spinner on Node 0.8.
5622   ([`9f00306`](https://github.com/npm/npm/commit/9f003067909440390198c0b8f92560d84da37762),
5623   [@isaacs](https://github.com/isaacs))
5624 * Re-add `npm.commands.cache.clean` and `npm.commands.cache.read` APIs, and
5625   document `npm.commands.cache.*` as npm-cache(3).
5626   ([`e06799e`](https://github.com/npm/npm/commit/e06799e77e60c1fc51869619083a25e074d368b3),
5627   [@isaacs](https://github.com/isaacs))
5628
5629 ### v1.4.12 (2014-05-23):
5630
5631 * remove normalize-package-data from top level, de-^-ify inflight dep
5632   ([@isaacs](https://github.com/isaacs))
5633 * Always sort saved bundleDependencies ([@isaacs](https://github.com/isaacs))
5634 * add inflight to bundledDependencies
5635   ([@othiym23](https://github.com/othiym23))
5636
5637 ### v1.4.11 (2014-05-22):
5638
5639 * fix `npm ls` labeling issue
5640 * `node-gyp@0.13.1`
5641 * default repository to https:// instead of git://
5642 * addLocalTarball: Remove extraneous unpack
5643   ([@isaacs](https://github.com/isaacs))
5644 * Massive cache folder refactor ([@othiym23](https://github.com/othiym23) and
5645   [@isaacs](https://github.com/isaacs))
5646 * Busy Spinner, no http noise ([@isaacs](https://github.com/isaacs))
5647 * Per-project .npmrc file support ([@isaacs](https://github.com/isaacs))
5648 * `npmconf@1.0.0`, Refactor config/uid/prefix loading process
5649   ([@isaacs](https://github.com/isaacs))
5650 * Allow once-disallowed characters in passwords
5651   ([@isaacs](https://github.com/isaacs))
5652 * Send npm version as 'version' header ([@isaacs](https://github.com/isaacs))
5653 * fix cygwin encoding issue (Karsten Tinnefeld)
5654 * Allow non-github repositories with `npm repo`
5655   ([@evanlucas](https://github.com/evanlucas))
5656 * Allow peer deps to be satisfied by grandparent
5657 * Stop optional deps moving into deps on `update --save`
5658   ([@timoxley](https://github.com/timoxley))
5659 * Ensure only matching deps update with `update --save*`
5660   ([@timoxley](https://github.com/timoxley))
5661 * Add support for `prerelease`, `preminor`, `prepatch` to `npm version`
5662
5663 ### v1.4.10 (2014-05-05):
5664
5665 * Don't set referer if already set
5666 * fetch: Send referer and npm-session headers
5667 * `run-script`: Support `--parseable` and `--json`
5668 * list runnable scripts ([@evanlucas](https://github.com/evanlucas))
5669 * Use marked instead of ronn for html docs
5670
5671 ### v1.4.9 (2014-05-01):
5672
5673 * Send referer header (with any potentially private stuff redacted)
5674 * Fix critical typo bug in previous npm release
5675
5676 ### v1.4.8 (2014-05-01):
5677
5678 * Check SHA before using files from cache
5679 * adduser: allow change of the saved password
5680 * Make `npm install` respect `config.unicode`
5681 * Fix lifecycle to pass `Infinity` for config env value
5682 * Don't return 0 exit code on invalid command
5683 * cache: Handle 404s and other HTTP errors as errors
5684 * Resolve ~ in path configs to env.HOME
5685 * Include npm version in default user-agent conf
5686 * npm init: Use ISC as default license, use save-prefix for deps
5687 * Many test and doc fixes
5688
5689 ### v1.4.7 (2014-04-15):
5690
5691 * Add `--save-prefix` option that can be used to override the default of `^`
5692   when using `npm install --save` and its counterparts.
5693   ([`64eefdf`](https://github.com/npm/npm/commit/64eefdfe26bb27db8dc90e3ab5d27a5ef18a4470),
5694   [@thlorenz](https://github.com/thlorenz))
5695 * Allow `--silent` to silence the echoing of commands that occurs with `npm
5696   run`.
5697   ([`c95cf08`](https://github.com/npm/npm/commit/c95cf086e5b97dbb48ff95a72517b203a8f29eab),
5698   [@Raynos](https://github.com/Raynos))
5699 * Some speed improvements to the cache, which should improve install times.
5700   ([`cb94310`](https://github.com/npm/npm/commit/cb94310a6adb18cb7b881eacb8d67171eda8b744),
5701   [`3b0870f`](https://github.com/npm/npm/commit/3b0870fb2f40358b3051abdab6be4319d196b99d),
5702   [`120f5a9`](https://github.com/npm/npm/commit/120f5a93437bbbea9249801574a2f33e44e81c33),
5703   [@isaacs](https://github.com/isaacs))
5704 * Improve ability to retry registry requests when a subset of the registry
5705   servers are down.
5706   ([`4a5257d`](https://github.com/npm/npm/commit/4a5257de3870ac3dafa39667379f19f6dcd6093e),
5707   https://github.com/npm/npm-registry-client/commit/7686d02cb0b844626d6a401e58c0755ef3bc8432,
5708   [@isaacs](https://github.com/isaacs))
5709 * Fix marking of peer dependencies as extraneous.
5710   ([`779b164`](https://github.com/npm/npm/commit/779b1649764607b062c031c7e5c972151b4a1754),
5711   https://github.com/npm/read-installed/commit/6680ba6ef235b1ca3273a00b70869798ad662ddc,
5712   [@isaacs](https://github.com/isaacs))
5713 * Fix npm crashing when doing `npm shrinkwrap` in the presence of a
5714   `package.json` with no dependencies.
5715   ([`a9d9fa5`](https://github.com/npm/npm/commit/a9d9fa5ad3b8c925a589422b7be28d2735f320b0),
5716   [@kislyuk](https://github.com/kislyuk))
5717 * Fix error when using `npm view` on packages that have no versions or have
5718   been unpublished.
5719   ([`94df2f5`](https://github.com/npm/npm/commit/94df2f56d684b35d1df043660180fc321b743dc8),
5720   [@juliangruber](https://github.com/juliangruber);
5721   [`2241a09`](https://github.com/npm/npm/commit/2241a09c843669c70633c399ce698cec3add40b3),
5722   [@isaacs](https://github.com/isaacs))
5723
5724 ### v1.4.6 (2014-03-19):
5725
5726 * Fix extraneous package detection to work in more cases.
5727   ([`f671286`](https://github.com/npm/npm/commit/f671286), npm/read-installed#20,
5728   [@LaurentVB](https://github.com/LaurentVB))
5729
5730 ### v1.4.5 (2014-03-18):
5731
5732 * Sort dependencies in `package.json` when doing `npm install --save` and all
5733   its variants.
5734   ([`6fd6ff7`](https://github.com/npm/npm/commit/6fd6ff7e536ea6acd33037b1878d4eca1f931985),
5735   [@domenic](https://github.com/domenic))
5736 * Add `--save-exact` option, usable alongside `--save` and its variants, which
5737   will write the exact version number into `package.json` instead of the
5738   appropriate semver-compatibility range.
5739   ([`17f07df`](https://github.com/npm/npm/commit/17f07df8ad8e594304c2445bf7489cb53346f2c5),
5740   [@timoxley](https://github.com/timoxley))
5741 * Accept gzipped content from the registry to speed up downloads and save
5742   bandwidth.
5743   ([`a3762de`](https://github.com/npm/npm/commit/a3762de843b842be8fa0ab57cdcd6b164f145942),
5744   npm/npm-registry-client#40, [@fengmk2](https://github.com/fengmk2))
5745 * Fix `npm ls`'s `--depth` and `--log` options.
5746   ([`1d29b17`](https://github.com/npm/npm/commit/1d29b17f5193d52a5c4faa412a95313dcf41ed91),
5747   npm/read-installed#13, [@zertosh](https://github.com/zertosh))
5748 * Fix "Adding a cache directory to the cache will make the world implode" in
5749   certain cases.
5750   ([`9a4b2c4`](https://github.com/npm/npm/commit/9a4b2c4667c2b1e0054e3d5611ab86acb1760834),
5751   domenic/path-is-inside#1, [@pmarques](https://github.com/pmarques))
5752 * Fix readmes not being uploaded in certain rare cases.
5753   ([`527b72c`](https://github.com/npm/npm/commit/527b72cca6c55762b51e592c48a9f28cc7e2ff8b),
5754   [@isaacs](https://github.com/isaacs))
5755
5756 ### v1.4.4 (2014-02-20):
5757
5758 * Add `npm t` as an alias for `npm test` (which is itself an alias for `npm run
5759   test`, or even `npm run-script test`). We like making running your tests
5760   easy. ([`14e650b`](https://github.com/npm/npm/commit/14e650bce0bfebba10094c961ac104a61417a5de), [@isaacs](https://github.com/isaacs))
5761
5762 ### v1.4.3 (2014-02-16):
5763
5764 * Add back `npm prune --production`, which was removed in 1.3.24.
5765   ([`acc4d02`](https://github.com/npm/npm/commit/acc4d023c57d07704b20a0955e4bf10ee91bdc83),
5766   [@davglass](https://github.com/davglass))
5767 * Default `npm install --save` and its counterparts to use the `^` version
5768   specifier, instead of `~`.
5769   ([`0a3151c`](https://github.com/npm/npm/commit/0a3151c9cbeb50c1c65895685c2eabdc7e2608dc),
5770   [@mikolalysenko](https://github.com/mikolalysenko))
5771 * Make `npm shrinkwrap` output dependencies in a sorted order, so that diffs
5772   between shrinkwrap files should be saner now.
5773   ([`059b2bf`](https://github.com/npm/npm/commit/059b2bfd06ae775205a37257dca80142596a0113),
5774   [@Raynos](https://github.com/Raynos))
5775 * Fix `npm dedupe` not correctly respecting dependency constraints.
5776   ([`86028e9`](https://github.com/npm/npm/commit/86028e9fd8524d5e520ce01ba2ebab5a030103fc),
5777   [@rafeca](https://github.com/rafeca))
5778 * Fix `npm ls` giving spurious warnings when you used `"latest"` as a version
5779   specifier.
5780   (https://github.com/npm/read-installed/commit/d2956400e0386931c926e0f30c334840e0938f14,
5781   [@bajtos](https://github.com/bajtos))
5782 * Fixed a bug where using `npm link` on packages without a `name` value could
5783   cause npm to delete itself.
5784   ([`401a642`](https://github.com/npm/npm/commit/401a64286aa6665a94d1d2f13604f7014c5fce87),
5785   [@isaacs](https://github.com/isaacs))
5786 * Fixed `npm install ./pkg@1.2.3` to actually install the directory at
5787   `pkg@1.2.3`; before it would try to find version `1.2.3` of the package
5788   `./pkg` in the npm registry.
5789   ([`46d8768`](https://github.com/npm/npm/commit/46d876821d1dd94c050d5ebc86444bed12c56739),
5790   [@rlidwka](https://github.com/rlidwka); see also
5791   [`f851b79`](https://github.com/npm/npm/commit/f851b79a71d9a5f5125aa85877c94faaf91bea5f))
5792 * Fix `npm outdated` to respect the `color` configuration option.
5793   ([`d4f6f3f`](https://github.com/npm/npm/commit/d4f6f3ff83bd14fb60d3ac6392cb8eb6b1c55ce1),
5794   [@timoxley](https://github.com/timoxley))
5795 * Fix `npm outdated --parseable`.
5796   ([`9575a23`](https://github.com/npm/npm/commit/9575a23f955ce3e75b509c89504ef0bd707c8cf6),
5797   [@yhpark](https://github.com/yhpark))
5798 * Fix a lockfile-related errors when using certain Git URLs.
5799   ([`164b97e`](https://github.com/npm/npm/commit/164b97e6089f64e686db7a9a24016f245effc37f),
5800   [@nigelzor](https://github.com/nigelzor))
5801
5802 ### v1.4.2 (2014-02-13):
5803
5804 * Fixed an issue related to mid-publish GET requests made against the registry.
5805   (https://github.com/npm/npm-registry-client/commit/acbec48372bc1816c67c9e7cbf814cf50437ff93,
5806   [@isaacs](https://github.com/isaacs))
5807
5808 ### v1.4.1 (2014-02-13):
5809
5810 * Fix `npm shrinkwrap` forgetting to shrinkwrap dependencies that were also
5811   development dependencies.
5812   ([`9c575c5`](https://github.com/npm/npm/commit/9c575c56efa9b0c8b0d4a17cb9c1de3833004bcd),
5813   [@diwu1989](https://github.com/diwu1989))
5814 * Fixed publishing of pre-existing packages with uppercase characters in their
5815   name.
5816   (https://github.com/npm/npm-registry-client/commit/9345d3b6c3d8510dd5c4418f27ee1fce59acebad,
5817   [@isaacs](https://github.com/isaacs))
5818
5819 ### v1.4.0 (2014-02-12):
5820
5821 * Remove `npm publish --force`. See
5822   https://github.com/npm/npmjs.org/issues/148.
5823   ([@isaacs](https://github.com/isaacs),
5824   npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a)
5825 * Other changes to the registry client related to saved configs and couch
5826   logins. ([@isaacs](https://github.com/isaacs);
5827   npm/npm-registry-client@25e2b019a1588155e5f87d035c27e79963b75951,
5828   npm/npm-registry-client@9e41e9101b68036e0f078398785f618575f3cdde,
5829   npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a)
5830 * Show an error to the user when doing `npm update` and the `package.json`
5831   specifies a version that does not exist.
5832   ([@evanlucas](https://github.com/evanlucas),
5833   [`027a33a`](https://github.com/npm/npm/commit/027a33a5c594124cc1d82ddec5aee2c18bc8dc32))
5834 * Fix some issues with cache ownership in certain installation configurations.
5835   ([@outcoldman](https://github.com/outcoldman),
5836   [`a132690`](https://github.com/npm/npm/commit/a132690a2876cda5dcd1e4ca751f21dfcb11cb9e))
5837 * Fix issues where GitHub shorthand dependencies `user/repo` were not always
5838   treated the same as full Git URLs.
5839   ([@robertkowalski](https://github.com/robertkowalski),
5840   https://github.com/meryn/normalize-package-data/commit/005d0b637aec1895117fcb4e3b49185eebf9e240)
5841
5842 ### v1.3.26 (2014-02-02):
5843
5844 * Fixes and updates to publishing code
5845   ([`735427a`](https://github.com/npm/npm/commit/735427a69ba4fe92aafa2d88f202aaa42920a9e2)
5846   and
5847   [`c0ac832`](https://github.com/npm/npm/commit/c0ac83224d49aa62e55577f8f27d53bbfd640dc5),
5848   [@isaacs](https://github.com/isaacs))
5849 * Fix `npm bugs` with no arguments.
5850   ([`b99d465`](https://github.com/npm/npm/commit/b99d465221ac03bca30976cbf4d62ca80ab34091),
5851   [@Hoops](https://github.com/Hoops))
5852
5853 ### v1.3.25 (2014-01-25):
5854
5855 * Remove gubblebum blocky font from documentation headers.
5856   ([`6940c9a`](https://github.com/npm/npm/commit/6940c9a100160056dc6be8f54a7ad7fa8ceda7e2),
5857   [@isaacs](https://github.com/isaacs))
5858
5859 ### v1.3.24 (2014-01-19):
5860
5861 * Make the search output prettier, with nice truncated columns, and a `--long`
5862   option to create wrapping columns.
5863   ([`20439b2`](https://github.com/npm/npm/commit/20439b2) and
5864   [`3a6942d`](https://github.com/npm/npm/commit/3a6942d),
5865   [@timoxley](https://github.com/timoxley))
5866 * Support multiple packagenames in `npm docs`.
5867   ([`823010b`](https://github.com/npm/npm/commit/823010b),
5868   [@timoxley](https://github.com/timoxley))
5869 * Fix the `npm adduser` bug regarding "Error: default value must be string or
5870   number" again. ([`b9b4248`](https://github.com/npm/npm/commit/b9b4248),
5871   [@isaacs](https://github.com/isaacs))
5872 * Fix `scripts` entries containing whitespaces on Windows.
5873   ([`80282ed`](https://github.com/npm/npm/commit/80282ed),
5874   [@robertkowalski](https://github.com/robertkowalski))
5875 * Fix `npm update` for Git URLs that have credentials in them
5876   ([`93fc364`](https://github.com/npm/npm/commit/93fc364),
5877   [@danielsantiago](https://github.com/danielsantiago))
5878 * Fix `npm install` overwriting `npm link`-ed dependencies when they are tagged
5879   Git dependencies. ([`af9bbd9`](https://github.com/npm/npm/commit/af9bbd9),
5880   [@evanlucas](https://github.com/evanlucas))
5881 * Remove `npm prune --production` since it buggily removed some dependencies
5882   that were necessary for production; see
5883   [#4509](https://github.com/npm/npm/issues/4509). Hopefully it can make its
5884   triumphant return, one day.
5885   ([`1101b6a`](https://github.com/npm/npm/commit/1101b6a),
5886   [@isaacs](https://github.com/isaacs))
5887
5888 Dependency updates:
5889 * [`909cccf`](https://github.com/npm/npm/commit/909cccf) `read-package-json@1.1.6`
5890 * [`a3891b6`](https://github.com/npm/npm/commit/a3891b6) `rimraf@2.2.6`
5891 * [`ac6efbc`](https://github.com/npm/npm/commit/ac6efbc) `sha@1.2.3`
5892 * [`dd30038`](https://github.com/npm/npm/commit/dd30038) `node-gyp@0.12.2`
5893 * [`c8c3ebe`](https://github.com/npm/npm/commit/c8c3ebe) `npm-registry-client@0.3.3`
5894 * [`4315286`](https://github.com/npm/npm/commit/4315286) `npmconf@0.1.12`
5895
5896 ### v1.3.23 (2014-01-03):
5897
5898 * Properly handle installations that contained a certain class of circular
5899   dependencies.
5900   ([`5dc93e8`](https://github.com/npm/npm/commit/5dc93e8c82604c45b6067b1acf1c768e0bfce754),
5901   [@substack](https://github.com/substack))
5902
5903 ### v1.3.22 (2013-12-25):
5904
5905 * Fix a critical bug in `npm adduser` that would manifest in the error message
5906   "Error: default value must be string or number."
5907   ([`fba4bd2`](https://github.com/npm/npm/commit/fba4bd24bc2ab00ccfeda2043aa53af7d75ef7ce),
5908   [@isaacs](https://github.com/isaacs))
5909 * Allow `npm bugs` in the current directory to open the current package's bugs
5910   URL.
5911   ([`d04cf64`](https://github.com/npm/npm/commit/d04cf6483932c693452f3f778c2fa90f6153a4af),
5912   [@evanlucas](https://github.com/evanlucas))
5913 * Several fixes to various error messages to include more useful or updated
5914   information.
5915   ([`1e6f2a7`](https://github.com/npm/npm/commit/1e6f2a72ca058335f9f5e7ca22d01e1a8bb0f9f7),
5916   [`ff46366`](https://github.com/npm/npm/commit/ff46366bd40ff0ef33c7bac8400bc912c56201d1),
5917   [`8b4bb48`](https://github.com/npm/npm/commit/8b4bb4815d80a3612186dc5549d698e7b988eb03);
5918   [@rlidwka](https://github.com/rlidwka),
5919   [@evanlucas](https://github.com/evanlucas))
5920
5921 ### v1.3.21 (2013-12-17):
5922
5923 * Fix a critical bug that prevented publishing due to incorrect hash
5924   calculation.
5925   ([`4ca4a2c`](https://github.com/npm/npm-registry-client/commit/4ca4a2c6333144299428be6b572e2691aa59852e),
5926   [@dominictarr](https://github.com/dominictarr))
5927
5928 ### v1.3.20 (2013-12-17):
5929
5930 * Fixes a critical bug in v1.3.19.  Thankfully, due to that bug, no one could
5931   install npm v1.3.19 :)
5932
5933 ### v1.3.19 (2013-12-16):
5934
5935 * Adds atomic PUTs for publishing packages, which should result in far fewer
5936   requests and less room for replication errors on the server-side.
5937
5938 ### v1.3.18 (2013-12-16):
5939
5940 * Added an `--ignore-scripts` option, which will prevent `package.json` scripts
5941   from being run. Most notably, this will work on `npm install`, so e.g. `npm
5942   install --ignore-scripts` will not run preinstall and prepublish scripts.
5943   ([`d7e67bf`](https://github.com/npm/npm/commit/d7e67bf0d94b085652ec1c87d595afa6f650a8f6),
5944   [@sqs](https://github.com/sqs))
5945 * Fixed a bug introduced in 1.3.16 that would manifest with certain cache
5946   configurations, by causing spurious errors saying "Adding a cache directory
5947   to the cache will make the world implode."
5948   ([`966373f`](https://github.com/npm/npm/commit/966373fad8d741637f9744882bde9f6e94000865),
5949   [@domenic](https://github.com/domenic))
5950 * Re-fixed the multiple download of URL dependencies, whose fix was reverted in
5951   1.3.17.
5952   ([`a362c3f`](https://github.com/npm/npm/commit/a362c3f1919987419ed8a37c8defa19d2e6697b0),
5953   [@spmason](https://github.com/spmason))
5954
5955 ### v1.3.17 (2013-12-11):
5956
5957 * This release reverts
5958   [`644c2ff`](https://github.com/npm/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7),
5959   which avoided re-downloading URL and shinkwrap dependencies when doing `npm
5960   install`. You can see the in-depth reasoning in
5961   [`d8c907e`](https://github.com/npm/npm/commit/d8c907edc2019b75cff0f53467e34e0ffd7e5fba);
5962   the problem was, that the patch changed the behavior of `npm install -f` to
5963   reinstall all dependencies.
5964 * A new version of the no-re-downloading fix has been submitted as
5965   [#4303](https://github.com/npm/npm/issues/4303) and will hopefully be
5966   included in the next release.
5967
5968 ### v1.3.16 (2013-12-11):
5969
5970 * Git URL dependencies are now updated on `npm install`, fixing a two-year old
5971   bug
5972   ([`5829ecf`](https://github.com/npm/npm/commit/5829ecf032b392d2133bd351f53d3c644961396b),
5973   [@robertkowalski](https://github.com/robertkowalski)). Additional progress on
5974   reducing the resulting Git-related I/O is tracked as
5975   [#4191](https://github.com/npm/npm/issues/4191), but for now, this will be a
5976   big improvement.
5977 * Added a `--json` mode to `npm outdated` to give a parseable output.
5978   ([`0b6c9b7`](https://github.com/npm/npm/commit/0b6c9b7c8c5579f4d7d37a0c24d9b7a12ccbe5fe),
5979   [@yyx990803](https://github.com/yyx990803))
5980 * Made `npm outdated` much prettier and more useful. It now outputs a
5981   color-coded and easy-to-read table.
5982   ([`fd3017f`](https://github.com/npm/npm/commit/fd3017fc3e9d42acf6394a5285122edb4dc16106),
5983   [@quimcalpe](https://github.com/quimcalpe))
5984 * Added the `--depth` option to `npm outdated`, so that e.g. you can do `npm
5985   outdated --depth=0` to show only top-level outdated dependencies.
5986   ([`1d184ef`](https://github.com/npm/npm/commit/1d184ef3f4b4bc309d38e9128732e3e6fb46d49c),
5987   [@yyx990803](https://github.com/yyx990803))
5988 * Added a `--no-git-tag-version` option to `npm version`, for doing the usual
5989   job of `npm version` minus the Git tagging. This could be useful if you need
5990   to increase the version in other related files before actually adding the
5991   tag.
5992   ([`59ca984`](https://github.com/npm/npm/commit/59ca9841ba4f4b2f11b8e72533f385c77ae9f8bd),
5993   [@evanlucas](https://github.com/evanlucas))
5994 * Made `npm repo` and `npm docs` work without any arguments, adding them to the
5995   list of npm commands that work on the package in the current directory when
5996   invoked without arguments.
5997   ([`bf9048e`](https://github.com/npm/npm/commit/bf9048e2fa16d43fbc4b328d162b0a194ca484e8),
5998   [@robertkowalski](https://github.com/robertkowalski);
5999   [`07600d0`](https://github.com/npm/npm/commit/07600d006c652507cb04ac0dae9780e35073dd67),
6000   [@wilmoore](https://github.com/wilmoore)). There are a few other commands we
6001   still want to implement this for; see
6002   [#4204](https://github.com/npm/npm/issues/4204).
6003 * Pass through the `GIT_SSL_NO_VERIFY` environment variable to Git, if it is
6004   set; we currently do this with a few other environment variables, but we
6005   missed that one.
6006   ([`c625de9`](https://github.com/npm/npm/commit/c625de91770df24c189c77d2e4bc821f2265efa8),
6007   [@arikon](https://github.com/arikon))
6008 * Fixed `npm dedupe` on Windows due to incorrect path separators being used
6009   ([`7677de4`](https://github.com/npm/npm/commit/7677de4583100bc39407093ecc6bc13715bf8161),
6010   [@mcolyer](https://github.com/mcolyer)).
6011 * Fixed the `npm help` command when multiple words were searched for; it
6012   previously gave a `ReferenceError`.
6013   ([`6a28dd1`](https://github.com/npm/npm/commit/6a28dd147c6957a93db12b1081c6e0da44fe5e3c),
6014   [@dereckson](https://github.com/dereckson))
6015 * Stopped re-downloading URL and shrinkwrap dependencies, as demonstrated in
6016   [#3463](https://github.com/npm/npm/issues/3463)
6017   ([`644c2ff`](https://github.com/isaacs/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7),
6018   [@spmason](https://github.com/spmason)). You can use the `--force` option to
6019   force re-download and installation of all dependencies.