• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1### v2.15.12 (2017-03-24):
2
3This version brings the latest `node-gyp` to a soon to be released Node.js
44.x.  The `node-gyp` update is particularly important to Windows folks due to
5its addition of Visual Studio 2017 support.
6
7* [`cdd60e733`](https://github.com/npm/npm/commit/cdd60e733905a9994e1d6d832996bfdd12abeaee)
8  `node-gyp@3.6.0`:
9  Improvements to how Python is located. New `--devdir` flag.
10  Support for VS2017.
11  Chakracore support on ARM.
12  Remove path-array dependency, reducing size significantly.
13  ([@bnoordhuis](https://github.com/bnoordhuis))
14  ([@mhart](https://github.com/mhart))
15  ([@refack](https://github.com/refack))
16  ([@kunalspathak](https://github.com/kunalspathak))
17
18### v2.15.11 (2016-09-08):
19
20On we go with our monthly release cadence! This week is pretty much all
21dependency updates and some documentation changes, as can be expected by now.
22
23Note that `npm@4` will almost certainly be released next month! It's not final
24what we'll end up doing as far as LTS support goes, but the current thinking is
25that, considering how small and resource-constrained our team is, support for
26`npm@2` will be reduced to essentially maintenance, so we can better focus on
27`npm@3` as the new LTS version (which will go into `node@6`), and `npm@4` as our
28next main development version.
29
30#### DOCUMENTATION UPDATES
31
32* [`8f71038`](https://github.com/npm/npm/commit/8f71038310501ad5bc7445b2fa2ff0eaa377919a)
33  [#13892](https://github.com/npm/npm/pull/13892)
34  Update `LICENSE` file to match license on `master`.
35  ([@rvagg](https://github.com/rvagg))
36* [`e81b4f1`](https://github.com/npm/npm/commit/e81b4f1d18a4d79b7af8342747f2ed7dc3e84f0a)
37  [#12438](https://github.com/npm/npm/issues/12438)
38  Remind folks to use `#!/usr/bin/env node` in their `bin` scripts to make files
39  executable directly.
40  ([@mxstbr](https://github.com/mxstbr))
41* [`f89789f`](https://github.com/npm/npm/commit/f89789f43d65bfc74f64f15a99356841377e1af3)
42  [#13655](https://github.com/npm/npm/pull/13655)
43  Document line comment syntax for `.npmrc`.
44  ([@mdjasper](https://github.com/mdjasper))
45* [`5cd3abc`](https://github.com/npm/npm/commit/5cd3abc3511515e09b4a1b781c0520e84c267c5b)
46  [#13493](https://github.com/npm/npm/pull/13493)
47  Document that the user config file can itself be configured either through the
48  `$NPM_CONFIG_USERCONFIG` environment variable, or `--userconfig` command line
49  flag.
50  ([@jasonkarns](https://github.com/jasonkarns))
51* [`dd71ca0`](https://github.com/npm/npm/commit/dd71ca0efc2094b824ccc9e23af0fc915499f2e6)
52  [#13911](https://github.com/npm/npm/pull/13911)
53  Minor documentation reword and cleanup.
54  ([@othiym23](https://github.com/othiym23))
55* [`f7a320c`](https://github.com/npm/npm/commit/f7a320c816947d578a050c97e0fb9878954be0e8)
56  [#13682](https://github.com/npm/npm/pull/13682)
57  Minor grammar fix in documentation for `npm scripts`.
58  ([@Ajedi32](https://github.com/Ajedi32))
59* [`e5cb5e8`](https://github.com/npm/npm/commit/e5cb5e8fcf4642836fedf3f3421c994a8e27e19b)
60  [#13717](https://github.com/npm/npm/pull/13717)
61  Document that `npm link` will link the files specified in the `bin` field of
62  `package.json` to `{prefix}/bin/{name}`.
63  ([@legodude17](https://github.com/legodude17))
64
65#### DEPENDENCY UPDATES
66* [`8bef026`](https://github.com/npm/npm/commit/8bef026603b6da888edf0d41308d9e532abfcd54)
67  `graceful-fs@4.1.6`
68  ([@francescoinfante](https://github.com/francescoinfante))
69* [`9f73f4a`](https://github.com/npm/npm/commit/9f73f4aab5f56b256c5cf9e461e81abfa2844945)
70  `glob@7.0.6`
71  ([@isaacs](https://github.com/isaacs))
72* [`5391b7e`](https://github.com/npm/npm/commit/5391b7e8cd4401fbadbf54e810fdc965a3662a21)
73  `which@1.2.1`
74  ([@isaacs](https://github.com/isaacs))
75* [`43bfec8`](https://github.com/npm/npm/commit/43bfec8376dd8ded7d56a8dabd6139919544760e)
76  `retry@0.10.0`
77  ([@tim-kos](https://github.com/tim-kos))
78* [`39305f1`](https://github.com/npm/npm/commit/39305f1c76f74bf9789c769ef72a94ea9a81d119)
79  `readable-stream@2.1.5`
80  ([@calvinmetcalf](https://github.com/calvinmetcalf))
81* [`a5512fa`](https://github.com/npm/npm/commit/a5512fafd72e23755e77e28f1122b008bc12a733)
82  `once@1.4.0`
83  ([@zkochan](https://github.com/zkochan))
84* [`06a208b`](https://github.com/npm/npm/commit/06a208b178c1de3d0da58bc35a854d200fea8ef0)
85  `npm-registry-client@7.2.1`:
86  * [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))
87  * [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))
88  * Fixes [#13656](https://github.com/npm/npm/issues/13656).
89  * Dependency updates.
90  * Documentation improvements.
91  ([@othiym23](https://github.com/othiym23))
92* [`4f759be`](https://github.com/npm/npm/commit/4f759be1fb5e23180b970350e58f40a513daa680)
93  `inherits@2.0.3`
94  ([@isaacs](https://github.com/isaacs))
95* [`4258b76`](https://github.com/npm/npm/commit/4258b764e2565f6294ae1e34a5653895290b62e3)
96  `tap@7.1.1`
97  ([@isaacs](https://github.com/isaacs))
98
99### v2.15.10 (2016-08-11):
100
101Hi all, today's our first release coming out of the new monthly release
102cadence. See below for details. We're all recovered from conferences now and
103raring to go! For LTS we see some bug fixes, documentation improvements and
104a host of dependency updates.
105
106The most dramatic bug fix is probably the inclusion of scoped modules in
107bundled dependencies. Prior to this release and
108[v3.10.7](https://github.com/npm/npm/releases/v3.10.7), npm had ignored
109scoped modules found in `bundleDependencies` entirely.
110
111#### NEW RELEASE CADENCE
112
113Releasing npm has been, for the most part, a very prominent part of our
114weekly process process. As part of our efforts to find the most effective
115ways to allocate our team's resources, we decided last month that we would
116try and slow our releases down to a monthly cadence, and see if we found
117ourselves with as much extra time and attention as we expected to have.
118Process experiments are useful for finding more effective ways to do our
119work, and we're at least going to keep doing this for a whole quarter, and
120then measure how well it worked out. It's entirely likely that we'll switch
121back to a more frequent cadence, specially if we find that the value that
122weekly cadence was providing the community is not worth sacrificing for a
123bit of extra time. Does this affect you significantly? Let us know!
124
125#### WINDOWS CORNER CASES
126
127* [`405c404`](https://github.com/npm/npm/commit/405c4048c69c14d66e6179aba0c8a35e504e8041)
128  [#13023](https://github.com/npm/npm/pull/13023)
129  Fixed a Windows issue with the cache where callbacks could be called more than once.
130  ([@zkat](https://github.com/zkat))
131
132* [`bf348dc`](https://github.com/npm/npm/commit/bf348dcfb944dc4b9f71b779bf172f86a2e1f474)
133  [#13023](https://github.com/npm/npm/pull/13023)
134  Fixed a Windows corner case with correct-mkdir where if SUDO_UID or
135  SUDO_GID were set then we would try to chown things even though that can't
136  work on Windows.
137  ([@zkat](https://github.com/zkat))
138
139#### RACES IN THE CACHE
140
141* [`68f29f1`](https://github.com/npm/npm/commit/68f29f18f65c7a7e1c58eb6933af41d786971379)
142  [#12669](https://github.com/npm/npm/issues/12669)
143  Ignore ENOENT errors on chownr while adding packages to cache. This change
144  works around problems with race conditions and local packages.
145  ([@julianduque](https://github.com/julianduque))
146
147#### BETTER GIT ENVIRONMENT WHITELISTING
148
149* [`5e96566`](https://github.com/npm/npm/commit/5e96566088f0d88c1ed10c5a9cbb7c0cd4aa2aee)
150  [#13358](https://github.com/npm/npm/pull/13358)
151  Add GIT_EXEC_PATH to Git environment whitelist.
152  ([@mhart](https://github.com/mhart))
153
154#### DOCUMENTATION
155
156* [`363e381`](https://github.com/npm/npm/commit/363e381a4076ead89707a00cc4a447b1d59df3bc)
157  [#13319](https://github.com/npm/npm/pull/13319)
158  As Node.js 0.8 is no longer supported, remove mention of it from the README.
159  ([@watilde](https://github.com/watilde))
160* [`e8fafa8`](https://github.com/npm/npm/commit/e8fafa887c60eb8842c76c4b3dffe85eb49fa434)
161  [#10167](https://github.com/npm/npm/pull/10167)
162  Clarify in scope documentation that npm@2 is required for scoped packages.
163  ([@danpaz](https://github.com/danpaz))
164
165#### DEPENDENCIES
166
167* [`66ef279`](https://github.com/npm/npm/commit/66ef279b7c3b3e4f9454474dddd057cc1f21873b)
168  [npm/fstream-npm#22](https://github.com/npm/fstream-npm/pull/22)
169  `fstream@1.1.1`:
170  Always include NOTICE files now. Fix inclusion of scoped modules as bundled dependencies.
171  ([@kemitchell](https://github.com/kemitchell))
172  ([@forivall](https://github.com/forivall))
173* [`fe8385b`](https://github.com/npm/npm/commit/fe8385bd655502feb175eed175a6a06cafb2247a)
174  `glob@7.0.5`:
175  Update minimatch dep for security fix. See the minimatch update below for details.
176  ([@isaacs](https://github.com/isaacs))
177* [`51d49d2`](https://github.com/npm/npm/commit/51d49d2f79b4c69264de73a492ed54f87188d554)
178  [isaacs/node-graceful-fs#71](https://github.com/isaacs/node-graceful-fs/pull/71)
179  `graceful-fs@4.1.5`:
180  `graceful-fs` had a [bug fix](https://github.com/isaacs/node-graceful-fs/pull/71) which
181  fixes a problem ([nodejs/node#7846](https://github.com/nodejs/node/pull/7846)) exposed
182  by recent changes to Node.js.
183  ([@thefourtheye](https://github.com/thefourtheye))
184* [`5c8f39d`](https://github.com/npm/npm/commit/5c8f39d152c43e96b9006ffe865646a36a433a8a)
185  `minimatch@3.0.3`:
186  Handle extremely long and terrible patterns more gracefully.
187  There were some magic numbers that assumed that every extglob pattern starts
188  and ends with a specific number of characters in the regular expression.
189  Since !(||) patterns are a little bit more complicated, this led to creating
190  an invalid regular expression and throwing.
191  ([@isaacs](https://github.com/isaacs))
192* [`d681e16`](https://github.com/npm/npm/commit/d681e16a475a49d6196af9a5cedaaf88712f3a9f)
193  [npm/npm-user-validate#9](https://github.com/npm/npm-user-validate/pull/9)
194  `npm-user-validate@0.1.5`:
195  Use correct, lower username length limit.
196  ([@aredridel](https://github.com/aredridel))
197* [`f918994`](https://github.com/npm/npm/commit/f918994bd05ca965766cd573606ac35fb3032d6e)
198  `request@2.74.0`:
199  Update `request` dependency `tough-cookie` to `2.3.0` to
200  to address [https://nodesecurity.io/advisories/130](https://nodesecurity.io/advisories/130).
201  Versions 0.9.7 through 2.2.2 contain a vulnerable regular expression that,
202  under certain conditions involving long strings of semicolons in the
203  "Set-Cookie" header, causes the event loop to block for excessive amounts of
204  time.
205  ([@stash-sfdc](https://github.com/stash-sfdc))
206* [`5540cc4`](https://github.com/npm/npm/commit/5540cc4d6bde65071fb6fc2cb074e8598bd1276f)
207  [isaacs/rimraf#111](https://github.com/isaacs/rimraf/issues/111)
208  `rimraf@2.5.4`: Clarify assertions: cb is required, options are not.
209  ([@isaacs](https://github.com/isaacs))
210* [`6357928`](https://github.com/npm/npm/commit/6357928673be85f520dae2104fea58c35742bd65)
211  `spdx-license-ids@1.2.2`:
212  New licenses synced from spdx.org.
213  ([@shinnn](https://github.com/shinnn))
214
215### v2.15.9 (2016-06-30):
216
217What's this? An LTS release? Yes, that is indeed so. Small, as usual, and as
218LTSs should be, really, but a release nonetheless!
219
220The star of the show is an updated `node-gyp` with some goodies. The rest is
221just docs and some CI stuff.
222
223Happy hacking!
224
225#### DEPENDENCY UPDATE!
226
227* [`f9a07cc`](https://github.com/npm/npm/commit/f9a07cc873f1915827d8df97d0c43204d1eb128c)
228  [#13200](https://github.com/npm/npm/pull/13200)
229  [`node-gyp@3.4.0`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md):
230  AIX, Visual Studio 2015, and logging improvements. Oh my~!
231  ([@rvagg](https://github.com/rvagg))
232
233#### CI TWEAKS
234
235* [`bee83b8`](https://github.com/npm/npm/commit/bee83b8500c31aba65451dfcb082f9b5d1d5ce34)
236  Globally install `rimraf` on CI to make the LTS self-install work better.
237  ([@othiym23](https://github.com/othiym23))
238* [`6b8c0ab`](https://github.com/npm/npm/commit/6b8c0ab6fcbf8a37e8693acb8bbac22293b10893)
239  This new Travis configuration only runs coverage checks against Node.js LTS,
240  which speeds up all the other test runs. By, like, a lot. Also, the entire
241  file has been extensively commented, so the next time we need to mess with it,
242  we'll be able to better remember why all the weird bits are there.
243  ([@othiym23](https://github.com/othiym23))
244
245#### DOCUMENTATION FIXES
246
247* [`2c7a5be`](https://github.com/npm/npm/commit/2c7a5be080276e3fdca3375ab0f8f5edffff753e)
248  [#13156](https://github.com/npm/npm/pull/13156)
249  Fix old reference to `doc/install` in a source comment.
250  ([@sheerun](https://github.com/sheerun))
251* [`e1cf78c`](https://github.com/npm/npm/commit/e1cf78c5b77f95383bd4a7fc6eeb8adbbe68e12e)
252  [#13189](https://github.com/npm/npm/pull/13189)
253  [#13113](https://github.com/npm/npm/issues/13113)
254  [#13189](https://github.com/npm/npm/pull/13189)
255  Fixes a link to `npm-tag(3)` that was breaking to instead point to
256  `npm-dist-tag(1)`, as reported by [@SimenB](https://github.com/SimenB)
257  ([@macdonst](https://github.com/macdonst))
258
259### v2.15.8 (2016-06-17):
260
261There's a very important bug fix and a long-awaited (and significant!)
262deprecation in this hotfix release. [Hold on.](http://butt.holdings/)
263
264#### *WHOA*
265
266When Node.js 6.0.0 was released, the CLI team noticed an alarming upsurge in
267bugs related to important files (like `README.md`) not being included in
268published packages. The new bugs looked much like
269[#5082](https://github.com/npm/npm/issues/5082), which had been around in one
270form or another since April, 2014. #5082 used to be a very rare (and obnoxious)
271bug that the CLI team hadn't had much luck reproducing, and we'd basically
272marked it down as a race condition that arose on machines using slow and / or
273rotating-media-based hard drives.
274
275Under 6.0.0, the behavior was reliable enough to be nearly deterministic, and
276made it very difficult for publishers using `.npmignore` files in combination
277with `"files"` stanzas in `package.json` to get their packages onto the
278registry without one or more files missing from the packed tarball. The entire
279saga is contained within [the issue](https://github.com/npm/npm/issues/5082),
280but the summary is that an improvement to the performance of
281[`fs.realpath()`](https://nodejs.org/api/fs.html#fs_fs_realpath_path_options_callback)
282made it much more likely that the packing code would lose the race.
283
284Fixing this has proven to be very difficult, in part because the code used by
285npm to produce package tarballs is more complicated than, strictly speaking, it
286needs to be. [**@evanlucas**](https://github.com/evanlucas) contributed [a
287patch](https://github.com/npm/fstream/pull/50) that passed the tests in a
288[special test suite](https://github.com/othiym23/eliminate-5082) that I
289([**@othiym23**](https://github.com/othiym23)) created (with help from
290[**@addaleax**](https://github.com/addaleax)), but only _after_ we'd released
291the fixed version of that package did we learn that it actually made the
292problem _worse_ in other situations in npm proper. Eventually,
293[**@rvagg**](https://github.com/rvagg) put together a more durable fix that
294appears to completely address the errant behavior under Node.js 6.0.0. That's
295the patch included in this release. Everybody should chip in for redback
296insurance for Rod and his family; he's done the community a huge favor.
297
298Does this mean the long (2+ year) saga of #5082 is now over? At this point, I'm
299going to quote from my latest summary on the issue:
300
301> The CLI team (mostly me, with input from the rest of the team) has decided that
302> the overall complexity of the interaction between `fstream`, `fstream-ignore`,
303> `fstream-npm`, and `node-tar` has grown more convoluted than the team is
304> comfortable (maybe even capable of) supporting.
305>
306> - While I believe that @rvagg's (very targeted) fix addresses _this_ issue, I
307>   would be shocked if there aren't other race conditions in npm's packing
308>   logic. I've already identified a couple other places in the code that are
309>   most likely race conditions, even if they're harder to trigger than the
310>   current one.
311> - The way that dependency bundling is integrated leads to a situation in
312>   which a bunch of logic is duplicated between `fstream-npm` and
313>   `lib/utils/tar.js` in npm itself, and the way `fstream`'s extension
314>   mechanism works makes this difficult to clean up. This caused a nasty
315>   regression ([#13088](https://github.com/npm/fstream/pull/50), see below) as
316>   of ~`npm@3.8.7` where the dependencies of `bundledDependencies` were no
317>   longer being included in the built package tarballs.
318> - The interaction between `.npmignore`, `.gitignore`, and `files` is hopelessly
319>   complicated, scattered in many places throughout the code. We've been
320>   discussing [making the ignores and includes logic clearer and more
321>   predictable](https://github.com/npm/npm/wiki/Files-and-Ignores), and the
322>   current code fights our efforts to clean that up.
323>
324> So, our intention is still to replace `fstream`, `fstream-ignore`, and
325> `fstream-npm` with something much simpler and purpose-built. There's no real
326> reason to have a stream abstraction here when a simple recursive-descent
327> filesystem visitor and a synchronous function that can answer whether a given
328> path should be included in the packed tarball would do the job adequately.
329>
330> What's not yet clear is whether we'll need to replace `node-tar` in the
331> process. `node-tar` is a very robust implementation of tar (it handles, like,
332> everything), and it also includes some very important tweaks to prevent several
333> classes of security exploits involving maliciously crafted packages. However,
334> its packing API involves passing in an `fstream` instance, so we'd either need
335> to produce something that follows enough of `fstream`'s contract for `node-tar`
336> to keep working, or swap `node-tar` out for something like `tar-stream` (and
337> then ensuring that our use of `tar-stream` is secure, which could involve
338> security patches for either npm or `tar-stream`).
339
340The testing and review of `fstream@1.0.10` that the team has done leads us to
341believe that this bug is fixed, but I'm feeling more than a little paranoid
342about fstream now, so it's important that people keep a close eye on their
343publishes for a while and let us know immediately if they notice any
344irregularities.
345
346* [`2c49265`](https://github.com/npm/npm/commit/2c49265c6746d29ae0cd5f3532d28c5950f9847e)
347  [#5082](https://github.com/npm/npm/issues/5082) `fstream@1.0.10`: Ensure that
348  entries are collected after a paused stream resumes.
349  ([@rvagg](https://github.com/rvagg))
350* [`92e4344`](https://github.com/npm/npm/commit/92e43444d9204f749f83512aeab5d5e0a2d085a7)
351  [#5082](https://github.com/npm/npm/issues/5082) Remove the warning introduced
352  in `npm@3.10.0`, because it should no longer be necessary.
353  ([@othiym23](https://github.com/othiym23))
354
355#### GOODBYE, FAITHFUL FRIEND
356
357At NodeConf Adventure 2016 (RIP in peace, Mikeal Rogers's NodeConf!), the CLI
358team had an opportunity to talk to representatives from some of the larger
359companies that we knew were still using Node.js 0.8 in production. After asking
360them whether they were still using 0.8, we got back blank stares and questions
361like, "0.8? You mean, from four years ago?" After establishing that being able
362to run npm in their legacy environments was no longer necessary, the CLI team
363made the decision to drop support for 0.8. (Faithful observers of our [team
364meetings](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+npm+cli+team+meeting+)
365will have known this was the plan for NodeConf since the beginning of 2016.)
366
367In practice, this means only what's in the commit below: we've removed 0.8 from
368our continuous integration test matrix below, and will no longer be habitually
369testing changes under Node 0.8.  We may also give ourselves permission to use
370`setImmediate()` in test code. However, since the project still supports
371Node.js 0.10 and 0.12, it's unlikely that patches that rely on ES 2015
372functionality will land anytime soon.
373
374Looking forward, the team's current plan is to drop support for Node.js 0.10
375when its LTS maintenance window expires in October, 2016, and 0.12 when its
376maintenance / LTS window ends at the end of 2016. We will also drop support for
377Node.js 5.x when Node.js 6 becomes LTS and Node.js 7 is released, also in the
378October-December 2016 timeframe.
379
380(Confused about Node.js's LTS policy? [Don't
381be!](https://github.com/nodejs/LTS) If you look at [this
382diagram](https://github.com/nodejs/LTS/blob/ce364a94b0e0619eba570cd57be396573e1ef889/schedule.png),
383it should make all of the preceding clear.)
384
385If, in practice, this doesn't work with distribution packagers or other
386community stakeholders responsible for packaging and distributing Node.js and
387npm, please reach out to us. Aligning the npm CLI's LTS policy with Node's
388helps everybody minimize the amount of work they need to do, and since all of
389our teams are small and very busy, this is somewhere between a necessity and
390non-negotiable.
391
392* [`4a1ecc0`](https://github.com/npm/npm/commit/4a1ecc068fb2660bd9bc3e2e2372aa0176d2193b)
393  Remove 0.8 from the Node.js testing matrix, and reorder to match real-world
394  priority, with comments. ([@othiym23](https://github.com/othiym23))
395
396### v2.15.7 (2016-06-16):
397
398It pains me greatly that we haven't been able to fix
399[#5082](https://github.com/npm/npm/issues/5082) yet, but warning you away from
400potentially publishing incomplete packages takes priority over feeling cheesy
401about landing a warning to help keep y'all out of trouble, so here you go
402(_please read this next bit_ (_please clap_)):
403
404#### DANGER: PUBLISHING ON NODE 6.0.0
405
406Publishing and packing are buggy under Node versions greater than 6.0.0.
407Please use Node.js LTS (4.4.x) to publish packages.  See
408[#5082](https://github.com/npm/npm/issues/5082) for details and current
409status.
410
411* [`dff00ce`](https://github.com/npm/npm/commit/dff00cedd56b9c04370f840299a7e657a7a835c6)
412  [#13077](https://github.com/npm/npm/pull/13077)
413  Warn when using Node 6+.
414  ([@othiym23](https://github.com/othiym23))
415
416#### PACKAGING CHANGES
417
418* [`1877171`](https://github.com/npm/npm/commit/1877171648e20595a82de34073b643f7e01a339f)
419  [#12873](https://github.com/npm/npm/issues/12873)
420  Ignore `.nyc_output`. This will help avoid an accidental publish or commit filled with
421  code coverage data.
422  ([@TheAlphaNerd](https://github.com/TheAlphaNerd))
423
424#### DOCUMENTATION CHANGES
425
426* [`470ae86`](https://github.com/npm/npm/commit/470ae86e052ae2f29ebec15b7547230b6240042e)
427  [#12983](https://github.com/npm/npm/pull/12983)
428  Describe how to run the lifecycle scripts of dependencies. How you do
429  this changed with `npm` v2.
430  ([@Tapppi](https://github.com/Tapppi))
431* [`9cedf37`](https://github.com/npm/npm/commit/9cedf37e5a3e26d0ffd6351af8cac974e3e011c2)
432  [#12776](https://github.com/npm/npm/pull/12776)
433  Remove mention of `<pkg>` arg for `run-script`.
434  ([@fibo](https://github.com/fibo))
435* [`55b8424`](https://github.com/npm/npm/commit/55b8424d7229f2021cac55f0b03de72403e7c0ff)
436  [#12840](https://github.com/npm/npm/pull/12840)
437  Remove sexualized language from comment.
438  ([@geek](https://github.com/geek))
439* [`d6bf0c3`](https://github.com/npm/npm/commit/d6bf0c393788a6398bf80b41c57956f2dbcf3b39)
440  [#12802](https://github.com/npm/npm/pull/12802)
441  Small grammar fix in `doc/cli/npm.md`.
442  ([@andresilveira](https://github.com/andresilveira))
443
444#### DEPENDENCY UPDATES
445
446* [`2c2c568`](https://github.com/npm/npm/commit/2c2c56857ff801d5fe1b6d3157870cd16e65891b)
447  `readable-stream@2.1.4`: Brought up to date with Node 6.1.0's streams implementation.
448  ([@calvinmetcalf](https://github.com/calvinmetcalf))
449* [`d682e64`](https://github.com/npm/npm/commit/d682e6445845b0a2584935d5e2942409c43f6916)
450  [npm/npm-user-validate#8](https://github.com/npm/npm-user-validate/pull/8)
451  `npm-user-validate@0.1.4`: Add a maximum length limit for usernames based on
452  the (arbitrary) limit imposed by the primary npm registry.
453  ([@aredridel](https://github.com/aredridel))
454* [`448b65b`](https://github.com/npm/npm/commit/448b65b48cda3b782b714057fb4b8311cc1fa36a)
455  `which@1.2.10`: Remove unused dependency `is-absolute`, bug fixes.
456  ([@isaacs](https://github.com/isaacs))
457* [`7d15434`](https://github.com/npm/npm/commit/7d15434f0b0af8e70b119835b21968217224664f)
458  `require-inject@1.4.0`: Add `requireInject.withEmptyCache` and
459  `requireInject.installGlobally.andClearCache` to support loading modules to be
460  injected with an empty cache.
461  ([@iarna](https://github.com/iarna))
462* [`31845c0`](https://github.com/npm/npm/commit/31845c081bc6f3f8a2f3d83a3c792dccffbaa2a8)
463  `init-package-json@1.9.4`:
464  Replace use of reserved identifier `package` in, uh, the package.
465  ([@adius](https://github.com/adius))
466* [`d73ef3e`](https://github.com/npm/npm/commit/d73ef3e6b18d4905de668c5115bc6042905a02d9)
467  `glob@7.0.4`: Use userland `fs.realpath` implementation to get glob working under Node 6.
468  ([@isaacs](https://github.com/isaacs))
469* [`b47da85`](https://github.com/npm/npm/commit/b47da85cf83b946f2c8d29ab612c92028f31f6b0)
470  `inflight@1.0.5`: Correct link to package repository, add `"files"` stanza.
471  ([@iarna](https://github.com/iarna), [@jamestalmage](https://github.com/jamestalmage))
472* [`04815e4`](https://github.com/npm/npm/commit/04815e436035de785279fd000cdbc821cc1f3447)
473  [npm/npmlog#32](https://github.com/npm/npmlog/pull/32)
474  `npmlog@2.0.4`: Add `"files"` stanza to `package.json`.
475  ([@jamestalmage](https://github.com/jamestalmage))
476* [`9e29ad2`](https://github.com/npm/npm/commit/9e29ad227300bb970e7bcd21029944d4733e40db)
477  `wrappy@1.0.2`: Add `"files"` stanza to `package.json`.
478  ([@jamestalmage](https://github.com/jamestalmage))
479* [`44af4d4`](https://github.com/npm/npm/commit/44af4d475ac65bdce6d088173273ce4a4f74a49e)
480  `abbrev@1.0.9` ([@jorrit](https://github.com/jorrit))
481* [`6c977c0`](https://github.com/npm/npm/commit/6c977c0031d074479a26c7bec6ec83fd6c6526b2)
482  `npm-registry-client@7.1.2`: Add support for newer versions of `npmlog`.
483  ([@iarna](https://github.com/iarna))
484
485### v2.15.6 (2016-05-12):
486
487I have a couple of doc fixes and a shrinkwrap fix for you all this week.
488
489#### PEER DEPENDENCIES AND SHRINKWRAPS
490
491* [`55c998a`](https://github.com/npm/npm/commit/55c998a098a306b90a84beef163a8890f9a616b1)
492  [#5135](https://github.com/npm/npm/issues/5135)
493  Fix a bug where peerDependencies & shrinkwraps didn't play nice together. (Where
494  the peerDependency resolver would end up installing its dep when it wasn't needed.)
495  ([@majgis](https://github.com/majgis))
496
497#### NPM AND `node-gyp` DOCS IMPROVEMENTS
498
499* [`1826908`](https://github.com/npm/npm/commit/1826908b991510d8fbc71a0d0f2c01ff24fd83c2)
500  [#12636](https://github.com/npm/npm/pull/12636)
501  Improve `npm-scripts` documentation regarding when `node-gyp` is used.
502  ([@reconbot](https://github.com/reconbot))
503* [`f9ff7f3`](https://github.com/npm/npm/commit/f9ff7f36cc2c2c3fbb4f6eef91491b589d049d5f)
504  [#12586](https://github.com/npm/npm/pull/12586)
505  Correct `package.json` documentation as to when `node-gyp rebuild` called.
506  This now matches https://docs.npmjs.com/misc/scripts#default-values
507  ([@reconbot](https://github.com/reconbot))
508
509### v2.15.5 (2016-05-05):
510
511This is a minor LTS release, bringing dependencies up to date and updating
512our CI matrix to match what we support.
513
514Some of the dependency updates come out of our getting the development
515branch's tests passing on Windows and so bring in fixes for a few Windows
516related corner cases.
517
518#### CI UPDATES
519
520* [`bb6f0e5`](https://github.com/npm/npm/commit/bb6f0e5c95d4ad186768b1c962dd4c399f90ddb1)
521  [#12487](https://github.com/npm/npm/pull/12487)
522  Remove iojs from CI, add Node.js 6, prioritize 4 over 5.
523  ([@othiym23](https://github.com/othiym23))
524
525#### DEPENDENCY UPDATES
526
527* [`f2f8753`](https://github.com/npm/npm/commit/f2f8753c4aef2a604a4bdca2677711c940234b8f)
528  `which@1.2.8`:
529  Properly handle relative path executables.
530  ([@isaacs](https://github.com/isaacs))
531* [`e287ca9`](https://github.com/npm/npm/commit/e287ca99c37680d8e4cfacf4cfebe2da98884865)
532  `read-package-json@2.0.4`:
533  Fix Windows issue with ENOTDIR detection.
534  ([@zkat](https://github.com/zkat))
535* [`1a0ce6c`](https://github.com/npm/npm/commit/1a0ce6cff4c347bad035dc89bba2ceed9dacbf73)
536  `realize-package-specifier@3.0.3`:
537  Use npa with windows fix.
538  Fix relative path resolution when the local file might also be a tag.
539  ([@zkat](https://github.com/zkat))
540  ([@iarna](https://github.com/iarna))
541* [`a475c9a`](https://github.com/npm/npm/commit/a475c9a4e4b36d00080b11f379657ce68185adc6)
542  `lru-cache@4.0.1`:
543  Use Symbol if available.
544  ([@isaacs](https://github.com/isaacs))
545* [`7141e08`](https://github.com/npm/npm/commit/7141e08816c620b1889d7537c30dc5b254de4d1f)
546  `sorted-object@2.0.0`
547  ([@iamstarkov](https://github.com/iamstarkov))
548* [`27c6190`](https://github.com/npm/npm/commit/27c6190216cc8a5a280f0efbabb3444581968d40)
549  `request@2.72.0`
550  ([@simov](https://github.com/simov))
551* [`ab90daf`](https://github.com/npm/npm/commit/ab90daf70ba51b51f722fb4cd74ac5267621c4b4)
552  `readable-stream@2.1.2`
553  ([@calvinmetcalf](https://github.com/calvinmetcalf))
554* [`b1715f8`](https://github.com/npm/npm/commit/b1715f805426403273225bcfa91d1a52d7b56eb8)
555  `graceful-fs@4.1.4`
556  ([@isaacs](https://github.com/isaacs))
557* [`ca97de6`](https://github.com/npm/npm/commit/ca97de6c18059ef420235f4706898ad8758904e6)
558  `block-stream@0.0.9`
559  ([@isaacs](https://github.com/isaacs))
560
561### v2.15.4 (2016-04-21):
562
563Gosh, it's been a peaceful couple of weeks!
564
565Overall, the CLI team has been focused on the project to [get the test suite
566passing on Windows](https://github.com/npm/npm/pull/11444). Our efforts should
567be paying off soon -- there's only a couple of tests left!
568
569It's very unlikely those particular changes will make their way into our current
570`npm@2` LTS release, I think, but it will help `npm@3` a lot, as well as
571whatever version makes it into [`node@6`, which will eventually be the next
572Node.js LTS](https://github.com/nodejs/node/pull/6155).
573
574As far as this week goes, we've got a couple of dep updates and doc fixes.
575Always happy to see community contributions flying in. ��
576
577#### DEP UPDATE MAGIC
578
579* [`b178c4a`](https://github.com/npm/npm/commit/b178c4ac9ce91c0a0794526a38b553c759132d18)
580  `spdx-license-ids@1.2.1`:
581  Minor project-related tweaks -- no license changes.
582  ([@shinnn](https://github.com/shinnn))
583* [`1adf179`](https://github.com/npm/npm/commit/1adf179948ab8cb97dfb2f46a61e9f37d944c42a)
584  `normalize-git-url@3.0.2`:
585  Fixes `file://` URLs on Windows. Turns out stuff like `file://C:\hello` is
586  actually fairly weird for a URL (it's not actually a valid URL, but we're just
587  gonna pretend.��)
588  ([@zkat](https://github.com/zkat))
589* [`9cfd56c`](https://github.com/npm/npm/commit/9cfd56cdadc040c0b2fa7654cdb5e7d22dbef7cb)
590  `fs-vacuum@1.2.9`:
591  This one goes out to our fans at Big Blue: There was an AIX-specific issue
592  where `fs.rmDir` was failing with `EEXIST` instead of `ENOTEMPTY` with
593  non-empty directories.
594  ([@richardlau](https://github.com/richardlau))
595
596#### HOORAY DOC CONTRIBUTIONS
597
598No seriously, we love these. Keep 'em comin'!
599
600* [`2afe8bf`](https://github.com/npm/npm/commit/2afe8bf415a159baa181a8102f72c96e1d189bc9)
601  [#12415](https://github.com/npm/npm/pull/12415)
602  Clarify that the `--cert` and `--key` options are actual certs and keys, not
603  paths to files containing them.
604  ([@rvedotrc](https://github.com/rvedotrc))
605* [`3522560`](https://github.com/npm/npm/commit/3522560b0a4bb6c9717a34f9728f156fd9760cad)
606  [#12107](https://github.com/npm/npm/pull/12107)
607  Document `npm login` as an alias to `npm adduser`. People are still surprised
608  by this so often.
609  ([@gnerkus](https://github.com/gnerkus))
610
611### v2.15.3 (2016-03-31):
612
613Hiiiiiii!~��
614
615We're really happy to be getting more and more community contributions! Keep it
616up! We really appreciate folks trying to help us, and we'll do our best to help
617point you in the right direction. Even things like documentation are a huge
618help. And remember -- you get socks for it, too!��
619
620This week is as quiet as usual, aside from fixing a regression to `npm
621deprecate` you might want to pay attention to! Other than that, just docs and
622deps, as any good LTS release train should be. ��
623
624#### FIXME
625
626* [`6e0b66e`](https://github.com/npm/npm/commit/6e0b66e282aa27d1b5371e2babaa859924121730)
627  [#11884](https://github.com/npm/npm/pull/11884)
628  Include `node_modules` in the list of files and directories that npm won't
629  include in packages ordinarily. (Modules listed in `bundledDependencies` and
630  things that those modules rely on, ARE included of course.)
631  ([@Jameskmonger](https://github.com/Jameskmonger))
632* [`9896290`](https://github.com/npm/npm/commit/98962909b160364030705575202ad133971033c1)
633  [#12079](https://github.com/npm/npm/pull/12079)
634  Back in `npm@2.13.1` we included [a patch that made it so `npm install pkg`
635  was basically `npm install pkg@latest` instead of
636  `pkg@*`](https://github.com/npm/npm/pull/9170) This is probably what most
637  users expected, but it also ended up [breaking `npm
638  deprecate`](https://github.com/npm/npm/pull/9170) when no version was provided
639  for a package. In that case, we were using `*` to mean "deprecate all
640  versions" and relying on the `pkg` -> `pkg@*` conversion. This patch fixes
641  `npm deprecate pkg` to work as it used to by special casing that particular
642  command's behavior.
643  ([@polm](https://github.com/polm))
644* [`6c1628f`](https://github.com/npm/npm/commit/6c1628f62b657db6c116be13849d00933a3388cd)
645  [#12146](https://github.com/npm/npm/pull/12146)
646  Adds `make doc-clean` to `prepublish` script, to clear out previously built
647  docs before publishing a new npm version.
648  ([@watilde](https://github.com/watilde))
649* [`6d3017e`](https://github.com/npm/npm/commit/6d3017e6eed8a771b395d10130ac1f498e2d3211)
650  [#12146](https://github.com/npm/npm/pull/12146)
651  Adds `doc-clean` phony target to `make publish`.
652  ([@watilde](https://github.com/watilde))
653
654#### DOCS
655
656* [`d43921c`](https://github.com/npm/npm/commit/d43921c546617cdb94bbee444d7d67ef55f38dc5)
657  [#12147](https://github.com/npm/npm/pull/12147)
658  Document that the current behavior of `engines` is just to warn if the node
659  platform is incompatible.
660  ([@reconbot](https://github.com/reconbot))
661* [`3cfe99e`](https://github.com/npm/npm/commit/3cfe99e3a757c5d8cbb1c2789410e9802563abac)
662  [#12093](https://github.com/npm/npm/pull/12093)
663  Update `bugs` url in `package.json` to use the `https` URL for Github.
664  ([@watilde](https://github.com/watilde))
665* [`ecf865f`](https://github.com/npm/npm/commit/ecf865f4eed1419c75442e0d52bc34ba1647de15)
666  [#12075](https://github.com/npm/npm/pull/12075)
667  Add the `--ignore-scripts` flag to the `npm install` docs.
668  ([@paulirish](https://github.com/paulirish))
669* [`f0e6db3`](https://github.com/npm/npm/commit/f0e6db32827d88680ef2320e60c0863754a4fbc5)
670  [#12063](https://github.com/npm/npm/pull/12063)
671  Various minor fixes to the html docs homepage.
672  ([@watilde](https://github.com/watilde))
673
674#### DEPS
675
676* [`e2660de`](https://github.com/npm/npm/commit/e2660de1c08ed68a1c6fc4ee75d10376595979be)
677  `npmlog@2.0.3`
678  ([@iarna](https://github.com/iarna))
679
680### v2.15.2 (2016-03-24):
681
682It's always nice to see new contributors. ��
683
684This week sees another small release, but we're still chugging along on our
685[Windows efforts](https://github.com/npm/npm/pull/11444).
686
687There's also some small process changes to our LTS process relatively recently
688that you might wanna know about! ��
689
690For one, the `2.x` branch was removed in favor of just `lts`. If you're making
691PRs exclusively against npm's LTS, please use that name from now on. `2.x` was
692deleted.
693
694Also, [@othiym23](https://github.com/othiym23) put some time into [writing down
695our LTS process and policy](https://github.com/npm/npm/wiki/LTS). Check it out
696and ping us if you have questions or comments about it!
697
698In general, we're trying to make sure all our policy and such for our
699contributors is written down, and we hope it makes it easier in general for
700y'all. Forrest is also working on a shiny new Contributor's Guide right now, but
701we'll link to that in the (near?) future, when it's ready to roll out.
702
703#### TESTS
704
705* [`1d0e468`](https://github.com/npm/npm/commit/1d0e468c06c7b8e2b95b7fe874a3399a16d9db74)
706  [#11931](https://github.com/npm/npm/pull/11931)
707  Removes a bunch of old, disabled tests that have just been sitting around,
708  doing nothing.
709  ([@othiym23](https://github.com/othiym23))
710* [`7ae8aa1`](https://github.com/npm/npm/commit/7ae8aa1d9dc47761024f6756114205db3fb2c80b)
711  [#11987](https://github.com/npm/npm/pull/11987)
712  There was a failure in the `outdated-symlink` test caused by using the default
713  registry instead of the mock registry tests.
714  ([@yodeyer](https://github.com/yodeyer))
715
716#### DOCS
717
718* [`b2649fb`](https://github.com/npm/npm/commit/b2649fb360f239aadef1ab51a580cbf4fdf29722)
719  [#12006](https://github.com/npm/npm/pull/12006)
720  Access was Team and Team was Access, but someone from the community rolled
721  around and corrected it for us. Thanks a bunch!
722  ([@yaelz](https://github.com/yaelz))
723
724### v2.15.1 (2016-03-17):
725
726#### SECURITY ADVISORY: BEARER TOKEN DISCLOSURE
727
728This release includes [the fix for a
729vulnerability](https://github.com/npm/npm/commit/fea8cc92cee02c720b58f95f14d315507ccad401)
730that could cause the unintentional leakage of bearer tokens.
731
732Here are details on this vulnerability and how it affects you.
733
734##### DETAILS
735
736Since 2014, npm’s registry has used HTTP bearer tokens to authenticate requests
737from the npm’s command-line interface. A design flaw meant that the CLI was
738sending these bearer tokens with _every_ request made by logged-in users,
739regardless of the destination of their request. (The bearers only should have
740been included for requests made against a registry or registries used for the
741current install.)
742
743An attacker could exploit this flaw by setting up an HTTP server that could
744collect authentication information, then use this authentication information to
745impersonate the users whose tokens they collected. This impersonation would
746allow them to do anything the compromised users could do, including publishing
747new versions of packages.
748
749With the fixes we’ve released, the CLI will only send bearer tokens with
750requests made against a registry.
751
752##### THINK YOU'RE AT RISK? REGENERATE YOUR TOKENS
753
754If you believe that your bearer token may have been leaked, [invalidate your
755current npm bearer tokens](https://www.npmjs.com/settings/tokens) and rerun
756`npm login` to generate new tokens. Keep in mind that this may cause continuous
757integration builds in services like Travis to break, in which case you’ll need
758to update the tokens in your CI server’s configuration.
759
760##### WILL THIS BREAK MY CURRENT SETUP?
761
762Maybe.
763
764npm’s CLI team believes that the fix won’t break any existing registry setups.
765Due to the large number of registry software suites out in the wild, though,
766it’s possible our change will be breaking in some cases.
767
768If so, please [file an issue](https://github.com/npm/npm/issues/new) describing
769the software you’re using and how it broke. Our team will work with you to
770mitigate the breakage.
771
772##### CREDIT & THANKS
773
774Thanks to Mitar, Will White & the team at Mapbox, Max Motovilov, and James
775Taylor for reporting this vulnerability to npm.
776
777### BACK TO YOUR REGULARLY SCHEDULED PROGRAMMING
778
779Aside from that, it's another one of those releases again! Docs and tests, it
780turns out, have a pretty easy time getting into LTS releases, and boring is
781exactly how LTS should be. ��
782
783#### DOCS
784
785* [`981c89c`](https://github.com/npm/npm/commit/981c89c8e398ca22ab6bf466123b25728ef6f543)
786  [#11820](https://github.com/npm/npm/pull/11820)
787  The basic explanation for how `npm link` works was a bit confusing, and
788  somewhat incorrect. It should be clearer now.
789  ([@rhgb](https://github.com/rhgb))
790* [`35b2b45`](https://github.com/npm/npm/commit/35b2b45f181dcbfb297f53b577dc1f26efcf3aba)
791  [#11787](https://github.com/npm/npm/pull/11787)
792  The `verison` alias for `npm version` no longer shows up in the command list
793  when you do `npm -h`.
794  ([@doug-wade](https://github.com/doug-wade))
795* [`1c9d00f`](https://github.com/npm/npm/commit/1c9d00f788298a81a8a7293d7dcf430f01bdd7fd)
796  [#11786](https://github.com/npm/npm/pull/11786)
797  Add a comment to the `npm-scope.md` docs about `npm@>=2` being required in
798  order to use scoped packaged.
799  ([@doug-wade](https://github.com/doug-wade))
800* [`7d64fb1`](https://github.com/npm/npm/commit/7d64fb1452d360aa736f31c85d6776ce570b2365)
801  [#11762](https://github.com/npm/npm/pull/11762)
802  Roll back patch that previously advised people to use `--depth Infinity`
803  instead of `--depth 9999`. Just keep using `--depth 9999`.
804  ([@GriffinSchneider](https://github.com/GriffinSchneider))
805
806#### TESTS
807
808* [`98a9ee4`](https://github.com/npm/npm/commit/98a9ee4773f83994b8eb63c0ff75a9283408ba1a)
809  [#11912](https://github.com/npm/npm/pull/11912)
810  Did you know npm can install itself? `npm install -g npm` is the way to
811  upgrade! Turns out that one of the tests that verified this functionality got
812  rewritten as part of our recent push for better tests, and in the process
813  omitted a detail about *how* the test ran. We're testing that corner case
814  again, now, by moving the install folder to `/tmp`, where the original legacy
815  test ran.
816  ([@iarna](https://github.com/iarna))
817
818### v2.15.0 (2016-03-10):
819
820#### WHY IS THIS SEMVER-MINOR I THOUGHT THIS WAS LTS
821
822A brief note about LTS this week!
823
824npm, as you may know if you're using this `2.x` branch, has an LTS process for
825releases. We also try and play nice with [Node.js' own LTS release
826process](https://github.com/nodejs/LTS#lts-plan). That means we generally try to
827avoid things like minor version bumps on our `2.x` branch (which is also tagged
828`lts` in the `dist-tag`s).
829
830That said, we had a minor-bump update recently for `npm@3.8.0` which added a
831`maxsockets` option to allow users to configure the number of concurrent sockets
832that npm would keep open at a time -- a setting that has the potential to help a
833bunch for people with fussy routers or internet connections that aren't very
834happy with Node.js applications' usual concurrency storm. This change was done
835to `npm-registry-client`, which we don't have a parallel LTS-tracking branch
836for.
837
838After talking it over, we ended up deciding that this was a reasonable enough
839addition to LTS, even though it's *technically* a `semver-minor` bump, taking
840into account both its potential for bugfixing (specially on `2.x`!) and the
841general hassle it would be to maintain another branch for `npm-registry-client`.
842
843
844* [`6dd61e7`](https://github.com/npm/npm/commit/6dd61e781c145480dc255a3e6a748729868443fd)
845  Expose `maxsockets` config setting from new `npm-registry-client`.
846  ([@misterbyrne](https://github.com/misterbyrne))
847* [`8a021c3`](https://github.com/npm/npm/commit/8a021c35184e665bd1f3f70ae2f478af812ab614)
848  `npm-registry-client@7.1.0`:
849  Adds support for configuring the max number of concurrent sockets, defaulting
850  to `50`.
851  ([@iarna](https://github.com/iarna))
852
853#### DOC PATCH IS HERE TOO
854
855* [`0ae9f74`](https://github.com/npm/npm/commit/0ae9f740001a1bdf5920bc464cf9e284d5d139f0)
856  [#11748](https://github.com/npm/npm/pull/11748)
857  Add command aliases as a separate section in documentation for npm
858  subcommands.
859  ([@watilde](https://github.com/watilde))
860
861#### DEP UPDATES
862
863* [`bfc3888`](https://github.com/npm/npm/commit/bfc38887f832f701c16b7ee410c4e0220a90399f)
864  `strip-ansi@3.0.1`
865  ([@jbnicolai](https://github.com/jbnicolai))
866* [`d5f4d51`](https://github.com/npm/npm/commit/d5f4d51a1b7ea78d7431c7ed4fed30200b2622f8)
867  `node-gyp@3.3.1`: Fixes Android generator
868  ([@bnoordhuis](https://github.com/bnoordhuis))
869* [`4119df8`](https://github.com/npm/npm/commit/4119df8aecd2ae57b0492ad8c9a480d900833008)
870  `glob@7.0.3`: Some path-related fixes for Windows.
871  ([@isaacs](https://github.com/isaacs))
872
873### v2.14.22 (2016-03-03):
874
875This week is all documentation improvements. In case you hadn't noticed, we
876*love* doc patches. We love them so much, we give socks away if you submit
877documentation PRs!
878
879These folks are all getting socks if they ask for them. The socks are
880super-sweet. Do you have yours yet? ��
881
882* [`3f3c7d0`](https://github.com/npm/npm/commit/3f3c7d080f052a5db91ff6091f8b1b13f26b53d6)
883  [#11441](https://github.com/npm/npm/pull/11441)
884  Add a link to the [Contribution
885  Guidelines](https://github.com/npm/npm/wiki/Contributing-Guidelines) to the
886  main npm docs.
887  ([@watilde](https://github.com/watilde))
888* [`9f87bb1`](https://github.com/npm/npm/commit/9f87bb1934acb33b678c17b7827165b17c071a82)
889  [#11441](https://github.com/npm/npm/pull/11441)
890  Remove Google Group email from npm docs about contributing.
891  ([@watilde](https://github.com/watilde))
892* [`93eaab3`](https://github.com/npm/npm/commit/93eaab3ee5ad16c7d90d1a4b38a95403fcf3f0f6)
893  [#11474](https://github.com/npm/npm/pull/11474)
894  Fix an invalid JSON error overlooked in
895  [#11196](https://github.com/npm/npm/pull/11196).
896  ([@robludwig](https://github.com/robludwig))
897* [`a407ca2`](https://github.com/npm/npm/commit/a407ca2bcf6a05117e55cf2ab69376e09094995e)
898  [#11483](https://github.com/npm/npm/pull/11483)
899  Add more details and an example to the documentation for bundledDependencies.
900  ([@gnerkus](https://github.com/gnerkus))
901* [`2c851a2`](https://github.com/npm/npm/commit/2c851a231afd874baa77c42ea5ba539c454ac79c)
902  [#11490](https://github.com/npm/npm/pull/11490)
903  Document the `--registry` flag for `npm search`.
904  ([@plumlee](https://github.com/plumlee))
905
906### v2.14.21 (2016-02-25):
907
908Good news, everyone! There's a new LTS release with a few shinies here and there!
909
910#### USE THIS ONE INSTEAD
911
912We 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
913
914* [`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))
915* [`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))
916
917#### SOCKS FOR THE SOCK GOD
918
919* [`f961092`](https://github.com/npm/npm/commit/f9610920079d8b88ae464b30007a92c594bd85a8)
920  [#11636.](https://github.com/npm/npm/issues/11636.)
921  Document the `--save-bundle` option for `npm install`.
922  ([@datyayu](https://github.com/datyayu))
923* [`7c908b6`](https://github.com/npm/npm/commit/7c908b618f7123f0a3b860c71eb779e33df35964)
924  [#11644](https://github.com/npm/npm/pull/11644)
925  Add documentation for the `test` directory for packages.
926  ([@lewiscowper](https://github.com/lewiscowper))
927
928#### INTERNAL TEST IMPROVEMENTS
929
930The 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.
931
932These patches were previously released for `npm@3`, and then ported back to `npm@2` LTS.
933
934* [`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))
935* [`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))
936* [`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))
937* [`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.
938  ([@iarna](https://github.com/zkat))
939* [`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))
940* [`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))
941* [`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))
942
943### v2.14.20 (2016-02-18):
944
945Hope y'all are having a nice week! As usual, it's a fairly limited release. The
946most notable thing is some dependency updates that might help the Node.js CI
947setup for Windows run a little better, even if we have some work to do on that
948path length things, still.
949
950#### WHITTLING AWAY AT PATH LENGTHS
951
952So for all of you who don't know -- Node.js does, in fact, support long Windows
953paths. Unfortunately, depending on the tool and the Windows version, a lot of
954external tooling does not. This means, for example, that some (all?) versions of
955Windows Explorer *can literally never delete npm from their system entirely
956because of deeply-nested npm dependencies*. Which is pretty gnarly.
957
958Incidentally, if you run into that in particularly, you can use
959[rimraf](npm.im/rimraf) to remove such files ��.
960
961The latest victim of this issue was the Node.js CI setup for testing on Windows,
962which uses some tooling or another that croaks on the usual path length limit
963for that OS: 255 characters.
964
965This issue, of course, is largely not a problem as of `npm@3`, with its flat
966trees, but it still occasionally and viciously bites LTS.
967
968We've taken another baby step towards alleviating this in this release by
969updating a couple of dependencies that were preventing `npmlog` from deduping,
970and then doing a dedupe on that and `gauge`. Hopefully it helps.
971
972* [`4199551`](https://github.com/npm/npm/commit/41995517e617674710748ab6d262670c96124393)
973  [#11528](https://github.com/npm/npm/pull/11528)
974  `npm-install-checks@1.0.7`: Just updates the version of npmlog so we can
975  dedupe it better.
976  ([@zkat](https://github.com/zkat))
977* [`14d72c7`](https://github.com/npm/npm/commit/14d72c756b89e2d167eb52c1849263dbddcb9f35)
978  [#11552](https://github.com/npm/npm/pull/11552)
979  [#11528](https://github.com/npm/npm/pull/11528)
980  `node-gyp@3.3.0`: AIX support, new `gyp`, update `npmlog` (for the dedupe),
981  adds `--cafile` command line option, and allows configuration of Node.js and
982  io.js mirrors.
983  ([@rvagg](https://github.com/rvagg))
984* [`0453cb9`](https://github.com/npm/npm/commit/0453cb94b33520eb723b7072cd2654b1d0142533)
985  [#11528](https://github.com/npm/npm/pull/11528)
986  Do a `dedupe` on `gauge` to flatten our dependencies a bit more.
987  ([@zkat](https://github.com/zkat))
988
989#### OTHER DEP STUFF
990
991* [`686c0b3`](https://github.com/npm/npm/commit/686c0b37ec3a7b65f9b3849e1099805e5221c408)
992  `rimraf@2.5.2`: Just updates to glob@7.
993  ([@isaacs](https://github.com/isaacs))
994
995#### @wyze, DOCUMENTATION HERO OF THE PEOPLE, GETS THEIR OWN HEADER
996
997* [`7232948`](https://github.com/npm/npm/commit/72329484c775376cb40d5b348f453eaaf2f0b821)
998  [#11416](https://github.com/npm/npm/pull/11416)
999  Logout docs were using a section copy-pasted from the adduser docs.
1000  ([@wyze](https://github.com/wyze))
1001* [`922b33a`](https://github.com/npm/npm/commit/922b33aba4362e1e90f42e9348f061a1cc73eafb)
1002  [#11414](https://github.com/npm/npm/pull/11414)
1003  Add colon for consistency.
1004  ([@wyze](https://github.com/wyze))
1005
1006### v2.14.19 (2016-02-11):
1007
1008Really tiny micro-release this week! The main thing to note is a dependency
1009update that means we no longer have `graceful-fs@3` in our dependency tree. This
1010has some implications for being able to run on future Node.js releases, so
1011better to get this out the door. ��
1012
1013#### DEPS
1014
1015* [`a556e0f`](https://github.com/npm/npm/commit/a556e0f9dcb5d7b44224ba9c16c9d0dc6c8d2532)
1016  `cmd-shim@2.0.2`: Final straggler using `graceful-fs@<4`.
1017  ([@ForbesLindesay](https://github.com/ForbesLindesay))
1018
1019#### DOCS
1020
1021* [`69a2d59`](https://github.com/npm/npm/commit/69a2d599bf0cba674ee268483e9bd5c14333b89f)
1022  [#11391](https://github.com/npm/npm/pull/11391)
1023  Fixed versions of `shrinkwrap.json` in examples in documentation for `npm
1024  shrinkwrap`, which did not quite match up.
1025  ([@xcatliu](https://github.com/xcatliu))
1026
1027### v2.14.18 (2016-02-04):
1028
1029Clearly our docs are perfect after all those wonderful PRs, 'cause this week's
1030gonna be all about dependency updates. Note: There is a small security-related
1031fix included here!
1032
1033#### SECURITY-RELATED DEPENDENCY UPDATE
1034
1035* [`5c095ef`](https://github.com/npm/npm/commit/5c095eff8dc006980d4d083f2007e4dacff23be3)
1036  [#11341](https://github.com/npm/npm/pull/11341)
1037  `request@2.69.0`: Includes security-related dependency updates involving
1038  `hawk` and `is-my-json-valid`
1039  ([@remy](https://github.com/remy) and [@simov](https://github.com/simov))
1040
1041#### OTHER DEPENDENCY UPDATES
1042
1043* [`f9c2668`](https://github.com/npm/npm/commit/f9c2668ca3e6e2602d91250ce61280e5e12d0a00)
1044  `which@1.2.4`
1045  ([@isaacs](https://github.com/isaacs))
1046* [`2907c43`](https://github.com/npm/npm/commit/2907c43ad4ef87e5f730c2576f680d6837fcbad0)
1047  `spdx-license-ids@1.2.0`
1048  ([@shinnn](https://github.com/shinnn))
1049* [`7734069`](https://github.com/npm/npm/commit/773406960bf7f4a87b2ecb6ebf593c62d0e9f95d)
1050  `rimraf@2.5.1`
1051  ([@isaacs](https://github.com/isaacs))
1052* [`f4b39a7`](https://github.com/npm/npm/commit/f4b39a7dd5e1335d92aa22c46d99abb33f271b8b)
1053  `retry@0.9.0`
1054  ([@tim-kos](https://github.com/tim-kos))
1055* [`ded1e7a`](https://github.com/npm/npm/commit/ded1e7a1c9c7bec29bb7c30a8f85546670e75b56)
1056  Nest `retry@0.8.0` inside `npm-registry-client` to prevent invalid
1057  dependency issue until the latter gets a dependency update.
1058  ([@zkat](https://github.com/zkat))
1059* [`ab9f867`](https://github.com/npm/npm/commit/ab9f8679f9687f91ad03adaab6211a897aeebbae)
1060  `read-package-json@2.0.3`
1061  ([@iarna](https://github.com/iarna))
1062* [`b638c41`](https://github.com/npm/npm/commit/b638c41607bb936b9eaaceba2aeeda1d34e3a9b2)
1063  `npmlog@2.0.2`
1064  ([@iarna](https://github.com/iarna))
1065* [`49f34af`](https://github.com/npm/npm/commit/49f34af463a674359269025d8438feb6a7c69960)
1066  `init-package-json@1.9.3`
1067  ([@iarna](https://github.com/iarna))
1068* [`2305dab`](https://github.com/npm/npm/commit/2305dab4e7bff09bb7686cec653cf1e663dbf15d)
1069  `graceful-fs@4.1.3`: Fixed `.close()` not being patched.
1070  ([@isaacs](https://github.com/isaacs))
1071* [`18496d9`](https://github.com/npm/npm/commit/18496d9a0fff94e3652655998e8333056aa52b15)
1072  `fs-write-stream-atomic@1.0.8`
1073  ([@iarna](https://github.com/iarna))
1074* [`6637bc7`](https://github.com/npm/npm/commit/6637bc7a0e194d82554cd7c91e1794018fef5943)
1075  `config-chain@1.1.10`
1076  ([@dominictarr](https://github.com/dominictarr))
1077* [`4222bad`](https://github.com/npm/npm/commit/4222badffed9e9edacea6a8a96a99a164d376158)
1078  `columnify@1.5.4`
1079  ([@timoxley](https://github.com/timoxley))
1080* [`df9016f`](https://github.com/npm/npm/commit/df9016f327a2a9ce492ebc75b882b03069438e13)
1081  `ansi@0.3.1`: Added a license file.
1082  ([@TooTallNate](https://github.com/TooTallNate))
1083
1084### v2.14.17 (2016-01-28):
1085
1086Another week, another small LTS release!
1087
1088#### BETTER ERROR REPORTING YAY
1089
1090So as it turns out, when stuff goes wrong, it's actually nice to give people a
1091better clue rather than just say "oh well ��".
1092
1093* [`5b8ccb9`](https://github.com/npm/npm/commit/5b8ccb91cf11b4edb463609cd4ed1dee84ed4db0)
1094  [#11289](https://github.com/npm/npm/pull/11289)
1095  There is an obscure feature that lets you monkey-patch npm when it starts up.
1096  If the module being required with this feature failed, it would previous just
1097  make npm error out– this reduces that to a warning.
1098  ([@evanlucas](https://github.com/evanlucas))
1099* [`556e42a`](https://github.com/npm/npm/commit/556e42ac6bab078722ddc1dc6cce4428d001133b)
1100  [#11300](https://github.com/npm/npm/pull/11300)
1101  Report symlinked packages as 'linked' in the output for `npm outdated`.
1102  ([@halhenke](https://github.com/halhenke))
1103* [`3842317`](https://github.com/npm/npm/commit/3842317583e0ea2eca78e39aa03f5bc06ba21de7)
1104  [#11290](https://github.com/npm/npm/pull/11290)
1105  Suppress warnings about pre-release node versions. This should get node's CI
1106  passing on non-Windows platforms without needing to modify the node version to
1107  get rid of the pre-release suffix.
1108  ([@iarna](https://github.com/iarna))
1109
1110#### EVERYONE WANTS THOSE NPM SOCKS, GEEZE
1111
1112Did you know that you can get npm socks for contributing to our docs? I bet
1113these people do, and now so do you!
1114
1115* [`dcde451`](https://github.com/npm/npm/commit/dcde451cb85a6ca08acc6ef45782c652f1d8fc89)
1116  [#11232](https://github.com/npm/npm/pull/11232)
1117  Update automatically included/excluded packages in `package.json`.
1118  ([@jscissr](https://github.com/jscissr))
1119* [`e3f8d5b`](https://github.com/npm/npm/commit/e3f8d5be5ac5ec1d72db42f7abf50cc4a8c5935c)
1120  [#11273](https://github.com/npm/npm/pull/11273)
1121  Add an example for `npm view <pkg> versions`.
1122  ([@vedatmahir](https://github.com/vedatmahir))
1123* [`6a06ef2`](https://github.com/npm/npm/commit/6a06ef2252748089f0013de951f2d06160b90306)
1124  [#11272](https://github.com/npm/npm/pull/11272)
1125  Fix a typo in `npm-update.md`.
1126  ([@jonathanp](https://github.com/jonathanp))
1127* [`2515ff1`](https://github.com/npm/npm/commit/2515ff1de28f0b261fb25c79a66bd762a65961c4)
1128  [#11215](https://github.com/npm/npm/pull/11215)
1129  Correct small thinko in docs for SPDX expressions.
1130  ([@kemitchell](https://github.com/kemitchell))
1131* [`70f897b`](https://github.com/npm/npm/commit/70f897b03da9a5d5d4fd34614e9ee40e6f9e9653)
1132  [#11196](https://github.com/npm/npm/pull/11196)
1133  Make JSON snippets valid JSON in `npm update` docs.
1134  ([@s100](https://github.com/s100))
1135
1136### v2.14.16 (2016-01-21):
1137
1138Good to see you all again! It's been a while since we had an LTS release, and
1139the team continues to work hard to both get the issue tracker under control, and
1140get our test suite to be awesome and reliable.
1141
1142This is also the first LTS release of this year.
1143
1144We're gonna have an interesting time -- most of our focus this year will be
1145around stability and maintainability of the CLI, so you might actually end up
1146seeing a number of updates even over here, just for the sake of making sure
1147we're stable, that bugs get fixed, and tests have proper coverage.
1148
1149What better way to start this effort, then, than getting Travis tests green, fix
1150a few things here and there, and tweak a bunch of documentation? ��
1151
1152#### FIX ALL THE BUGS AND TWEAK ALL THE THINGS
1153
1154* [`24b13fb`](https://github.com/npm/npm/commit/24b13fbc57d34db1d5b0a37bcca122c00deba978)
1155  [#11158](https://github.com/npm/npm/pull/11158)
1156  Fix custom node-gyp env var quoting on Windows.
1157  ([@orangemocha](https://github.com/orangemocha))
1158* [`e2503f2`](https://github.com/npm/npm/commit/e2503f2be40157b05a9c500ec3b5d16090ffee50)
1159  [#11142](https://github.com/npm/npm/pull/11142)
1160  Fix race condition with `correctMkdir` in the cache directory.
1161  ([@Jimbly](https://github.com/Jimbly))
1162
1163* [`5c0e4c4`](https://github.com/npm/npm/commit/5c0e4c45a29d774ab729e86044377d4e5e424252)
1164  [#10940](https://github.com/npm/npm/pull/10940)
1165  Ignore failures replacing `package.json`. writeFileAtomic is not atomic in
1166  Windows, it fails if the file is being accessed concurrently.
1167  ([@orangemocha](https://github.com/orangemocha))
1168* [`2c44d8d`](https://github.com/npm/npm/commit/2c44d8dc8c267d5e054d0175ce2f4750f0986463)
1169  [#10903](https://github.com/npm/npm/pull/10903)
1170  Add tests for `npm adduser --scope`.
1171  ([@ekmartin](https://github.com/ekmartin))
1172* [`4cb25d0`](https://github.com/npm/npm/commit/4cb25d0fed5c7792dfd1aec891380ecc1f8a5761)
1173  [#10903](https://github.com/npm/npm/pull/10903)
1174  Add a message informing users when they have been successfully logged in.
1175  ([@ekmartin](https://github.com/ekmartin))
1176* [`fe3ec6d`](https://github.com/npm/npm/commit/fe3ec6d6658262054c0c19c55373c21e84ab9f17)
1177  [#10628](https://github.com/npm/npm/pull/10628)
1178  Tell users how to open an issue with a package that has errored.
1179  ([@trodrigues](https://github.com/trodrigues))
1180
1181#### DOCS DOCS DOCS
1182
1183We got a TON of lovely documentation patches, too! Thanks all for submitting!
1184
1185* [`22482a1`](https://github.com/npm/npm/commit/22482a1f22079d72c3f8ca55c2f0c153bdd024c0)
1186  [#11188](https://github.com/npm/npm/pull/11188)
1187  Briefly explain what's included when you publish.
1188  ([@beaugunderson](https://github.com/beaugunderson))
1189* [`fa47724`](https://github.com/npm/npm/commit/fa4772438df0c66a19309dd1c1a3ce43cbee5461)
1190  [#11150](https://github.com/npm/npm/pull/11150)
1191  Advise use of `--depth Infinity` instead of `--depth 9999` in `npm update`.
1192  ([@halhenke](https://github.com/halhenke))
1193* [`248ddfe`](https://github.com/npm/npm/commit/248ddfe8f7ddd3318e14bf61de41cab4a638c8a3)
1194  [#11130](https://github.com/npm/npm/pull/11130)
1195  Nuke "using npm programmatically" section from README. The programmatic npm
1196  API is unsupported, and is not guaranteed not to break in non-major versions.
1197  Removing this section so newcomers aren't encouraged to discover or use it.
1198  ([@ljharb](https://github.com/ljharb))
1199* [`ae9c452`](https://github.com/npm/npm/commit/ae9c4521222d60ab4a69c19fee5e361c62f41fae)
1200  [#11128](https://github.com/npm/npm/pull/11128)
1201  Add link to local paths section indocs for `package.json`.
1202  ([@orangejulius](https://github.com/orangejulius))
1203* [`663a8c6`](https://github.com/npm/npm/commit/663a8c6b4b1647f9b86c15ef32e30023edc8c060)
1204  [#11044](https://github.com/npm/npm/pull/11044)
1205  Update default value documentation for the color option in npm's config.
1206  ([@scottaddie](https://github.com/scottaddie))
1207* [`5c1dda0`](https://github.com/npm/npm/commit/5c1dda0d3a18b2954872dba33fbc696ff0700ffe)
1208  [#11037](https://github.com/npm/npm/pull/11037)
1209  Correct the name property max length constraint verbiage.
1210  ([@scottaddie](https://github.com/scottaddie))
1211* [`8288365`](https://github.com/npm/npm/commit/8288365d08e97fa3a5b0d31703c015a8be49e07f)
1212  [#10990](https://github.com/npm/npm/pull/10990)
1213  Update folder docs to reflect that process.installPrefix was removed as of
1214  0.8.x.
1215  ([@jeffmcmahan](https://github.com/jeffmcmahan))
1216* [`61d63fa`](https://github.com/npm/npm/commit/61d63fa22c4f09742180c2de460a4ffb6c32738e)
1217  [#10790](https://github.com/npm/npm/pull/10790)
1218  Clarify that `npm install foo` is the same as `npm install foo@latest` now.
1219  ([@cvrebert](https://github.com/cvrebert))
1220* [`442c920`](https://github.com/npm/npm/commit/442c9207f375354c91d36df8711ba2d33e1c97f3)
1221  [#10789](https://github.com/npm/npm/pull/10789)
1222  Link over to `npm-dist-tag(1)` in `npm install` docs when they talk about the
1223  `pkg@<tag>` syntax.
1224  ([@cvrebert](https://github.com/cvrebert))
1225* [`dca7a5e`](https://github.com/npm/npm/commit/dca7a5e2be3bfa306a870a123707d35c732406c0)
1226  [#10788](https://github.com/npm/npm/pull/10788)
1227  Link to tag docs in docs for `npm publish --tag`.
1228  ([@cvrebert](https://github.com/cvrebert))
1229* [`a72904e`](https://github.com/npm/npm/commit/a72904e8d4ab1d43ae8150fbe3f6468b0cbb1efd)
1230  [#10787](https://github.com/npm/npm/pull/10787)
1231  Explain why the `latest` tag matters.
1232  ([@cvrebert](https://github.com/cvrebert))
1233* [`9d0697a`](https://github.com/npm/npm/commit/9d0697a534046df7efda32170014041bbc1f4e7d)
1234  [#10785](https://github.com/npm/npm/pull/10785)
1235  Replace some quite marks in `npm dist-tag` docs for the sake of consistency.
1236  ([@cvrebert](https://github.com/cvrebert))
1237
1238#### I REALLY LIKE GREEN. CAN YOU TELL?
1239
1240So Travis is all green now on `npm@2`, thanks to the removal of nock and a few
1241other test suite tweaks. This is a fantastic step towards making sure we can all
1242have confidence in our test suite! ��
1243
1244* [`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)
1245  [#10903](https://github.com/npm/npm/pull/10903)
1246  Get rid of nock from tests, and get Travis green.
1247  ([@zkat](https://github.com/zkat) and [@iarna](https://github.com/iarna))
1248* [`70a5310`](https://github.com/npm/npm/commit/70a5310712c6666e753ca8f3bfff4a780ec6292d)
1249  `npm-registry-couchapp@2.6.12`:
1250  Better 0.8 compatibility, and ability to run in travis docker stuff. This
1251  means the test suite should run a lot faster, too!
1252  ([@iarna](https://github.com/iarna))
1253* [`28fae39`](https://github.com/npm/npm/commit/28fae399212eda5554e6c0ffd8c9591144ab7b9d)
1254  Get rid of sudo, for Travis!
1255  ([@zkat](https://github.com/zkat))
1256
1257### v2.14.15 (2015-12-10):
1258
1259Did you know that Bob Ross reached the rank of master sergeant in the US Air
1260Force before becoming perhaps the most soothing painter of all time?
1261
1262#### TWO HAPPY LITTLE BUG FIXES
1263
1264* [`f482664`](https://github.com/npm/npm/commit/f4826645dc6b5c0f05c5f9187efb28c1a293554f)
1265  [#10505](https://github.com/npm/npm/issues/10505) `npm ls --json --depth=0`
1266  now respects the depth parameter, when it is zero and when it is not zero.
1267  ([@MarkReeder](https://github.com/MarkReeder))
1268* [`529fa1f`](https://github.com/npm/npm/commit/529fa1ff2c6432a773af99a1c5209c0865f7a19c)
1269  [#9099](https://github.com/npm/npm/issues/9099) I had always thought you
1270  could run `npm version` from subdirectories in your project, which is great,
1271  because now you can. I guess I was just ahead of my time.
1272  ([@ekmartin](https://github.com/ekmartin))
1273
1274#### NOW PAINT IN SOME NICE DOCS CHANGES
1275
1276* [`1fc7f2b`](https://github.com/npm/npm/commit/1fc7f2b523ea760e08adb9b861b28e3ba450e565)
1277  [#10546](https://github.com/npm/npm/issues/10546) Goodbye, FAQ! You were
1278  cheeky and fun until you weren't! Don't worry: npm still loves everyone,
1279  especially you! ([@ashleygwilliams](https://github.com/ashleygwilliams))
1280* [`7fe6950`](https://github.com/npm/npm/commit/7fe6950b44d241bb4d90857a44d89d750af1e2b3)
1281  [#10570](https://github.com/npm/npm/issues/10570) Update documentation URLs
1282  to be HTTPS everywhere sensible. No HTTP shall be spared!
1283  ([@rsp](https://github.com/rsp))
1284* [`96ebb90`](https://github.com/npm/npm/commit/96ebb902439e4f6f37f8beffb589769146fecf24)
1285  [#10650](https://github.com/npm/npm/issues/10650) Correctly note that there
1286  are two lifecycle scripts run by an install phase in an example, instead of
1287  three. ([@eymengunay](https://github.com/eymengunay))
1288* [`5196893`](https://github.com/npm/npm/commit/5196893a7496f68a514b83641ff6b72f14d664dd)
1289  [#10687](https://github.com/npm/npm/issues/10687) `npm outdated`'s output can
1290  be a little puzzling sometimes. I've attempted to make it clearer, with some
1291  examples, of what's going on with "wanted" and "latest" in more cases.
1292  ([@othiym23](https://github.com/othiym23))
1293* [`8e6712d`](https://github.com/npm/npm/commit/8e6712d4ee128858cab36c77723e35bddbb977ba)
1294  [#10700](https://github.com/npm/npm/issues/10700) Hey, do you remember when
1295  `search.npmjs.org` was a thing? I think I do? The last time I used it was in
1296  like 2012, and it's gone now, so remove it from the docs.
1297  ([@gagern](https://github.com/gagern))
1298* [`27d2612`](https://github.com/npm/npm/commit/27d2612b3f5aa88b12c943d04e162ce4c3a350ae)
1299  `semver@5.1.0`: Include BNF for SemVer expression grammar (which is also now
1300  included in `npm help semver`). ([@isaacs](https://github.com/isaacs))
1301
1302#### LAND YOUR DEPENDENCY UPGRADES IN PAIRS SO EVERYONE HAS A FRIEND
1303
1304* [`fc6c3c5`](https://github.com/npm/npm/commit/fc6c3c53a31e9e11c2616fcd378202e5b80bf286)
1305  `request@2.67.0` ([@simov](https://github.com/simov))
1306* [`07013fd`](https://github.com/npm/npm/commit/07013fd0fd55a2eb31fb9334631ee5d0dd5c41bb)
1307  [isaacs/rimraf#89](https://github.com/isaacs/rimraf/pull/89) `rimraf@2.4.4`
1308  ([@zerok](https://github.com/zerok))
1309* [`bc149be`](https://github.com/npm/npm/commit/bc149bef871f0f00639509898cece531af3aa8b3)
1310  [isaacs/once#7](https://github.com/isaacs/once/pull/7) `once@1.3.3`
1311  ([@floatdrop](https://github.com/floatdrop))
1312* [`ac598d3`](https://github.com/npm/npm/commit/ac598d36e1ad207bc0d8a7eadfd84b26146aec1f)
1313  `lru-cache@3.2.0` ([@isaacs](https://github.com/isaacs))
1314* [`1b915ce`](https://github.com/npm/npm/commit/1b915ce1e0787ccb6d8aa235d002d66565f2175d)
1315  `npm-registry-client@7.0.9` ([@othiym23](https://github.com/othiym23))
1316* [`df7dd78`](https://github.com/npm/npm/commit/df7dd78b8fe3cc58202996fa6c994fc55419bfa5)
1317  `tap@2.3.1` ([@isaacs](https://github.com/isaacs))
1318
1319### v2.14.14 (2015-12-03):
1320
1321#### FIX URL IN LICENSE
1322
1323The license incorrectly identified the registry URL as `registry.npmjs.com` and
1324this has been corrected to `registry.npmjs.org`.
1325
1326* [`6051a69`](https://github.com/npm/npm/commit/6051a69b1adc80f5f200077067e831643f655bd4)
1327  [#10685](https://github.com/npm/npm/pull/10685)
1328  Fix npm public registry URL in notices.
1329  ([@kemitchell](https://github.com/kemitchell))
1330
1331#### NO MORE MD5
1332
1333We updated modules that had been using MD5 for non-security purposes.  While
1334this is perfectly safe, if you compile Node in FIPS-compliance mode it will
1335explode if you try to use MD5. We've replaced MD5 with Murmur, which conveys
1336our intent better and is faster to boot.
1337
1338* [`30b5994`](https://github.com/npm/npm/commit/30b599496a9762482e1cef945a378e3a534fd366)
1339  [#10629](https://github.com/npm/npm/issues/10629)
1340  `write-file-atomic@1.1.4`
1341  ([@othiym23](https://github.com/othiym23))
1342* [`68c63ff`](https://github.com/npm/npm/commit/68c63ff1279d3d5ea7b2c970ab5562a8e0536f27)
1343  [#10629](https://github.com/npm/npm/issues/10629)
1344  `fs-write-stream-atomic@1.0.5`
1345  ([@othiym23](https://github.com/othiym23))
1346
1347#### DEPENDENCY UPDATES
1348
1349* [`e48e5a9`](https://github.com/npm/npm/commit/e48e5a90b4dcf76124b7e9ea3b295c1383e7f0c8)
1350  [nodejs/node-gyp#831](https://github.com/nodejs/node-gyp/pull/831)
1351  `node-gyp@3.2.1`: Improved \*BSD support.
1352  ([@bnoordhuis](https://github.com/bnoordhuis))
1353
1354### v2.14.13 (2015-11-25):
1355
1356#### THE npm CLI !== THE npm REGISTRY !== npm, INC.
1357
1358npm-the-CLI is licensed under the terms of the [Artistic License
13592.0](https://github.com/npm/npm/blob/8d79c1a39dae908f27eaa37ff6b23515d505ef29/LICENSE),
1360which is a liberal open-source license that allows you to take this code and do
1361pretty much whatever you like with it (that is, of course, not legal language,
1362and if you're doing anything with npm that leaves you in doubt about your legal
1363rights, please seek the review of qualified counsel, which is to say, not
1364members of the CLI team, none of whom have passed the bar, to my knowledge). At
1365the same time the primary registry the CLI uses when looking up and downloading
1366packages is a commercial service run by npm, Inc., and it has its own [Terms of
1367Use](https://www.npmjs.com/policies/terms).
1368
1369Aside from clarifying the terms of use (and trying to make sure they're more
1370widely known), the only recent changes to npm's licenses have been making the
1371split between the CLI and registry clearer. You are still free to do whatever
1372you like with the CLI's source, and you are free to view, download, and publish
1373packages to and from `registry.npmjs.org`, but now the existing terms under
1374which you can do so are more clearly documented. Aside from the two commits
1375below, see also [the release notes for
1376`npm@2.14.11`](https://github.com/npm/npm/releases/tag/v2.14.11), which is where
1377the split between the CLI's code and the terms of use for the registry was
1378first made more clear.
1379
1380* [`1f3e936`](https://github.com/npm/npm/commit/1f3e936aab6840667948ef281e0c3621df365131)
1381  [#10532](https://github.com/npm/npm/issues/10532) Clarify that
1382  `registry.npmjs.org` is the default, but that you're free to use the npm CLI
1383  with whatever registry you wish. ([@kemitchell](https://github.com/kemitchell))
1384* [`6733539`](https://github.com/npm/npm/commit/6733539eeb9b32a5f2d1a6aa797987e2252fa760)
1385  [#10532](https://github.com/npm/npm/issues/10532) Having semi-duplicate
1386  release information in `README.md` was confusing and potentially inaccurate,
1387  so remove it. ([@kemitchell](https://github.com/kemitchell))
1388
1389#### EASE UP ON WINDOWS BASH USERS
1390
1391It turns out that a fair number of us use bash on Windows (through MINGW or
1392bundled with Git, plz – Cygwin is still a bridge too far, for both npm and
1393Node.js). [@jakub-g](https://github.com/jakub-g) did us all a favor and relaxed
1394the check for npm completion to support MINGW bash. Thanks, Jakub!
1395
1396* [`460cc09`](https://github.com/npm/npm/commit/460cc0950fd6a005c4e5c4f85af807814209b2bb)
1397  [#10156](https://github.com/npm/npm/issues/10156) completion: enable on
1398  Windows in git bash ([@jakub-g](https://github.com/jakub-g))
1399
1400#### MAKE NODE-GYP A LITTLE BLUER
1401
1402* [`333e118`](https://github.com/npm/npm/commit/333e1181082842c21edc62f0ce515928424dff1f)
1403  `node-gyp@3.2.0`: Support AIX, use `which` to find Python, updated to a newer
1404  version of `gyp`, and more! ([@bnoordhuis](https://github.com/bnoordhuis))
1405
1406#### WE LIKE SPDX AND ALL BUT IT'S NOT ACTUALLY A DIRECT DEP, SORRY
1407
1408* [`1f4b4bb`](https://github.com/npm/npm/commit/1f4b4bbdf8758281beecb7eaf75d05a6c4a77c15)
1409  Removed `spdx` as a direct npm dependency, since we don't actually need it at
1410  that level, and updated subdeps for `validate-npm-package-license`
1411  ([@othiym23](https://github.com/othiym23))
1412
1413#### A BOUNTEOUS THANKSGIVING CORNUCOPIA OF DOC TWEAKS
1414
1415These are great! Keep them coming! Sorry for letting them pile up so deep,
1416everybody. Also, a belated Thanksgiving to our Canadian friends, and a happy
1417Thanksgiving to all our friends in the USA.
1418
1419* [`6101f44`](https://github.com/npm/npm/commit/6101f44737645d9379c3396fae81bbc4d94e1f7e)
1420  [#10250](https://github.com/npm/npm/issues/10250) Correct order of `org:team`
1421  in `npm team` documentation. ([@louislarry](https://github.com/louislarry))
1422* [`e8769f9`](https://github.com/npm/npm/commit/e8769f9807b91582c15ef130733e2e72b6c7bda4)
1423  [#10371](https://github.com/npm/npm/issues/10371) Remove broken / duplicate
1424  link to tag. ([@WickyNilliams](https://github.com/WickyNilliams))
1425* [`1ae2dbe`](https://github.com/npm/npm/commit/1ae2dbe759feb80d8634569221ec6ee2c6d1d1ff)
1426  [#10419](https://github.com/npm/npm/issues/10419) Remove references to
1427  nonexistent `npm-rm(1)` documentation. ([@KenanY](https://github.com/KenanY))
1428* [`777a271`](https://github.com/npm/npm/commit/777a271830a42d4ee62540a89f764a6e7d62de19)
1429  [#10474](https://github.com/npm/npm/issues/10474) Clarify that install finds
1430  dependencies in `package.json`. ([@sleekweasel](https://github.com/sleekweasel))
1431* [`dcf4b5c`](https://github.com/npm/npm/commit/dcf4b5cbece1b0ef55ab7665d9acacc0b6b7cd6e)
1432  [#10497](https://github.com/npm/npm/issues/10497) Clarify what a package is
1433  slightly. ([@aredridel](https://github.com/aredridel))
1434* [`447b3d6`](https://github.com/npm/npm/commit/447b3d669b2b6c483b8203754ac0a002c67bf015)
1435  [#10539](https://github.com/npm/npm/issues/10539) Remove an extra, spuriously
1436  capitalized letter. ([@alexlukin-softgrad](https://github.com/alexlukin-softgrad))
1437
1438### v2.14.12 (2015-11-19):
1439
1440#### TEEN ORCS AT THE GATES
1441
1442This week heralds the general release of the primary npm registry's [new
1443support for private packages for
1444organizations](http://blog.npmjs.org/post/133542170540/private-packages-for-organizations).
1445For many potential users, it's the missing piece needed to make it easy for you
1446to move your organization's private work onto npm. And now it's here! The
1447functionality to support it has been in place in the CLI for a while now,
1448thanks to [@zkat](https://github.com/zkat)'s hard work.
1449
1450During our final testing before the release, our ace support team member
1451[@snopeks](https://github.com/snopeks) noticed that there had been some drift
1452between the CLI team's implementation and what npm was actually preparing to
1453ship. In the interests of everyone having a smooth experience with this
1454_extremely useful_ new feature, we quickly made a few changes to square up the
1455CLI and the web site experiences.
1456
1457* [`0e8b15e`](https://github.com/npm/npm/commit/0e8b15e9fbc89e31bd00e573b648846beddfb835)
1458  [#9327](https://github.com/npm/npm/issues/9327) `npm access` no longer has
1459  problems when run in a directory that doesn't contain a `package.json`.
1460  ([@othiym23](https://github.com/othiym23))
1461* [`c4e939c`](https://github.com/npm/npm/commit/c4e939c1d493601d25dcb88e6ffcca73076fd3fd)
1462  [npm/npm-registry-client#126](https://github.com/npm/npm-registry-client/issues/126)
1463  `npm-registry-client@7.0.8`: Allow the CLI to grant, revoke, and list
1464  permissions on unscoped (public) packages on the primary registry.
1465  ([@othiym23](https://github.com/othiym23))
1466
1467#### A BRIEF NOTE ON NPM'S BACKWARDS COMPATIBILITY
1468
1469We don't often have much to say about the changes we make to our internal
1470testing and tooling, but I'm going to take this opportunity to reiterate that
1471npm tries hard to maintain compatibility with a wide variety of Node versions.
1472As this change shows, we want to ensure that npm works the same across:
1473
1474* Node.js 0.8
1475* Node.js 0.10
1476* Node.js 0.12
1477* the latest io.js release
1478* Node.js 4 LTS
1479* Node.js 5
1480
1481Contributors who send us pull requests often notice that it's very rare that
1482our tests pass across all of those versions (ironically, almost entirely due to
1483the packages we use for testing instead of any issues within npm itself). We're
1484currently beginning an effort, lasting the rest of 2015, to clean up our test
1485suite, and not only get it passing on all of the above versions of Node.js, but
1486working solidly on Windows as well. This is a compounding form of technical
1487debt that we're finally paying down, and our hope is that cleaning up the tests
1488will produce a more robust CLI that's a lot easier to write patches for.
1489
1490* [`d743620`](https://github.com/npm/npm/commit/d743620a0005213a65d25de771661b4d48a09717)
1491  [#10233](https://github.com/npm/npm/issues/10233) Update Node.js versions
1492  that Travis uses to test npm. ([@iarna](https://github.com/iarna))
1493
1494#### TYPOS IN THE LICENSE, OH MY
1495
1496* [`58ac241`](https://github.com/npm/npm/commit/58ac241f556b2c202a8ee33321965e2540361ca7)
1497  [#10478](https://github.com/npm/npm/issues/10478) Correct two typos in npm's
1498  LICENSE. ([@jorrit](https://github.com/jorrit))
1499
1500### v2.14.11 (2015-11-12):
1501
1502#### ASK FOR NOTHING, GET LATEST
1503
1504When you run `npm install foo`, you probably expect that you'll get the
1505`latest` version of `foo`, whatever that is. And good news! That's what this
1506change makes it do.
1507
1508We _think_ this is what everyone wants, but if this causes problems for you, we
1509want to know! If it proves problematic for people we will consider reverting it
1510(preferably before this becomes `npm@latest`).
1511
1512Previously, when you ran `npm install foo` we would act as if you typed `npm
1513install foo@*`. Now, like any range-type specifier, in addition to matching the
1514range, it would also have to be `<=` the value of the `latest` dist-tag.
1515Further, it would exclude prerelease versions from the list of versions
1516considered for a match.
1517
1518This worked as expected most of the time, unless your `latest` was a prerelease
1519version, in which case that version wouldn't be used, to everyone's surprise.
1520
1521* [`6f0a646`](https://github.com/npm/npm/commit/6f0a646cd865b24fe3ff25365bf5421780e63e01)
1522  [#10189](https://github.com/npm/npm/issues/10189) `npm-package-arg@4.1.0`:
1523  Change the default version from `*` to `latest`.
1524  ([@zkat](https://github.com/zkat))
1525
1526#### LICENSE CLARIFICATION
1527
1528* [`54a9046`](https://github.com/npm/npm/commit/54a90461f068ea89baa5d70248cdf1581897936d)
1529  [#10326](https://github.com/npm/npm/issues/10326) Clarify what-all is covered
1530  by npm's license and point to the registry's terms of use.
1531  ([@kemitchell](https://github.com/kemitchell))
1532
1533#### CLOSER TO GREEN TRAVIS
1534
1535* [`28efd3d`](https://github.com/npm/npm/commit/28efd3d7dfb2fa3755076ae706ea4d38c6ee6900)
1536  [#10232](https://github.com/npm/npm/issues/10232) `nock@1.9.0`: Downgrade
1537  nock to a version that doesn't depend on streams2 in core so that more of our
1538  tests can pass in 0.8. ([@iarna](https://github.com/iarna))
1539
1540#### A BUG FIX
1541
1542* [`eacac8f`](https://github.com/npm/npm/commit/eacac8f05014d15217c3d8264d0b00a72eafe2d2)
1543  [#9965](https://github.com/npm/npm/issues/9965) Fix a corrupt `package.json`
1544  file introduced by a merge conflict in
1545  [`022691a`](https://github.com/npm/npm/commit/022691a).
1546  ([@waynebloss](https://github.com/waynebloss))
1547
1548#### A DEPENDENCY UPGRADE
1549
1550* [`ea7d8e0`](https://github.com/npm/npm/commit/ea7d8e00a67a3d5877ed72c9728909c848468a9b)
1551  [npm/nopt#51](https://github.com/npm/nopt/pull/51) `nopt@3.0.6`: Allow
1552  types checked to be validated by passed-in name in addition to the JS name of
1553  the type / class. ([@wbecker](https://github.com/wbecker))
1554
1555### v2.14.10 (2015-11-05):
1556
1557There's nothing in here that that isn't in the `npm@3.4.0` release notes, but
1558all of the commit shasums have been adjusted to be correct. Enjoy!
1559
1560#### BUG FIXES VIA DEPENDENCY UPDATES
1561
1562* [`204c558`](https://github.com/npm/npm/commit/204c558c06637a753c0b41d0cf19f564a1ac3715)
1563  [#8640](https://github.com/npm/npm/issues/8640)
1564  [npm/normalize-package-data#69](https://github.com/npm/normalize-package-data/pull/69)
1565  `normalize-package-data@2.3.5`: Fix a bug where if you didn't specify the
1566  name of a scoped module's binary, it would install it such that it was
1567  impossible to call it.  ([@iarna](https://github.com/iarna))
1568* [`bbdf4ee`](https://github.com/npm/npm/commit/bbdf4ee0a3cd12be6a2ace255b67d573a72f1f8f)
1569  [npm/fstream-npm#14](https://github.com/npm/fstream-npm/pull/14)
1570  `fstream-npm@1.0.7`: Only filter `config.gypi` when it's in the build
1571  directory.  ([@mscdex](https://github.com/mscdex))
1572* [`d82ff81`](https://github.com/npm/npm/commit/d82ff81403e906931fac701775723626dcb443b3)
1573  [npm/fstream-npm#15](https://github.com/npm/fstream-npm/pull/15)
1574  `fstream-npm@1.0.6`: Stop including directories that happened to have names
1575  matching whitelisted npm files in npm module tarballs. The most common cause
1576  was that if you had a README directory then everything in it would be
1577  included if wanted it or not. ([@taion](https://github.com/taion))
1578
1579#### DOCUMENTATION FIXES
1580
1581* [`16361d1`](https://github.com/npm/npm/commit/16361d122f2ff6d1a4729c66153b7c24c698fd19)
1582  [#10036](https://github.com/npm/npm/pull/10036) Fix typo / over-abbreviation.
1583  ([@ifdattic](https://github.com/ifdattic))
1584* [`d1343dd`](https://github.com/npm/npm/commit/d1343dda42f113dc322f95687f5a8c7d71a97c35)
1585  [#10176](https://github.com/npm/npm/pull/10176) Fix broken link, scopes =>
1586  scope.  ([@ashleygwilliams](https://github.com/ashleygwilliams))
1587* [`110663d`](https://github.com/npm/npm/commit/110663d000a3908a4853393d9abae481700cf4dc)
1588  [#9460](https://github.com/npm/npm/issue/9460) Specifying the default command
1589  run by "npm start" and the fact that you can pass it arguments.
1590  ([@JuanCaicedo](https://github.com/JuanCaicedo))
1591
1592#### DEPENDENCY UPDATES FOR THEIR OWN SAKE
1593
1594* [`7476d2d`](https://github.com/npm/npm/commit/7476d2d31552a41671c425aa7fcc2844e0381008)
1595  [npm/npmlog#19](https://github.com/npm/npmlog/pull/19)
1596  `npmlog@2.0.0`: Make it possible to emit log messages with `error` as the
1597  prefix.
1598  ([@bengl](https://github.com/bengl))
1599* [`6ca7888`](https://github.com/npm/npm/commit/6ca7888862cfe8bf802dc7c66632c102acd94cf5)
1600  `read-package-json@2.0.2`: Minor cleanups.
1601  ([@KenanY](https://github.com/KenanY))
1602
1603### v2.14.9 (2015-10-29):
1604
1605There's still life in `npm@2`, but for now, enjoy these dependency upgrades!
1606Also, [@othiym23](https://github.com/othiym23) says hi! _waves_
1607[@zkat](https://github.com/zkat) has her hands full, and
1608[@iarna](https://github.com/iarna)'s handling `npm@3`, so I'm dealing with
1609`npm@2` and the totally nonexistent weird bridge `npm@1.4` LTS release that may
1610or may not be happening this week.
1611
1612#### CAN'T STOP WON'T STOP UPDATING THOSE DEPENDENCIES
1613
1614* [`f52f0cb`](https://github.com/npm/npm/commit/f52f0cb51526314197e9d67619feebbd82a397b7)
1615  [#10150](https://github.com/npm/npm/issues/10150) `chmodr@1.0.2`: Use
1616  `fs.lstat()` to check if an entry is a directory, making `chmodr()` work
1617  properly with NFS mounts on Windows. ([@sheerun](https://github.com/sheerun))
1618* [`f7011d7`](https://github.com/npm/npm/commit/f7011d7b3b1d9148a6cd8f7b8359d6fe3269a912)
1619  [#10150](https://github.com/npm/npm/issues/10150) `which@1.2.0`: Additional
1620  command-line parameters, which is nice but not used by npm.
1621  ([@isaacs](https://github.com/isaacs))
1622* [`ebcc0d8`](https://github.com/npm/npm/commit/ebcc0d8629388da0b849bbbad590382cd7268f51)
1623  [#10150](https://github.com/npm/npm/issues/10150) `minimatch@3.0.0`: Don't
1624  package browser version. ([@isaacs](https://github.com/isaacs))
1625* [`8c98dce`](https://github.com/npm/npm/commit/8c98dce5ffe242bafbe92b849e73e8de1803e256)
1626  [#10150](https://github.com/npm/npm/issues/10150) `fstream-ignore@1.0.3`:
1627  Upgrade to use `minimatch@3` (for deduping purposes).
1628  ([@othiym23](https://github.com/othiym23))
1629* [`db9ef33`](https://github.com/npm/npm/commit/db9ef337c253ecf21c921055bf8742e10d1cb3bb)
1630  [#10150](https://github.com/npm/npm/issues/10150) `request@2.65.0`:
1631  Dependency upgrades and a few bug fixes, mostly related to cookie handling.
1632  ([@simov](https://github.com/simov))
1633
1634#### DEVDEPENDENCIES TOO, I GUESS, IT'S COOL
1635
1636* [`dfbf621`](https://github.com/npm/npm/commit/dfbf621afa09c46991249b4f9a995d1823ea7ede)
1637  [#10150](https://github.com/npm/npm/issues/10150) `tap@2.2.0`: Better
1638  handling of test order handling (including some test fixes for npm).
1639  ([@isaacs](https://github.com/isaacs))
1640* [`cf5ad5a`](https://github.com/npm/npm/commit/cf5ad5a8c88bfd72e30ef8a8d1d3c5508e0b3c23)
1641  [#10150](https://github.com/npm/npm/issues/10150) `nock@2.16.0`: More
1642  expectations, documentation, and bug fixes.
1643  ([@pgte](https://github.com/pgte))
1644
1645### v2.14.8 (2015-10-08):
1646
1647#### SLOWLY RECOVERING FROM FEELINGS
1648
1649OS&F is definitely my favorite convention I've gone to. Y'all should check it
1650out next year! Rebecca and Kat are back, although Forrest is out at
1651[&yet conf](http://andyetconf.com/).
1652
1653This week sees another tiny LTS release with non-code-related patches -- just
1654CI/release things.
1655
1656Meanwhile, have you heard? `npm@3` is much faster now! Go upgrade with `npm
1657install -g npm@latest` and give it a whirl if you haven't already!
1658
1659#### IF YOU CHANGE CASING ON A FILE, YOU ARE NOT MY FRIEND
1660
1661Seriously. I love me some case-sensitive filesystems, but a lot of us have to
1662deal with `git` and its funky support for case normalizing systems. Have mercy
1663and just don't bother if all you're changing is casing, please? Otherwise, I
1664have to do this little dance to prevent horrible conflicts.
1665
1666* [`c3a7b61`](https://github.com/npm/npm/commit/c3a7b619786650a45653c8b55b8741fc7bb5cfda)
1667  [#9804](https://github.com/npm/npm/pulls/9804) Remove the readme file with
1668  weird casing.
1669  ([@zkat](https://github.com/zkat))
1670* [`f3f619e`](https://github.com/npm/npm/commit/f3f619e06e4be1378dbf286f897b50e9c69c9557)
1671  [#9804](https://github.com/npm/npm/pulls/9804) Add the readme file back in,
1672  with desired casing.
1673  ([@zkat](https://github.com/zkat))
1674
1675#### IDK. OUR CI DOESN'T EVEN FULLY WORK YET BUT SURE
1676
1677Either way, it's nice to make sure we're running stuff on the latest Node. `4.2`
1678is getting released very soon, though (this week?), and that'll be the first
1679official LTS release!
1680
1681* [`bd0b9ab`](https://github.com/npm/npm/commit/bd0b9ab6e60a31448794bbd88f94672572c3cb55)
1682  [#9827](https://github.com/npm/npm/pulls/9827) Add node `4.0` and `4.1` to
1683  TravisCI
1684  ([@JaKXz](https://github.com/JaKXz))
1685
1686### v2.14.7 (2015-10-01):
1687
1688#### MORE RELEASE STAGGERING?!
1689
1690Hi all, and greetings from [Open Source & Feelings](http://osfeels.com)!
1691
1692So we're switching gears a little with how we handle our weekly releases: from
1693now on, we're going to stagger release weeks between dependency bumps and
1694regular patches. So, this week, aside from a doc change, we'll be doing only
1695version bumps. Expect actual patches next week!
1696
1697#### TOTALLY FOLLOWING THE RULES ALREADY
1698
1699So I snuck this in, because it's our own [@snopeks](https://github.com/snopeks)'
1700first contribution to the main `npm` repo. She's been helping with building
1701support documents for Orgs, and contributed her general intro guide to the new
1702feature so you can read it with `npm help orgs` right in your terminal!
1703
1704* [`8324ea0`](https://github.com/npm/npm/commit/8324ea023ace4e08b6b8959ad199e2457af9f9cf)
1705  [#9761](https://github.com/npm/npm/pull/9761) Added general user guide for
1706  Orgs.
1707  ([@snopeks](https://github.com/snopeks))
1708
1709#### JUST. ONE. MORE.
1710
1711* [`9a502ca`](https://github.com/npm/npm/commit/9a502ca96e2d43ec75a8f684c9ca33af7e910f0a)
1712  Use unique package name in tests to work around weird test-state-based
1713  failures.
1714  ([@iarna](https://github.com/iarna))
1715
1716#### OKAY ACTUALLY THE THING I WAS SUPPOSED TO DO
1717
1718Anyway -- here's your version bump! :)
1719
1720* [`4aeb94c`](https://github.com/npm/npm/commit/4aeb94c9f0df3f41802cf2e0397a998f3b527c25)
1721  `request@2.64.0`: No longer defaulting to `application/json` for `json`
1722  requests. Also some minor doc and packaging patches.
1723  ([@simov](https://github.com/simov))
1724  `minimatch@3.0.0`: No longer packaging browser modules.
1725  ([@isaacs](https://github.com/isaacs))
1726* [`a18b213`](https://github.com/npm/npm/commit/a18b213e6945a8f5faf882927829ac95f844e2aa)
1727  `glob@5.0.15`: Upgraded `minimatch` dependency.
1728  ([@isaacs](https://github.com/isaacs))
1729* [`9eb64d4`](https://github.com/npm/npm/commit/9eb64e44509519ca9d788502edb2eba4cea5c86b)
1730  `nock@2.13.0`
1731  ([@pgte](https://github.com/pgte))
1732
1733### v2.14.6 (2015-09-24):
1734
1735#### `¯\_(ツ)_/¯`
1736
1737Since `2.x` is LTS now, you can expect a slowdown in overall release sizes. On
1738top of that, we had our all-company-npm-internal-conf thing on Monday and
1739Tuesday so there wasn't really time to do much at all.
1740
1741Still, we're bringing you a couple of tiny little changes this week!
1742
1743* [`7b7da13`](https://github.com/npm/npm/commit/7b7da13c6cdf5eae53c20d5c69afc4c16e6f715d)
1744  [#9471](https://github.com/npm/npm/pull/9471) When the port for a tarball is
1745  different than the registry it's in, but the hostname is the same, the
1746  protocol is now allowed to change, too.
1747  ([@fastest963](https://github.com/fastest963))
1748* [`6643ada`](https://github.com/npm/npm/commit/6643adaf9f37f08893e3ad28b797c55a36b2a152)
1749  `request@2.63.0`: Use `application/json` as the default content type when
1750  making `json` requests.
1751  ([@simov](https://github.com/simov))
1752
1753### v2.14.5 (2015-09-17):
1754
1755#### NPM IS DEAD. LONG LIVE NPM
1756
1757That's right folks. As of this week, `npm@next` is `npm@3`, which means it'll be
1758`npm@latest` next week! There's some really great shiny new things over there,
1759and you should really take a look.
1760
1761Many kudos to [@iarna](https://github.com/iarna) for her hard work on `npm@3`!
1762
1763Don't worry, we'll keep `2.x` around for a while (as LTS), but you won't see
1764many, if any, new features on this end. From now on, we're going to use
1765`latest-2` and `next-2` as the dist tags for the `npm@2` branch.
1766
1767#### OKAY THAT'S FINE CAN I DEPRECATE THINGS NOW?
1768
1769Yes! Specially if you're using scoped packages. Apparently, deprecating them
1770never worked, but that should be better now. :)
1771
1772* [`eca7b24`](https://github.com/npm/npm/commit/eca7b24de9a0090da02a93a69726f5e70ab80543)
1773  [#9558](https://github.com/npm/npm/issues/9558) Add tests for npm deprecate.
1774  ([@zkat](https://github.com/zkat))
1775* [`648fe16`](https://github.com/npm/npm/commit/648fe16157ef0db22395ae056d1dd4b4c1605bf4)
1776  [#9558](https://github.com/npm/npm/issues/9558) `npm-registry-client@7.0.7`:
1777  Fixes `npm deprecate` so you can actually deprecate scoped modules now (it
1778  never worked).
1779  ([@zkat](https://github.com/zkat))
1780
1781#### WTF IS `node-waf`
1782
1783idk. Some old thing. We don't talk about it anymore.
1784
1785* [`cf1b39f`](https://github.com/npm/npm/commit/cf1b39fc95a9ffad7fba4c2fee705c53b19d1d16)
1786  [#9584](https://github.com/npm/npm/issues/9584) Fix ancient references to
1787  `node-waf` in the docs to refer to the `node-gyp` version of things.
1788  ([@KenanY](https://github.com/KenanY))
1789
1790#### THE `graceful-fs` AND `node-gyp` SAGA CONTINUES
1791
1792Last week had some sweeping `graceful-fs` upgrades, and this takes care of one
1793of the stragglers, as well as bumping `node-gyp`. `node@4` users might be
1794excited about this, or even `node@<4` users who previously had to cherry-pick a
1795bunch of patches to get the latest npm working.
1796
1797* [`e07354f`](https://github.com/npm/npm/commit/e07354f3ff3a6be568fe950f1f825897f72912d8)
1798  `sha@2.0.1`: Upgraded graceful-fs!
1799  ([@ForbesLindesay](https://github.com/ForbesLindesay))
1800* [`83cb6ee`](https://github.com/npm/npm/commit/83cb6ee4045b85e565e9678ca1878877e1dc75bd)
1801  `node-gyp@3.0.3`
1802  ([@rvagg](https://github.com/rvagg))
1803
1804#### DEPS! DEPS! MORE DEPS! OK STOP DEPS
1805
1806* [`0d60888`](https://github.com/npm/npm/commit/0d608889615a1cb63f5f852337e955053f201aeb)
1807  `normalize-package-data@2.3.4`: Use an external package to check for built-in
1808  node modules.
1809  ([@sindresorhus](https://github.com/sindresorhus))
1810* [`79b4dac`](https://github.com/npm/npm/commit/79b4dac11f1c2d8ad5489fc3104734e1c10d4793)
1811  `retry@0.8.0`
1812  ([@tim-kos](https://github.com/tim-kos))
1813* [`c164941`](https://github.com/npm/npm/commit/c164941d3c792904d5b126a4fd36eefbe0699f52)
1814  `request@2.62.0`: node 4 added to build targets. Option initialization issues
1815  fixed.
1816  ([@simov](https://github.com/simov))
1817* [`0fd878a`](https://github.com/npm/npm/commit/0fd878a44d5ae303325808d1f00df4dce7549d50)
1818  `lru-cache@2.7.0`: Cache serialization support and fixes a cache length bug.
1819  ([@isaacs](https://github.com/isaacs))
1820* [`6a7a114`](https://github.com/npm/npm/commit/6a7a114a45b4699995d6e09164fdfd0fa1274591)
1821  `nock@2.12.0`
1822  ([@pgte](https://github.com/pgte))
1823* [`6b25e6d`](https://github.com/npm/npm/commit/6b25e6d2235c11f4444104db4545cb42a0267666)
1824  `semver@5.0.3`: Removed uglify-js dead code.
1825  ([@isaacs](https://github.com/isaacs))
1826
1827### v2.14.4 (2015-09-10):
1828
1829#### THE GREAT NODEv4 SAGA
1830
1831So [Node 4 is out now](https://nodejs.org/en/blog/release/v4.0.0/) and that's
1832going to involve a number of things over in npm land. Most importantly, it's the
1833last major release that will include the `2.x` branch of npm. That also means
1834that `2.x` is going to go into LTS mode in the coming weeks -- once `npm@3`
1835becomes our official `latest` release. You can most likely expect Node 5 to
1836include `npm@3` by default, whenever that happens. We'll go into more detail
1837about LTS at that point, as well, so keep your eyes peeled for announcements!
1838
1839#### NODE IS DEAD. LONG LIVE NODE!
1840
1841Node 4 being released means that a few things that used to be floating patches
1842are finally making it right into npm proper. This week, we've got two such
1843updates, both to dependencies:
1844
1845* [`505d9e4`](https://github.com/npm/npm/commit/505d9e40c13b8b0bb3f70ee9886f7b73ba569407)
1846  `node-gyp@3.0.1`: Support for node nightlies and compilation for both node and
1847  io.js without extra patching
1848  ([@rvagg](https://github.com/rvagg))
1849
1850[@thefourtheye](https://github.com/thefourtheye) was kind enough to submit a
1851*bunch* of PRs to npm's dependencies updating them to `graceful-fs@4.1.2`, which
1852mainly makes it so we're no longer monkey-patching `fs`. The following are all
1853updates related to this:
1854
1855* [`10cb189`](https://github.com/npm/npm/commit/10cb189c773fef804214018d57509cc7a943184b)
1856  `write-file-atomic@1.1.3`
1857  ([@thefourtheye](https://github.com/thefourtheye))
1858* [`edfb80b`](https://github.com/npm/npm/commit/edfb80b39f8cfce9a993f139eb98248001198e09)
1859  `tar@2.2.1`
1860  ([@thefourtheye](https://github.com/thefourtheye))
1861* [`aa6e1ee`](https://github.com/npm/npm/commit/aa6e1eede7d71fa69d7256afdfbaa3406bc39a5b)
1862  `read-package-json@2.0.1`
1863  ([@thefourtheye](https://github.com/thefourtheye))
1864* [`18971a3`](https://github.com/npm/npm/commit/18971a361635ed3958ecd39b63930ae1e56f8612)
1865  `read-installed@4.0.3`
1866  ([@thefourtheye](https://github.com/thefourtheye))
1867* [`a4cba71`](https://github.com/npm/npm/commit/a4cba71bd2532236fda7385bf55e8790cafd4f0a)
1868  `fstream@1.0.8`
1869  ([@thefourtheye](https://github.com/thefourtheye))
1870* [`70a38e2`](https://github.com/npm/npm/commit/70a38e29418951ac61ab6cf269d188074fe8ac3a)
1871  `fs-write-stream-atomic@1.0.4`
1872  ([@thefourtheye](https://github.com/thefourtheye))
1873* [`9cbd20f`](https://github.com/npm/npm/commit/9cbd20f691e37960e4ba12d401abd1069657cb47)
1874  `fs-vacuum@1.2.7`
1875  ([@thefourtheye](https://github.com/thefourtheye))
1876
1877#### OTHER PATCHES
1878
1879* [`c4dd521`](https://github.com/npm/npm/commit/c4dd5213b2f3283ea0392845e5f78cac4573529e)
1880  [#9506](https://github.com/npm/npm/issues/9506) Make `npm link` work on
1881  Windows when using node pre-release/RC releases.
1882  ([@jon-hall](https://github.com/jon-hall))
1883* [`b6bc29c`](https://github.com/npm/npm/commit/b6bc29c1401b3d6b570c09cbef1866bdb0436b59)
1884  [#9544](https://github.com/npm/npm/issues/9549) `process.binding` is being
1885  deprecated, so our only direct usage has been removed.
1886  ([@ChALkeR](https://github.com/ChALkeR))
1887
1888#### MORE DEPENDENCIES!
1889
1890* [`d940594`](https://github.com/npm/npm/commit/d940594e479a7f012b6dd6952e8ef985ba2a6216)
1891  `tap@1.4.1`
1892  ([@isaacs](https://github.com/isaacs))
1893* [`ee38486`](https://github.com/npm/npm/commit/ee3848669331fd98879a3175789d963543f67ce3)
1894  `which@1.1.2`: Added tests for Windows-related dead code that was previously
1895  helping a silent failure happen.  Travis stuff, too.
1896  ([@isaacs](https://github.com/isaacs))
1897
1898#### DOC UPDATES
1899
1900* [`475daf5`](https://github.com/npm/npm/commit/475daf54ad07777938d1d7ee1a3e576961e84510)
1901  [#9492](https://github.com/npm/npm/issues/9492) Clarify how `.npmignore` and
1902  `.gitignore` are found and used by npm.
1903  ([@addaleax](https://github.com/addaleax))
1904* [`b2c391d`](https://github.com/npm/npm/commit/b2c391d7833249626a6d7650363a83bcc778717a)
1905  `nopt@3.0.4`: Minor clarifications to docs about how array and errors work.
1906  ([@zkat](https://github.com/zkat))
1907
1908### v2.14.3 (2015-09-03):
1909
1910#### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID.
1911
1912Our closed beta for Teens and Orcs is happening! The web team is hard at work
1913making sure everything looks pretty and usable and such. Once we fix things
1914stemming from that beta, you can expect the feature to be available publicly.
1915Some time after that, it'll even be available for free for FOSS orgs. It'll Be
1916Done When It's Done™.
1917
1918#### OH GOOD, I CAN ACTUALLY UPSTREAM NOW
1919
1920Looks like last week's release foiled our own test suite when trying to upstream
1921it to Node! Just a friendly reminder that no, `.npmrc` is no longer included
1922then you pack/release a package! [@othiym23](https://github.com/othiym23) and
1923[@isaacs](https://github.com/isaacs) managed to suss the really strange test
1924failures resulting from that, and we've patched it in this release.
1925
1926* [`01a3428`](https://github.com/npm/npm/commit/01a3428534b754dca89a56fd1e49f55cb22f6f25)
1927  [#9476](https://github.com/npm/npm/issues/9476) test: Recreate missing
1928  `.npmrc` files when missing so downstream packagers can run tests on packed
1929  npm.
1930  ([@othiym23](https://github.com/othiym23))
1931
1932#### TALKING ABOUT THE CHANGELOG IN THE CHANGELOG IS LIKE, POMO OR SOMETHING
1933
1934* [`c1e7a83`](https://github.com/npm/npm/commit/c1e7a83c0ae7aadf01aecc57cf8a0ae2009d4da8)
1935  [#9431](https://github.com/npm/npm/issues/9431) CHANGELOG: clarify
1936  windows-related nature of patch
1937  ([@saper](https://github.com/saper))
1938
1939#### devDependencies UPDATED
1940
1941No actual dep updates this week, but we're bumping a couple of devDeps:
1942
1943* [`8454835`](https://github.com/npm/npm/commit/84548351bfd63e3e305d195abbcad24c6b7c3e8e)
1944  `tap@1.4.0`: Add `t.contains()` as alias to `t.match()`
1945  ([@isaacs](https://github.com/isaacs))
1946* [`13d2216`](https://github.com/npm/npm/commit/13d22161bcdeb6e1ed095d5ba2f77e6abfffa5eb)
1947  `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode
1948  ([@isaacs](https://github.com/isaacs))
1949
1950### v2.14.2 (2015-08-27):
1951
1952#### GETTING THAT PESKY `preferGlobal` WARNING RIGHT
1953
1954So apparently the `preferGlobal` option hasn't quite been warning correctly for
1955some time. But now it should be all better! tl;dr: if you try and install a
1956dependency with `preferGlobal: true`, and it's _not already_ in your
1957`package.json`, you'll get a warning that the author would really rather you
1958install it with `--global`. This should prevent Windows PowerShell from thinking
1959npm has failed just because of a benign warning.
1960
1961* [`bbb25f3`](https://github.com/npm/npm/commit/bbb25f30d582f8979168c79233a9f8f840974f90)
1962  [#8841](https://github.com/npm/npm/issues/8841)
1963  [#9409](https://github.com/npm/npm/issues/9409) The `preferGlobal`
1964  warning shouldn't happen if the dependency being installed is listed in
1965  `devDependencies`. ([@saper](https://github.com/saper))
1966* [`222fcec`](https://github.com/npm/npm/commit/222fcec85ccd30d35899e5037079fb14625af4e2)
1967  [#9409](https://github.com/npm/npm/issues/9409) `preferGlobal` now prints a
1968  warning when there are no dependencies for the current package.
1969  ([@zkat](https://github.com/zkat))
1970* [`5cfed6d`](https://github.com/npm/npm/commit/5cfed6d7a1a5f2731688cfc8293b5e43a6355393)
1971  [#9409](https://github.com/npm/npm/issues/9409) Verify that
1972  `preferGlobal` is warning as expected (when a `preferGlobal` dependency is
1973  installed, but isn't listed in either `dependencies` or `devDependencies`).
1974  ([@zkat](https://github.com/zkat))
1975
1976#### BUMP +1
1977
1978* [`eeafce2`](https://github.com/npm/npm/commit/eeafce2d06883c0f51bf403415b6bc5f2647eba3)
1979  `validate-npm-package-license@3.0.1`: Include additional metadata in parsed license object,
1980  useful for license checkers. ([@kemitchell](https://github.com/kemitchell))
1981* [`1502a28`](https://github.com/npm/npm/commit/1502a285f84aa548806b3eafc8889e6288e810f3)
1982  `normalise-package-data@2.3.2`: Updated to use `validate-npm-package-license@3.0.1`.
1983  ([@othiym23](https://github.com/othiym23))
1984* [`cbde823`](https://github.com/npm/npm/commit/cbde8233436bf0ea62a4740869b4990322c20659)
1985  `init-package-json@1.9.1`: Add a `silent` option to suppress output on writing the
1986  generated `package.json`. Also, updated to use `validate-npm-package-license@3.0.1`.
1987  ([@zkat](https://github.com/zkat))
1988* [`08fda46`](https://github.com/npm/npm/commit/08fda465452b4d77f1ced8050ee3a35a77fc30a5)
1989  `tar@2.2.0`: Minor improvements. ([@othiym23](https://github.com/othiym23))
1990* [`dc2f20b`](https://github.com/npm/npm/commit/dc2f20b53fff77203139c863b48da0e959df2ac9)
1991  `rimraf@2.4.3`: `EPERM` now triggers a delay / retry loop (since Windows throws
1992  this when things still hold a handle). ([@isaacs](https://github.com/isaacs))
1993* [`e8acb27`](https://github.com/npm/npm/commit/e8acb273aa67ee0394d0431650e1b2a7d09c8554)
1994  `read@1.0.7`: Fix licensing ambiguity. ([@isaacs](https://github.com/isaacs))
1995
1996#### OTHER STUFF THAT'S RELEVANT
1997
1998* [`73a1ee0`](https://github.com/npm/npm/commit/73a1ee0be90fa1928521b63f28bef83b8ffab61d)
1999  [#9386](https://github.com/npm/npm/issues/9386) Include additional unignorable files in
2000  documentation.
2001  ([@mjhasbach](https://github.com/mjhasbach))
2002* [`0313e40`](https://github.com/npm/npm/commit/0313e40ee0f757fce8861be590ad668c23d7be53)
2003  [#9396](https://github.com/npm/npm/issues/9396) Improve the `EISDIR` error
2004  message returned by npm's error-handling code to give users a better hint of
2005  what's most likely going on.  Usually, error reports with this error code are
2006  about people trying to install things without a `package.json`.
2007  ([@KenanY](https://github.com/KenanY))
2008* [`2677457`](https://github.com/npm/npm/commit/26774579c739c5951351e58263cf4d6ea3d66ec8)
2009  [#9360](https://github.com/npm/npm/issues/9360) Make it easier to run
2010  only _some_ of npm tests with lifecycle scripts via `npm tap test/tap/testname.js`.
2011  ([@iarna](https://github.com/iarna))
2012
2013### v2.14.1 (2015-08-20):
2014
2015#### SECURITY FIX
2016
2017There are patches for two information leaks of moderate severity in `npm@2.14.1`:
2018
20191. In some cases, npm was leaking sensitive credential information into the
2020   child environment when running package and lifecycle scripts. This could
2021   lead to packages being published with files (most notably `config.gypi`, a
2022   file created by `node-gyp` that is a cache of environmental information
2023   regenerated on every run) containing the bearer tokens used to authenticate
2024   users to the registry. Users with affected packages have been notified (and
2025   the affected tokens invalidated), and now npm has been modified to not
2026   upload files that could contain this information, as well as scrubbing the
2027   sensitive information out of the environment passed to child scripts.
20282. Per-package `.npmrc` files are used by some maintainers as a way to scope
2029   those packages to a specific registry and its credentials. This is a
2030   reasonable use case, but by default `.npmrc` was packed into packages,
2031   leaking those credentials.  npm will no longer include `.npmrc` when packing
2032   tarballs.
2033
2034If you maintain packages and believe you may be affected by either
2035of the above scenarios (especially if you've received a security
2036notification from npm recently), please upgrade to `npm@2.14.1` as
2037soon as possible. If you believe you may have inadvertently leaked
2038your credentials, upgrade to `npm@2.14.1` on the affected machine,
2039and run `npm logout` and then `npm login`. Your access tokens will be
2040invalidated, which will eliminate any risk posed by tokens inadvertently
2041included in published packages. We apologize for the inconvenience this
2042causes, as well as the oversight that led to the existence of this issue
2043in the first place.
2044
2045Huge thanks to [@ChALkeR](https://github.com/ChALkeR) for bringing these
2046issues to our attention, and for helping us identify affected packages
2047and maintainers. Thanks also to the Node.js security working group for
2048their coördination with the team in our response to this issue. We
2049appreciate everybody's patience and understanding tremendously.
2050
2051* [`b9474a8`](https://github.com/npm/npm/commit/b9474a843ca55b7c5fac6da33989e8eb39aff8b1)
2052  `fstream-npm@1.0.5`: Stop publishing build cruft (`config.gypi`) and per-project
2053  `.npmrc` files to keep local configuration out of published packages.
2054  ([@othiym23](https://github.com/othiym23))
2055* [`13c286d`](https://github.com/npm/npm/commit/13c286dbdc3fa8fec4cb79fc4d1ee505c8a41b2e)
2056  [#9348](https://github.com/npm/npm/issues/9348) Filter "private"
2057  (underscore-prefixed, even when scoped to a registry) configuration values
2058  out of child environments. ([@othiym23](https://github.com/othiym23))
2059
2060#### BETTER WINDOWS INTEGRATION, ONE STEP AT A TIME
2061
2062* [`e40e71f`](https://github.com/npm/npm/commit/e40e71f2f838a8a42392f44e3eeec04e323ab743)
2063  [#6412](https://github.com/npm/npm/issues/6412) Improve the search strategy
2064  used by the npm shims for Windows to prioritize your own local npm installs.
2065  npm has really needed this tweak for a long time, so hammer on it and let us
2066  know if you run into issues, but with luck it will Just Work.
2067  ([@joaocgreis](https://github.com/joaocgreis))
2068* [`204ebbb`](https://github.com/npm/npm/commit/204ebbb3e0cab696a429a878ceeb4a7e78ec2b94)
2069  [#8751](https://github.com/npm/npm/issues/8751)
2070  [#7333](https://github.com/npm/npm/issues/7333) Keep [autorun
2071  scripts](https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx) from
2072  interfering with npm package and lifecycle script execution on Windows by
2073  adding `/d` and `/s` when invoking `cmd.exe`.
2074  ([@saper](https://github.com/saper))
2075
2076#### IT SEEMED LIKE AN IDEA AT THE TIME
2077
2078* [`286f3d9`](https://github.com/npm/npm/commit/286f3d97103812f0fd84b70352addbe899e258f9)
2079  [#9201](https://github.com/npm/npm/pull/9201) For a while npm was building
2080  HTML partials for use on [`docs.npmjs.com`](https://docs.npmjs.com), but we
2081  weren't actually using them. Stop building them, which makes running the full
2082  test suite and installation process around a third faster.
2083  ([@isaacs](https://github.com/isaacs))
2084
2085#### A SINGLE LONELY DEPENDENCY UPGRADE
2086
2087* [`b343b95`](https://github.com/npm/npm/commit/b343b956ef777e321e4251ddc96ec6d80827d9e2)
2088  `request@2.61.0`: Bug fixes and keep-alive tweaks.
2089  ([@simov](https://github.com/simov))
2090
2091### v2.14.0 (2015-08-13):
2092
2093#### IT'S HERE! KINDA!
2094
2095This release adds support for teens and orcs (err, teams and organizations) to
2096the npm CLI! Note that the web site and registry-side features of this are
2097still not ready for public consumption.
2098
2099A beta should be starting in the next couple of weeks, and the features
2100themselves will become public once all that's done. Keep an eye out for more
2101news!
2102
2103All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9011):
2104
2105* [`6424170`](https://github.com/npm/npm/commit/6424170fc17c666a6efc090370ec691e0cab1792)
2106  Added new `npm team` command and subcommands.
2107  ([@zkat](https://github.com/zkat))
2108* [`52220d1`](https://github.com/npm/npm/commit/52220d146d474ec29b683bd99c06f75cbd46a9f4)
2109  Added documentation for new `npm team` command.
2110  ([@zkat](https://github.com/zkat))
2111* [`4e66830`](https://github.com/npm/npm/commit/4e668304850d02df8eb27a779fda76fe5de645e7)
2112  Updated `npm access` to support teams and organizations.
2113  ([@zkat](https://github.com/zkat))
2114* [`ea3eb87`](https://github.com/npm/npm/commit/ea3eb8733d9fa09ce34106b1b19fb1a8f95844a5)
2115  Gussied up docs for `npm access` with new commands.
2116  ([@zkat](https://github.com/zkat))
2117* [`6e0b431`](https://github.com/npm/npm/commit/6e0b431c1de5e329c86e57d097aa88ebfedea864)
2118  Fix up `npm whoami` to make the underlying API usable elsewhere.
2119  ([@zkat](https://github.com/zkat))
2120* [`f29c931`](https://github.com/npm/npm/commit/f29c931012ce5ccd69c29d83548f27e443bf7e62)
2121  `npm-registry-client@7.0.1`: Upgrade `npm-registry-client` API to support
2122  `team` and `access` calls against the registry.
2123  ([@zkat](https://github.com/zkat))
2124
2125#### A FEW EXTRA VERSION BUMPS
2126
2127* [`c977e12`](https://github.com/npm/npm/commit/c977e12cbfa50c2f52fc807f5cc19ba1cc1b39bf)
2128  `init-package-json@1.8.0`: Checks for some `npm@3` metadata.
2129  ([@iarna](https://github.com/iarna))
2130* [`5c8c9e5`](https://github.com/npm/npm/commit/5c8c9e5ae177ba7d0d298cfa42f3fc7f0271e4ec)
2131  `columnify@1.5.2`: Updated some dependencies.
2132  ([@timoxley](https://github.com/timoxley))
2133* [`5d56742`](https://github.com/npm/npm/commit/5d567425768b75aeab402c817a53d8b2bc60d8de)
2134  `chownr@1.0.1`: Tests, docs, and minor style nits.
2135  ([@isaacs](https://github.com/isaacs))
2136
2137#### ALSO A DOC FIX
2138
2139* [`846fcc7`](https://github.com/npm/npm/commit/846fcc79b86984b109a97366b0422f995a45f8bf)
2140  [`#9200`](https://github.com/npm/npm/pull/9200) Remove single quotes
2141  around semver range, thus making it valid semver.
2142  ([@KenanY](https://github.com/KenanY))
2143
2144### v2.13.5 (2015-08-07):
2145
2146This is another quiet week for the `npm@2` release.
2147[@zkat](https://github.com/zkat) has been working hard on polishing the CLI
2148bits of the registry's new feature to support direct management of teams and
2149organizations, and [@iarna](https://github.com/iarna) continues to work through
2150the list of issues blocking the general release of `npm@3`, which is looking
2151more and more solid all the time.
2152
2153[@othiym23](https://github.com/othiym23) and [@zkat](https://github.com/zkat)
2154have also been at this week's Node.js / io.js [collaborator
2155summit](https://github.com/nodejs/summit/tree/master), both as facilitators and
2156participants. This is a valuable opportunity to get some face time with other
2157contributors and to work through a bunch of important discussions, but it does
2158leave us feeling kind of sleepy. Running meetings is hard!
2159
2160What does that leave for this release? A few of the more tricky bug fixes that
2161have been sitting around for a little while now, and a couple dependency
2162upgrades. Nothing too fancy, but most of these were contributed by developers
2163like _you_, which we think is swell. Thanks!
2164
2165#### BUG FIXES
2166
2167* [`d7271b8`](https://github.com/npm/npm/commit/d7271b8226712479cdd339bf85faf7e394923e0d)
2168  [#4530](https://github.com/npm/npm/issues/4530) The bash completion script
2169  for npm no longer alters global completion behavior around word breaks.
2170  ([@whitty](https://github.com/whitty))
2171* [`c9ce294`](https://github.com/npm/npm/commit/c9ce29415a0a8fc610690b6e9d91b64d6e36cfcc)
2172  [#7198](https://github.com/npm/npm/issues/7198) When setting up dependencies
2173  to be shared via `npm link <package>`, only run the lifecycle scripts during
2174  the original link, not when running `npm link <package>` or `npm install
2175  --link` against them. ([@murgatroid99](https://github.com/murgatroid99))
2176* [`422da66`](https://github.com/npm/npm/commit/422da664bd3ce71313da447f170507faf5aac46a)
2177  [#9108](https://github.com/npm/npm/issues/9108) Clear up minor confusion
2178  around wording in `bundledDependencies` section of `package.json` docs.
2179  ([@derekpeterson](https://github.com/derekpeterson))
2180* [`6b42d99`](https://github.com/npm/npm/commit/6b42d99460885e715772d3487b1c548d2bc8a738)
2181  [#9146](https://github.com/npm/npm/issues/9146) Include scripts that run for
2182  `preversion`, `version`, and `postversion` in the section for lifecycle
2183  scripts rather than the generic `npm run-script` output.
2184  ([@othiym23](https://github.com/othiym23))
2185
2186#### NOPE, NOT DONE WITH DEPENDENCY UPDATES
2187
2188* [`91a48bb`](https://github.com/npm/npm/commit/91a48bb5ef5a990781c86f8b69b8a32cf4fac2d9)
2189  `chmodr@1.0.1`: Ignore symbolic links when recursively changing mode, just
2190  like the Unix command. ([@isaacs](https://github.com/isaacs))
2191* [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e)
2192  `nock@2.10.0` ([@pgte](https://github.com/pgte))
2193
2194### v2.13.4 (2015-07-30):
2195
2196#### JULY ENDS ON A FAIRLY QUIET NOTE
2197
2198Hey everyone! I hope you've had a great week. We're having a fairly small
2199release this week while we wrap up Teams and Orgs (or, as we've taken to calling
2200it internally, _Teens and Orcs_).
2201
2202In other exciting news, a bunch of us are gonna be at the [Node.js Collaborator
2203Summit](https://github.com/nodejs/summit/issues/1), and you can also find us at
2204[wafflejs](https://wafflejs.com/) on Wednesday. Hopefully we'll be seeing some
2205of you there. :)
2206
2207#### THE PATCH!!!
2208
2209So here it is. The patch. Hope it helps. (Thanks,
2210[@ktarplee](https://github.com/ktarplee)!)
2211
2212* [`2e58c48`](https://github.com/npm/npm/commit/2e58c4819e3cafe4ae23ab7f4a520fe09258cfd7)
2213  [#9033](https://github.com/npm/npm/pull/9033) `npm version` now works on git
2214  submodules
2215  ([@ktarplee](https://github.com/ktarplee))
2216
2217#### OH AND THERE'S A DEV DEPENDENCIES UPDATE
2218
2219Hooray.
2220
2221* [`d204683`](https://github.com/npm/npm/commit/d2046839d471322e61e3ceb0f00e78e5c481f967)
2222  `nock@2.9.1`
2223  ([@pgte](https://github.com/pgte))
2224
2225### v2.13.3 (2015-07-23):
2226
2227#### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES
2228
2229It's pretty hard to outdo last week's release buuuuut~ I promise I'll have a
2230treat when we release our shiny new **Teams and Organizations** feature! :D
2231(Coming Soon™). It'll be a real *gem*.
2232
2233That means it's a pretty low-key release this week. We got some nice
2234documentation tweaks, a few bugfixes, and other such things, though!
2235
2236Oh, and a _bunch of version bumps_. Thanks, `semver`!
2237
2238#### IT'S THE LITTLE THINGS THAT MATTER
2239
2240* [`2fac6ae`](https://github.com/npm/npm/commit/2fac6aeffefba2934c3db395b525d931599c34d8)
2241  [#9012](https://github.com/npm/npm/issues/9012) A convenience for releases --
2242  using the globally-installed npm before now was causing minor annoyances, so
2243  we just use the exact same npm we're releasing to build the new release.
2244  ([@zkat](https://github.com/zkat))
2245
2246#### WHAT DOES THIS BUTTON DO?
2247
2248There's a couple of doc updates! The last one might be interesting.
2249
2250* [`4cd3205`](https://github.com/npm/npm/commit/4cd32050c0f89b7f1ae486354fa2c35eea302ba5)
2251  [#9002](https://github.com/npm/npm/issues/9002) Updated docs to list the
2252  various files that npm automatically includes and excludes, regardless of
2253  settings.
2254  ([@SimenB](https://github.com/SimenB))
2255* [`cf09e75`](https://github.com/npm/npm/commit/cf09e754931739af32647d667b671e72a4c79081)
2256  [#9022](https://github.com/npm/npm/issues/9022) Document the `"access"` field
2257  in `"publishConfig"`. Did you know you don't need to use `--access=public`
2258  when publishing scoped packages?! Just put it in your `package.json`!
2259  Go refresh yourself on scopes packages by [checking our docs](https://docs.npmjs.com/getting-started/scoped-packages) on them.
2260  ([@boennemann](https://github.com/boennemann))
2261* [`bfd73da`](https://github.com/npm/npm/commit/bfd73da33349cc2afb8278953b2ae16ea95023de)
2262  [#9013](https://github.com/npm/npm/issues/9013) fixed typo in changelog
2263  ([@radarhere](https://github.com/radarhere))
2264
2265#### THE SEMVER MAJOR VERSION APOCALYPSE IS UPON US
2266
2267Basically, `semver` is up to `@5`, and that meant we needed to go in an update a
2268bunch of our dependencies manually. `node-gyp` is still pending update, since
2269it's not ours, though!
2270
2271* [`9232e58`](https://github.com/npm/npm/commit/9232e58d54c032c23716ef976023d36a42bfdcc9)
2272  [#8972](https://github.com/npm/npm/issues/8972) `init-package-json@1.7.1`
2273  ([@othiym23](https://github.com/othiym23))
2274* [`ba44f6b`](https://github.com/npm/npm/commit/ba44f6b4201a4faee025341b123e372d8f45b6d9)
2275  [#8972](https://github.com/npm/npm/issues/8972) `normalize-package-data@2.3.1`
2276  ([@othiym23](https://github.com/othiym23))
2277* [`3901d3c`](https://github.com/npm/npm/commit/3901d3cf191880bb4420b1d6b8aedbcd8fc26cdf)
2278  [#8972](https://github.com/npm/npm/issues/8972) `npm-install-checks@1.0.6`
2279  ([@othiym23](https://github.com/othiym23))
2280* [`ffcc7dd`](https://github.com/npm/npm/commit/ffcc7dd12f8bb94ff0f64c465c57e460b3f24a24)
2281  [#8972](https://github.com/npm/npm/issues/8972) `npm-package-arg@4.0.2`
2282  ([@othiym23](https://github.com/othiym23))
2283* [`7128f9e`](https://github.com/npm/npm/commit/7128f9ec10c0c8482087511b716dbddb54249626)
2284  [#8972](https://github.com/npm/npm/issues/8972) `npm-registry-client@6.5.1`
2285  ([@othiym23](https://github.com/othiym23))
2286* [`af28911`](https://github.com/npm/npm/commit/af28911ecd54a844f848c6ae41887097d6aa2f3b)
2287  [#8972](https://github.com/npm/npm/issues/8972) `read-installed@4.0.2`
2288  ([@othiym23](https://github.com/othiym23))
2289* [`3cc817a`](https://github.com/npm/npm/commit/3cc817a0f34f698b580ff6ff02308700efc54f7c)
2290  [#8972](https://github.com/npm/npm/issues/8972) node-gyp needs its own version
2291  of semver
2292  ([@othiym23](https://github.com/othiym23))
2293* [`f98eccc`](https://github.com/npm/npm/commit/f98eccc6e3a6699ca0aa9ecbad93a3b995583871)
2294  [#8972](https://github.com/npm/npm/issues/8972) `semver@5.0.1`: Stop including
2295  browser builds.
2296  ([@isaacs](https://github.com/isaacs))
2297
2298#### \*BUMP\*
2299
2300And some other version bumps for good measure.
2301
2302* [`254ecfb`](https://github.com/npm/npm/commit/254ecfb04f026c2fd16427db01a53600c1892c8b)
2303  [#8990](https://github.com/npm/npm/issues/8990) `marked-man@0.1.5`: Fixes an
2304  issue with documentation rendering where backticks in 2nd-level headers would
2305  break rendering (?!?!)
2306  ([@steveklabnik](https://github.com/steveklabnik))
2307* [`79efd79`](https://github.com/npm/npm/commit/79efd79ac216da8cee8636fb2ed926b0196a4eb6)
2308  `minimatch@2.0.10`: A pattern like `'*.!(x).!(y)'` should not match a name
2309  like `'a.xyz.yab'`.
2310  ([@isaacs](https://github.com/isaacs))
2311* [`39c7dc9`](https://github.com/npm/npm/commit/39c7dc9a4e17cd35a5ed882ba671821c9a900f9e)
2312  `request@2.60.0`: A few bug fixes and doc updates.
2313  ([@simov](https://github.com/simov))
2314* [`72d3c3a`](https://github.com/npm/npm/commit/72d3c3a9e1e461608aa21b14c01a650333330da9)
2315  `rimraf@2.4.2`: Minor doc and dep updates
2316  ([@isaacs](https://github.com/isaacs))
2317* [`7513035`](https://github.com/npm/npm/commit/75130356a06f5f4fbec3786aac9f9f0b36dfe010)
2318  `nock@2.9.1`
2319  ([@pgte](https://github.com/pgte))
2320* [`3d9aa82`](https://github.com/npm/npm/commit/3d9aa82260f0643a32c13d0c1ed16f644b6fd4ab)
2321  Fixes this thing where Kat decided to save `nock` as a regular dependency ;)
2322  ([@othiym23](https://github.com/othiym23))
2323
2324### v2.13.2 (2015-07-16):
2325
2326#### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME!
2327
2328Kat: Hooray! Full team again, and we've got a pretty small patch  release this
2329week, about everyone's favorite recurring issue: git URLs!
2330
2331Rebecca: No Way! Again?
2332
2333Kat: The ride never ends! In the meantime, there's some fun, exciting work in
2334the background to get orgs and teams out the door. Keep an eye out for news. :)
2335
2336Rebecca: And make sure to keep an eye out for patches for the super-fresh
2337`npm@3`!
2338
2339#### LET'S GIT INKY
2340
2341Rebecca: So what's this about another git URL issue?
2342
2343Kat: Welp, I apparently broke backwards-compatibility on what are actually
2344invalid `git+https` URLs! So I'm making it work, but we're gonna deprecate URLs
2345that look like `git+https://user@host:path/is/here`.
2346
2347Rebecca: What should we use instead?!
2348
2349Kat: Just do me a solid and use `git+ssh://user@host:path/here` or
2350`git+https://user@host/absolute/https/path` instead!
2351
2352* [`769f06e`](https://github.com/npm/npm/commit/769f06e5455d7a9fc738379de2e05868df0dab6f)
2353  Updated tests for `getResolved` so the URLs are run through
2354  `normalize-git-url`.
2355  ([@zkat](https://github.com/zkat))
2356* [`edbae68`](https://github.com/npm/npm/commit/edbae685bf48971e878ced373d6825fc1891ee47)
2357  [#8881](https://github.com/npm/npm/issues/8881) Added tests to verify that `git+https:` URLs are handled compatibly.
2358  ([@zkat](https://github.com/zkat))
2359
2360#### NEWS FLASH! DOCUMENTATION IMPROVEMENTS!
2361
2362* [`bad4e014`](https://github.com/npm/npm/commit/bad4e0143cc95754a682f1da543b2b4e196e924b)
2363  [#8924](https://github.com/npm/npm/pull/8924) Make sure documented default
2364  values in `lib/cache.js` properly correspond to current code.
2365  ([@watilde](https://github.com/watilde))
2366* [`e7a11fd`](https://github.com/npm/npm/commit/e7a11fdf70e333cdfe3dac94a1a30907adb76d59)
2367  [#8036](https://github.com/npm/npm/issues/8036) Clarify the documentation for
2368  `.npmrc` to clarify that it's not read at the project level when doing global
2369  installs.
2370  ([@espadrine](https://github.com/espadrine))
2371
2372#### STAY FRESH~
2373
2374Kat: That's it for npm core changes!
2375
2376Rebecca: Great! Let's look at the fresh new dependencies, then!
2377
2378Kat: See you all next week!
2379
2380Both: Stay Freeesh~
2381
2382(some cat form of Forrest can be seen snoring in the corner)
2383
2384* [`bfa1f45`](https://github.com/npm/npm/bfa1f45ee760d05039557d2245b7e3df9fda8def)
2385  `normalize-git-url@3.0.1`: Fixes url normalization such that `git+https:`
2386  accepts scp syntax, but get converted into absolute-path `https:` URLs. Also
2387  fixes scp syntax so you can have absolute paths after the `:`
2388  (`git@myhost.org:/some/absolute/place.git`)
2389  ([@zkat](https://github.com/zkat))
2390* [`6f757d2`](https://github.com/npm/npm/6f757d22b53f91da0bebec6b5d16c1f4dbe130b4)
2391  `glob@5.0.15`: Better handling of ENOTSUP
2392  ([@isaacs](https://github.com/isaacs))
2393* [`0920819`](https://github.com/npm/npm/09208197fb8b0c6d5dbf6bd7f59970cf366de989)
2394  `node-gyp@2.0.2`: Fixes an issue with long paths on Win32
2395  ([@TooTallNate](https://github.com/TooTallNate))
2396
2397### v2.13.1 (2015-07-09):
2398
2399#### KAUAI WAS NICE. I MISS IT.
2400
2401But Forrest's still kinda on vacation, and not just mentally, because he's
2402hanging out with the fine meatbags at CascadiaFest. Enjoy this small bug
2403release.
2404
2405#### MAKE OURSELVES HAPPY
2406
2407* [`40981f2`](https://github.com/npm/npm/commit/40981f2e0c9c12bb003ccf188169afd1d201f5af)
2408  [#8862](https://github.com/npm/npm/issues/8862) Make the lifecycle's safety
2409  check work with scoped packages. ([@tcort](https://github.com/tcort))
2410* [`5125856`](https://github.com/npm/npm/commit/512585622481dbbda9a0306932468d59efaff658)
2411  [#8855](https://github.com/npm/npm/issues/8855) Make dependency versions of
2412  `"*"` match `"latest"` when all versions are prerelease.
2413  ([@iarna](https://github.com/iarna))
2414* [`22fdc1d`](https://github.com/npm/npm/commit/22fdc1d52602ba7098af978c75fca8f7d1060141)
2415  Visually emphasize the correct way to write lifecycle scripts.
2416  ([@josh-egan](https://github.com/josh-egan))
2417
2418#### MAKE TRAVIS HAPPY
2419
2420* [`413c3ac`](https://github.com/npm/npm/commit/413c3ac2ab2437f3011c6ca0d1630109ec14e604)
2421  Use npm's `2.x` branch for testing its `2.x` branch.
2422  ([@iarna](https://github.com/iarna))
2423* [`7602f64`](https://github.com/npm/npm/commit/7602f64826f7a465d9f3a20bd87a376d992607e6)
2424  Don't prompt for GnuPG passphrase in version lifecycle tests.
2425  ([@othiym23](https://github.com/othiym23))
2426
2427#### MAKE `npm outdated` HAPPY
2428
2429* [`d338668`](https://github.com/npm/npm/commit/d338668601d1ebe5247a26237106e80ea8cd7f48)
2430  [#8796](https://github.com/npm/npm/issues/8796) `fstream-npm@1.0.4`: When packing the
2431  package tarball, npm no longer crashes for packages with certain combinations of
2432  `.npmignore` entries, `.gitignore` entries, and lifecycle scripts.
2433  ([@iarna](https://github.com/iarna))
2434* [`dbe7c9c`](https://github.com/npm/npm/commit/dbe7c9c74734be870d16dd61b9e7f746123011f6)
2435  `nock@2.7.0`: Add matching based on query strings.
2436  ([@othiym23](https://github.com/othiym23))
2437
2438There are new versions of `strip-ansi` and `ansi-regex`, but npm only uses them
2439indirectly, so we pushed them down into their dependencies where they can get
2440updated at their own pace.
2441
2442* [`06b6ca5`](https://github.com/npm/npm/commit/06b6ca5b5333025f10c8d901628859bd4678e027)
2443  undeduplicate `ansi-regex` ([@othiym23](https://github.com/othiym23))
2444* [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9)
2445  undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23))
2446
2447### v2.13.0 (2015-07-02):
2448
2449#### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS!
2450
2451Well, not _everything_. Just a couple of goodies, like the new `npm ping`
2452command, and the ability to add files to the commits created by `npm version`
2453with the new version hooks. There's also a couple of bugfixes in `npm` itself
2454and some of its dependencies. Here we go!
2455
2456#### YES HELLO THIS IS NPM REGISTRY SORRY NO DOG HERE
2457
2458Yes, that's right! We now have a dedicated `npm ping` command. It's super simple
2459and super easy. You ping. We tell you whether you pinged right by saying hello
2460right back. This should help out folks dealing with things like proxy issues or
2461other registry-access debugging issues. Give it a shot!
2462
2463This addresses [#5750](https://github.com/npm/npm/issues/5750), and will help
2464with the `npm doctor` stuff described in
2465[#6756](https://github.com/npm/npm/issues/6756).
2466
2467* [`f1f7a85`](https://github.com/npm/npm/commit/f1f7a85)
2468  Add ping command to CLI
2469  ([@michaelnisi](https://github.com/michaelnisi))
2470* [`8cec629`](https://github.com/npm/npm/commit/8cec629)
2471  Add ping command to npm-registry-client
2472  ([@michaelnisi](https://github.com/michaelnisi))
2473* [`0c0c92d`](https://github.com/npm/npm/0c0c92d)
2474  Fixed ping command issues (added docs, tests, fixed minor bugs, etc)
2475  ([@zkat](https://github.com/zkat))
2476
2477#### I'VE WANTED THIS FOR `version` SINCE LIKE LITERALLY FOREVER AND A DAY
2478
2479Seriously! This patch lets you add files to the `version` commit before it's
2480made, So you can add additional metadata files, more automated changes to
2481`package.json`, or even generate `CHANGELOG.md` automatically pre-commit if
2482you're into that sort of thing. I'm so happy this is there I can't even. Do you
2483have other fun usecases for this? Tell
2484[npmbot (@npmjs)](http://twitter.com/npmjs) about it!
2485
2486* [`582f170`](https://github.com/npm/npm/commit/582f170)
2487  [#8620](https://github.com/npm/npm/issues/8620) version: Allow scripts to add
2488  files to the commit.
2489  ([@jamestalmage](https://github.com/jamestalmage))
2490
2491#### ALL YOUR FILE DESCRIPTORS ARE BELONG TO US
2492
2493We've had problems in the past with things like `EMFILE` errors popping up when
2494trying to install packages with a bunch of dependencies. Isaac patched up
2495[`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to handle this case
2496better, so we should be seeing fewer of those.
2497
2498* [`022691a`](https://github.com/npm/npm/commit/022691a)
2499  `graceful-fs@4.1.2`: Updated so we can monkey patch globally.
2500  ([@isaacs](https://github.com/isaacs))
2501* [`c9fb0fd`](https://github.com/npm/npm/commit/c9fb0fd)
2502  Globally monkey-patch graceful-fs. This should fix some errors when installing
2503  packages with lots of dependencies.
2504  ([@isaacs](https://github.com/isaacs))
2505
2506#### READ THE FINE DOCS. THEY'VE IMPROVED
2507
2508* [`5587d0d`](https://github.com/npm/npm/commit/5587d0d)
2509  Nice clarification for `directories.bin`
2510  ([@ujane](https://github.com/ujane))
2511* [`20673c7`](https://github.com/npm/npm/commit/20673c7)
2512  Hey, Windows folks! Check out
2513  [`nvm-windows`](https://github.com/coreybutler/nvm-windows)
2514  ([@ArtskydJ](https://github.com/ArtskydJ))
2515
2516#### MORE NUMBERS! MORE VALUE!
2517
2518* [`5afa2d5`](https://github.com/npm/npm/commit/5afa2d5)
2519  `validate-npm-package-name@2.2.2`: Documented package name rules in README
2520  ([@zeusdeux](https://github.com/zeusdeux))
2521* [`021f4d9`](https://github.com/npm/npm/commit/021f4d9)
2522  `rimraf@2.4.1`: [#74](https://github.com/isaacs/rimraf/issues/74) Use async
2523  function for bin (to better handle Window's `EBUSY`)
2524  ([@isaacs](https://github.com/isaacs))
2525* [`5223432`](https://github.com/npm/npm/commit/5223432)
2526  `osenv@0.1.3`: Use `os.homedir()` polyfill for more reliable output. io.js
2527  added the function and the polyfill does a better job than the prior solution.
2528  ([@sindresorhus](https://github.com/sindresorhus))
2529* [`8ebbc90`](https://github.com/npm/npm/commit/8ebbc90)
2530  `npm-cache-filename@1.0.2`: Make sure different git references get different
2531  cache folders. This should prevent `foo/bar#v1.0` and `foo/bar#master` from
2532  sharing the same cache folder.
2533  ([@tomekwi](https://github.com/tomekwi))
2534* [`367b854`](https://github.com/npm/npm/commit/367b854)
2535  `lru-cache@2.6.5`: Minor test/typo changes
2536  ([@isaacs](https://github.com/isaacs))
2537* [`9fcae61`](https://github.com/npm/npm/commit/9fcae61)
2538  `glob@5.0.13`: Tiny doc change + stop firing 'match' events for ignored items.
2539  ([@isaacs](https://github.com/isaacs))
2540
2541#### OH AND ONE MORE THING
2542
2543* [`7827249`](https://github.com/npm/npm/commit/7827249)
2544  `PeerDependencies` errors now include the package version.
2545  ([@NickHeiner](https://github.com/NickHeiner))
2546
2547### v2.12.1 (2015-06-25):
2548
2549#### HEY WHERE DID EVERYBODY GO
2550
2551I keep [hearing some commotion](https://github.com/npm/npm/releases/tag/v3.0.0).
2552Is there something going on? Like, a party or something? Anyway, here's a small
2553release with at least two significant bug fixes, at least one of which some of
2554you have been waiting for for quite a while.
2555
2556#### REMEMBER WHEN I SAID "REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?"?
2557
2558`npm@2.12.0` has a change that introduces a fix for a permissions problem
2559whereby the `_locks` directory in the cache directory can up being owned by
2560root. The fix in 2.12.0 takes care of that problem, but introduces a new
2561problem for Windows users where npm tries to call `process.getuid()`, which
2562doesn't exist on Windows. It was easy enough to fix (but more or less
2563impossible to test, thanks to all the external dependencies involved with
2564permissions and platforms and whatnot), but as a result, Windows users might
2565want to skip `npm@2.12.0` and go straight to `npm@2.12.1`. Sorry about that!
2566
2567* [`7e5da23`](https://github.com/npm/npm/commit/7e5da238ee869201fdb9027c27b79b0f76b440a8)
2568  When using the new, "fixed" cache directory creator, be extra-careful to not
2569  call `process.getuid()` on platforms that lack it.
2570  ([@othiym23](https://github.com/othiym23))
2571
2572#### WHEW! ALL DONE FIXING GIT FOREVER!
2573
2574New npm CLI team hero [@zkat](https://github.com/zkat) has finally (FINALLY)
2575fixed the regression somebody (hi!) introduced a couple months ago whereby git
2576URLs of the format `git+ssh://user@githost.com:org/repo.git` suddenly stopped
2577working, and also started being saved (and cached) incorrectly. I am 100% sure
2578there are absolutely no more bugs in the git caching code at all ever. Mm hm.
2579Yep. Pretty sure. Maybe. Hmm... I hope.
2580
2581*Sighs audibly.*
2582
2583[Let us know](http://github.com/npm/npm/issues/new) if we broke something else
2584with this fix.
2585
2586* [`94ca4a7`](https://github.com/npm/npm/commit/94ca4a711619ba8e40ce3d20bc42b13cdb7611b7)
2587  [#8031](https://github.com/npm/npm/issues/8031) Even though
2588  `git+ssh://user@githost.com:org/repo.git` isn't a URL, treat it like one for
2589  the purposes of npm. ([@zkat](https://github.com/zkat))
2590* [`e7f56e5`](https://github.com/npm/npm/commit/e7f56e5a97fcf1c52d5c5bee71303b0126129815)
2591  [#8031](https://github.com/npm/npm/issues/8031) `normalize-git-url@2.0.0`:
2592  Handle git URLs (and URL-like remote refs) in a manner consistent with npm's
2593  docs. ([@zkat](https://github.com/zkat))
2594
2595#### YEP, THERE ARE STILL DEPENDENCY UPGRADES
2596
2597* [`679bf47`](https://github.com/npm/npm/commit/679bf4745ac2cfbb01c9ce273e189807fd04fa33)
2598  [#40](http://github.com/npm/read-installed/issues/40) `read-installed@4.0.1`:
2599  Handle prerelease versions in top-level dependencies not in `package.json`
2600  without marking those packages as invalid.
2601  ([@benjamn](https://github.com/benjamn))
2602* [`3a67410`](https://github.com/npm/npm/commit/3a6741068c9119174c920496778aeee870ebdac0)
2603  `tap@1.3.1` ([@isaacs](https://github.com/isaacs))
2604* [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a)
2605  `nopt@3.0.3` ([@isaacs](https://github.com/isaacs))
2606
2607### v2.12.0 (2015-06-18):
2608
2609#### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?
2610
2611About [a million people](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+EACCES+_locks)
2612have filed issues related to having a tough time using npm after they've run
2613npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all
2614those permissions problems ages ago! Use this one weird trick and you'll never
2615have to deal with this again!"
2616
2617Well, uh, if you run npm with root the first time you run npm on a machine, it
2618turns out that the directory npm uses to store lockfiles ends up being owned by
2619the wrong user (almost always root), and that can, well, it can cause problems
2620sometimes. By which I mean every time you run npm without being root it'll barf
2621with `EACCES` errors. Whoops!
2622
2623This is an obnoxious regression, and to prevent it from recurring, we've made
2624it so that the cache, cached git remotes, and the lockfile directories are all
2625created and maintained using the same utilty module, which not only creates the
2626relevant paths with the correct permissions, but will fix the permissions on
2627those directories (if it can) when it notices that they're broken. An `npm
2628install` run as root ought to be sufficient to fix things up (and if that
2629doesn't work, first tell us about it, and then run `sudo chown -R $(whoami)
2630$HOME/.npm`)
2631
2632Also, I apologize for inadvertently gaslighting any of you by claiming this bug
2633wasn't actually a bug. I do think we've got this permanently dealt with now,
2634but I'll be paying extra-close attention to permissions issues related to the
2635cache for a while.
2636
2637* [`85d1a53`](https://github.com/npm/npm/commit/85d1a53d7b5e0fc04823187e522ae3711ede61fa)
2638  Set permissions on lock directory to the owner of the process.
2639  ([@othiym23](https://github.com/othiym23))
2640
2641#### I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT
2642
2643That's not literally true. We spent very little time discussing SPDX,
2644[@kemitchell](https://github.com/kemitchell) is a champ, and I had a lot of fun
2645playing drum & bass to a mostly empty Boogie Barn and only ended up with one
2646moderately severe cold for my pains. Another winner of a NodeConf! (I would
2647probably wear a SPDX T-shirt if somebody gave me one, though.)
2648
2649A bunch of us did have a spirited discussion of the basics of open-source
2650intellectual property, and the convergence of me,
2651[@kemitchell](https://github.com/kemitchell), and
2652[@jandrieu](https://github.com/jandrieu) in one place allowed us to hammmer out
2653a small but significant issue that had been bedeviling early adopters of the
2654new SPDX expression syntax in `package.json` license fields: how to deal with
2655packages that are left without a license on purpose.
2656
2657Refer to [the docs](https://github.com/npm/npm/blob/16a3dd545b10f8a2464e2037506ce39124739b41/doc/files/package.json.md#license)
2658for the specifics, but the short version is that instead of using
2659`LicenseRef-LICENSE` for proprietary licenses, you can now use either
2660`UNLICENSED` if you want to make it clear that you don't _want_ your software
2661to be licensed (and want npm to stop warning you about this), or `SEE LICENSE
2662IN <filename>` if there's a license with custom text you want to use. At some
2663point in the near term, we'll be updating npm to verify that the mentioned
2664file actually exists, but for now you're all on the honor system.
2665
2666* [`4827fc7`](https://github.com/npm/npm/commit/4827fc784117c17f35dd9b51b21d1eff6094f661)
2667  [#8557](https://github.com/npm/npm/issues/8557)
2668  `normalize-package-data@2.2.1`: Allow `UNLICENSED` and `SEE LICENSE IN
2669  <filename>` in "license" field of `package.json`.
2670  ([@kemitchell](https://github.com/kemitchell))
2671* [`16a3dd5`](https://github.com/npm/npm/commit/16a3dd545b10f8a2464e2037506ce39124739b41)
2672  [#8557](https://github.com/npm/npm/issues/8557) Document the new accepted
2673  values for the "license" field.
2674  ([@kemitchell](https://github.com/kemitchell))
2675* [`8155311`](https://github.com/npm/npm/commit/81553119350deaf199e79e38e35b52a5c8ad206c)
2676  [#8557](https://github.com/npm/npm/issues/8557) `init-package-json@1.7.0`:
2677  Support new "license" field values at init time.
2678  ([@kemitchell](https://github.com/kemitchell))
2679
2680#### SMALLISH BUG FIXES
2681
2682* [`9d8cac9`](https://github.com/npm/npm/commit/9d8cac94a258db648a2b1069b1c8c6529c79d013)
2683  [#8548](https://github.com/npm/npm/issues/8548) Remove extraneous newline
2684  from `npm view` output, making it easier to use in shell scripts.
2685  ([@eush77](https://github.com/eush77))
2686* [`765fd4b`](https://github.com/npm/npm/commit/765fd4bfca8ea3e2a4a399765b17eec40a3d893d)
2687  [#8521](https://github.com/npm/npm/issues/8521) When checking for outdated
2688  packages, or updating packages, raise an error when the registry is
2689  unreachable instead of silently "succeeding".
2690  ([@ryantemple](https://github.com/ryantemple))
2691
2692#### SMALLERISH DOCUMENTATION TWEAKS
2693
2694* [`5018335`](https://github.com/npm/npm/commit/5018335ce1754a9f771954ecbc1a93acde9b8c0a)
2695  [#8365](https://github.com/npm/npm/issues/8365) Add details about which git
2696  environment variables are whitelisted by npm.
2697  ([@nmalaguti](https://github.com/nmalaguti))
2698* [`bed9edd`](https://github.com/npm/npm/commit/bed9edddfdcc6d22a80feab33b53e4ef9172ec72)
2699  [#8554](https://github.com/npm/npm/issues/8554) Fix typo in version docs.
2700  ([@rainyday](https://github.com/rainyday))
2701
2702#### WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES
2703
2704* [`7ce2f06`](https://github.com/npm/npm/commit/7ce2f06f6f34d469b1d2e248084d4f3fef10c05e)
2705  `request@2.58.0`: Refactor tunneling logic, and use `extend` instead of
2706  abusing `util._extend`. ([@simov](https://github.com/simov))
2707* [`e6c6195`](https://github.com/npm/npm/commit/e6c61954aad42e20eec49745615c7640b2026a6c)
2708  `nock@2.6.0`: Refined interception behavior.
2709  ([@pgte](https://github.com/pgte))
2710* [`9583cc3`](https://github.com/npm/npm/commit/9583cc3cb192c2fced006927cfba7cd37b588605)
2711  `fstream-npm@1.0.3`: Ensure that `main` entry in `package.json` is always
2712  included in the bundled package tarball.
2713  ([@coderhaoxin](https://github.com/coderhaoxin))
2714* [`df89493`](https://github.com/npm/npm/commit/df894930f2716adac28740b29b2e863170919990)
2715  `fstream@1.0.7` ([@isaacs](https://github.com/isaacs))
2716* [`9744049`](https://github.com/npm/npm/commit/974404934758124aa8ae5b54f7d5257c3bd6b588)
2717  `dezalgo@1.0.3`: `dezalgo` should be usable in the browser, and can be now
2718  that `asap` has been upgraded to be browserifiable.
2719  ([@mvayngrib](https://github.com/mvayngrib))
2720
2721### v2.11.3 (2015-06-11):
2722
2723This was a very quiet week. This release was done by
2724[@iarna](https://github.com/iarna), while the rest of the team hangs out at
2725NodeConf Adventure!
2726
2727#### TESTS IN 0.8 FAIL LESS
2728
2729* [`5b3b3c2`](https://github.com/npm/npm/commit/5b3b3c2)
2730  [#8491](//github.com/npm/npm/pull/8491)
2731  Updates a test to use only 0.8 compatible features
2732  ([@watilde](https://github.com/watilde))
2733
2734#### THE TREADMILL OF UPDATES NEVER CEASES
2735
2736* [`9f439da`](https://github.com/npm/npm/commit/9f439da)
2737  `spdx@0.4.1`: License range updates
2738  ([@kemitchell](https://github.com/kemitchell))
2739* [`2dd055b`](https://github.com/npm/npm/commit/2dd055b)
2740  `normalize-package-data@2.2.1`: Fixes a crashing bug when the package.json
2741  `scripts` property is not an object.
2742  ([@iarna](https://github.com/iarna))
2743* [`e02e85d`](https://github.com/npm/npm/commit/e02e85d)
2744  `osenv@0.1.2`: Switches to using the `os-tmpdir` module instead of
2745  `os.tmpdir()` for greater consistency in behavior between node versions.
2746  ([@iarna](https://github.com/iarna))
2747* [`a6f0265`](https://github.com/npm/npm/commit/a6f0265)
2748  `ini@1.3.4` ([@isaacs](https://github.com/isaacs))
2749* [`7395977`](https://github.com/npm/npm/commit/7395977)
2750  `rimraf@2.4.0` ([@isaacs](https://github.com/isaacs))
2751
2752### v2.11.2 (2015-06-04):
2753
2754Another small release this week, brought to you by the latest addition to the
2755CLI team, [@zkat](https://github.com/zkat) (Hi, all!)
2756
2757Mostly small documentation tweaks and version updates. Oh! And `npm outdated`
2758is actually sorted now. Rejoice!
2759
2760It's gonna be a while before we get another palindromic version number. Enjoy it
2761while it lasts. :3
2762
2763#### QUALITY OF LIFE HAS NEVER BEEN BETTER
2764
2765* [`31aada4`](https://github.com/npm/npm/commit/31aada4ccc369c0903ff7f233f464955d12c6fe2)
2766  [#8401](https://github.com/npm/npm/issues/8401) `npm outdated` output is just
2767  that much nicer to consume now, due to sorting by name.
2768  ([@watilde](https://github.com/watilde))
2769* [`458a919`](https://github.com/npm/npm/commit/458a91925d8b20c5e672ba71a86745aad654abaf)
2770  [#8469](https://github.com/npm/npm/pull/8469) Explicitly set `cwd` for
2771  `preversion`, `version`, and `postversion` scripts. This makes the scripts
2772  findable relative to the root dir.
2773  ([@alexkwolfe](https://github.com/alexkwolfe))
2774* [`55d6d71`](https://github.com/npm/npm/commit/55d6d71562e979e745c9db88861cc39f99b9f3ec)
2775  Ensure package name and version are included in display during `npm version`
2776  lifecycle execution. Gets rid of those little `undefined`s in the console.
2777  ([@othiym23](https://github.com/othiym23))
2778
2779#### WORDS HAVE NEVER BEEN QUITE THIS READABLE
2780
2781* [`3901e49`](https://github.com/npm/npm/commit/3901e4974c800e7f9fba4a5b2ff88da1126d5ef8)
2782  [#8462](https://github.com/npm/npm/pull/8462) English apparently requires
2783  correspondence between indefinite articles and attached nouns.
2784  ([@Enet4](https://github.com/Enet4))
2785* [`5a744e4`](https://github.com/npm/npm/commit/5a744e4b143ef7b2f50c80a1d96fdae4204d452b)
2786  [#8421](https://github.com/npm/npm/pull/8421) The effect of `npm prune`'s
2787  `--production` flag and how to use it have been documented a bit better.
2788  ([@foiseworth](https://github.com/foiseworth))
2789* [`eada625`](https://github.com/npm/npm/commit/eada625993485f0a2c5324b06f02bfa0a95ce4bc)
2790  We've updated our `.mailmap` and `AUTHORS` files to make sure credit is given
2791  where credit is due. ([@othiym23](https://github.com/othiym23))
2792
2793#### VERSION NUMBERS HAVE NEVER BEEN BIGGER
2794
2795* [`c929fd1`](https://github.com/npm/npm/commit/c929fd1d0604b5878ed05706447e078d3e41f5b3)
2796  `readable-stream@1.1.13`: Manually deduped `v1.1.13` (streams3) to make
2797  deduping more reliable on `npm@<3`. ([@othiym23](https://github.com/othiym23))
2798* [`a9b4b78`](https://github.com/npm/npm/commit/a9b4b78dcc85571fd1cdd737903f7f37a5e6a755)
2799  `request@2.57.0`: Replace dependency on IncomingMessage's `.client` with
2800  `.socket` as the former was deprecated in io.js 2.2.0.
2801  ([@othiym23](https://github.com/othiym23))
2802* [`4b5e557`](https://github.com/npm/npm/commit/4b5e557a23cdefd521ad154111e3d4dcc81f1cdb)
2803  `abbrev@1.0.7`: Better testing, with coverage.
2804  ([@othiym23](https://github.com/othiym23))
2805* [`561affe`](https://github.com/npm/npm/commit/561affee21df9bbea5a47298f2452f533be8f359)
2806  `semver@4.3.6`: .npmignore added for less cruft, and better testing, with coverage.
2807  ([@othiym23](https://github.com/othiym23))
2808* [`60aef3c`](https://github.com/npm/npm/commit/60aef3cf5d84d757752db3eb8ede2cb385469e7b)
2809  `graceful-fs@3.0.8`: io.js fixes.
2810  ([@zkat](https://github.com/zkat))
2811* [`f8bd453`](https://github.com/npm/npm/commit/f8bd453b1a1c46ba7666cb166595e8a011eae443)
2812  `config-chain@1.1.9`: Added MIT license to package.json
2813  ([@zkat](https://github.com/zkat))
2814
2815### v2.11.1 (2015-05-28):
2816
2817This release brought to you from poolside at the Omni Amelia Island Resort and
2818JSConf 2015, which is why it's so tiny.
2819
2820#### CONFERENCE WIFI CAN'T STOP THESE BUG FIXES
2821
2822* [`cf109a6`](https://github.com/npm/npm/commit/cf109a682f38a059a994da953d5c1b4aaece5e2f)
2823  [#8381](https://github.com/npm/npm/issues/8381) Documented a subtle gotcha
2824  with `.npmrc`, which is that it needs to have its permissions set such that
2825  only the owner can read or write the file.
2826  ([@colakong](https://github.com/colakong))
2827* [`180da67`](https://github.com/npm/npm/commit/180da67c9fa53103d625e2f031626c2453c7ebcd)
2828  [#8365](https://github.com/npm/npm/issues/8365) Git 2.3 adds support for
2829  `GIT_SSH_COMMAND`, which allows you to pass an explicit git command (with,
2830  for example, a specific identity passed in on the command line).
2831    ([@nmalaguti](https://github.com/nmalaguti))
2832
2833#### MY (VIRGIN) PINA COLADA IS GETTING LOW, BETTER UPGRADE THESE DEPENDENCIES
2834
2835* [`b72de41`](https://github.com/npm/npm/commit/b72de41c5cc9f0c46d3fa8f062c75bd273641474)
2836  `node-gyp@2.0.0`: Use a newer version of `gyp`, and generally improve support
2837  for Visual Studios and Windows.
2838    ([@TooTallNate](https://github.com/TooTallNate))
2839* [`8edbe21`](https://github.com/npm/npm/commit/8edbe210af41e8f248f5bb92c72de92f54fda3b1)
2840  `node-gyp@2.0.1`: Don't crash when Python's version doesn't parse as valid
2841  semver. ([@TooTallNate](https://github.com/TooTallNate))
2842* [`ba0e0a8`](https://github.com/npm/npm/commit/ba0e0a845a4f29717aba566b416a27d1a22f5d08)
2843  `glob@5.0.10`: Add coverage to tests. ([@isaacs](https://github.com/isaacs))
2844* [`7333701`](https://github.com/npm/npm/commit/7333701b5d4f01673f37d64992c63c4e15864d6d)
2845  `request@2.56.0`: Bug fixes and dependency upgrades.
2846  ([@simov](https://github.com/simov))
2847
2848### v2.11.0 (2015-05-21):
2849
2850For the first time in a very long time, we've added new events to the life
2851cycle used by `npm run-script`. Since running `npm version (major|minor|patch)`
2852is typically the last thing many developers do before publishing their updated
2853packages, it makes sense to add life cycle hooks to run tests or otherwise
2854preflight the package before doing a full publish. Thanks, as always, to the
2855indefatigable [@watilde](https://github.com/watilde) for yet another great
2856usability improvement for npm!
2857
2858#### FEATURELETS
2859
2860* [`b07f7c7`](https://github.com/npm/npm/commit/b07f7c7c1e5021730b3c320f1b3a46e70f8a21ff)
2861  [#7906](https://github.com/npm/npm/issues/7906)
2862  Add new [`scripts`](https://github.com/npm/npm/blob/master/doc/misc/npm-scripts.md) to
2863  allow you to run scripts before and after
2864  the [`npm version`](https://github.com/npm/npm/blob/master/doc/cli/npm-version.md)
2865  command has run. This makes it easy to, for instance, require that your
2866  test suite passes before bumping the version by just adding `"preversion":
2867  "npm test"` to the scripts section of your `package.json`.
2868  ([@watilde](https://github.com/watilde))
2869* [`8a46136`](https://github.com/npm/npm/commit/8a46136f42e416cbadb533bcf89d73d681ed421d)
2870  [#8185](https://github.com/npm/npm/issues/8185)
2871  When we get a "not found" error from the registry, we'll now check to see
2872  if the package name you specified is invalid and if so, give you a better
2873  error message. ([@thefourtheye](https://github.com/thefourtheye))
2874
2875#### BUG FIXES
2876
2877* [`9bcf573`](https://github.com/npm/npm/commit/9bcf5730bd0316f210dafea898afe9103849cea9)
2878  [#8324](https://github.com/npm/npm/pull/8324) On Windows, when you've configured a
2879  custom `node-gyp`, run it with node itself instead of using the default open action (which
2880  is almost never what you want). ([@bangbang93](https://github.com/bangbang93))
2881* [`1da9b04`](https://github.com/npm/npm/commit/1da9b0411d3416c7fca17d08cbbcfca7ae86e92d)
2882  [#7195](https://github.com/npm/npm/issues/7195)
2883  [#7260](https://github.com/npm/npm/issues/7260) `npm-registry-client@6.4.0`:
2884  (Re-)allow publication of existing mixed-case packages (part 1).
2885  ([@smikes](https://github.com/smikes))
2886* [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646)
2887  [#7195](https://github.com/npm/npm/issues/7195)
2888  [#7260](https://github.com/npm/npm/issues/7260)
2889  `normalize-package-data@2.2.0`: (Re-)allow publication of existing mixed-case
2890  packages (part 2). ([@smikes](https://github.com/smikes))
2891
2892#### DOCUMENTATION IMPROVEMENTS
2893
2894* [`f62ee05`](https://github.com/npm/npm/commit/f62ee05333b141539a8e851c620dd2e82ff06860)
2895  [#8314](https://github.com/npm/npm/issues/8314) Update the README to warn
2896  folks away from using the CLI's internal API. For the love of glob, just use a
2897  child process to run the CLI! ([@claycarpenter](https://github.com/claycarpenter))
2898* [`1093921`](https://github.com/npm/npm/commit/1093921c04db41ab46db24a170a634a4b2acd8d9)
2899  [#8279](https://github.com/npm/npm/pull/8279)
2900  Update the documentation to note that, yes, you can publish scoped packages to the
2901  public registry now! ([@mantoni](https://github.com/mantoni))
2902* [`f87cde5`](https://github.com/npm/npm/commit/f87cde5234a760d3e515ffdaacaed6f5b71dbf44)
2903  [#8292](https://github.com/npm/npm/pull/8292)
2904  Fix typo in an example and grammar in the description in
2905  the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md).
2906  ([@vshih](https://github.com/vshih))
2907* [`d3526ce`](https://github.com/npm/npm/commit/d3526ceb09a0c29fdb7d4124536ae09057d033e7)
2908  Improve the formatting in
2909  the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md).
2910  ([@othiym23](https://github.com/othiym23))
2911* [`19fe6d2`](https://github.com/npm/npm/commit/19fe6d20883e28956ff916fe4dae42d73ee6195b)
2912  [#8311](https://github.com/npm/npm/pull/8311)
2913  Update [README.md](https://github.com/npm/npm#readme) to use syntax highlighting in
2914  its code samples and bits of shell scripts. ([@SimenB](https://github.com/SimenB))
2915
2916#### DEPENDENCY UPDATES! ALWAYS AND FOREVER!
2917
2918* [`fc52160`](https://github.com/npm/npm/commit/fc52160d0223226fffe4166f42fdfd3b899b3c1e)
2919  [#4700](https://github.com/npm/npm/issues/4700) [#5044](https://github.com/npm/npm/issues/5044)
2920  `init-package-json@1.6.0`: Make entering an invalid version while running `npm init` give
2921  you an immediate error and prompt you to correct it. ([@watilde](https://github.com/watilde))
2922* [`738853e`](https://github.com/npm/npm/commit/738853eb1f55636476a2a410c2c04732eec9d51e)
2923  [#7763](https://github.com/npm/npm/issues/7763) `fs-write-stream-atomic@1.0.3`: Fix a bug
2924  where errors would not propagate, making error messages unhelpful.
2925  ([@iarna](https://github.com/iarna))
2926* [`6d74a2d`](https://github.com/npm/npm/commit/6d74a2d2ac7f92750cf6a2cfafae1af23b569098)
2927  `npm-package-arg@4.0.1`: Fix tests on windows ([@Bacra](https://github.com)) and with
2928  more recent `hosted-git-info`. ([@iarna](https://github.com/iarna))
2929* [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd)
2930  `hosted-git-info@2.1.4`: Correct spelling in its documentation.
2931  ([@iarna](https://github.com/iarna))
2932* [`d7956ca`](https://github.com/npm/npm/commit/d7956ca17c057d5383ff0d3fc5cf6ac2940b034d)
2933  `glob@5.0.7`: Fix a bug where unusual error conditions could make
2934  further use of the module fail. ([@isaacs](https://github.com/isaacs))
2935* [`44f7d74`](https://github.com/npm/npm/commit/44f7d74c5d3181d37da7ea7949c86b344153f8d9)
2936  `tap@1.1.0`: Update to the most recent tap to get a whole host of bug
2937  fixes and integration with [coveralls](https://coveralls.io/).
2938  ([@isaacs](https://github.com/isaacs))
2939* [`c21e8a8`](https://github.com/npm/npm/commit/c21e8a8d94bcf0ad79dc583ddc53f8366d4813b3)
2940  `nock@2.2.0` ([@othiym23](https://github.com/othiym23))
2941
2942#### LICENSE FILES FOR THE LICENSE GOD
2943
2944* Add missing ISC license file to package ([@kasicka](https://github.com/kasicka)):
2945    * [`aa9908c`](https://github.com/npm/npm/commit/aa9908c20017729673b9d410b77f9a16b7aae8a4) `realize-package-specifier@3.0.1`
2946    * [`23a3b1a`](https://github.com/npm/npm/commit/23a3b1a726b9176c70ce0ccf3cd9d25c54429bdf) `fs-vacuum@1.2.6`
2947    * [`8e04bba`](https://github.com/npm/npm/commit/8e04bba830d4353d84751d21803cd127c96153a7) `dezalgo@1.0.2`
2948    * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) `hosted-git-info@2.1.4`
2949    * [`6a54917`](https://github.com/npm/npm/commit/6a54917fbd4df995495a95d4b548defd44b77c93) `write-file-atomic@1.1.2`
2950    * [`971f92c`](https://github.com/npm/npm/commit/971f92c4a4e5514217d1e4db45d1ccf71a60ff19) `async-some@1.0.2`
2951    * [`67b50b7`](https://github.com/npm/npm/commit/67b50b7667a42bb3340a660eb2e617e1a554d2d4) `normalize-git-url@1.0.1`
2952
2953#### SPDX LICENSE UPDATES
2954
2955* Switch license to
2956  [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) from
2957  plain "BSD" ([@isaacs](https://github.com/isaacs)):
2958    * [`efdb733`](https://github.com/npm/npm/commit/efdb73332eeedcad4c609796929070b62abb37ab) `npm-user-validate@0.1.2`
2959    * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) `normalize-package-data@2.2.0`
2960* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from
2961  [BSD](http://spdx.org/licenses/BSD-2-Clause.html#licenseText)
2962  ([@isaacs](https://github.com/isaacs)):
2963    * [`c300956`](https://github.com/npm/npm/commit/c3009565a964f0ead4ac4ab234b1a458e2365f17) `block-stream@0.0.8`
2964    * [`1de1253`](https://github.com/npm/npm/commit/1de125355765fecd31e682ed0ff9d2edbeac0bb0) `lockfile@1.0.1`
2965    * [`0d5698a`](https://github.com/npm/npm/commit/0d5698ab132e376c7aec93ae357c274932116220) `osenv@0.1.1`
2966    * [`2e84921`](https://github.com/npm/npm/commit/2e84921474e1ffb18de9fce4616e73171fa8046d) `abbrev@1.0.6`
2967    * [`872fac9`](https://github.com/npm/npm/commit/872fac9d10c11607e4d0348c08a683b84e64d30b) `chmodr@0.1.1`
2968    * [`01eb7f6`](https://github.com/npm/npm/commit/01eb7f60acba584346ad8aae846657899f3b6887) `chownr@0.0.2`
2969    * [`294336f`](https://github.com/npm/npm/commit/294336f0f31c7b9fe31a50075ed750db6db134d1) `read@1.0.6`
2970    * [`ebdf6a1`](https://github.com/npm/npm/commit/ebdf6a14d17962cdb7128402c53b452f91d44ca7) `graceful-fs@3.0.7`
2971* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from
2972  [MIT](http://spdx.org/licenses/MIT.html#licenseText)
2973  ([@isaacs](https://github.com/isaacs)):
2974    * [`e5d237f`](https://github.com/npm/npm/commit/e5d237fc0f436dd2a89437ebf8a9632a2e35ccbe) `nopt@3.0.2`
2975    * [`79fef14`](https://github.com/npm/npm/commit/79fef1421b78f044980f0d1bf0e97039b6992710) `rimraf@2.3.4`
2976    * [`22527da`](https://github.com/npm/npm/commit/22527da4816e7c2746cdc0317c5fb4a85152d554) `minimatch@2.0.8`
2977    * [`882ac87`](https://github.com/npm/npm/commit/882ac87a6c4123ca985d7ad4394ea5085e5b0ef5) `lru-cache@2.6.4`
2978    * [`9d9d015`](https://github.com/npm/npm/commit/9d9d015a2e972f68664dda54fbb204db28b21ede) `npmlog@1.2.1`
2979
2980### v2.10.1 (2015-05-14):
2981
2982#### BUG FIXES & DOCUMENTATION TWEAKS
2983
2984* [`dc77520`](https://github.com/npm/npm/commit/dc7752013ffce13a3d3f13e518a0052c22fc1158)
2985  When getting back a 404 from a request to a private registry that uses a
2986  registry path that extends past the root
2987  (`http://registry.enterprise.co/path/to/registry`), display the name of the
2988  nonexistent package, rather than the first element in the registry API path.
2989  Sorry, Artifactory users! ([@hayes](https://github.com/hayes))
2990* [`f70dea9`](https://github.com/npm/npm/commit/f70dea9b4766f6eaa55012c3e8087e9cb04fd4ce)
2991  Make clearer that `--registry` can be used on a per-publish basis to push a
2992  package to a non-default registry. ([@mischkl](https://github.com/mischkl))
2993* [`a3e26f5`](https://github.com/npm/npm/commit/a3e26f5b4465991a941a325468ab7725670d2a94)
2994  Did you know that GitHub shortcuts can have commit-ishes included
2995  (`org/repo#branch`)? They can! ([@iarna](https://github.com/iarna))
2996* [`0e2c091`](https://github.com/npm/npm/commit/0e2c091a539b61fdc60423b6bbaaf30c24e4b1b8)
2997  Some errors from `readPackage` were being swallowed, potentially leading to
2998  invalid package trees on disk. ([@smikes](https://github.com/smikes))
2999
3000#### DEPENDENCY UPDATES! STILL! MORE! AGAIN!
3001
3002* [`0b901ad`](https://github.com/npm/npm/commit/0b901ad0811d84dda6ca0755a9adc8d47825edd0)
3003  `lru-cache@2.6.3`: Removed some cruft from the published package.
3004  ([@isaacs](https://github.com/isaacs))
3005* [`d713e0b`](https://github.com/npm/npm/commit/d713e0b14930c563e3fdb6ac6323bae2a8924652)
3006  `mkdirp@0.5.1`: Made compliant with `standard`, dropped support for Node 0.6,
3007  added (Travis) support for Node 0.12 and io.js.
3008  ([@isaacs](https://github.com/isaacs))
3009* [`a2d6578`](https://github.com/npm/npm/commit/a2d6578b6554c5c9d48fe2006751759f4da57520)
3010  `glob@1.0.3`: Updated to use `tap@1`. ([@isaacs](https://github.com/isaacs))
3011* [`64cd1a5`](https://github.com/npm/npm/commit/64cd1a570aaa5f24ccba190948ec9456297c97f5)
3012  `fstream@ 1.0.6`: Made compliant with [`standard`](http://npm.im/standard)
3013  (done by [@othiym23](https://github.com/othiym23), and then debugged and
3014  fixed by [@iarna](https://github.com/iarna)), and license changed to ISC.
3015  ([@othiym23](https://github.com/othiym23) /
3016  [@iarna](https://github.com/iarna))
3017* [`b527a7c`](https://github.com/npm/npm/commit/b527a7c2ba3c4002f443dd2c536ff4ff41a38b86)
3018  `which@1.1.1`: Callers can pass in their own `PATH` instead of relying on
3019  `process.env`. ([@isaacs](https://github.com/isaacs))
3020
3021### v2.10.0 (2015-05-8):
3022
3023#### THE IMPLICATIONS ARE MORE PROFOUND THAN THEY APPEAR
3024
3025If you've done much development in The Enterprise®™, you know that keeping
3026track of software licenses is far more important than one might expect / hope /
3027fear. Tracking licenses is a hassle, and while many (if not most) of us have
3028(reluctantly) gotten around to setting a license to use by default with all our
3029new projects (even if it's just WTFPL), that's about as far as most of us think
3030about it. In big enterprise shops, ensuring that projects don't inadvertently
3031use software with unacceptably encumbered licenses is serious business, and
3032developers spend a surprising (and appalling) amount of time ensuring that
3033licensing is covered by writing automated checkers and other license auditing
3034tools.
3035
3036The Linux Foundation has been working on a machine-parseable syntax for license
3037expressions in the form of [SPDX](https://spdx.org/), an appropriately
3038enterprisey acronym. IP attorney and JavaScript culture hero [Kyle
3039Mitchell](http://kemitchell.com/) has put a considerable amount of effort into
3040bringing SPDX to JavaScript and Node. He's written
3041[`spdx.js`](https://github.com/kemitchell/spdx.js), a JavaScript SPDX
3042expression parser, and has integrated it into npm in a few different ways.
3043
3044For you as a user of npm, this means:
3045
3046* npm now has proper support for dual licensing in `package.json`, due to
3047  SPDX's compound expression syntax. Run `npm help package.json` for details.
3048* npm will warn you if the `package.json` for your project is either missing a
3049  `"license"` field, or if the value of that field isn't a valid SPDX
3050  expression (pro tip: `"BSD"` becomes `"BSD-2-Clause"` in SPDX (unless you
3051  really want one of its variants); `"MIT"` and `"ISC"` are fine as-is; the
3052  [full list](https://github.com/shinnn/spdx-license-ids/blob/master/spdx-license-ids.json)
3053  is its own package).
3054* `npm init` now demands that you use a valid SPDX expression when using it
3055  interactively (pro tip: I mostly use `npm init -y`, having previously run
3056  `npm config set init.license=MIT` / `npm config set init.author.email=foo` /
3057  `npm config set init.author.name=me`).
3058* The documentation for `package.json` has been updated to tell you how to use
3059  the `"license"` field properly with SPDX.
3060
3061In general, this shouldn't be a big deal for anybody other than people trying
3062to run their own automated license validators, but in the long run, if
3063everybody switches to this format, many people's lives will be made much
3064simpler. I think this is an important improvement for npm and am very thankful
3065to Kyle for taking the lead on this. Also, even if you think all of this is
3066completely stupid, just [choose a license](http://en.wikipedia.org/wiki/License-free_software)
3067anyway. Future you will thank past you someday, unless you are
3068[djb](http://cr.yp.to/), in which case you are djb, and more power to you.
3069
3070* [`8669f7d`](https://github.com/npm/npm/commit/8669f7d88c472ccdd60e140106ac43cca636a648)
3071  [#8179](https://github.com/npm/npm/issues/8179) Document how to use SPDX in
3072  `license` stanzas in `package.json`, including how to migrate from old busted
3073  license declaration arrays to fancy new compound-license clauses.
3074  ([@kemitchell](https://github.com/kemitchell))
3075* [`98ad98c`](https://github.com/npm/npm/commit/98ad98cb11f3d3ba29a488ef1ab050b066d9c7f6)
3076  [#8197](https://github.com/npm/npm/issues/8197) `init-package-json@1.5.0`
3077  Ensure that packages bootstrapped with `npm init` use an SPDX-compliant
3078  license expression. ([@kemitchell](https://github.com/kemitchell))
3079* [`2ad3905`](https://github.com/npm/npm/commit/2ad3905e9139b0be2b22accf707b814469de813e)
3080  [#8197](https://github.com/npm/npm/issues/8197)
3081  `normalize-package-data@2.1.0`: Warn when a package is missing a license
3082  declaration, or using a license expression that isn't valid SPDX.
3083  ([@kemitchell](https://github.com/kemitchell))
3084* [`127bb73`](https://github.com/npm/npm/commit/127bb73ccccc59a1267851c702d8ebd3f3a97e81)
3085  [#8197](https://github.com/npm/npm/issues/8197) `tar@2.1.1`: Switch from
3086  `BSD` to `ISC` for license, where the latter is valid SPDX.
3087  ([@othiym23](https://github.com/othiym23))
3088* [`e9a933a`](https://github.com/npm/npm/commit/e9a933a9148180d9d799f99f4154f5110ff2cace)
3089  [#8197](https://github.com/npm/npm/issues/8197) `once@1.3.2`: Switch from
3090  `BSD` to `ISC` for license, where the latter is valid SPDX.
3091  ([@othiym23](https://github.com/othiym23))
3092* [`412401f`](https://github.com/npm/npm/commit/412401fb6a19b18f3e02d97a24d4dafed650c186)
3093  [#8197](https://github.com/npm/npm/issues/8197) `semver@4.3.4`: Switch from
3094  `BSD` to `ISC` for license, where the latter is valid SPDX.
3095  ([@othiym23](https://github.com/othiym23))
3096
3097As a corollary to the previous changes, I've put some work into making `npm
3098install` spew out fewer pointless warnings about missing values in transitive
3099dependencies. From now on, npm will only warn you about missing READMEs,
3100license fields, and the like for top-level projects (including packages you
3101directly install into your application, but we may relax that eventually).
3102
3103Practically _nobody_ liked having those warnings displayed for child
3104dependencies, for the simple reason that there was very little that anybody
3105could _do_ about those warnings, unless they happened to be the maintainers of
3106those dependencies themselves. Since many, many projects don't have
3107SPDX-compliant licenses, the number of warnings reached a level where they ran
3108the risk of turning into a block of visual noise that developers (read: me, and
3109probably you) would ignore forever.
3110
3111So I fixed it. If you still want to see the messages about child dependencies,
3112they're still there, but have been pushed down a logging level to `info`. You
3113can display them by running `npm install -d` or `npm install --loglevel=info`.
3114
3115* [`eb18245`](https://github.com/npm/npm/commit/eb18245f55fb4cd62a36867744bcd1b7be0a33e2)
3116  Only warn on normalization errors for top-level dependencies. Transitive
3117  dependency validation warnings are logged at `info` level.
3118  ([@othiym23](https://github.com/othiym23))
3119
3120#### BUG FIXES
3121
3122* [`e40e809`](https://github.com/npm/npm/commit/e40e8095d2bc9fa4eb8f01aa22067e0068fa8a54)
3123  `tap@1.0.1`: TAP: The Next Generation. Fix up many tests to they work
3124  properly with the new major version of `node-tap`. Look at all the colors!
3125  ([@isaacs](https://github.com/isaacs))
3126* [`f9314e9`](https://github.com/npm/npm/commit/f9314e97d26532c0ef2b03e98f3ed300b7cd5026)
3127  `nock@1.9.0`: Minor tweaks and bug fixes. ([@pgte](https://github.com/pgte))
3128* [`45c2b1a`](https://github.com/npm/npm/commit/45c2b1aaa051733fa352074994ae6e569fd51e8b)
3129  [#8187](https://github.com/npm/npm/issues/8187) `npm ls` wasn't properly
3130  recognizing dependencies installed from GitHub repositories as git
3131  dependencies, and so wasn't displaying them as such.
3132  ([@zornme](https://github.com/zornme))
3133* [`1ab57c3`](https://github.com/npm/npm/commit/1ab57c38116c0403965c92bf60121f0f251433e4)
3134  In some cases, `npm help` was using something that looked like a regular
3135  expression where a glob pattern should be used, and vice versa.
3136  ([@isaacs](https://github.com/isaacs))
3137
3138### v2.9.1 (2015-04-30):
3139
3140#### WOW! MORE GIT FIXES! YOU LOVE THOSE!
3141
3142The first item below is actually a pretty big deal, as it fixes (with a
3143one-word change and a much, much longer test case (thanks again,
3144[@iarna](https://github.com/iarna))) a regression that's been around for months
3145now. If you're depending on multiple branches of a single git dependency in a
3146single project, you probably want to check out `npm@2.9.1` and verify that
3147things (again?) work correctly in your project.
3148
3149* [`178a6ad`](https://github.com/npm/npm/commit/178a6ad540215820d16217465a5f220d8c95a313)
3150  [#7202](https://github.com/npm/npm/issues/7202) When caching git
3151  dependencies, do so by the whole URL, including the branch name, so that if a
3152  single application depends on multiple branches from the same repository (in
3153  practice, multiple version tags), every install is of the correct version,
3154  instead of reusing whichever branch the caching process happened to check out
3155  first.  ([@iarna](https://github.com/iarna))
3156* [`63b79cc`](https://github.com/npm/npm/commit/63b79ccde092a9cb3b1f34abe43e1d2ba69c0dbf)
3157  [#8084](https://github.com/npm/npm/issues/8084) Ensure that Bitbucket,
3158  GitHub, and Gitlab dependencies are installed the same way as non-hosted git
3159  dependencies, fixing `npm install --link`.
3160  ([@laiso](https://github.com/laiso))
3161
3162#### DOCUMENTATION FIXES AND TWEAKS
3163
3164These changes may seem simple and small (except Lin's fix to the package name
3165restrictions, which was more an egregious oversight on our part), but cleaner
3166documentation makes npm significantly more pleasant to use. I really appreciate
3167all the typo fixes, clarifications, and formatting tweaks people send us, and
3168am delighted that we get so many of these pull requests. Thanks, everybody!
3169
3170* [`ca478dc`](https://github.com/npm/npm/commit/ca478dcaa29b8f07cd6fe515a3c4518166819291)
3171  [#8137](https://github.com/npm/npm/issues/8137) Somehow, we had failed to
3172  clearly document the full restrictions on package names.
3173  [@linclark](https://github.com/linclark) has now fixed that, although we will
3174  take with us to our graves the reasons why the maximum package name length is 214
3175  characters (well, OK, it was that that was the longest name in the registry
3176  when we decided to put a cap on the name length).
3177  ([@linclark](https://github.com/linclark))
3178* [`b574076`](https://github.com/npm/npm/commit/b5740767c320c1eff3576a8d63952534a0fbb936)
3179  [#8079](https://github.com/npm/npm/issues/8079) Make the `npm shrinkwrap`
3180  documentation use code formatting for examples consistently. It would be
3181  great to do this for more commands HINT HINT.
3182  ([@RichardLitt](https://github.com/RichardLitt))
3183* [`1ff636e`](https://github.com/npm/npm/commit/1ff636e2db3852a53e38c866fed7eafdacd307fc)
3184  [#8105](https://github.com/npm/npm/issues/8105) Document that the global
3185  `npmrc` goes in `$PREFIX/etc/npmrc`, instead of `$PREFIX/npmrc`.
3186  ([@anttti](https://github.com/anttti))
3187* [`c3f2f7c`](https://github.com/npm/npm/commit/c3f2f7c299342e1c1eccc55a976a63c607f51621)
3188  [#8127](https://github.com/npm/npm/issues/8127) Document how to use `npm run
3189  build` directly (hint: it's different from `npm build`!).
3190  ([@mikemaccana](https://github.com/mikemaccana))
3191* [`873e467`](https://github.com/npm/npm/commit/873e46757e1986761b15353f94580a071adcb383)
3192  [#8069](https://github.com/npm/npm/issues/8069) Take the old, dead npm
3193  mailing list address out of `package.json`. It seems that people don't have
3194  much trouble figuring out how to report errors to npm.
3195  ([@robertkowalski](https://github.com/robertkowalski))
3196
3197#### ENROBUSTIFICATIONMENT
3198
3199* [`5abfc9c`](https://github.com/npm/npm/commit/5abfc9c9017da714e47a3aece750836b4f9af6a9)
3200  [#7973](https://github.com/npm/npm/issues/7973) `npm run-script` completion
3201  will only suggest run scripts, instead of including dependencies. If for some
3202  reason you still wanted it to suggest dependencies, let us know.
3203  ([@mantoni](https://github.com/mantoni))
3204* [`4b564f0`](https://github.com/npm/npm/commit/4b564f0ce979dc74c09604f4d46fd25a2ee63804)
3205  [#8081](https://github.com/npm/npm/issues/8081) Use `osenv` to parse the
3206  environment's `PATH` in a platform-neutral way.
3207  ([@watilde](https://github.com/watilde))
3208* [`a4b6238`](https://github.com/npm/npm/commit/a4b62387b41848818973eeed056fd5c6570274f3)
3209  [#8094](https://github.com/npm/npm/issues/8094) When we refactored the
3210  configuration code to split out checking for IPv4 local addresses, we
3211  inadvertently completely broke it by failing to return the values. In
3212  addition, just the call to `os.getInterfaces()` could throw on systems where
3213  querying the network configuration requires elevated privileges (e.g. Amazon
3214  Lambda). Add the return, and trap errors so they don't cause npm to explode.
3215  Thanks to [@mhart](https://github.com/mhart) for bringing this to our
3216  attention! ([@othiym23](https://github.com/othiym23))
3217
3218#### DEPENDENCY UPDATES WAIT FOR NO SOPHONT
3219
3220* [`000cd8b`](https://github.com/npm/npm/commit/000cd8b52104942ac3404f0ad0651d82f573da37)
3221  `rimraf@2.3.3`: More informative assertions on argument validation failure.
3222  ([@isaacs](https://github.com/isaacs))
3223* [`530a2e3`](https://github.com/npm/npm/commit/530a2e369128270f3e098f0e9be061533003b0eb)
3224  `lru-cache@2.6.2`: Revert to old key access-time behavior, as it was correct
3225  all along. ([@isaacs](https://github.com/isaacs))
3226* [`d88958c`](https://github.com/npm/npm/commit/d88958ca02ce81b027b9919aec539d0145875a59)
3227  `minimatch@2.0.7`: Feature detection and test improvements.
3228  ([@isaacs](https://github.com/isaacs))
3229* [`3fa39e4`](https://github.com/npm/npm/commit/3fa39e4d492609d5d045033896dcd99f7b875329)
3230  `nock@1.7.1` ([@pgte](https://github.com/pgte))
3231
3232### v2.9.0 (2015-04-23):
3233
3234This week was kind of a breather to concentrate on fixing up the tests on the
3235`multi-stage` branch, and not mess with git issues for a little while.
3236Unfortunately, There are now enough severe git issues that we'll probably have
3237to spend another couple weeks tackling them. In the meantime, enjoy these two
3238small features. They're just enough to qualify for a semver-minor bump:
3239
3240#### NANOFEATURES
3241
3242* [`2799322`](https://github.com/npm/npm/commit/279932298ce5b589c5eea9439ac40b88b99c6a4a)
3243  [#7426](https://github.com/npm/npm/issues/7426) Include local modules in `npm
3244  outdated` and `npm update`.  ([@ArnaudRinquin](https://github.com/ArnaudRinquin))
3245* [`2114862`](https://github.com/npm/npm/commit/21148620fa03a582f4ec436bb16bd472664f2737)
3246  [#8014](https://github.com/npm/npm/issues/8014) The prefix used before the
3247  version on version tags is now configurable via `tag-version-prefix`. Be
3248  careful with this one and read the docs before using it.
3249  ([@kkragenbrink](https://github.com/kkragenbrink))
3250
3251#### OTHER MINOR TWEAKS
3252
3253* [`18ce0ec`](https://github.com/npm/npm/commit/18ce0ecd2d94ad3af01e997f1396515892dd363c)
3254  [#3032](https://github.com/npm/npm/issues/3032) `npm unpublish` will now use
3255  the registry set in `package.json`, just like `npm publish`. This only
3256  applies, for now, when unpublishing the entire package, as unpublishing a
3257  single version requires the name be included on the command line and
3258  therefore doesn't read from `package.json`. ([@watilde](https://github.com/watilde))
3259* [`9ad2100`](https://github.com/npm/npm/commit/9ad210042242e51d52b2a8b633d8e59248f5faa4)
3260  [#8008](https://github.com/npm/npm/issues/8008) Once again, when considering
3261  what to install on `npm install`, include `devDependencies`.
3262  ([@smikes](https://github.com/smikes))
3263* [`5466260`](https://github.com/npm/npm/commit/546626059909dca1906454e820ca4e315c1795bd)
3264  [#8003](https://github.com/npm/npm/issues/8003) Clarify the documentation
3265  around scopes to make it easier to understand how they support private
3266  packages. ([@smikes](https://github.com/smikes))
3267
3268#### DEPENDENCIES WILL NOT STOP UNTIL YOU ARE VERY SLEEPY
3269
3270* [`faf65a7`](https://github.com/npm/npm/commit/faf65a7bbb2fad13216f64ed8f1243bafe743f97)
3271  `init-package-json@1.4.2`: If there are multiple validation errors and
3272  warnings, ensure they all get displayed (includes a rad new way of testing
3273  `init-package-json` contributed by
3274  [@michaelnisi](https://github.com/michaelnisi)).
3275  ([@MisumiRize](https://github.com/MisumiRize))
3276* [`7f10f38`](https://github.com/npm/npm/commit/7f10f38d29a8423d7cde8103fa7b64ac728da1e0)
3277  `editor@1.0.0`: `1.0.0` is literally more than `0.1.0` (no change aside from
3278  version number). ([@substack](https://github.com/substack))
3279* [`4979af3`](https://github.com/npm/npm/commit/4979af3fcae5a3962383b7fdad3162381e62eefe)
3280  [#6805](https://github.com/npm/npm/issues/6805) `npm-registry-client@6.3.3`:
3281  Decode scoped package names sent by the registry so they look nicer.
3282  ([@mmalecki](https://github.com/mmalecki))
3283
3284### v2.8.4 (2015-04-16):
3285
3286This is the fourth release of npm this week, so it's mostly just landing a few
3287small outstanding PRs on dependencies and some tiny documentation tweaks.
3288`npm@2.8.3` is where the real action is.
3289
3290* [`ee2bd77`](https://github.com/npm/npm/commit/ee2bd77f3c64d38735d1d31028224a5c40422a9b)
3291  [#7983](https://github.com/npm/npm/issues/7983) `tar@2.1.0`: Better error
3292  reporting in corrupted tar files, and add support for the `fromBase` flag
3293  (rescued from the dustbin of history by
3294  [@deanmarano](https://github.com/deanmarano)).
3295  ([@othiym23](https://github.com/othiym23))
3296* [`d8eee6c`](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af)
3297  `init-package-json@1.4.1`: Add support for a default author, and only add
3298  scope to a package name once. ([@othiym23](https://github.com/othiym23))
3299* [`4fc5d98`](https://github.com/npm/npm/commit/4fc5d98b785f601c60d4dc0a2c8674f0cccf6262)
3300  `lru-cache@2.6.1`: Small tweaks to cache value aging and entry counting that
3301  are irrelevant to npm. ([@isaacs](https://github.com/isaacs))
3302* [`1fe5840`](https://github.com/npm/npm/commit/1fe584089f5bef133de5518aa26eaf6064be2bf7)
3303  [#7946](https://github.com/npm/npm/issues/7946) Make `npm init` text
3304  friendlier. ([@sandfox](https://github.com/sandfox))
3305
3306### v2.8.3 (2015-04-15):
3307
3308#### TWO SMALL GIT TWEAKS
3309
3310This is the last of a set of releases intended to ensure npm's git support is
3311robust enough that we can stop working on it for a while. These fixes are
3312small, but prevent a common crasher and clear up one of the more confusing
3313error messages coming out of npm when working with repositories hosted on git.
3314
3315* [`387f889`](https://github.com/npm/npm/commit/387f889c0e8fb617d9cc9a42ed0a3ec49424ab5d)
3316  [#7961](https://github.com/npm/npm/issues/7961) Ensure that hosted git SSH
3317  URLs always have a valid protocol when stored in `resolved` fields in
3318  `npm-shrinkwrap.json`. ([@othiym23](https://github.com/othiym23))
3319* [`394c2f5`](https://github.com/npm/npm/commit/394c2f5a1227232c0baf42fbba1402aafe0d6ffb)
3320  Switch the order in which hosted Git providers are checked to `git:`,
3321  `git+https:`, then `git+ssh:` (from `git:`, `git+ssh:`, then `git+https:`) in
3322  an effort to go from most to least likely to succeed, to make for less
3323  confusing error message. ([@othiym23](https://github.com/othiym23))
3324
3325### v2.8.2 (2015-04-14):
3326
3327#### PEACE IN OUR TIME
3328
3329npm has been having an issue with CouchDB's web server since the release
3330of io.js and Node.js 0.12.0 that has consumed a huge amount of my time
3331to little visible effect. Sam Mikes picked up the thread from me, and
3332after a [_lot_ of effort](https://github.com/npm/npm/issues/7699#issuecomment-93091111)
3333figured out that ultimately there are probably a couple problems with
3334the new HTTP Agent keep-alive handling in new versions of Node. In
3335addition, `npm-registry-client` was gratuitously sending a body along
3336with a GET request which was triggering the bugs. Sam removed about 10 bytes from
3337one file in `npm-registry-client`, and this problem, which has been bugging us for months,
3338completely went away.
3339
3340In conclusion, Sam Mikes is great, and anybody using a private registry
3341hosted on CouchDB should thank him for his hard work. Also, thanks to
3342the community at large for pitching in on this bug, which has been
3343around for months now.
3344
3345* [`431c3bf`](https://github.com/npm/npm/commit/431c3bf6cdec50f9f0c735f478cb2f3f337d3313)
3346  [#7699](https://github.com/npm/npm/issues/7699) `npm-registry-client@6.3.2`:
3347  Don't send body with HTTP GET requests when logging in.
3348  ([@smikes](https://github.com/smikes))
3349
3350### v2.8.1 (2015-04-12):
3351
3352#### CORRECTION: NPM'S GIT INTEGRATION IS DOING OKAY
3353
3354A [helpful bug report](https://github.com/npm/npm/issues/7872#issuecomment-91809553)
3355led to another round of changes to
3356[`hosted-git-info`](https://github.com/npm/hosted-git-info/commit/827163c74531b69985d1ede7abced4861e7b0cd4),
3357some additional test-writing, and a bunch of hands-on testing against actual
3358private repositories. While the complexity of npm's git dependency handling is
3359nearly fractal (because npm is very complex, and git is even more complex),
3360it's feeling way more solid than it has for a while. We think this is a
3361substantial improvement over what we had before, so give `npm@2.8.1` a shot if
3362you have particularly complex git use cases and
3363[let us know](https://github.com/npm/npm/issues/new) how it goes.
3364
3365(NOTE: These changes mostly affect cloning and saving references to packages
3366hosted in git repositories, and don't address some known issues with things
3367like lifecycle scripts not being run on npm dependencies. Work continues on
3368other issues that affect parity between git and npm registry packages.)
3369
3370* [`66377c6`](https://github.com/npm/npm/commit/66377c6ece2cf4d53d9a618b7d9824e1452bc293)
3371  [#7872](https://github.com/npm/npm/issues/7872) `hosted-git-info@2.1.2`: Pass
3372  through credentials embedded in SSH and HTTPs git URLs.
3373  ([@othiym23](https://github.com/othiym23))
3374* [`15efe12`](https://github.com/npm/npm/commit/15efe124753257728a0ddc64074fa5a4b9c2eb30)
3375  [#7872](https://github.com/npm/npm/issues/7872) Use the new version of
3376  `hosted-git-info` to pass along credentials embedded in git URLs. Test it.
3377  Test it a lot. ([@othiym23](https://github.com/othiym23))
3378
3379#### SCOPED DEPENDENCIES AND PEER DEPENDENCIES: NOT QUITE REESE'S
3380
3381Big thanks to [@ewie](https://github.com/ewie) for identifying an issue with
3382how npm was handling `peerDependencies` that were implicitly installed from the
3383`package.json` files of scoped dependencies. This
3384[will be a moot point](https://github.com/npm/npm/issues/6565#issuecomment-74971689)
3385with the release of `npm@3`, but until then, it's important that
3386`peerDependency` auto-installation work as expected.
3387
3388* [`b027319`](https://github.com/npm/npm/commit/b0273190c71eba14395ddfdd1d9f7ba625297523)
3389  [#7920](https://github.com/npm/npm/issues/7920) Scoped packages with
3390  `peerDependencies` were installing the `peerDependencies` into the wrong
3391  directory. ([@ewie](https://github.com/ewie))
3392* [`649e31a`](https://github.com/npm/npm/commit/649e31ae4fd02568bae5dc6b4ea783431ce3d63e)
3393  [#7920](https://github.com/npm/npm/issues/7920) Test `peerDependency`
3394  installs involving scoped packages using `npm-package-arg` instead of simple
3395  path tests, for consistency. ([@othiym23](https://github.com/othiym23))
3396
3397#### MAKING IT EASIER TO WRITE NPM TESTS, VERSION 0.0.1
3398
3399[@iarna](https://github.com/iarna) and I
3400([@othiym23](https://github.com/othiym23)) have been discussing a
3401[candidate plan](https://github.com/npm/npm/wiki/rewriting-npm's-tests:-a-plan-maybe)
3402for improving npm's test suite, with the goal of making it easier for new
3403contributors to get involved with npm by reducing the learning curve
3404necessary to be able to write good tests for proposed changes. This is the
3405first substantial piece of that effort. Here's what the commit message for
3406[`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf)
3407had to say about this work:
3408
3409> It's too difficult for npm contributors to figure out what the conventional
3410> style is for tests. Part of the problem is that the documentation in
3411> CONTRIBUTING.md is inadequate, but another important factor is that the tests
3412> themselves are written in a variety of styles.  One of the most notable
3413> examples of this is the fact that many tests use fixture directories to store
3414> precooked test scenarios and package.json files.
3415>
3416> This had some negative consequences:
3417>
3418>   * tests weren't idempotent
3419>   * subtle dependencies between tests existed
3420>   * new tests get written in this deprecated style because it's not
3421>     obvious that the style is out of favor
3422>   * it's hard to figure out why a lot of those directories existed,
3423>     because they served a variety of purposes, so it was difficult to
3424>     tell when it was safe to remove them
3425>
3426> All in all, the fixture directories were a major source of technical debt, and
3427> cleaning them up, while time-consuming, makes the whole test suite much more
3428> approachable, and makes it more likely that new tests written by outside
3429> contributors will follow a conventional style. To support that, all of the
3430> tests touched by this changed were cleaned up to pass the `standard` style
3431> checker.
3432
3433And here's a little extra context from a comment I left on [#7929](https://github.com/npm/npm/issues/7929):
3434
3435> One of the other things that encouraged me was looking at this
3436> [presentation on technical debt](http://www.slideshare.net/nnja/pycon-2015-technical-debt-the-monster-in-your-closet)
3437> from Pycon 2015, especially slide 53, which I interpreted in terms of
3438> difficulty getting new contributors to submit patches to an OSS project like
3439> npm. npm has a long ways to go, but I feel good about this change.
3440
3441* [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf)
3442  [#7929](https://github.com/npm/npm/issues/7929) Eliminate fixture directories
3443  from `test/tap`, leaving each test self-contained.
3444  ([@othiym23](https://github.com/othiym23))
3445* [`4928d30`](https://github.com/npm/npm/commit/4928d30140821c63e03fffed73f8d88ebdc43710)
3446  [#7929](https://github.com/npm/npm/issues/7929) Move fixture files from
3447  `test/tap/*` to `test/fixtures`. ([@othiym23](https://github.com/othiym23))
3448* [`e925deb`](https://github.com/npm/npm/commit/e925debca91092a814c1a00933babc3a8cf975be)
3449  [#7929](https://github.com/npm/npm/issues/7929) Tweak the run scripts to stop
3450  slaughtering the CPU on doc rebuild.
3451  ([@othiym23](https://github.com/othiym23))
3452* [`65bf7cf`](https://github.com/npm/npm/commit/65bf7cffaf91c426b676c47529eee796f8b8b75c)
3453  [#7923](https://github.com/npm/npm/issues/7923) Use an alias of scripts and
3454  run-scripts in `npm run test-all` ([@watilde](https://github.com/watilde))
3455* [`756a3fb`](https://github.com/npm/npm/commit/756a3fbb852a2469afe706635ed88d22c37743e5)
3456  [#7923](https://github.com/npm/npm/issues/7923) Sync timeout time of `npm
3457  run-script test-all` to be the same as `test` and `tap` scripts.
3458  ([@watilde](https://github.com/watilde))
3459* [`8299b5f`](https://github.com/npm/npm/commit/8299b5fb6373354a7fbaab6f333863758812ae90)
3460  Set a timeout for tap tests for `npm run-script test-all`.
3461  ([@othiym23](https://github.com/othiym23))
3462
3463#### THE EVER-BEATING DRUM OF DEPENDENCY UPDATES
3464
3465* [`d90d0b9`](https://github.com/npm/npm/commit/d90d0b992acbf62fd5d68debf9d1dbd6cfa20804)
3466  [#7924](https://github.com/npm/npm/issues/7924) Remove `child-process-close`,
3467  as it was included for Node 0.6 compatibility, and npm no longer supports
3468  0.6. ([@robertkowalski](https://github.com/robertkowalski))
3469* [`16427c1`](https://github.com/npm/npm/commit/16427c1f3ea3d71ee753c62eb4c2663c7b32b84f)
3470  `lru-cache@2.5.2`: More accurate updating of expiry times when `maxAge` is
3471  set. ([@isaacs](https://github.com/isaacs))
3472* [`03cce83`](https://github.com/npm/npm/commit/03cce83b64344a9e0fe036dce214f4d68cfcc9e7)
3473  `nock@1.6.0`: Mocked network error handling.
3474  ([@pgte](https://github.com/pgte))
3475* [`f93b1f0`](https://github.com/npm/npm/commit/f93b1f0b7eb5d1b8a7967e837bbd756db1091d00)
3476  `glob@5.0.5`: Use `path-is-absolute` polyfill, allowing newer Node.js and
3477  io.js versions to use `path.isAbsolute()`.
3478  ([@sindresorhus](https://github.com/sindresorhus))
3479* [`a70d694`](https://github.com/npm/npm/commit/a70d69495a6e96997e64855d9e749d943ee6d64f)
3480  `request@2.55.0`: Bug fixes and simplification.
3481  ([@simov](https://github.com/simov))
3482* [`2aecc6f`](https://github.com/npm/npm/commit/2aecc6f4083526feeb14615b4e5484edc66175b5)
3483  `columnify@1.5.1`: Switch to using babel from 6to5.
3484  ([@timoxley](https://github.com/timoxley))
3485
3486### v2.8.0 (2015-04-09):
3487
3488#### WE WILL NEVER BE DONE FIXING NPM'S GIT SUPPORT
3489
3490If you look at [the last release's release
3491notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#git-mean-git-tuff-git-all-the-way-away-from-my-stuff),
3492you will note that they confidently assert that it's perfectly OK to force all
3493GitHub URLs through the same `git:` -> `git+ssh:` fallback flow for cloning. It
3494turns out that many users depend on `git+https:` URLs in their build
3495environments because they use GitHub auth tokens instead of SSH keys. Also, in
3496some cases you just want to be able to explicitly say how a given dependency
3497should be cloned from GitHub.
3498
3499Because of the way we resolved the inconsistency in GitHub shorthand handling
3500[before](https://github.com/npm/npm/blob/master/CHANGELOG.md#bug-fixes-1), this
3501turned out to be difficult to work around. So instead of hacking around it, we
3502completely redid how git is handled within npm and its attendant packages.
3503Again. This time, we changed things so that `normalize-package-data` and
3504`read-package-json` leave more of the git logic to npm itself, which makes
3505handling shorthand syntax consistently much easier, and also allows users to
3506resume using explicit, fully-qualified git URLs without npm messing with them.
3507
3508Here's a summary of what's changed:
3509
3510* Instead of converting the GitHub shorthand syntax to a `git+ssh:`, `git:`, or
3511  `git+https:` URL and saving that, save the shorthand itself to
3512  `package.json`.
3513* If presented with shortcuts, try cloning via the git protocol, SSH, and HTTPS
3514  (in that order).
3515* No longer prompt for credentials -- it didn't work right with the spinner,
3516  and wasn't guaranteed to work anyway. We may experiment with doing this a
3517  better way in the future. Users can override this by setting `GIT_ASKPASS` in
3518  their environment if they want to experiment with interactive cloning, but
3519  should also set `--no-spin` on the npm command line (or run `npm config set
3520  spin=false`).
3521* **EXPERIMENTAL FEATURE**: Add support for `github:`, `gist:`, `bitbucket:`,
3522  and `gitlab:` shorthand prefixes. GitHub shortcuts will continue to be
3523  normalized to `org/repo` instead of being saved as `github:org/repo`, but
3524  `gitlab:`, `gist:`, and `bitbucket:` prefixes will be used on the command
3525  line and from `package.json`. BE CAREFUL WITH THIS. `package.json` files
3526  published with the new shorthand syntax can _only_ be read by `npm@2.8.0` and
3527  later, and this feature is mostly meant for playing around with it. If you
3528  want to save git dependencies in a form that older versions of npm can read,
3529  use `--save-exact`, which will save the git URL and resolved commit hash of
3530  the head of the branch in a manner similar to the way that `--save-exact`
3531  pins versions for registry dependencies.  This is documented (so check `npm
3532  help install` for details), but we're not going to make a lot of noise about
3533  it until it has a chance to bake in a little more.
3534
3535It is [@othiym23](https://github.com/othiym23)'s sincere hope that this will
3536resolve all of the inconsistencies users were seeing with GitHub and git-hosted
3537packages, but given the level of change here, that may just be a fond wish.
3538Extra testing of this change is requested.
3539
3540* [`6b0f588`](https://github.com/npm/npm/commit/6b0f58877f37df9904490ffbaaad33862bd36dce)
3541  [#7867](https://github.com/npm/npm/issues/7867) Use git shorthand and git
3542  URLs as presented by user. Support new `hosted-git-info` shortcut syntax.
3543  Save shorthand in `package.json`. Try cloning via `git:`, `git+ssh:`, and
3544  `git+https:`, in that order, when supported by the underlying hosting
3545  provider. ([@othiym23](https://github.com/othiym23))
3546* [`75d4267`](https://github.com/npm/npm/commit/75d426787869d54ca7400408f562f971b34649ef)
3547  [#7867](https://github.com/npm/npm/issues/7867) Document new GitHub, GitHub
3548  gist, Bitbucket, and GitLab shorthand syntax.
3549  ([@othiym23](https://github.com/othiym23))
3550* [`7d92c75`](https://github.com/npm/npm/commit/7d92c7592998d90ec883fa989ca74f04ec1b93de)
3551  [#7867](https://github.com/npm/npm/issues/7867) When `--save-exact` is used
3552  with git shorthand or URLs, save the fully-resolved URL, with branch name
3553  resolved to the exact hash for the commit checked out.
3554  ([@othiym23](https://github.com/othiym23))
3555* [`9220e59`](https://github.com/npm/npm/commit/9220e59f8def8c82c6d331a39ba29ad4c44e3a9b)
3556  [#7867](https://github.com/npm/npm/issues/7867) Ensure that non-prefixed and
3557  non-normalized GitHub shortcuts are saved to `package.json`.
3558  ([@othiym23](https://github.com/othiym23))
3559* [`dd398e9`](https://github.com/npm/npm/commit/dd398e98a8eba27eeba84378200da3d078fdf980)
3560  [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.1`:
3561  Ensure that `gist:` shorthand survives being round-tripped through
3562  `package.json`. ([@othiym23](https://github.com/othiym23))
3563* [`33d1420`](https://github.com/npm/npm/commit/33d1420bf2f629332fceb2ac7e174e63ac48f96a)
3564  [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.0`: Add
3565  support for auth embedded directly in git URLs.
3566  ([@othiym23](https://github.com/othiym23))
3567* [`23a1d5a`](https://github.com/npm/npm/commit/23a1d5a540e8db27f5cd0245de7c3694e2bddad1)
3568  [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.0.2`: Make
3569  it possible to determine in which form a hosted git URL was passed.
3570  ([@iarna](https://github.com/iarna))
3571* [`eaf75ac`](https://github.com/npm/npm/commit/eaf75acb718611ad5cfb360084ec86938d9c66c5)
3572  [#7867](https://github.com/npm/npm/issues/7867)
3573  `normalize-package-data@2.0.0`: Normalize GitHub specifiers so they pass
3574  through shortcut syntax and preserve explicit URLs.
3575  ([@iarna](https://github.com/iarna))
3576* [`95e0535`](https://github.com/npm/npm/commit/95e0535e365e0aca49c634dd2061a0369b0475f1)
3577  [#7867](https://github.com/npm/npm/issues/7867) `npm-package-arg@4.0.0`: Add
3578  git URL and shortcut to hosted git spec and use `hosted-git-info@2.0.2`.
3579  ([@iarna](https://github.com/iarna))
3580* [`a808926`](https://github.com/npm/npm/commit/a8089268d5f3d57f42dbaba02ff6437da5121191)
3581  [#7867](https://github.com/npm/npm/issues/7867)
3582  `realize-package-specifier@3.0.0`: Use `npm-package-arg@4.0.0` and test
3583  shortcut specifier behavior. ([@iarna](https://github.com/iarna))
3584* [`6dd1e03`](https://github.com/npm/npm/commit/6dd1e039bddf8cf5383343f91d84bc5d78acd083)
3585  [#7867](https://github.com/npm/npm/issues/7867) `init-package-json@1.4.0`:
3586  Allow dependency on `read-package-json@2.0.0`.
3587  ([@iarna](https://github.com/iarna))
3588* [`63254bb`](https://github.com/npm/npm/commit/63254bb6358f66752aca6aa1a275271b3ae03f7c)
3589  [#7867](https://github.com/npm/npm/issues/7867) `read-installed@4.0.0`: Use
3590  `read-package-json@2.0.0`. ([@iarna](https://github.com/iarna))
3591* [`254b887`](https://github.com/npm/npm/commit/254b8871f5a173bb464cc5b0ace460c7878b8097)
3592  [#7867](https://github.com/npm/npm/issues/7867) `read-package-json@2.0.0`:
3593  Use `normalize-package-data@2.0.0`. ([@iarna](https://github.com/iarna))
3594* [`0b9f8be`](https://github.com/npm/npm/commit/0b9f8be62fe5252abe54d49e36a696f4816c2eca)
3595  [#7867](https://github.com/npm/npm/issues/7867) `npm-registry-client@6.3.0`:
3596  Mark compatibility with `normalize-package-data@2.0.0` and
3597  `npm-package-arg@4.0.0`. ([@iarna](https://github.com/iarna))
3598* [`f40ecaa`](https://github.com/npm/npm/commit/f40ecaad68f77abc50eb6f5b224e31dec3d250fc)
3599  [#7867](https://github.com/npm/npm/issues/7867) Extract a common method to
3600  use when cloning git repos for testing.
3601  ([@othiym23](https://github.com/othiym23))
3602
3603#### TEST FIXES FOR NODE 0.8
3604
3605npm continues to [get closer](https://github.com/npm/npm/issues/7842) to being
3606completely green on Travis for Node 0.8.
3607
3608* [`26d36e9`](https://github.com/npm/npm/commit/26d36e9cf0eca69fe1863d2ea536c28555b9e8de)
3609  [#7842](https://github.com/npm/npm/issues/7842) When spawning child
3610  processes, map exit code 127 to ENOENT so Node 0.8 handles child process
3611  failures the same as later versions.
3612  ([@SonicHedgehog](https://github.com/SonicHedgehog))
3613* [`54cd895`](https://github.com/npm/npm/commit/54cd8956ea783f96749e46597d8c2cb9397c5d5f)
3614  [#7842](https://github.com/npm/npm/issues/7842) Node 0.8 requires -e with -p
3615  when evaluating snippets; fix test.
3616  ([@SonicHedgehog](https://github.com/SonicHedgehog))
3617
3618#### SMALL FIX AND DOC TWEAK
3619
3620* [`20e9003`](https://github.com/npm/npm/commit/20e90031b847e9f7c7168f3dad8b1e526f9a2586)
3621  `tar@2.0.1`: Fix regression where relative symbolic links within an
3622  extraction root that pointed within an extraction root would get normalized
3623  to absolute symbolic links. ([@isaacs](https://github.com/isaacs))
3624* [`2ef8898`](https://github.com/npm/npm/commit/2ef88989c41bee1578570bb2172c90ede129dbd1)
3625  [#7879](https://github.com/npm/npm/issues/7879) Better document that `npm
3626  publish --tag=foo` will not set `latest` to that version.
3627  ([@linclark](https://github.com/linclark))
3628
3629### v2.7.6 (2015-04-02):
3630
3631#### GIT MEAN, GIT TUFF, GIT ALL THE WAY AWAY FROM MY STUFF
3632
3633Part of the reason that we're reluctant to take patches to how npm deals with
3634git dependencies is that every time we touch the git support, something breaks.
3635The last few releases are a case in point. `npm@2.7.4` completely broke
3636installing private modules from GitHub, and `npm@2.7.5` fixed them at the cost
3637of logging a misleading error message that caused many people to believe that
3638their dependencies hadn't been successfully installed when they actually had
3639been.
3640
3641This all started from a desire to ensure that GitHub shortcut syntax is being
3642handled correctly.  The correct behavior is for npm to try to clone all
3643dependencies on GitHub (whether they're specified with the GitHub
3644`organization/repository` shortcut syntax or not) via the plain `git:` protocol
3645first, and to fall back to using `git+ssh:` if `git:` doesn't work. Previously,
3646sometimes npm would use `git:` and `git+ssh:` in some cases (most notably when
3647using GitHub shortcut syntax on the command line), and use `git+https:` in
3648others (when the GitHub shortcut syntax was present in `package.json`). This
3649led to subtle and hard-to-understand inconsistencies, and we're glad that as of
3650`npm@2.7.6`, we've finally gotten things to where they were before we started,
3651only slightly more consistent overall.
3652
3653We are now going to go back to our policy of being extremely reluctant to touch
3654the code that handles Git dependencies.
3655
3656* [`b747593`](https://github.com/npm/npm/commit/b7475936f473f029e6a027ba1b16277523747d0b)
3657  [#7630](https://github.com/npm/npm/issues/7630) Don't automatically log all
3658  git failures as errors. `maybeGithub` needs to be able to fail without
3659  logging to support its fallback logic.
3660  ([@othiym23](https://github.com/othiym23))
3661* [`cd67a0d`](https://github.com/npm/npm/commit/cd67a0db07891d20871822696c26692c8a84866a)
3662  [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote
3663  URL, handle failures gracefully (without assuming standard output exists).
3664  ([@othiym23](https://github.com/othiym23))
3665* [`637c7d1`](https://github.com/npm/npm/commit/637c7d1411fe07f409cf91f2e65fd70685cb253c)
3666  [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote
3667  URL, handle failures gracefully (without assuming standard _error_ exists).
3668  ([@othiym23](https://github.com/othiym23))
3669
3670#### OTHER SIGNIFICANT FIXES
3671
3672* [`78005eb`](https://github.com/npm/npm/commit/78005ebb6f4103c20f077669c3929b7ea46a4c0d)
3673  [#7743](https://github.com/npm/npm/issues/7743) Always quote arguments passed
3674  to `npm run-script`. This allows build systems and the like to safely escape
3675  glob patterns passed as arguments to `run-scripts` with `npm run-script
3676  <script> -- <arguments>`. This is a tricky change to test, and may be
3677  reverted or moved to `npm@3` if it turns out it breaks things for users.
3678  ([@mantoni](https://github.com/mantoni))
3679* [`da015ee`](https://github.com/npm/npm/commit/da015eee45f6daf384598151d06a9b57ffce136e)
3680  [#7074](https://github.com/npm/npm/issues/7074) `read-package-json@1.3.3`:
3681  `read-package-json` no longer caches `package.json` files, which trades a
3682  very small performance loss for the elimination of a large class of really
3683  annoying race conditions. See [#7074](https://github.com/npm/npm/issues/7074)
3684  for the grisly details. ([@othiym23](https://github.com/othiym23))
3685* [`dd20f57`](https://github.com/npm/npm/commit/dd20f5755291b9433f0d298ee0eead22cda6db36)
3686  `init-package-json@1.3.2`: Only add the `@` to scoped package names if it's
3687  not already there when reading from the filesystem
3688  ([@watilde](https://github.com/watilde)), and support inline validation of
3689  package names ([@michaelnisi](https://github.com/michaelnisi)).
3690
3691#### SMALL FIXES AND DEPENDENCY UPGRADES
3692
3693* [`1f380f6`](https://github.com/npm/npm/commit/1f380f66c1e944b8ffbf096fa94d09e931626e12)
3694  [#7820](https://github.com/npm/npm/issues/7820) `are-we-there-yet@1.0.4`: Use
3695  `readable-stream` instead of built-in `stream` module to better support
3696  Node.js 0.8.x. ([@SonicHedgehog](https://github.com/SonicHedgehog))
3697* [`d380188`](https://github.com/npm/npm/commit/d380188e161be31f5a4f53947de6bc28df4732d8)
3698  `semver@4.3.3`: Don't throw on `semver.parse(null)`, and parse numeric
3699  version strings more robustly. ([@isaacs](https://github.com/isaacs))
3700* [`01d9964`](https://github.com/npm/npm/commit/01d99649265f921e1c61cf406613e7042bcea008)
3701  `nock@1.4.0`: This change may need to be rolled back, or rolled forward,
3702  because [nock depends on
3703  `setImmediate`](https://github.com/npm/npm/issues/7842), which causes tests
3704  to fail when run with Node.js 0.8. ([@othiym23](https://github.com/othiym23))
3705* [`91f5cb1`](https://github.com/npm/npm/commit/91f5cb1fb91520fbe25a4da5b80848ed540b9ad3)
3706  [#7791](https://github.com/npm/npm/issues/7791) Fix brackets in npmconf so
3707  that `loaded` is set correctly.
3708  ([@charmander](https://github.com/charmander))
3709* [`1349e27`](https://github.com/npm/npm/commit/1349e27c936a8b0fc9f6440a6d6404ef3b19c587)
3710  [#7818](https://github.com/npm/npm/issues/7818) Update `README.md` to point
3711  out that the install script now lives on https://www.npmjs.com.
3712  ([@weisjohn](https://github.com/weisjohn))
3713
3714### v2.7.5 (2015-03-26):
3715
3716#### SECURITY FIXES
3717
3718* [`300834e`](https://github.com/npm/npm/commit/300834e91a4e2a95fb7fb59c309e7c3fc91d2312)
3719  `tar@2.0.0`: Normalize symbolic links that point to targets outside the
3720  extraction root. This prevents packages containing symbolic links from
3721  overwriting targets outside the expected paths for a package. Thanks to [Tim
3722  Cuthbertson](http://gfxmonk.net/) and the team at [Lift
3723  Security](https://liftsecurity.io/) for working with the npm team to identify
3724  this issue. ([@othiym23](https://github.com/othiym23))
3725* [`0dc6875`](https://github.com/npm/npm/commit/0dc68757cffd5397c280bc71365d106523a5a052)
3726  `semver@4.3.2`: Package versions can be no more than 256 characters long.
3727  This prevents a situation in which parsing the version number can use
3728  exponentially more time and memory to parse, leading to a potential denial of
3729  service. Thanks to Adam Baldwin at Lift Security for bringing this to our
3730  attention.  ([@isaacs](https://github.com/isaacs))
3731
3732#### BUG FIXES
3733
3734* [`5811468`](https://github.com/npm/npm/commit/5811468e104ccb6b26b8715dff390d68daa10066)
3735  [#7713](https://github.com/npm/npm/issues/7713) Add a test for `npm link` and
3736  `npm link <package>`. ([@watilde](https://github.com/watilde))
3737* [`3cf3b0c`](https://github.com/npm/npm/commit/3cf3b0c8fddb6b66f969969feebea85fabd0360b)
3738  [#7713](https://github.com/npm/npm/issues/7713) Only use absolute symbolic
3739  links when `npm link`ing. ([@hokaccha](https://github.com/hokaccha))
3740* [`f35aa93`](https://github.com/npm/npm/commit/f35aa933e136228a89e3fcfdebe8c7cc4f1e7c00)
3741  [#7443](https://github.com/npm/npm/issues/7443) Keep relative URLs when
3742  hitting search endpoint. ([@othiym23](https://github.com/othiym23))
3743* [`eab6184`](https://github.com/npm/npm/commit/eab618425c51e3aa4416da28dcd8ca4ba63aec41)
3744  [#7766](https://github.com/npm/npm/issues/7766) One last tweak to ensure that
3745  GitHub shortcuts work with private repositories.
3746  ([@iarna](https://github.com/iarna))
3747* [`5d7f704`](https://github.com/npm/npm/commit/5d7f704823f5f92ddd7ff3e7dd2b8bcc66c73005)
3748  [#7656](https://github.com/npm/npm/issues/7656) Don't try to load a deleted
3749  CA file, allowing the `cafile` config to be changed.
3750  ([@KenanY](https://github.com/KenanY))
3751* [`a840a13`](https://github.com/npm/npm/commit/a840a13bbf0330157536381ea8e58d0bd93b4c05)
3752  [#7746](https://github.com/npm/npm/issues/7746) Only fix up URL paths when
3753  there are paths to fix up. ([@othiym23](https://github.com/othiym23))
3754
3755#### DEPENDENCY UPDATES
3756
3757* [`94df809`](https://github.com/npm/npm/commit/94df8095985bf5ba9d8db99dc445d05dac136aaf)
3758  `request@2.54.0`: Fixes for Node.js 0.12 and io.js.
3759  ([@simov](https://github.com/simov))
3760* [`98a13ea`](https://github.com/npm/npm/commit/98a13eafdf098b53069ad15297008fcab9c61653)
3761  `opener@1.4.1`: Deal with `start` on Windows more conventionally.
3762  ([@domenic](https://github.com/domenic))
3763* [`c2417c7`](https://github.com/npm/npm/commit/c2417c7702459a446f07d43ca3c4e99bde7fe9d6)
3764  `require-inject@1.2.0`: Add installGlobally to bypass cleanups.
3765  ([@iarna](https://github.com/iarna))
3766
3767#### DOCUMENTATION FIXES
3768
3769* [`f87c728`](https://github.com/npm/npm/commit/f87c728f8732c9e977c0dc2060c0610649e79155)
3770  [#7696](https://github.com/npm/npm/issues/7696) Months and minutes were
3771  swapped in doc-build.sh ([@MeddahJ](https://github.com/MeddahJ))
3772* [`4e216b2`](https://github.com/npm/npm/commit/4e216b29b30463f06afe6e3c645e205da5f50922)
3773  [#7752](https://github.com/npm/npm/issues/7752) Update string examples to be
3774  properly quoted. ([@snuggs](https://github.com/snuggs))
3775* [`402f52a`](https://github.com/npm/npm/commit/402f52ab201efa348feb87cad753fc4b91e8a3fb)
3776  [#7635](https://github.com/npm/npm/issues/7635) Clarify Windows installation
3777  instructions. ([@msikma](https://github.com/msikma))
3778* [`c910399`](https://github.com/npm/npm/commit/c910399ecfd8db49fe4496dd26887765a8aed20f)
3779  small typo fix to `CHANGELOG.md` ([@e-jigsaw](https://github.com/e-jigsaw))
3780
3781### v2.7.4 (2015-03-20):
3782
3783#### BUG FIXES
3784
3785* [`fe1bc38`](https://github.com/npm/npm/commit/fe1bc387a14475e373557de669e03d9d006d3173)
3786  [#7672](https://github.com/npm/npm/issues/7672) `npm-registry-client@3.1.2`:
3787  Fix client-side certificate handling by correcting property name.
3788  ([@atamon](https://github.com/atamon))
3789* [`3ce3cc2`](https://github.com/npm/npm/commit/3ce3cc242fc345bca6820185a4f5a013c5bc1944)
3790  [#7635](https://github.com/npm/npm/issues/7635) `fstream-npm@1.0.2`: Raise a
3791  more descriptive error when `bundledDependencies` isn't an array.
3792  ([@KenanY](https://github.com/KenanY))
3793* [`3a12723`](https://github.com/npm/npm/commit/3a127235076a1f00bc8befba56c024c6d0e7f477)
3794  [#7661](https://github.com/npm/npm/issues/7661) Allow setting `--registry` on
3795  the command line to trump the mapped registry for `--scope`.
3796  ([@othiym23](https://github.com/othiym23))
3797* [`89ce829`](https://github.com/npm/npm/commit/89ce829a00b526d0518f5cd855c323bffe182af0)
3798  [#7630](https://github.com/npm/npm/issues/7630) `hosted-git-info@1.5.3`: Part
3799  3 of ensuring that GitHub shorthand is handled consistently.
3800  ([@othiym23](https://github.com/othiym23))
3801* [`63313eb`](https://github.com/npm/npm/commit/63313eb0c37891c355546fd1093010c8a0c3cd81)
3802  [#7630](https://github.com/npm/npm/issues/7630)
3803  `realize-package-specifier@2.2.0`: Part 2 of ensuring that GitHub shorthand
3804  is handled consistently. ([@othiym23](https://github.com/othiym23))
3805* [`3ed41bf`](https://github.com/npm/npm/commit/3ed41bf64a1bb752bb3155c74dd6ffbbd28c89c9)
3806  [#7630](https://github.com/npm/npm/issues/7630) `npm-package-arg@3.1.1`: Part
3807  1 of ensuring that GitHub shorthand is handled consistently.
3808  ([@othiym23](https://github.com/othiym23))
3809
3810#### DEPENDENCY UPDATES
3811
3812* [`6a498c6`](https://github.com/npm/npm/commit/6a498c6aaa00611a0a1ea405255900c327103f8b)
3813  `npm-registry-couchapp@2.6.7`: Ensure that npm continues to work with new
3814  registry architecture. ([@bcoe](https://github.com/bcoe))
3815* [`bd72c47`](https://github.com/npm/npm/commit/bd72c47ce8c58e287d496902c11845c8fea420d6)
3816  `glob@5.0.3`: Updated to latest version.
3817  ([@isaacs](https://github.com/isaacs))
3818* [`4bfbaa2`](https://github.com/npm/npm/commit/4bfbaa2d8b9dc7067d999de8f55676db3a4f4196)
3819  `npmlog@1.2.0`: Getting up to date with latest version (but not using any of
3820  the new features). ([@othiym23](https://github.com/othiym23))
3821
3822#### A NEW REGRESSION TEST
3823
3824* [`3703b0b`](https://github.com/npm/npm/commit/3703b0b87c127a64649bdbfc3bc697ebccc4aa24)
3825  Add regression test for `npm version` to ensure `message` property in config
3826  continues to be honored. ([@dannyfritz](https://github.com/dannyfritz))
3827
3828### v2.7.3 (2015-03-16):
3829
3830#### HAHA WHOOPS LIL SHINKWRAP ISSUE THERE LOL
3831
3832* [`1549106`](https://github.com/npm/npm/commit/1549106f518000633915686f5f1ccc6afcf77f8f)
3833  [#7641](https://github.com/npm/npm/issues/7641) Due to 448efd0, running `npm
3834  shrinkwrap --dev` caused production dependencies to no longer be included in
3835  `npm-shrinkwrap.json`. Whoopsie! ([@othiym23](https://github.com/othiym23))
3836
3837### v2.7.2 (2015-03-12):
3838
3839#### NPM GASTROENTEROLOGY
3840
3841* [`fb0ac26`](https://github.com/npm/npm/commit/fb0ac26eecdd76f6eaa4a96a865b7c6f52ce5aa5)
3842  [#7579](https://github.com/npm/npm/issues/7579) Only block removing files and
3843  links when we're sure npm isn't responsible for them. This change is hard to
3844  summarize, because if things are working correctly you should never see it,
3845  but if you want more context, just [go read the commit
3846  message](https://github.com/npm/npm/commit/fb0ac26eecdd76f6eaa4a96a865b7c6f52ce5aa5),
3847  which lays it all out. ([@othiym23](https://github.com/othiym23))
3848* [`051c473`](https://github.com/npm/npm/commit/051c4738486a826300f205b71590781ce7744f01)
3849  [#7552](https://github.com/npm/npm/issues/7552) `bundledDependencies` are now
3850  properly included in the installation context. This is another fantastically
3851  hard-to-summarize bug, and once again, I encourage you to [read the commit
3852  message](https://github.com/npm/npm/commit/051c4738486a826300f205b71590781ce7744f01)
3853  if you're curious about the details. The snappy takeaway is that this
3854  unbreaks many use cases for `ember-cli`. ([@othiym23](https://github.com/othiym23))
3855
3856#### LESS DRAMATIC CHANGES
3857
3858* [`fcd9247`](https://github.com/npm/npm/commit/fcd92476f3a9092f6f8c83a19a24fe63b206edcd)
3859  [#7597](https://github.com/npm/npm/issues/7597) Awk varies pretty
3860  dramatically from platform to platform, so use Perl to generate the AUTHORS
3861  list instead. ([@KenanY](https://github.com/KenanY))
3862* [`721b17a`](https://github.com/npm/npm/commit/721b17a31690bec074eb8763d823d6de63406005)
3863  [#7598](https://github.com/npm/npm/issues/7598) `npm install --save` really
3864  isn't experimental anymore. ([@RichardLitt](https://github.com/RichardLitt))
3865
3866#### DEPENDENCY REFRESH
3867
3868* [`a91f2c7`](https://github.com/npm/npm/commit/a91f2c7c9a5183d9cde7aae040ebd9ccdf104be7)
3869  [#7559](https://github.com/npm/npm/issues/7559) `node-gyp@1.0.3` Switch
3870  `node-gyp` to use `stdio` instead of `customFds` so it stops printing a
3871  deprecation warning every time you build a native dependency.
3872  ([@jeffbski](https://github.com/jeffbski))
3873* [`0c85db7`](https://github.com/npm/npm/commit/0c85db7f0dde41762411e40a029153e6a65ef483)
3874  `rimraf@2.3.2`: Globbing now deals with paths containing valid glob
3875  metacharacters better. ([@isaacs](https://github.com/isaacs))
3876* [`d14588e`](https://github.com/npm/npm/commit/d14588ed09b032c4c770e34b4c0f2436f5fccf6e)
3877  `minimatch@2.0.4`: Bug fixes. ([@isaacs](https://github.com/isaacs))
3878* [`aa9952e`](https://github.com/npm/npm/commit/aa9952e8270a6c1b7f97e579875dd6e3aa22abfd)
3879  `graceful-fs@3.0.6`: Bug fixes. ([@isaacs](https://github.com/isaacs))
3880
3881### v2.7.1 (2015-03-05):
3882
3883#### GITSANITY
3884
3885* [`6823807`](https://github.com/npm/npm/commit/6823807bba6c00228a724e1205ae90d67df0adad)
3886  [#7121](https://github.com/npm/npm/issues/7121) `npm install --save` for Git
3887  dependencies saves the URL passed in, instead of the temporary directory used
3888  to clone the remote repo. Fixes using Git dependencies when shrinkwrapping.
3889  In the process, rewrote the Git dependency caching code. Again. No more
3890  single-letter variable names, and a much clearer workflow.
3891  ([@othiym23](https://github.com/othiym23))
3892* [`c8258f3`](https://github.com/npm/npm/commit/c8258f31365b045e5fcf15b865a363abbc3be616)
3893  [#7486](https://github.com/npm/npm/issues/7486) When installing Git remotes,
3894  the caching code was passing in the function `gitEnv` instead of the results
3895  of invoking it. ([@functino](https://github.com/functino))
3896* [`c618eed`](https://github.com/npm/npm/commit/c618eeda3e321fd454d77c476b53a0330f2344cc)
3897  [#2556](https://github.com/npm/npm/issues/2556) Make it possible to install
3898  Git dependencies when using `--link` by not linking just the Git
3899  dependencies. ([@smikes](https://github.com/smikes))
3900
3901#### WHY DID THIS TAKE SO LONG.
3902
3903* [`abdd040`](https://github.com/npm/npm/commit/abdd040da90932535472f593d5433a67ee074801)
3904  `read-package-json@1.3.2`: Provide more helpful error messages when JSON
3905  parse errors are encountered by using a more forgiving JSON parser than
3906  JSON.parse. ([@smikes](https://github.com/smikes))
3907
3908#### BUGS & TWEAKS
3909
3910* [`c56cfcd`](https://github.com/npm/npm/commit/c56cfcd79cd8ab4ccd06d2c03d7e04030d576683)
3911  [#7525](https://github.com/npm/npm/issues/7525) `npm dedupe` handles scoped
3912  packages. ([@KidkArolis](https://github.com/KidkArolis))
3913* [`1b8ba74`](https://github.com/npm/npm/commit/1b8ba7426393cbae2c76ad2c35953782d4401871)
3914  [#7531](https://github.com/npm/npm/issues/7531) `npm stars` and `npm whoami`
3915  will no longer send the registry the error text saying you need to log in as
3916  your username.  ([@othiym23](https://github.com/othiym23))
3917* [`6de1e91`](https://github.com/npm/npm/commit/6de1e91116a5105dfa75126532b9083d8672e034)
3918  [#6441](https://github.com/npm/npm/issues/6441) Prevent needless reinstalls
3919  by only updating packages when the current version isn't the same as the
3920  version returned as `wanted` by `npm outdated`.
3921  ([@othiym23](https://github.com/othiym23))
3922* [`2abc3ee`](https://github.com/npm/npm/commit/2abc3ee08f0cabc4e7bfd7b973c0b59dc44715ff)
3923  Add `npm upgrade` as an alias for `npm update`.
3924  ([@othiym23](https://github.com/othiym23))
3925* [`bcd4722`](https://github.com/npm/npm/commit/bcd47224e18884191a5d0057c2b2fff83ac8206e)
3926  [#7508](https://github.com/npm/npm/issues/7508) FreeBSD uses `EAI_FAIL`
3927  instead of `ENOTFOUND`. ([@othiym23](https://github.com/othiym23))
3928* [`21c1ac4`](https://github.com/npm/npm/commit/21c1ac41280f0716a208cde14025a2ad5ef61fed)
3929  [#7507](https://github.com/npm/npm/issues/7507) Update support URL in generic
3930  error handler to `https:` from `http:`.
3931  ([@watilde](https://github.com/watilde))
3932* [`b6bd99a`](https://github.com/npm/npm/commit/b6bd99a73f575545fbbaef95c12237c47dd32561)
3933  [#7492](https://github.com/npm/npm/issues/7492) On install, the
3934  `package.json` `engineStrict` deprecation only warns for the current package.
3935  ([@othiym23](https://github.com/othiym23))
3936* [`4ef1412`](https://github.com/npm/npm/commit/4ef1412d0061239da2b1c4460ed6db37cc9ded27)
3937  [#7075](https://github.com/npm/npm/issues/7075) If you try to tag a release
3938  as a valid semver range, `npm publish` and `npm tag` will error early instead
3939  of proceeding. ([@smikes](https://github.com/smikes))
3940* [`ad53d0f`](https://github.com/npm/npm/commit/ad53d0f666125d9f50d661b54901c6e5bab4d603)
3941  Use `rimraf` in npm build script because Windows doesn't know what rm is.
3942  ([@othiym23](https://github.com/othiym23))
3943* [`8885c4d`](https://github.com/npm/npm/commit/8885c4dfb618f2838930b5c5149abea300a762d6)
3944  `rimraf@2.3.1`: Better Windows support.
3945  ([@isaacs](https://github.com/isaacs))
3946* [`8885c4d`](https://github.com/npm/npm/commit/8885c4dfb618f2838930b5c5149abea300a762d6)
3947  `glob@4.4.2`: Handle bad symlinks properly.
3948  ([@isaacs](https://github.com/isaacs))
3949
3950###E TYPSO & CLARFIICATIONS
3951
3952dId yuo know that submiting fxies for doc tpyos is an exclelent way to get
3953strated contriburting to a new open-saurce porject?
3954
3955* [`42c605c`](https://github.com/npm/npm/commit/42c605c7b401f603c32ea70427e1a7666adeafd9)
3956  Fix typo in `CHANGELOG.md` ([@adrianblynch](https://github.com/adrianblynch))
3957* [`c9bd58d`](https://github.com/npm/npm/commit/c9bd58dd637b9c41441023584a13e3818d5db336)
3958  Add note about `node_modules/.bin` being added to the path in `npm
3959  run-script`. ([@quarterto](https://github.com/quarterto))
3960* [`903bdd1`](https://github.com/npm/npm/commit/903bdd105b205d6e45d3a2ab83eea8e4071e9aeb)
3961  Matt Ranney confused the world when he renamed `node-redis` to `redis`. "The
3962  world" includes npm's documentation.
3963  ([@RichardLitt](https://github.com/RichardLitt))
3964* [`dea9bb2`](https://github.com/npm/npm/commit/dea9bb2319183fe54bf4d173d8533d46d2c6611c)
3965  Fix typo in contributor link. ([@watilde](https://github.com/watilde))
3966* [`1226ca9`](https://github.com/npm/npm/commit/1226ca98d4d7650cc3ba16bf7ac62e44820f3bfa)
3967  Properly close code block in npm-install.md.
3968  ([@olizilla](https://github.com/olizilla))
3969
3970### v2.7.0 (2015-02-26):
3971
3972#### SOMETIMES SEMVER MEANS "SUBJECTIVE-EMPATHETIC VERSIONING"
3973
3974For a very long time (maybe forever?), the documentation for `npm run-script`
3975has said that `npm restart` will only call `npm stop` and `npm start` when
3976there is no command defined as `npm restart` in `package.json`. The problem
3977with this documentation is that `npm run-script` was apparently never wired up
3978to actually work this way.
3979
3980Until now.
3981
3982If the patch below were landed on its own, free of context, it would be a
3983breaking change. But, since the "new" behavior is how the documentation claims
3984this feature has always worked, I'm classifying it as a patch-level bug fix. I
3985apologize in advance if this breaks anybody's deployment scripts, and if it
3986turns out to be a significant regression in practice, we can revert this change
3987and move it to `npm@3`, which is allowed to make breaking changes due to being
3988a new major version of semver.
3989
3990* [`2f6a1df`](https://github.com/npm/npm/commit/2f6a1df3e1e3e0a3bc4abb69e40f59a64204e7aa)
3991  [#1999](https://github.com/npm/npm/issues/1999) Only run `stop` and `start`
3992  scripts (plus their pre- and post- scripts) when there's no `restart` script
3993  defined. This makes it easier to support graceful restarts of services
3994  managed by npm.  ([@watilde](https://github.com/watilde) /
3995  [@scien](https://github.com/scien))
3996
3997#### A SMALL FEATURE WITH BIG IMPLICATIONS
3998
3999* [`145af65`](https://github.com/npm/npm/commit/145af6587f45de135cc876be2027ed818ed4ca6a)
4000  [#4887](https://github.com/npm/npm/issues/4887) Replace calls to the
4001  `node-gyp` script bundled with npm by passing the
4002  `--node-gyp=/path/to/node-gyp` option to npm. Swap in `pangyp` or a version
4003  of `node-gyp` modified to work better with io.js without having to touch
4004  npm's code!  ([@ackalker](https://github.com/ackalker))
4005
4006#### [@WATILDE'S](https://github.com/watilde) NPM USABILITY CORNER
4007
4008Following `npm@2.6.1`'s unexpected fix of many of the issues with `npm update
4009-g` simply by making `--depth=0` the default for `npm outdated`, friend of npm
4010[@watilde](https://github.com/watilde) has made several modest changes to npm's
4011behavior that together justify bumping npm's minor version, as well as making
4012npm significantly more pleasant to use:
4013
4014* [`448efd0`](https://github.com/npm/npm/commit/448efd0eaa6f97af0889bf47efc543a1ea2f8d7e)
4015  [#2853](https://github.com/npm/npm/issues/2853) Add support for `--dev` and
4016  `--prod` to `npm ls`, so that you can list only the trees of production or
4017  development dependencies, as desired.
4018  ([@watilde](https://github.com/watilde))
4019* [`a0a8777`](https://github.com/npm/npm/commit/a0a87777af8bee180e4e9321699f050c29ed5ac4)
4020  [#7463](https://github.com/npm/npm/issues/7463) Split the list printed by
4021  `npm run-script` into lifecycle scripts and scripts directly invoked via `npm
4022  run-script`. ([@watilde](https://github.com/watilde))
4023* [`a5edc17`](https://github.com/npm/npm/commit/a5edc17d5ef1435b468a445156a4a109df80f92b)
4024  [#6749](https://github.com/npm/npm/issues/6749) `init-package-json@1.3.1`:
4025  Support for passing scopes to `npm init` so packages are initialized as part
4026  of that scope / organization / team. ([@watilde](https://github.com/watilde))
4027
4028#### SMALLER FEATURES AND FIXES
4029
4030It turns out that quite a few pull requests had piled up on npm's issue
4031tracker, and they included some nice small features and fixes:
4032
4033* [`f33e8b8`](https://github.com/npm/npm/commit/f33e8b8ff2de094071c5976be95e35110cf2ab1a)
4034  [#7354](https://github.com/npm/npm/issues/7354) Add `--if-present` flag to
4035  allow e.g. CI systems to call (semi-) standard build tasks defined in
4036  `package.json`, but don't raise an error if no such script is defined.
4037  ([@jussi-kalliokoski](https://github.com/jussi-kalliokoski))
4038* [`7bf85cc`](https://github.com/npm/npm/commit/7bf85cc372ab5698593b01e139c383fa62c92516)
4039  [#4005](https://github.com/npm/npm/issues/4005)
4040  [#6248](https://github.com/npm/npm/issues/6248) Globally unlink a package
4041  when `npm rm` / `npm unlink` is called with no arguments.
4042  ([@isaacs](https://github.com/isaacs))
4043* [`a2e04bd`](https://github.com/npm/npm/commit/a2e04bd921feab8f9e40a27e180ca9308eb709d7)
4044  [#7294](https://github.com/npm/npm/issues/7294) Ensure that when depending on
4045  `git+<proto>` URLs, npm doesn't keep tacking additional `git+` prefixes onto
4046  the front. ([@twhid](https://github.com/twhid))
4047* [`0f87f5e`](https://github.com/npm/npm/commit/0f87f5ed28960d962f34977953561d22983da4f9)
4048  [#6422](https://github.com/npm/npm/issues/6422) When depending on GitHub
4049  private repositories, make sure we construct the Git URLS correctly.
4050  ([@othiym23](https://github.com/othiym23))
4051* [`50f461d`](https://github.com/npm/npm/commit/50f461d248c4d22e881a9535dccc1d57d994dbc7)
4052  [#4595](https://github.com/npm/npm/issues/4595) Support finding compressed
4053  manpages. It's still up to the system to figure out how to display them,
4054  though. ([@pshevtsov](https://github.com/pshevtsov))
4055* [`44da664`](https://github.com/npm/npm/commit/44da66456b530c049ff50953f78368460df87461)
4056  [#7465](https://github.com/npm/npm/issues/7465) When calling git, log the
4057  **full** command, with all arguments, on error.
4058  ([@thriqon](https://github.com/thriqon))
4059* [`9748d5c`](https://github.com/npm/npm/commit/9748d5cd195d0269b32caf45129a93d29359a796)
4060  Add parent to error on `ETARGET` error.
4061  ([@davglass](https://github.com/davglass))
4062* [`37038d7`](https://github.com/npm/npm/commit/37038d7db47a986001f77ac17b3e164000fc8ff3)
4063  [#4663](https://github.com/npm/npm/issues/4663) Remove hackaround for Linux
4064  tests, as it's evidently no longer necessary.
4065  ([@mmalecki](https://github.com/mmalecki))
4066* [`d7b7853`](https://github.com/npm/npm/commit/d7b785393dffce93bb70317fbc039a6428ca37c5)
4067  [#2612](https://github.com/npm/npm/issues/2612) Add support for path
4068  completion on `npm install`, which narrows completion to only directories
4069  containing `package.json` files. ([@deestan](https://github.com/deestan))
4070* [`628fcdb`](https://github.com/npm/npm/commit/628fcdb0be4e14c0312085a50dc2ae01dc713fa6)
4071  Remove all command completion calls to `-/short`, because it's been removed
4072  from the primary registry for quite some time, and is generally a poor idea
4073  on any registry with more than a few hundred packages.
4074  ([@othiym23](https://github.com/othiym23))
4075* [`3f6061d`](https://github.com/npm/npm/commit/3f6061d75650441ee690472d1fa9c8dd7a7b1b28)
4076  [#6659](https://github.com/npm/npm/issues/6659) Instead of removing zsh
4077  completion global, make it a local instead.
4078  ([@othiym23](https://github.com/othiym23))
4079
4080#### DOCUMENTATION TWEAKS
4081
4082* [`5bc70e6`](https://github.com/npm/npm/commit/5bc70e6cfb3598da433806c6f447fc94c8e1d35d)
4083  [#7417](https://github.com/npm/npm/issues/7417) Provide concrete examples of
4084  how the new `npm update` defaults work in practice, tied to actual test
4085  cases. Everyone interested in using `npm update -g` now that it's been fixed
4086  should read these documents, as should anyone interested in writing
4087  documentation for npm. ([@smikes](https://github.com/smikes))
4088* [`8ac6f21`](https://github.com/npm/npm/commit/8ac6f2123a6af13dc9447fad96ec9cb583c45a71)
4089  [#6543](https://github.com/npm/npm/issues/6543) Clarify `npm-scripts`
4090  warnings to de-emphasize dangers of using `install` scripts.
4091  ([@zeke](https://github.com/zeke))
4092* [`ebe3b37`](https://github.com/npm/npm/commit/ebe3b37098efdada41dcc4c52a291e29296ea242)
4093  [#6711](https://github.com/npm/npm/issues/6711) Note that git tagging of
4094  versions can be disabled via `--no-git-tag-verson`.
4095  ([@smikes](https://github.com/smikes))
4096* [`2ef5771`](https://github.com/npm/npm/commit/2ef5771632006e6cee8cf17f836c0f98ab494bd1)
4097  [#6711](https://github.com/npm/npm/issues/6711) Document `git-tag-version`
4098  configuration option. ([@KenanY](https://github.com/KenanY))
4099* [`95e59b2`](https://github.com/npm/npm/commit/95e59b287c9517780318e145371a859e8ebb2d20)
4100  Document that `NODE_ENV=production` behaves analogously to `--production` on
4101  `npm install`. ([@stefaneg](https://github.com/stefaneg))
4102* [`687117a`](https://github.com/npm/npm/commit/687117a5bcd6a838cd1532ea7020ec6fcf0c33c0)
4103  [#7463](https://github.com/npm/npm/issues/7463) Document the new script
4104  grouping behavior in the man page for `npm run-script`.
4105  ([@othiym23](https://github.com/othiym23))
4106* [`536b2b6`](https://github.com/npm/npm/commit/536b2b6f55c349247b3e79b5d11b4c033ef5a3df)
4107  Rescue one of the the disabled tests and make it work properly.
4108  ([@smikes](https://github.com/smikes))
4109
4110#### DEPENDENCY UPDATES
4111
4112* [`89fc6a4`](https://github.com/npm/npm/commit/89fc6a4e7ff8c524675fcc14493ca0a1e3a76d38)
4113  `which@1.0.9`: Test for being run as root, as well as the current user.
4114  ([@isaacs](https://github.com/isaacs))
4115* [`5d0612f`](https://github.com/npm/npm/commit/5d0612f31e226cba32a05351c47b055c0ab6c557)
4116  `glob@4.4.1`: Better error message to explain why calling sync glob with a
4117  callback results in an error. ([@isaacs](https://github.com/isaacs))
4118* [`64b07f6`](https://github.com/npm/npm/commit/64b07f6caf6cb07e4102f1e4e5f2ff2b944e452e)
4119  `tap@0.7.1`: More accurate counts of pending & skipped tests.
4120  ([@rmg](https://github.com/rmg))
4121* [`8fda451`](https://github.com/npm/npm/commit/8fda45195dae1d6f792be556abe87f7763fab09b)
4122  `semver@4.3.1`: Make official the fact that `node-semver` has moved from
4123  [@isaacs](https://github.com/isaacs)'s organization to
4124  [@npm](https://github.com/npm)'s. ([@isaacs](https://github.com/isaacs))
4125
4126### v2.6.1 (2015-02-19):
4127
4128* [`8b98f0e`](https://github.com/npm/npm/commit/8b98f0e709d77a8616c944aebd48ab726f726f76)
4129  [#4471](https://github.com/npm/npm/issues/4471) `npm outdated` (and only `npm
4130  outdated`) now defaults to `--depth=0`. See the [docs for
4131  `--depth`](https://github.com/npm/npm/blob/82f484672adb1a3caf526a8a48832789495bb43d/doc/misc/npm-config.md#depth)
4132  for the mildly confusing details. ([@smikes](https://github.com/smikes))
4133* [`aa79194`](https://github.com/npm/npm/commit/aa791942a9f3c8af6a650edec72a675deb7a7c6e)
4134  [#6565](https://github.com/npm/npm/issues/6565) Tweak `peerDependency`
4135  deprecation warning to include which peer dependency on which package is
4136  going to need to change. ([@othiym23](https://github.com/othiym23))
4137* [`5fa067f`](https://github.com/npm/npm/commit/5fa067fd47682ac3cdb12a2b009d8ca59b05f992)
4138  [#7171](https://github.com/npm/npm/issues/7171) Tweak `engineStrict`
4139  deprecation warning to include which `package.json` is using it.
4140  ([@othiym23](https://github.com/othiym23))
4141* [`0fe0caa`](https://github.com/npm/npm/commit/0fe0caa7eddb7acdacbe5ee81ceabaca27175c78)
4142  `glob@4.4.0`: Glob patterns can now ignore matches.
4143  ([@isaacs](https://github.com/isaacs))
4144
4145### v2.6.0 (2015-02-12):
4146
4147#### A LONG-AWAITED GUEST
4148
4149* [`38c4825`](https://github.com/npm/npm/commit/38c48254d3d217b4babf5027cb39492be4052fc2)
4150  [#5068](https://github.com/npm/npm/issues/5068) Add new logout command, and
4151  make it do something useful on both bearer-based and basic-based authed
4152  clients. ([@othiym23](https://github.com/othiym23))
4153* [`4bf0f5d`](https://github.com/npm/npm/commit/4bf0f5d56c33649124b486e016ba4a620c105c1c)
4154  `npm-registry-client@6.1.1`: Support new `logout` endpoint to invalidate
4155  token for sessions. ([@othiym23](https://github.com/othiym23))
4156
4157#### DEPRECATIONS
4158
4159* [`c8e08e6`](https://github.com/npm/npm/commit/c8e08e6d91f4016c80f572aac5a2080df0f78098)
4160  [#6565](https://github.com/npm/npm/issues/6565) Warn that `peerDependency`
4161  behavior is changing and add a note to the docs.
4162  ([@othiym23](https://github.com/othiym23))
4163* [`7c81a5f`](https://github.com/npm/npm/commit/7c81a5f5f058941f635a92f22641ea68e79b60db)
4164  [#7171](https://github.com/npm/npm/issues/7171) Warn that `engineStrict` in
4165  `package.json` will be going away in the next major version of npm (coming
4166  soon!) ([@othiym23](https://github.com/othiym23))
4167
4168#### BUG FIXES & TWEAKS
4169
4170* [`add5890`](https://github.com/npm/npm/commit/add5890ce447dabf120b907a85f715df1e065f44)
4171  [#4668](https://github.com/npm/npm/issues/4668) `read-package-json@1.3.1`:
4172  Warn when a `bin` symbolic link is a dangling reference.
4173  ([@nicks](https://github.com/nicks))
4174* [`4b42071`](https://github.com/npm/npm/commit/4b420714dfb84338d85def78c30bd665e32d72c1)
4175  `semver@4.3.0`: Add functions to extract parts of the version triple, fix a
4176  typo. ([@isaacs](https://github.com/isaacs))
4177* [`a9aff38`](https://github.com/npm/npm/commit/a9aff38719918486fc381d67ad3371c475632ff7)
4178  Use full path for man pages as the symbolic link source, instead of just the
4179  file name. ([@bengl](https://github.com/bengl))
4180* [`6fd0fbd`](https://github.com/npm/npm/commit/6fd0fbd8a0347fd47cb7ee0064e0902a2f8a087c)
4181  [#7233](https://github.com/npm/npm/issues/7233) Ensure `globalconfig` path
4182  exists before trying to edit it. ([@ljharb](https://github.com/ljharb))
4183* [`a0a2620`](https://github.com/npm/npm/commit/a0a262047647d9e2690cebe5a89e6a0dd33202bb)
4184  `ini@1.3.3`: Allow embedded, quoted equals signs in ini field names.
4185  ([@isaacs](https://github.com/isaacs))
4186
4187Also typos and other documentation issues were addressed by
4188[@rutsky](https://github.com/rutsky), [@imurchie](https://github.com/imurchie),
4189[@marcin-wosinek](https://github.com/marcin-wosinek),
4190[@marr](https://github.com/marr), [@amZotti](https://github.com/amZotti), and
4191[@karlhorky](https://github.com/karlhorky). Thank you, everyone!
4192
4193### v2.5.1 (2015-02-06):
4194
4195This release doesn't look like much, but considerable effort went into ensuring
4196that npm's tests will pass on io.js 1.1.0 and Node 0.11.16 / 0.12.0 on both OS
4197X and Linux.
4198
4199**NOTE:** there are no actual changes to npm's code in `npm@2.5.1`. Only test
4200code (and the upgrade of `request` to the latest version) has changed.
4201
4202#### `npm-registry-mock@1.0.0`:
4203
4204* [`0e8d473`](https://github.com/npm/npm/commit/0e8d4736a1cbdda41ae8eba8a02c7ff7ce80c2ff)
4205  [#7281](https://github.com/npm/npm/issues/7281) `npm-registry-mock@1.0.0`:
4206  Clean up API, set `connection: close`.
4207  ([@robertkowalski](https://github.com/robertkowalski))
4208* [`4707bba`](https://github.com/npm/npm/commit/4707bba7d44dfab85cc45c2ecafa9c1601ba2e9a)
4209  Further update tests to work with `npm-registry-mock@1.0.0`.
4210  ([@othiym23](https://github.com/othiym23))
4211* [`41a0f89`](https://github.com/npm/npm/commit/41a0f8959d4e02af9661588afa7d2b4543cc21b6)
4212  Got rid of completely gratuitous global config manipulation in tests.
4213  ([@othiym23](https://github.com/othiym23))
4214
4215#### MINOR DEPENDENCY TWEAK
4216
4217* [`a4c7af9`](https://github.com/npm/npm/commit/a4c7af9c692f250c0fd017397ed9514fc263b752)
4218  `request@2.53.0`: Tweaks to tunneling proxy behavior.
4219  ([@nylen](https://github.com/nylen))
4220
4221### v2.5.0 (2015-01-29):
4222
4223#### SMALL FEATURE I HAVE ALREADY USED TO MAINTAIN NPM ITSELF
4224
4225* [`9d61e96`](https://github.com/npm/npm/commit/9d61e96fb1f48687a85c211e4e0cd44c7f95a38e)
4226  `npm outdated --long` now includes a column showing the type of dependency.
4227  ([@watilde](https://github.com/watilde))
4228
4229#### BUG FIXES & TWEAKS
4230
4231* [`fec4c96`](https://github.com/npm/npm/commit/fec4c967ee235030bf31393e8605e9e2811f4a39)
4232  Allow `--no-proxy` to override `HTTP_PROXY` setting in environment.
4233  ([@othiym23](https://github.com/othiym23))
4234* [`589acb9`](https://github.com/npm/npm/commit/589acb9714f395c2ad0d98cb0ac4236f1842d2cc)
4235  Only set `access` when publshing when it's explicitly set.
4236  ([@othiym23](https://github.com/othiym23))
4237* [`1027087`](https://github.com/npm/npm/commit/102708704c8c4f0ea99775d38f8d1efecf584940)
4238  Add script and `Makefile` stanza to update AUTHORS.
4239  ([@KenanY](https://github.com/KenanY))
4240* [`eeff04d`](https://github.com/npm/npm/commit/eeff04da7979a0181becd36b8777d607e7aa1787)
4241  Add `NPMOPTS` to top-level install in `Makefile` to override `userconfig`.
4242  ([@aredridel](https://github.com/aredridel))
4243* [`0d17328`](https://github.com/npm/npm/commit/0d173287336650606d4c91818bb7bcfb0c5d57a1)
4244  `fstream@1.0.4`: Run chown only when necessary.
4245  ([@silkentrance](https://github.com/silkentrance))
4246* [`9aa4622`](https://github.com/npm/npm/commit/9aa46226ee63b9e183fd49fc72d9bdb0fae9605e)
4247  `columnify@1.4.1`: ES6ified! ([@timoxley](https://github.com/timoxley))
4248* [`51b2fd1`](https://github.com/npm/npm/commit/51b2fd1974e38b825ac5ca4a852ab3c4142624cc)
4249  Update default version in `docs/npm-config.md`.
4250  ([@lucthev](https://github.com/lucthev))
4251
4252#### `npm-registry-client@6.0.7`:
4253
4254* [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
4255  [#7226](https://github.com/npm/npm/issues/7226) Ensure that all request
4256  settings are copied onto the agent.
4257  ([@othiym23](https://github.com/othiym23))
4258* [`e186f6e`](https://github.com/npm/npm/commit/e186f6e7cfeb4db9c94d7375638f0b2f0d472947)
4259  Only set `access` on publish when it differs from the norm.
4260  ([@othiym23](https://github.com/othiym23))
4261* [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
4262  Allow overriding request's environment-based proxy handling.
4263  ([@othiym23](https://github.com/othiym23))
4264* [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
4265  Properly handle retry failures on fetch.
4266  ([@othiym23](https://github.com/othiym23))
4267
4268### v2.4.1 (2015-01-23):
4269
4270![bridge that doesn't meet in the middle](http://www.static-18.themodernnomad.com/wp-content/uploads/2011/08/bridge-fail.jpg)
4271
4272Let's accentuate the positive: the `dist-tag` endpoints for `npm dist-tag
4273{add,rm,ls}` are now live on the public npm registry.
4274
4275* [`f70272b`](https://github.com/npm/npm/commit/f70272bed7d77032d1e21553371dd5662fef32f2)
4276  `npm-registry-client@6.0.3`: Properly escape JSON tag version strings and
4277  filter `_etag` from CouchDB docs. ([@othiym23](https://github.com/othiym23))
4278
4279### v2.4.0 (2015-01-22):
4280
4281#### REGISTRY 2: ACCESS AND DIST-TAGS
4282
4283NOTE: This week's registry-2 commands are leading the implementation on
4284registry.npmjs.org a little bit, so some of the following may not work for
4285another week or so. Also note that `npm access` has documentation and
4286subcommands that are not yet finished, because they depend on incompletely
4287specified registry API endpoints. Things are coming together very quickly,
4288though, so expect the missing pieces to be filled in the coming weeks.
4289
4290* [`c963eb2`](https://github.com/npm/npm/commit/c963eb295cf766921b1680f4a71fd0ed3e1bcad8)
4291  [#7181](https://github.com/npm/npm/issues/7181) NEW `npm access public` and
4292  `npm access restricted`: Toggle visibility of scoped packages.
4293  ([@othiym23](https://github.com/othiym23))
4294* [`dc51810`](https://github.com/npm/npm/commit/dc51810e08c0f104259146c9c035d255de4f7d1d)
4295  [#6243](https://github.com/npm/npm/issues/6243) /
4296  [#6854](https://github.com/npm/npm/issues/6854) NEW `npm dist-tags`: Directly
4297  manage `dist-tags` on packages. Most notably, `dist-tags` can now be deleted.
4298  ([@othiym23](https://github.com/othiym23))
4299* [`4c7c132`](https://github.com/npm/npm/commit/4c7c132a6b8305dca2974943226c39c0cdc64ff9)
4300  [#7181](https://github.com/npm/npm/issues/7181) /
4301  [#6854](https://github.com/npm/npm/issues/6854) `npm-registry-client@6.0.1`:
4302  Add new `access` and `dist-tags` endpoints
4303  ([@othiym23](https://github.com/othiym23))
4304
4305#### NOT EXACTLY SELF-DEPRECATING
4306
4307* [`10d5c77`](https://github.com/npm/npm/commit/10d5c77653487f15759ac7de262a97e9c655240c)
4308  [#6274](https://github.com/npm/npm/issues/6274) Deprecate `npm tag` in favor
4309  of `npm dist-tag`. ([@othiym23](https://github.com/othiym23))
4310
4311#### BUG FIX AND TINY FEATURE
4312
4313* [`29a6ef3`](https://github.com/npm/npm/commit/29a6ef38ef86ac318c5d9ea4bee28ce614672fa6)
4314  [#6850](https://github.com/npm/npm/issues/6850) Be smarter about determining
4315  base of file deletion when unbuilding. ([@phated](https://github.com/phated))
4316* [`4ad01ea`](https://github.com/npm/npm/commit/4ad01ea2930a7a1cf88be121cc5ce9eba40c6807)
4317  `init-package-json@1.2.0`: Support `--save-exact` in `npm init`.
4318  ([@gustavnikolaj](https://github.com/gustavnikolaj))
4319
4320### v2.3.0 (2015-01-15):
4321
4322#### REGISTRY 2: OH MY STARS! WHO AM I?
4323
4324* [`e662a60`](https://github.com/npm/npm/commit/e662a60e2f9a542effd8e72279d4622fe514415e)
4325  The new `whoami` endpoint might not return a value.
4326  ([@othiym23](https://github.com/othiym23))
4327* [`c2cccd4`](https://github.com/npm/npm/commit/c2cccd4bbc65885239ed646eb510155f7b8af13d)
4328  `npm-registry-client@5.0.0`: Includes the following fine changes
4329  ([@othiym23](https://github.com/othiym23)):
4330  * [`ba6b73e`](https://github.com/npm/npm-registry-client/commit/ba6b73e351027246c228622014e4441412409bad)
4331    [#92](https://github.com/npm/npm-registry-client/issues/92) BREAKING CHANGE:
4332    Move `/whoami` endpoint out of the package namespace (to `/-/whoami`).
4333    ([@othiym23](https://github.com/othiym23))
4334  * [`3b174b7`](https://github.com/npm/npm-registry-client/commit/3b174b75c0c9ea77e298e6bb664fb499824ecc7c)
4335    [#93](https://github.com/npm/npm-registry-client/issues/93) Registries based
4336    on token-based auth can now offer starring.
4337    ([@bcoe](https://github.com/bcoe))
4338  * [`4701a29`](https://github.com/npm/npm-registry-client/commit/4701a29bcda41bc14aa91f361dd0d576e24677d7)
4339    Fix HTTP[S] connection keep-alive on Node 0.11 / io.js 1.0.
4340    ([@fengmk2](https://github.com/fengmk2))
4341
4342#### BETTER REGISTRY METADATA CACHING
4343
4344* [`98e1e10`](https://github.com/npm/npm/commit/98e1e1080df1f2cab16ed68035603950ea3d2d48)
4345  [#6791](https://github.com/npm/npm/issues/6791) Add caching based on
4346  Last-Modified / If-Modified-Since headers. Includes this
4347  `npm-registry-client@5.0.0` change ([@lxe](https://github.com/lxe)):
4348  * [`07bc335`](https://github.com/npm/npm-registry-client/commit/07bc33502b93554cd7539bfcce37d6e2d5404cd0)
4349    [#86](https://github.com/npm/npm-registry-client/issues/86) Add Last-Modified
4350    / If-Modified-Since cache header handling. ([@lxe](https://github.com/lxe))
4351
4352#### HOW MUCH IS THAT WINDOWS IN THE DOGGY?
4353
4354* [`706d49a`](https://github.com/npm/npm/commit/706d49ab45521360fce1a68779b8de899015d8c2)
4355  [#7107](https://github.com/npm/npm/issues/7107) `getCacheStat` passes a stub
4356  stat on Windows. ([@rmg](https://github.com/rmg))
4357* [`5fce278`](https://github.com/npm/npm/commit/5fce278a688a1cb79183e012bde40b089c2e97a4)
4358  [#5267](https://github.com/npm/npm/issues/5267) Use `%COMSPEC%` when set on
4359  Windows. ([@edmorley](https://github.com/edmorley))
4360* [`cc2e099`](https://github.com/npm/npm/commit/cc2e09912ce2f91567c485422e4e797c4deb9842)
4361  [#7083](https://github.com/npm/npm/issues/7083) Ensure Git cache prefix
4362  exists before repo clone on Windows.
4363  ([@othiym23](https://github.com/othiym23))
4364
4365#### THRILLING BUG FIXES
4366
4367* [`c6fb430`](https://github.com/npm/npm/commit/c6fb430e55672b3caf87d25cbd2aeeebc449e2f2)
4368  [#4197](https://github.com/npm/npm/issues/4197) Report `umask` as a 0-padded
4369  octal literal. ([@smikes](https://github.com/smikes))
4370* [`209713e`](https://github.com/npm/npm/commit/209713ebd4b77da11ce27d90c3346f78d760ba52)
4371  [#4197](https://github.com/npm/npm/issues/4197) `umask@1.1.0`: Properly
4372  handle `umask`s (i.e. not decimal numbers).
4373  ([@smikes](https://github.com/smikes))
4374* [`9eac0a1`](https://github.com/npm/npm/commit/9eac0a14488c5979ebde4c17881c8cd74f395069)
4375  Make the example for bin links non-destructive.
4376  ([@KevinSheedy](https://github.com/KevinSheedy))
4377* [`6338bcf`](https://github.com/npm/npm/commit/6338bcfcd9cd1b0cc48b051dae764dc436ab5332)
4378  `glob@4.3.5`: " -> ', for some reason. ([@isaacs](https://github.com/isaacs))
4379
4380### v2.2.0 (2015-01-08):
4381
4382* [`88c531d`](https://github.com/npm/npm/commit/88c531d1c0b3aced8f2a09632db01b5635e7226a)
4383  [#7056](https://github.com/npm/npm/issues/7056) version doesn't need a
4384  package.json. ([@othiym23](https://github.com/othiym23))
4385* [`2656c19`](https://github.com/npm/npm/commit/2656c19f6b915c3173acc3b6f184cc321563da5f)
4386  [#7095](https://github.com/npm/npm/issues/7095) Link to npm website instead
4387  of registry. ([@konklone](https://github.com/konklone))
4388* [`c76b801`](https://github.com/npm/npm/commit/c76b8013bf1758587565822626171b76cb465c9e)
4389  [#7067](https://github.com/npm/npm/issues/7067) Obfuscate secrets, including
4390  nerfed URLs. ([@smikes](https://github.com/smikes))
4391* [`17f66ce`](https://github.com/npm/npm/commit/17f66ceb1bd421084e4ae82a6b66634a6e272929)
4392  [#6849](https://github.com/npm/npm/issues/6849) Explain the tag workflow more
4393  clearly. ([@smikes](https://github.com/smikes))
4394* [`e309df6`](https://github.com/npm/npm/commit/e309df642de33d10d6dffadaa8a5d214a924d0dc)
4395  [#7096](https://github.com/npm/npm/issues/7096) Really, `npm update -g` is
4396  almost always a terrible idea. ([@smikes](https://github.com/smikes))
4397* [`acf287d`](https://github.com/npm/npm/commit/acf287d2547c8a0a8871652c164019261b666d55)
4398  [#6999](https://github.com/npm/npm/issues/6999) `npm run-script env`: add a
4399  new default script that will print out environment values.
4400  ([@gcb](https://github.com/gcb))
4401* [`560c009`](https://github.com/npm/npm/commit/560c00945d4dec926cd29193e336f137c7f3f951)
4402  [#6745](https://github.com/npm/npm/issues/6745) Document `npm update --dev`.
4403  ([@smikes](https://github.com/smikes))
4404* [`226a677`](https://github.com/npm/npm/commit/226a6776a1a9e28570485623b8adc2ec4b041335)
4405  [#7046](https://github.com/npm/npm/issues/7046) We have never been the Node
4406  package manager. ([@linclark](https://github.com/linclark))
4407* [`38eef22`](https://github.com/npm/npm/commit/38eef2248f03bb8ab04cae1833e2a228fb887f3c)
4408  `npm-install-checks@1.0.5`: Compatibility with npmlog@^1.
4409  ([@iarna](https://github.com/iarna))
4410
4411### v2.1.18 (2015-01-01):
4412
4413* [`bf8640b`](https://github.com/npm/npm/commit/bf8640b0395b5dff71260a0cede7efc699a7bcf5)
4414  [#7044](https://github.com/npm/npm/issues/7044) Document `.npmignore` syntax.
4415  ([@zeke](https://github.com/zeke))
4416
4417### v2.1.17 (2014-12-25):
4418
4419merry npm xmas
4420
4421Working with [@phated](https://github.com/phated), I discovered that npm still
4422had some lingering race conditions around how it handles Git dependencies. The
4423following changes were intended to remedy to these issues. Thanks to
4424[@phated](https://github.com/phated) for all his help getting to the bottom of
4425these.
4426
4427* [`bdf1c84`](https://github.com/npm/npm/commit/bdf1c8483f5c4ad79b712db12d73276e15883923)
4428  [#7006](https://github.com/npm/npm/issues/7006) Only `chown` template and
4429  top-level Git cache directories. ([@othiym23](https://github.com/othiym23))
4430* [`581a72d`](https://github.com/npm/npm/commit/581a72da18f35ec87edef6255adf4ef4714a478c)
4431  [#7006](https://github.com/npm/npm/issues/7006) Map Git remote inflighting to
4432  clone paths rather than Git URLs. ([@othiym23](https://github.com/othiym23))
4433* [`1c48d08`](https://github.com/npm/npm/commit/1c48d08dea31a11ac11a285cac598a482481cade)
4434  [#7009](https://github.com/npm/npm/issues/7009) `normalize-git-url@1.0.0`:
4435  Normalize Git URLs while caching. ([@othiym23](https://github.com/othiym23))
4436* [`5423cf0`](https://github.com/npm/npm/commit/5423cf0be8ff2b76bfff7c8e780e5f261235a86a)
4437  [#7009](https://github.com/npm/npm/issues/7009) Pack tarballs to their final
4438  locations atomically. ([@othiym23](https://github.com/othiym23))
4439* [`7f6557f`](https://github.com/npm/npm/commit/7f6557ff317469ee4a87c542ff9a991e74ce9f38)
4440  [#7009](https://github.com/npm/npm/issues/7009) Inflight local directory
4441  packing, just to be safe. ([@othiym23](https://github.com/othiym23))
4442
4443Other changes:
4444
4445* [`1c491e6`](https://github.com/npm/npm/commit/1c491e65d70af013e8d5ac008d6d9762d6d91793)
4446  [#6991](https://github.com/npm/npm/issues/6991) `npm version`: fix regression
4447  in dirty-checking behavior ([@rlidwka](https://github.com/rlidwka))
4448* [`55ceb2b`](https://github.com/npm/npm/commit/55ceb2b08ff8a0f56b94cc972ca15d7862e8733c)
4449  [#1991](https://github.com/npm/npm/issues/1991) modify docs to reflect actual
4450  `npm restart` behavior ([@smikes](https://github.com/smikes))
4451* [`fb8e31b`](https://github.com/npm/npm/commit/fb8e31b95476a50bda35a665a99eec8a5d25a4db)
4452  [#6982](https://github.com/npm/npm/issues/6982) when doing registry
4453  operations, ensure registry URL always ends with `/`
4454  ([@othiym23](https://github.com/othiym23))
4455* [`5bcba65`](https://github.com/npm/npm/commit/5bcba65bed2678ffe80fb596f72abe9871d131c8)
4456  pull whitelisted Git environment variables out into a named constant
4457  ([@othiym23](https://github.com/othiym23))
4458* [`be04bbd`](https://github.com/npm/npm/commit/be04bbdc52ebfc820cd939df2f7d79fe87067747)
4459  [#7000](https://github.com/npm/npm/issues/7000) No longer install badly-named
4460  manpage files, and log an error when trying to uninstall them.
4461  ([@othiym23](https://github.com/othiym23))
4462* [`6b7c5ec`](https://github.com/npm/npm/commit/6b7c5eca6b65e1247d0e51f6400cf2637ac880ce)
4463  [#7011](https://github.com/npm/npm/issues/7011) Send auth for tarball fetches
4464  for packages in `npm-shrinkwrap.json` from private registries.
4465    ([@othiym23](https://github.com/othiym23))
4466* [`9b9de06`](https://github.com/npm/npm/commit/9b9de06a99893b40aa23f0335726dec6df7979db)
4467  `glob@4.3.2`: Better handling of trailing slashes.
4468  ([@isaacs](https://github.com/isaacs))
4469* [`030f3c7`](https://github.com/npm/npm/commit/030f3c7450b8ce124a19073bfbae0948a0a1a02c)
4470  `semver@4.2.0`: Diffing between version strings.
4471  ([@isaacs](https://github.com/isaacs))
4472
4473### v2.1.16 (2014-12-22):
4474
4475* [`a4e4e33`](https://github.com/npm/npm/commit/a4e4e33edb35c68813f04bf42bdf933a6f727bcd)
4476  [#6987](https://github.com/npm/npm/issues/6987) `read-installed@3.1.5`: fixed
4477  a regression where a new / empty package would cause read-installed to throw.
4478  ([@othiym23](https://github.com/othiym23) /
4479  [@pgilad](https://github.com/pgilad))
4480
4481### v2.1.15 (2014-12-18):
4482
4483* [`e5a2dee`](https://github.com/npm/npm/commit/e5a2dee47c74f26c56fee5998545b97497e830c8)
4484  [#6951](https://github.com/npm/npm/issues/6951) `fs-vacuum@1.2.5`: Use
4485  `path-is-inside` for better Windows normalization.
4486  ([@othiym23](https://github.com/othiym23))
4487* [`ac6167c`](https://github.com/npm/npm/commit/ac6167c2b9432939c57296f7ddd11ad5f8f918b2)
4488  [#6955](https://github.com/npm/npm/issues/6955) Call `path.normalize` in
4489  `lib/utils/gently-rm.js` for better Windows normalization.
4490  ([@ben-page](https://github.com/ben-page))
4491* [`c625d71`](https://github.com/npm/npm/commit/c625d714795e3b5badd847945e2401adfad5a196)
4492  [#6964](https://github.com/npm/npm/issues/6964) Clarify CA configuration
4493  docs. ([@jeffjo](https://github.com/jeffjo))
4494* [`58b8cb5`](https://github.com/npm/npm/commit/58b8cb5cdf26a854358b7c2ab636572dba9bac16)
4495  [#6950](https://github.com/npm/npm/issues/6950) Fix documentation typos.
4496  ([@martinvd](https://github.com/martinvd))
4497* [`7c1299d`](https://github.com/npm/npm/commit/7c1299d00538ea998684a1903a4091eafc63b7f1)
4498  [#6909](https://github.com/npm/npm/issues/6909) Remove confusing mention of
4499  rubygems `~>` semver operator. ([@mjtko](https://github.com/mjtko))
4500* [`7dfdcc6`](https://github.com/npm/npm/commit/7dfdcc6debd8ef1fc52a2b508997d15887aad824)
4501  [#6909](https://github.com/npm/npm/issues/6909) `semver@4.1.1`: Synchronize
4502  documentation with PR [#6909](https://github.com/npm/npm/issues/6909)
4503  ([@othiym23](https://github.com/othiym23))
4504* [`adfddf3`](https://github.com/npm/npm/commit/adfddf3b682e0ae08e4b59d87c1b380dd651c572)
4505  [#6925](https://github.com/npm/npm/issues/6925) Correct typo in
4506  `doc/api/npm-ls.md` ([@oddurs](https://github.com/oddurs))
4507* [`f5c534b`](https://github.com/npm/npm/commit/f5c534b711ab173129baf366c4f08d68f6117333)
4508  [#6920](https://github.com/npm/npm/issues/6920) Remove recommendation to run
4509  as root from `README.md`.
4510  ([@robertkowalski](https://github.com/robertkowalski))
4511* [`3ef4459`](https://github.com/npm/npm/commit/3ef445922cd39f25b992d91bd22c4d367882ea22)
4512  [#6920](https://github.com/npm/npm/issues/6920) `npm-@googlegroups.com` has
4513  gone the way of all things. That means it's gone.
4514  ([@robertkowalski](https://github.com/robertkowalski))
4515
4516### v2.1.14 (2014-12-13):
4517
4518* [`cf7aeae`](https://github.com/npm/npm/commit/cf7aeae3c3a24e48d3de4006fa082f0c6040922a)
4519  [#6923](https://github.com/npm/npm/issues/6923) Overaggressive link update
4520  for new website broke node-gyp. ([@othiym23](https://github.com/othiym23))
4521
4522### v2.1.13 (2014-12-11):
4523
4524* [`cbb890e`](https://github.com/npm/npm/commit/cbb890eeacc0501ba1b8c6955f1c829c8af9f486)
4525  [#6897](https://github.com/npm/npm/issues/6897) npm is a nice package manager
4526  that runs server-side JavaScript. ([@othiym23](https://github.com/othiym23))
4527* [`d9043c3`](https://github.com/npm/npm/commit/d9043c3b8d7450c3cb9ca795028c0e1c05377820)
4528  [#6893](https://github.com/npm/npm/issues/6893) Remove erroneous docs about
4529  preupdate / update / postupdate lifecycle scripts, which have never existed.
4530  ([@devTristan](https://github.com/devTristan))
4531* [`c5df4d0`](https://github.com/npm/npm/commit/c5df4d0d683cd3506808d1cd1acebff02a8b82db)
4532  [#6884](https://github.com/npm/npm/issues/6884) Update npmjs.org to npmjs.com
4533  in docs. ([@linclark](https://github.com/linclark))
4534* [`cb6ff8d`](https://github.com/npm/npm/commit/cb6ff8dace1b439851701d4784d2d719c22ca7a7)
4535  [#6879](https://github.com/npm/npm/issues/6879) npm version: Update
4536  shrinkwrap post-check. ([@othiym23](https://github.com/othiym23))
4537* [`2a340bd`](https://github.com/npm/npm/commit/2a340bdd548c6449468281e1444a032812bff677)
4538  [#6868](https://github.com/npm/npm/issues/6868) Use magic numbers instead of
4539  regexps to distinguish tarballs from other things.
4540  ([@daxxog](https://github.com/daxxog))
4541* [`f1c8bdb`](https://github.com/npm/npm/commit/f1c8bdb3f6b753d0600597e12346bdc3a34cb9c1)
4542  [#6861](https://github.com/npm/npm/issues/6861) `npm-registry-client@4.0.5`:
4543  Distinguish between error properties that are part of the response and error
4544  strings that should be returned to the user.
4545  ([@disrvptor](https://github.com/disrvptor))
4546* [`d3a1b63`](https://github.com/npm/npm/commit/d3a1b6397fddef04b5198ca89d36d720aeb05eb6)
4547  [#6762](https://github.com/npm/npm/issues/6762) Make `npm outdated` ignore
4548  private packages. ([@KenanY](https://github.com/KenanY))
4549* [`16d8542`](https://github.com/npm/npm/commit/16d854283ca5bcdb0cb2812fc5745d841652b952)
4550  install.sh: Drop support for node < 0.8, remove engines bits.
4551  ([@isaacs](https://github.com/isaacs))
4552* [`b9c6046`](https://github.com/npm/npm/commit/b9c60466d5b713b1dc2947da14a5dfe42352e029)
4553  `init-package-json@1.1.3`: ([@terinstock](https://github.com/terinstock))
4554  noticed that `init.license` configuration doesn't stick. Make sure that
4555  dashed defaults don't trump dotted parameters.
4556  ([@othiym23](https://github.com/othiym23))
4557* [`b6d6acf`](https://github.com/npm/npm/commit/b6d6acfc02c8887f78067931babab8f7c5180fed)
4558  `which@1.0.8`: No longer use graceful-fs for some reason.
4559  ([@isaacs](https://github.com/isaacs))
4560* [`d39f673`](https://github.com/npm/npm/commit/d39f673caf08a90fb2bb001d79c98062d2cd05f4)
4561  `request@2.51.0`: Incorporate bug fixes. ([@nylen](https://github.com/nylen))
4562* [`c7ad727`](https://github.com/npm/npm/commit/c7ad7279cc879930ec58ccc62fa642e621ecb65c)
4563  `columnify@1.3.2`: Incorporate bug fixes.
4564  ([@timoxley](https://github.com/timoxley))
4565
4566### v2.1.12 (2014-12-04):
4567
4568* [`e5b1e44`](https://github.com/npm/npm/commit/e5b1e448bb4a9d6eae4ba0f67b1d3c2cea8ed383)
4569  add alias verison=version ([@isaacs](https://github.com/isaacs))
4570* [`5eed7bd`](https://github.com/npm/npm/commit/5eed7bddbd7bb92a44c4193c93e8529500c558e6)
4571  `request@2.49.0` ([@nylen](https://github.com/nylen))
4572* [`e72f81d`](https://github.com/npm/npm/commit/e72f81d8412540ae7d1e0edcc37c11bcb8169051)
4573  `glob@4.3.1` / `minimatch@2.0.1` ([@isaacs](https://github.com/isaacs))
4574* [`b8dcc36`](https://github.com/npm/npm/commit/b8dcc3637b5b71933b97162b7aff1b1a622c13e2)
4575  `graceful-fs@3.0.5` ([@isaacs](https://github.com/isaacs))
4576
4577### v2.1.11 (2014-11-27):
4578
4579* [`4861d28`](https://github.com/npm/npm/commit/4861d28ad0ebd959fe6bc15b9c9a50fcabe57f55)
4580  `which@1.0.7`: License update. ([@isaacs](https://github.com/isaacs))
4581* [`30a2ea8`](https://github.com/npm/npm/commit/30a2ea80c891d384b31a1cf28665bba4271915bd)
4582  `ini@1.3.2`: License update. ([@isaacs](https://github.com/isaacs))
4583* [`6a4ea05`](https://github.com/npm/npm/commit/6a4ea054f6ddf52fc58842ba2046564b04c5c0e2)
4584  `fstream@1.0.3`: Propagate error events to downstream streams.
4585  ([@gfxmonk](https://github.com/gfxmonk))
4586* [`a558695`](https://github.com/npm/npm/commit/a5586954f1c18df7c96137e0a79f41a69e7a884e)
4587  `tar@1.0.3`: Don't extract broken files, propagate `drain` event.
4588  ([@gfxmonk](https://github.com/gfxmonk))
4589* [`989624e`](https://github.com/npm/npm/commit/989624e8321f87734c1b1272fc2f646e7af1f81c)
4590  [#6767](https://github.com/npm/npm/issues/6767) Actually pass parameters when
4591  adding git repo to cache under Windows.
4592  ([@othiym23](https://github.com/othiym23))
4593* [`657af73`](https://github.com/npm/npm/commit/657af7308f7d6cd2f81389fcf0d762252acaf1ce)
4594  [#6774](https://github.com/npm/npm/issues/6774) When verifying paths on
4595  unbuild, resolve both source and target as symlinks.
4596  ([@hokaccha](https://github.com/hokaccha))
4597* [`fd19c40`](https://github.com/npm/npm/commit/fd19c4046414494f9647a6991c00f8406a939929)
4598  [#6713](https://github.com/npm/npm/issues/6713)
4599  `realize-package-specifier@1.3.0`: Make it so that `npm install foo@1` work
4600  when a file named `1` exists. ([@iarna](https://github.com/iarna))
4601* [`c8ac37a`](https://github.com/npm/npm/commit/c8ac37a470491b2ed28514536e2e198494638c79)
4602  `npm-registry-client@4.0.4`: Fix regression in failed fetch retries.
4603  ([@othiym23](https://github.com/othiym23))
4604
4605### v2.1.10 (2014-11-20):
4606
4607* [`756f3d4`](https://github.com/npm/npm/commit/756f3d40fe18bc02bc93afe17016dfcc266c4b6b)
4608  [#6735](https://github.com/npm/npm/issues/6735) Log "already built" messages
4609  at info, not error. ([@smikes](https://github.com/smikes))
4610* [`1b7330d`](https://github.com/npm/npm/commit/1b7330dafba3bbba171f74f1e58b261cb1b9301e)
4611  [#6729](https://github.com/npm/npm/issues/6729) `npm-registry-client@4.0.3`:
4612  GitHub won't redirect you through an HTML page to a compressed tarball if you
4613  don't tell it you accept JSON responses.
4614  ([@KenanY](https://github.com/KenanY))
4615* [`d9c7857`](https://github.com/npm/npm/commit/d9c7857be02dacd274e55bf6d430d90d91509d53)
4616  [#6506](https://github.com/npm/npm/issues/6506)
4617  `readdir-scoped-modules@1.0.1`: Use `graceful-fs` so the whole dependency
4618  tree gets read,  even in case of `EMFILE`.
4619  ([@sakana](https://github.com/sakana))
4620* [`3a085be`](https://github.com/npm/npm/commit/3a085be158ace8f1e4395e69f8c102d3dea00c5f)
4621  Grammar fix in docs. ([@icylace](https://github.com/icylace))
4622* [`3f8e2ff`](https://github.com/npm/npm/commit/3f8e2ff8342d327d6f1375437ecf4bd945dc360f)
4623  Did you know that npm has a Code of Conduct? Add a link to it to
4624  CONTRIBUTING.md. ([@isaacs](https://github.com/isaacs))
4625* [`319ccf6`](https://github.com/npm/npm/commit/319ccf633289e06e57a80d74c39706899348674c)
4626  `glob@4.2.1`: Performance tuning. ([@isaacs](https://github.com/isaacs))
4627* [`835f046`](https://github.com/npm/npm/commit/835f046e7568c33e81a0b48c84cff965024d8b8a)
4628  `readable-stream@1.0.33`: Bug fixes. ([@rvagg](https://github.com/rvagg))
4629* [`a34c38d`](https://github.com/npm/npm/commit/a34c38d0732fb246d11f2a776d2ad0d8db654338)
4630  `request@2.48.0`: Bug fixes. ([@nylen](https://github.com/nylen))
4631
4632### v2.1.9 (2014-11-13):
4633
4634* [`eed9f61`](https://github.com/npm/npm/commit/eed9f6101963364acffc59d7194fc1655180e80c)
4635  [#6542](https://github.com/npm/npm/issues/6542) `npm owner add / remove` now
4636  works properly with scoped packages
4637  ([@othiym23](https://github.com/othiym23))
4638* [`cd25973`](https://github.com/npm/npm/commit/cd25973825aa5315b7ebf26227bd32bd6be5533f)
4639  [#6548](https://github.com/npm/npm/issues/6548) using sudo won't leave the
4640  cache's git directories with bad permissions
4641  ([@othiym23](https://github.com/othiym23))
4642* [`56930ab`](https://github.com/npm/npm/commit/56930abcae6a6ea41f1b75e23765c61259cef2dd)
4643  fixed irregular `npm cache ls` output (yes, that's a thing)
4644  ([@othiym23](https://github.com/othiym23))
4645* [`740f483`](https://github.com/npm/npm/commit/740f483db6ec872b453065842da080a646c3600a)
4646  legacy tests no longer poison user's own cache
4647  ([@othiym23](https://github.com/othiym23))
4648* [`ce37f14`](https://github.com/npm/npm/commit/ce37f142a487023747a9086335618638ebca4372)
4649  [#6169](https://github.com/npm/npm/issues/6169) add terse output similar to
4650  `npm publish / unpublish` for `npm owner add / remove`
4651  ([@KenanY](https://github.com/KenanY))
4652* [`bf2b8a6`](https://github.com/npm/npm/commit/bf2b8a66d7188900bf1e957c052b893948b67e0e)
4653  [#6680](https://github.com/npm/npm/issues/6680) pass auth credentials to
4654  registry when downloading search index
4655  ([@terinjokes](https://github.com/terinjokes))
4656* [`00ecb61`](https://github.com/npm/npm/commit/00ecb6101422984696929f602e14da186f9f669c)
4657  [#6400](https://github.com/npm/npm/issues/6400) `.npmignore` is respected for
4658  git repos on cache / pack / publish
4659  ([@othiym23](https://github.com/othiym23))
4660* [`d1b3a9e`](https://github.com/npm/npm/commit/d1b3a9ec5e2b6d52765ba5da5afb08dba41c49c1)
4661  [#6311](https://github.com/npm/npm/issues/6311) `npm ls -l --depth=0` no
4662  longer prints phantom duplicate children
4663  ([@othiym23](https://github.com/othiym23))
4664* [`07c5f34`](https://github.com/npm/npm/commit/07c5f34e45c9b18c348ed53b5763b1c5d4325740)
4665  [#6690](https://github.com/npm/npm/issues/6690) `uid-number@0.0.6`: clarify
4666  confusing names in error-handling code ([@isaacs](https://github.com/isaacs))
4667* [`1ac9be9`](https://github.com/npm/npm/commit/1ac9be9f3bab816211d72d13cb05b5587878a586)
4668  [#6684](https://github.com/npm/npm/issues/6684) `npm init`: don't report
4669  write if canceled ([@smikes](https://github.com/smikes))
4670* [`7bb207d`](https://github.com/npm/npm/commit/7bb207d1d6592a9cffc986871e4b671575363c2f)
4671  [#5754](https://github.com/npm/npm/issues/5754) never remove app directories
4672  on failed install ([@othiym23](https://github.com/othiym23))
4673* [`705ce60`](https://github.com/npm/npm/commit/705ce601e7b9c5428353e02ebb30cb76c1991fdd)
4674  [#5754](https://github.com/npm/npm/issues/5754) `fs-vacuum@1.2.2`: don't
4675  throw when another fs task writes to a directory being vacuumed
4676  ([@othiym23](https://github.com/othiym23))
4677* [`1b650f4`](https://github.com/npm/npm/commit/1b650f4f217c413a2ffb96e1701beb5aa67a0de2)
4678  [#6255](https://github.com/npm/npm/issues/6255) ensure that order credentials
4679  are used from `.npmrc` doesn't regress
4680  ([@othiym23](https://github.com/othiym23))
4681* [`9bb2c34`](https://github.com/npm/npm/commit/9bb2c3435cedef40b45d3e9bd7a8edfb8cbe7209)
4682  [#6644](https://github.com/npm/npm/issues/6644) `warn` rather than `info` on
4683  fetch failure ([@othiym23](https://github.com/othiym23))
4684* [`e34a7b6`](https://github.com/npm/npm/commit/e34a7b6b7371b1893a062f627ae8e168546d7264)
4685  [#6524](https://github.com/npm/npm/issues/6524) `npm-registry-client@4.0.2`:
4686  proxy via `request` more transparently
4687  ([@othiym23](https://github.com/othiym23))
4688* [`40afd6a`](https://github.com/npm/npm/commit/40afd6aaf34c11a10e80ec87b115fb2bb907e3bd)
4689  [#6524](https://github.com/npm/npm/issues/6524) push proxy settings into
4690  `request` ([@tauren](https://github.com/tauren))
4691
4692### v2.1.8 (2014-11-06):
4693
4694* [`063d843`](https://github.com/npm/npm/commit/063d843965f9f0bfa5732d7c2d6f5aa37a8260a2)
4695  npm version now updates version in npm-shrinkwrap.json
4696  ([@faiq](https://github.com/faiq))
4697* [`3f53cd7`](https://github.com/npm/npm/commit/3f53cd795f8a600e904a97f215ba5b5a9989d9dd)
4698  [#6559](https://github.com/npm/npm/issues/6559) save local dependencies in
4699  npm-shrinkwrap.json ([@Torsph](https://github.com/Torsph))
4700* [`e249262`](https://github.com/npm/npm/commit/e24926268b2d2220910bc81cce6d3b2e08d94eb1)
4701  npm-faq.md: mention scoped pkgs in namespace Q
4702  ([@smikes](https://github.com/smikes))
4703* [`6b06ec4`](https://github.com/npm/npm/commit/6b06ec4ef5da490bdca1512fa7f12490245c192b)
4704  [#6642](https://github.com/npm/npm/issues/6642) `init-package-json@1.1.2`:
4705  Handle both `init-author-name` and `init.author.name`.
4706  ([@othiym23](https://github.com/othiym23))
4707* [`9cb334c`](https://github.com/npm/npm/commit/9cb334c8a895a55461aac18791babae779309a0e)
4708  [#6409](https://github.com/npm/npm/issues/6409) document commit-ish with
4709  GitHub URLs ([@smikes](https://github.com/smikes))
4710* [`0aefae9`](https://github.com/npm/npm/commit/0aefae9bc2598a4b7a3ee7bb2306b42e3e12bb28)
4711  [#2959](https://github.com/npm/npm/issues/2959) npm run no longer fails
4712  silently ([@flipside](https://github.com/flipside))
4713* [`e007a2c`](https://github.com/npm/npm/commit/e007a2c1e4fac1759fa61ac6e78c6b83b2417d11)
4714  [#3908](https://github.com/npm/npm/issues/3908) include command in spawn
4715  errors ([@smikes](https://github.com/smikes))
4716
4717### v2.1.7 (2014-10-30):
4718
4719* [`6750b05`](https://github.com/npm/npm/commit/6750b05dcba20d8990a672957ec56c48f97e241a)
4720  [#6398](https://github.com/npm/npm/issues/6398) `npm-registry-client@4.0.0`:
4721  consistent API, handle relative registry paths, use auth more consistently
4722  ([@othiym23](https://github.com/othiym23))
4723* [`7719cfd`](https://github.com/npm/npm/commit/7719cfdd8b204dfeccc41289707ea58b4d608905)
4724  [#6560](https://github.com/npm/npm/issues/6560) use new npm-registry-client
4725  API ([@othiym23](https://github.com/othiym23))
4726* [`ed61971`](https://github.com/npm/npm/commit/ed619714c93718b6c1922b8c286f4b6cd2b97c80)
4727  move caching of search metadata from `npm-registry-client` to npm itself
4728  ([@othiym23](https://github.com/othiym23))
4729* [`3457041`](https://github.com/npm/npm/commit/34570414cd528debeb22943873440594d7f47abf)
4730  handle caching of metadata independently from `npm-registry-client`
4731  ([@othiym23](https://github.com/othiym23))
4732* [`20a331c`](https://github.com/npm/npm/commit/20a331ced6a52faac6ec242e3ffdf28bcd447c40)
4733  [#6538](https://github.com/npm/npm/issues/6538) map registry URLs to
4734  credentials more safely ([@indexzero](https://github.com/indexzero))
4735* [`4072e97`](https://github.com/npm/npm/commit/4072e97856bf1e7affb38333d080c172767eea27)
4736  [#6589](https://github.com/npm/npm/issues/6589) `npm-registry-client@4.0.1`:
4737  allow publishing of packages with names identical to built-in Node modules
4738  ([@feross](https://github.com/feross))
4739* [`254f0e4`](https://github.com/npm/npm/commit/254f0e4adaf2c56e9df25c7343c43b0b0804a3b5)
4740  `tar@1.0.2`: better error-handling ([@runk](https://github.com/runk))
4741* [`73ee2aa`](https://github.com/npm/npm/commit/73ee2aa4f1a47e43fe7cf4317a5446875f7521fa)
4742  `request@2.47.0` ([@mikeal](https://github.com/mikeal))
4743
4744### v2.1.6 (2014-10-23):
4745
4746* [`681b398`](https://github.com/npm/npm/commit/681b3987a18e7aba0aaf78c91a23c7cc0ab82ce8)
4747  [#6523](https://github.com/npm/npm/issues/6523) fix default `logelevel` doc
4748  ([@KenanY](https://github.com/KenanY))
4749* [`80b368f`](https://github.com/npm/npm/commit/80b368ffd786d4d008734b56c4a6fe12d2cb2926)
4750  [#6528](https://github.com/npm/npm/issues/6528) `npm version` should work in
4751  a git directory without git ([@terinjokes](https://github.com/terinjokes))
4752* [`5f5f9e4`](https://github.com/npm/npm/commit/5f5f9e4ddf544c2da6adf3f8c885238b0e745076)
4753  [#6483](https://github.com/npm/npm/issues/6483) `init-package-json@1.1.1`:
4754  Properly pick up default values from environment variables.
4755  ([@othiym23](https://github.com/othiym23))
4756* [`a114870`](https://github.com/npm/npm/commit/a1148702f53f82d49606b2e4dac7581261fff442)
4757  perl 5.18.x doesn't like -pi without filenames
4758  ([@othiym23](https://github.com/othiym23))
4759* [`de5ba00`](https://github.com/npm/npm/commit/de5ba007a48db876eb5bfb6156435f3512d58977)
4760  `request@2.46.0`: Tests and cleanup.
4761  ([@othiym23](https://github.com/othiym23))
4762* [`76933f1`](https://github.com/npm/npm/commit/76933f169f17b5273b32e924a7b392d5729931a7)
4763  `fstream-npm@1.0.1`: Always include `LICENSE[.*]`, `LICENCE[.*]`,
4764  `CHANGES[.*]`, `CHANGELOG[.*]`, and `HISTORY[.*]`.
4765  ([@jonathanong](https://github.com/jonathanong))
4766
4767### v2.1.5 (2014-10-16):
4768
4769* [`6a14b23`](https://github.com/npm/npm/commit/6a14b232a0e34158bd95bb25c607167be995c204)
4770  [#6397](https://github.com/npm/npm/issues/6397) Defactor npmconf back into
4771  npm. ([@othiym23](https://github.com/othiym23))
4772* [`4000e33`](https://github.com/npm/npm/commit/4000e3333a76ca4844681efa8737cfac24b7c2c8)
4773  [#6323](https://github.com/npm/npm/issues/6323) Install `peerDependencies`
4774  from top. ([@othiym23](https://github.com/othiym23))
4775* [`5d119ae`](https://github.com/npm/npm/commit/5d119ae246f27353b14ff063559d1ba8c616bb89)
4776  [#6498](https://github.com/npm/npm/issues/6498) Better error messages on
4777  malformed `.npmrc` properties. ([@nicks](https://github.com/nicks))
4778* [`ae18efb`](https://github.com/npm/npm/commit/ae18efb65fed427b1ef18e4862885bf60b87b92e)
4779  [#6093](https://github.com/npm/npm/issues/6093) Replace instances of 'hash'
4780  with 'object' in documentation. ([@zeke](https://github.com/zeke))
4781* [`53108b2`](https://github.com/npm/npm/commit/53108b276fec5f97a38250933a2768d58b6928da)
4782  [#1558](https://github.com/npm/npm/issues/1558) Clarify how local paths
4783  should be used. ([@KenanY](https://github.com/KenanY))
4784* [`344fa1a`](https://github.com/npm/npm/commit/344fa1a219ac8867022df3dc58a47636dde8a242)
4785  [#6488](https://github.com/npm/npm/issues/6488) Work around bug in marked.
4786  ([@othiym23](https://github.com/othiym23))
4787
4788OUTDATED DEPENDENCY CLEANUP JAMBOREE
4789
4790* [`60c2942`](https://github.com/npm/npm/commit/60c2942e13655d9ecdf6e0f1f97f10cb71a75255)
4791  `realize-package-specifier@1.2.0`: Handle names and rawSpecs more
4792  consistently. ([@iarna](https://github.com/iarna))
4793* [`1b5c95f`](https://github.com/npm/npm/commit/1b5c95fbda77b87342bd48c5ecac5b1fd571ccfe)
4794  `sha@1.3.0`: Change line endings?
4795  ([@ForbesLindesay](https://github.com/ForbesLindesay))
4796* [`d7dee3f`](https://github.com/npm/npm/commit/d7dee3f3f7d9e7c2061a4ecb4dd93e3e4bfe4f2e)
4797  `request@2.45.0`: Dependency updates, better proxy support, better compressed
4798  response handling, lots of 'use strict'.
4799  ([@mikeal](https://github.com/mikeal))
4800* [`3d75180`](https://github.com/npm/npm/commit/3d75180c2cc79fa3adfa0e4cb783a27192189a65)
4801  `opener@1.4.0`: Added gratuitous return.
4802  ([@Domenic](https://github.com/Domenic))
4803* [`8e2703f`](https://github.com/npm/npm/commit/8e2703f78d280d1edeb749e257dda1f288bad6e3)
4804  `retry@0.6.1` / `npm-registry-client@3.2.4`: Change of ownership.
4805  ([@tim-kos](https://github.com/tim-kos))
4806* [`c87b00f`](https://github.com/npm/npm/commit/c87b00f82f92434ee77831915012c77a6c244c39)
4807  `once@1.3.1`: Wrap once with wrappy. ([@isaacs](https://github.com/isaacs))
4808* [`01ec790`](https://github.com/npm/npm/commit/01ec790fd47def56eda6abb3b8d809093e8f493f)
4809  `npm-user-validate@0.1.1`: Correct repository URL.
4810  ([@robertkowalski](https://github.com/robertkowalski))
4811* [`389e52c`](https://github.com/npm/npm/commit/389e52c2d94c818ca8935ccdcf392994fec564a2)
4812  `glob@4.0.6`: Now absolutely requires `graceful-fs`.
4813  ([@isaacs](https://github.com/isaacs))
4814* [`e15ab15`](https://github.com/npm/npm/commit/e15ab15a27a8f14cf0d9dc6f11dee452080378a0)
4815  `ini@1.3.0`: Tighten up whitespace handling.
4816  ([@isaacs](https://github.com/isaacs))
4817* [`7610f3e`](https://github.com/npm/npm/commit/7610f3e62e699292ece081bfd33084d436e3246d)
4818  `archy@1.0.0` ([@substack](https://github.com/substack))
4819* [`9c13149`](https://github.com/npm/npm/commit/9c1314985e513e20ffa3ea0ca333ba2ab78299c9)
4820  `semver@4.1.0`: Add support for prerelease identifiers.
4821  ([@bromanko](https://github.com/bromanko))
4822* [`f096c25`](https://github.com/npm/npm/commit/f096c250441b031d758f03afbe8d2321f94c7703)
4823  `graceful-fs@3.0.4`: Add a bunch of additional tests, skip the unfortunate
4824  complications of `graceful-fs@3.0.3`. ([@isaacs](https://github.com/isaacs))
4825
4826### v2.1.4 (2014-10-09):
4827
4828* [`3aeb440`](https://github.com/npm/npm/commit/3aeb4401444fad83cc7a8d11bf2507658afa5248)
4829  [#6442](https://github.com/npm/npm/issues/6442) proxying git needs `GIT_SSL_CAINFO`
4830  ([@wmertens](https://github.com/wmertens))
4831* [`a8da8d6`](https://github.com/npm/npm/commit/a8da8d6e0cd56d97728c0b76b51604ee06ef6264)
4832  [#6413](https://github.com/npm/npm/issues/6413) write builtin config on any
4833  global npm install ([@isaacs](https://github.com/isaacs))
4834* [`9e4d632`](https://github.com/npm/npm/commit/9e4d632c0142ba55df07d624667738b8727336fc)
4835  [#6343](https://github.com/npm/npm/issues/6343) don't pass run arguments to
4836  pre & post scripts ([@TheLudd](https://github.com/TheLudd))
4837* [`d831b1f`](https://github.com/npm/npm/commit/d831b1f7ca1a9921ea5b394e39b7130ecbc6d7b4)
4838  [#6399](https://github.com/npm/npm/issues/6399) race condition: inflight
4839  installs, prevent `peerDependency` problems
4840  ([@othiym23](https://github.com/othiym23))
4841* [`82b775d`](https://github.com/npm/npm/commit/82b775d6ff34c4beb6c70b2344d491a9f2026577)
4842  [#6384](https://github.com/npm/npm/issues/6384) race condition: inflight
4843  caching by URL rather than semver range
4844  ([@othiym23](https://github.com/othiym23))
4845* [`7bee042`](https://github.com/npm/npm/commit/7bee0429066fedcc9e6e962c043eb740b3792809)
4846  `inflight@1.0.4`: callback can take arbitrary number of parameters
4847  ([@othiym23](https://github.com/othiym23))
4848* [`3bff494`](https://github.com/npm/npm/commit/3bff494f4abf17d6d7e0e4a3a76cf7421ecec35a)
4849  [#5195](https://github.com/npm/npm/issues/5195) fixed regex color regression
4850  for `npm search` ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
4851* [`33ba2d5`](https://github.com/npm/npm/commit/33ba2d585160a0a2a322cb76c4cd989acadcc984)
4852  [#6387](https://github.com/npm/npm/issues/6387) allow `npm view global` if
4853  package is specified ([@evanlucas](https://github.com/evanlucas))
4854* [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
4855  [#6388](https://github.com/npm/npm/issues/6388) npm-publish →
4856  npm-developers(7) ([@kennydude](https://github.com/kennydude))
4857
4858TEST CLEANUP EXTRAVAGANZA:
4859
4860* [`8d6bfcb`](https://github.com/npm/npm/commit/8d6bfcb88408f5885a2a67409854c43e5c3a23f6)
4861  tap tests run with no system-wide side effects
4862  ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
4863* [`7a1472f`](https://github.com/npm/npm/commit/7a1472fbdbe99956ad19f629e7eb1cc07ba026ef)
4864  added npm cache cleanup script
4865  ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
4866* [`0ce6a37`](https://github.com/npm/npm/commit/0ce6a3752fa9119298df15671254db6bc1d8e64c)
4867  stripped out dead test code (othiym23)
4868* replace spawn with common.npm (@chrismeyersfsu):
4869    * [`0dcd614`](https://github.com/npm/npm/commit/0dcd61446335eaf541bf5f2d5186ec1419f86a42)
4870      test/tap/cache-shasum-fork.js
4871    * [`97f861c`](https://github.com/npm/npm/commit/97f861c967606a7e51e3d5047cf805d9d1adea5a)
4872      test/tap/false_name.js
4873    * [`d01b3de`](https://github.com/npm/npm/commit/d01b3de6ce03f25bbf3db97bfcd3cc85830d6801)
4874      test/tap/git-cache-locking.js
4875    * [`7b63016`](https://github.com/npm/npm/commit/7b63016778124c6728d6bd89a045c841ae3900b6)
4876      test/tap/pack-scoped.js
4877    * [`c877553`](https://github.com/npm/npm/commit/c877553265c39673e03f0a97972f692af81a595d)
4878      test/tap/scripts-whitespace-windows.js
4879    * [`df98525`](https://github.com/npm/npm/commit/df98525331e964131299d457173c697cfb3d95b9)
4880      test/tap/prepublish.js
4881    * [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
4882      test/tap/prune.js
4883
4884### v2.1.3 (2014-10-02):
4885
4886BREAKING CHANGE FOR THE SQRT(i) PEOPLE ACTUALLY USING `npm submodule`:
4887
4888* [`1e64473`](https://github.com/npm/npm/commit/1e6447360207f45ad6188e5780fdf4517de6e23d)
4889  `rm -rf npm submodule` command, which has been broken since the Carter
4890  Administration ([@isaacs](https://github.com/isaacs))
4891
4892BREAKING CHANGE IF YOU ARE FOR SOME REASON STILL USING NODE 0.6 AND YOU SHOULD
4893NOT BE DOING THAT CAN YOU NOT:
4894
4895* [`3e431f9`](https://github.com/npm/npm/commit/3e431f9d6884acb4cde8bcb8a0b122a76b33ee1d)
4896  [joyent/node#8492](https://github.com/joyent/node/issues/8492) bye bye
4897  customFds, hello stdio ([@othiym23](https://github.com/othiym23))
4898
4899Other changes:
4900
4901* [`ea607a8`](https://github.com/npm/npm/commit/ea607a8a20e891ad38eed11b5ce2c3c0a65484b9)
4902  [#6372](https://github.com/npm/npm/issues/6372) noisily error (without
4903  aborting) on multi-{install,build} ([@othiym23](https://github.com/othiym23))
4904* [`3ee2799`](https://github.com/npm/npm/commit/3ee2799b629fd079d2db21d7e8f25fa7fa1660d0)
4905  [#6372](https://github.com/npm/npm/issues/6372) only make cache creation
4906  requests in flight ([@othiym23](https://github.com/othiym23))
4907* [`1a90ec2`](https://github.com/npm/npm/commit/1a90ec2f2cfbefc8becc6ef0c480e5edacc8a4cb)
4908  [#6372](https://github.com/npm/npm/issues/6372) wait to put Git URLs in
4909  flight until normalized ([@othiym23](https://github.com/othiym23))
4910* [`664795b`](https://github.com/npm/npm/commit/664795bb7d8da7142417b3f4ef5986db3a394071)
4911  [#6372](https://github.com/npm/npm/issues/6372) log what is and isn't in
4912  flight ([@othiym23](https://github.com/othiym23))
4913* [`00ef580`](https://github.com/npm/npm/commit/00ef58025a1f52dfabf2c4dc3898621d16a6e062)
4914  `inflight@1.0.3`: fix largely theoretical race condition, because we really
4915  really hate race conditions ([@isaacs](https://github.com/isaacs))
4916* [`1cde465`](https://github.com/npm/npm/commit/1cde4658d897ae0f93ff1d65b258e1571b391182)
4917  [#6363](https://github.com/npm/npm/issues/6363)
4918  `realize-package-specifier@1.1.0`: handle local dependencies better
4919  ([@iarna](https://github.com/iarna))
4920* [`86f084c`](https://github.com/npm/npm/commit/86f084c6c6d7935cd85d72d9d94b8784c914d51e)
4921  `realize-package-specifier@1.0.2`: dependency realization! in its own module!
4922  ([@iarna](https://github.com/iarna))
4923* [`553d830`](https://github.com/npm/npm/commit/553d830334552b83606b6bebefd821c9ea71e964)
4924  `npm-package-arg@2.1.3`: simplified semver, better tests
4925  ([@iarna](https://github.com/iarna))
4926* [`bec9b61`](https://github.com/npm/npm/commit/bec9b61a316c19f5240657594f0905a92a474352)
4927  `readable-stream@1.0.32`: for some reason
4928  ([@rvagg](https://github.com/rvagg))
4929* [`ff08ec5`](https://github.com/npm/npm/commit/ff08ec5f6d717bdbd559de0b2ede769306a9a763)
4930  `dezalgo@1.0.1`: use wrappy for instrumentability
4931  ([@isaacs](https://github.com/isaacs))
4932
4933### v2.1.2 (2014-09-29):
4934
4935* [`a1aa20e`](https://github.com/npm/npm/commit/a1aa20e44bb8285c6be1e7fa63b9da920e3a70ed)
4936  [#6282](https://github.com/npm/npm/issues/6282)
4937  `normalize-package-data@1.0.3`: don't prune bundledDependencies
4938  ([@isaacs](https://github.com/isaacs))
4939* [`a1f5fe1`](https://github.com/npm/npm/commit/a1f5fe1005043ce20a06e8b17a3e201aa3215357)
4940  move locks back into cache, now path-aware
4941  ([@othiym23](https://github.com/othiym23))
4942* [`a432c4b`](https://github.com/npm/npm/commit/a432c4b48c881294d6d79b5f41c2e1c16ad15a8a)
4943  convert lib/utils/tar.js to use atomic streams
4944  ([@othiym23](https://github.com/othiym23))
4945* [`b8c3c74`](https://github.com/npm/npm/commit/b8c3c74a3c963564233204161cc263e0912c930b)
4946  `fs-write-stream-atomic@1.0.2`: Now works with streams1 fs.WriteStreams.
4947  ([@isaacs](https://github.com/isaacs))
4948* [`c7ab76f`](https://github.com/npm/npm/commit/c7ab76f44cce5f42add5e3ba879bd10e7e00c3e6)
4949  logging cleanup ([@othiym23](https://github.com/othiym23))
4950* [`4b2d95d`](https://github.com/npm/npm/commit/4b2d95d0641435b09d047ae5cb2226f292bf38f0)
4951  [#6329](https://github.com/npm/npm/issues/6329) efficiently validate tmp
4952  tarballs safely ([@othiym23](https://github.com/othiym23))
4953
4954### v2.1.1 (2014-09-26):
4955
4956* [`563225d`](https://github.com/npm/npm/commit/563225d813ea4c12f46d4f7821ac7f76ba8ee2d6)
4957  [#6318](https://github.com/npm/npm/issues/6318) clean up locking; prefix
4958  lockfile with "." ([@othiym23](https://github.com/othiym23))
4959* [`c7f30e4`](https://github.com/npm/npm/commit/c7f30e4550fea882d31fcd4a55b681cd30713c44)
4960  [#6318](https://github.com/npm/npm/issues/6318) remove locking code around
4961  tarball packing and unpacking ([@othiym23](https://github.com/othiym23))
4962
4963### v2.1.0 (2014-09-25):
4964
4965NEW FEATURE:
4966
4967* [`3635601`](https://github.com/npm/npm/commit/36356011b6f2e6a5a81490e85a0a44eb27199dd7)
4968  [#5520](https://github.com/npm/npm/issues/5520) Add `'npm view .'`.
4969  ([@evanlucas](https://github.com/evanlucas))
4970
4971Other changes:
4972
4973* [`f24b552`](https://github.com/npm/npm/commit/f24b552b596d0627549cdd7c2d68fcf9006ea50a)
4974  [#6294](https://github.com/npm/npm/issues/6294) Lock cache → lock cache
4975  target. ([@othiym23](https://github.com/othiym23))
4976* [`ad54450`](https://github.com/npm/npm/commit/ad54450104f94c82c501138b4eee488ce3a4555e)
4977  [#6296](https://github.com/npm/npm/issues/6296) Ensure that npm-debug.log
4978  file is created when rollbacks are done.
4979  ([@isaacs](https://github.com/isaacs))
4980* [`6810071`](https://github.com/npm/npm/commit/681007155a40ac9d165293bd6ec5d8a1423ccfca)
4981  docs: Default loglevel "http" → "warn".
4982  ([@othiym23](https://github.com/othiym23))
4983* [`35ac89a`](https://github.com/npm/npm/commit/35ac89a940f23db875e882ce2888208395130336)
4984  Skip installation of installed scoped packages.
4985  ([@timoxley](https://github.com/timoxley))
4986* [`e468527`](https://github.com/npm/npm/commit/e468527256ec599892b9b88d61205e061d1ab735)
4987  Ensure cleanup executes for scripts-whitespace-windows test.
4988  ([@timoxley](https://github.com/timoxley))
4989* [`ef9101b`](https://github.com/npm/npm/commit/ef9101b7f346797749415086956a0394528a12c4)
4990  Ensure cleanup executes for packed-scope test.
4991  ([@timoxley](https://github.com/timoxley))
4992* [`69b4d18`](https://github.com/npm/npm/commit/69b4d18cdbc2ae04c9afaffbd273b436a394f398)
4993  `fs-write-stream-atomic@1.0.1`: Fix a race condition in our race-condition
4994  fixer. ([@isaacs](https://github.com/isaacs))
4995* [`26b17ff`](https://github.com/npm/npm/commit/26b17ff2e3b21ee26c6fdbecc8273520cff45718)
4996  [#6272](https://github.com/npm/npm/issues/6272) `npmconf` decides what the
4997  default prefix is. ([@othiym23](https://github.com/othiym23))
4998* [`846faca`](https://github.com/npm/npm/commit/846facacc6427dafcf5756dcd36d9036539938de)
4999  Fix development dependency is preferred over dependency.
5000  ([@andersjanmyr](https://github.com/andersjanmyr))
5001* [`9d1a9db`](https://github.com/npm/npm/commit/9d1a9db3af5adc48a7158a5a053eeb89ee41a0e7)
5002  [#3265](https://github.com/npm/npm/issues/3265) Re-apply a71615a. Fixes
5003  [#3265](https://github.com/npm/npm/issues/3265) again, with a test!
5004  ([@glasser](https://github.com/glasser))
5005* [`1d41db0`](https://github.com/npm/npm/commit/1d41db0b2744a7bd50971c35cc060ea0600fb4bf)
5006  `marked-man@0.1.4`: Fixes formatting of synopsis blocks in man docs.
5007  ([@kapouer](https://github.com/kapouer))
5008* [`a623da0`](https://github.com/npm/npm/commit/a623da01bea1b2d3f3a18b9117cfd2d8e3cbdd77)
5009  [#5867](https://github.com/npm/npm/issues/5867) Specify dummy git template
5010  dir when cloning to prevent copying hooks.
5011  ([@boneskull](https://github.com/boneskull))
5012
5013### v2.0.2 (2014-09-19):
5014
5015* [`42c872b`](https://github.com/npm/npm/commit/42c872b32cadc0e555638fc78eab3a38a04401d8)
5016  [#5920](https://github.com/npm/npm/issues/5920)
5017  `fs-write-stream-atomic@1.0.0` ([@isaacs](https://github.com/isaacs))
5018* [`6784767`](https://github.com/npm/npm/commit/6784767fe15e28b44c81a1d4bb1738c642a65d78)
5019  [#5920](https://github.com/npm/npm/issues/5920) make all write streams atomic
5020  ([@isaacs](https://github.com/isaacs))
5021* [`f6fac00`](https://github.com/npm/npm/commit/f6fac000dd98ebdd5ea1d5921175735d463d328b)
5022  [#5920](https://github.com/npm/npm/issues/5920) barf on 0-length cached
5023  tarballs ([@isaacs](https://github.com/isaacs))
5024* [`3b37592`](https://github.com/npm/npm/commit/3b37592a92ea98336505189ae8ca29248b0589f4)
5025  `write-file-atomic@1.1.0`: use graceful-fs
5026  ([@iarna](https://github.com/iarna))
5027
5028### v2.0.1 (2014-09-18):
5029
5030* [`74c5ab0`](https://github.com/npm/npm/commit/74c5ab0a676793c6dc19a3fd5fe149f85fecb261)
5031  [#6201](https://github.com/npm/npm/issues/6201) `npmconf@2.1.0`: scope
5032  always-auth to registry URI ([@othiym23](https://github.com/othiym23))
5033* [`774b127`](https://github.com/npm/npm/commit/774b127da1dd6fefe2f1299e73505d9146f00294)
5034  [#6201](https://github.com/npm/npm/issues/6201) `npm-registry-client@3.2.2`:
5035  use scoped always-auth settings ([@othiym23](https://github.com/othiym23))
5036* [`f2d2190`](https://github.com/npm/npm/commit/f2d2190aa365d22378d03afab0da13f95614a583)
5037  [#6201](https://github.com/npm/npm/issues/6201) support saving
5038  `--always-auth` when logging in ([@othiym23](https://github.com/othiym23))
5039* [`17c941a`](https://github.com/npm/npm/commit/17c941a2d583210fe97ed47e2968d94ce9f774ba)
5040  [#6163](https://github.com/npm/npm/issues/6163) use `write-file-atomic`
5041  instead of `fs.writeFile()` ([@fiws](https://github.com/fiws))
5042* [`fb5724f`](https://github.com/npm/npm/commit/fb5724fd98e1509c939693568df83d11417ea337)
5043  [#5925](https://github.com/npm/npm/issues/5925) `npm init -f`: allow `npm
5044  init` to run without prompting
5045  ([@michaelnisi](https://github.com/michaelnisi))
5046* [`b706d63`](https://github.com/npm/npm/commit/b706d637d5965dbf8f7ce07dc5c4bc80887f30d8)
5047  [#3059](https://github.com/npm/npm/issues/3059) disable prepublish when
5048  running `npm install --production`
5049  ([@jussi-kalliokoski](https://github.com/jussi-kalliokoski))
5050* [`119f068`](https://github.com/npm/npm/commit/119f068eae2a36fa8b9c9ca557c70377792243a4)
5051  attach the node version used when publishing a package to its registry
5052  metadata ([@othiym23](https://github.com/othiym23))
5053* [`8fe0081`](https://github.com/npm/npm/commit/8fe008181665519c2ac201ee432a3ece9798c31f)
5054  seriously, don't use `npm -g update npm`
5055  ([@thomblake](https://github.com/thomblake))
5056* [`ea5b3d4`](https://github.com/npm/npm/commit/ea5b3d446b86dcabb0dbc6dba374d3039342ecb3)
5057  `request@2.44.0` ([@othiym23](https://github.com/othiym23))
5058
5059### v2.0.0 (2014-09-12):
5060
5061BREAKING CHANGES:
5062
5063* [`4378a17`](https://github.com/npm/npm/commit/4378a17db340404a725ffe2eb75c9936f1612670)
5064  `semver@4.0.0`: prerelease versions no longer show up in ranges; `^0.x.y`
5065  behaves the way it did in `semver@2` rather than `semver@3`; docs have been
5066  reorganized for comprehensibility ([@isaacs](https://github.com/isaacs))
5067* [`c6ddb64`](https://github.com/npm/npm/commit/c6ddb6462fe32bf3a27b2c4a62a032a92e982429)
5068  npm now assumes that node is newer than 0.6
5069  ([@isaacs](https://github.com/isaacs))
5070
5071Other changes:
5072
5073* [`ea515c3`](https://github.com/npm/npm/commit/ea515c3b858bf493a7b87fa4cdc2110a0d9cef7f)
5074  [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all
5075  callbacks have finished before proceeding
5076  ([@othiym23](https://github.com/othiym23))
5077* [`0b0a59d`](https://github.com/npm/npm/commit/0b0a59d504f20f424294b1590ace73a7464f0378)
5078  [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just
5079  before the CLI exits ([@isaacs](https://github.com/isaacs))
5080* [`a11c88b`](https://github.com/npm/npm/commit/a11c88bdb1488b87d8dcac69df9a55a7a91184b6)
5081  [#6175](https://github.com/npm/npm/issues/6175) pack scoped packages
5082  correctly ([@othiym23](https://github.com/othiym23))
5083* [`e4e48e0`](https://github.com/npm/npm/commit/e4e48e037d4e95fdb6acec80b04c5c6eaee59970)
5084  [#6121](https://github.com/npm/npm/issues/6121) `read-installed@3.1.2`: don't
5085  mark linked dev dependencies as extraneous
5086  ([@isaacs](https://github.com/isaacs))
5087* [`d673e41`](https://github.com/npm/npm/commit/d673e4185d43362c2b2a91acbca8c057e7303c7b)
5088  `cmd-shim@2.0.1`: depend on `graceful-fs` directly
5089  ([@ForbesLindesay](https://github.com/ForbesLindesay))
5090* [`9d54d45`](https://github.com/npm/npm/commit/9d54d45e602d595bdab7eae09b9fa1dc46370147)
5091  `npm-registry-couchapp@2.5.3`: make tests more reliable on Travis
5092  ([@iarna](https://github.com/iarna))
5093* [`673d738`](https://github.com/npm/npm/commit/673d738c6142c3d043dcee0b7aa02c9831a2e0ca)
5094  ensure permissions are set correctly in cache when running as root
5095  ([@isaacs](https://github.com/isaacs))
5096* [`6e6a5fb`](https://github.com/npm/npm/commit/6e6a5fb74af10fd345411df4e121e554e2e3f33e)
5097  prepare for upgrade to `node-semver@4.0.0`
5098  ([@isaacs](https://github.com/isaacs))
5099* [`ab8dd87`](https://github.com/npm/npm/commit/ab8dd87b943262f5996744e8d4cc30cc9358b7d7)
5100  swap out `ronn` for `marked-man@0.1.3` ([@isaacs](https://github.com/isaacs))
5101* [`803da54`](https://github.com/npm/npm/commit/803da5404d5a0b7c9defa3fe7fa0f2d16a2b19d3)
5102  `npm-registry-client@3.2.0`: prepare for `node-semver@4.0.0` and include more
5103  error information ([@isaacs](https://github.com/isaacs))
5104* [`4af0e71`](https://github.com/npm/npm/commit/4af0e7134f5757c3d456d83e8349224a4ba12660)
5105  make default error display less scary ([@isaacs](https://github.com/isaacs))
5106* [`4fd9e79`](https://github.com/npm/npm/commit/4fd9e7901a15abff7a3dd478d99ce239b9580bca)
5107  `npm-registry-client@3.2.1`: handle errors returned by the registry much,
5108  much better ([@othiym23](https://github.com/othiym23))
5109* [`ca791e2`](https://github.com/npm/npm/commit/ca791e27e97e51c1dd491bff6622ac90b54c3e23)
5110  restore a long (always?) missing pass for deduping
5111  ([@othiym23](https://github.com/othiym23))
5112* [`ca0ef0e`](https://github.com/npm/npm/commit/ca0ef0e99bbdeccf28d550d0296baa4cb5e7ece2)
5113  correctly interpret relative paths for local dependencies
5114  ([@othiym23](https://github.com/othiym23))
5115* [`5eb8db2`](https://github.com/npm/npm/commit/5eb8db2c370eeb4cd34f6e8dc6a935e4ea325621)
5116  `npm-package-arg@2.1.2`: support git+file:// URLs for local bare repos
5117  ([@othiym23](https://github.com/othiym23))
5118* [`860a185`](https://github.com/npm/npm/commit/860a185c43646aca84cb93d1c05e2266045c316b)
5119  tweak docs to no longer advocate checking in `node_modules`
5120  ([@hunterloftis](https://github.com/hunterloftis))
5121* [`80e9033`](https://github.com/npm/npm/commit/80e9033c40e373775e35c674faa6c1948661782b)
5122  add links to nodejs.org downloads to docs
5123  ([@meetar](https://github.com/meetar))
5124
5125### v2.0.0-beta.3 (2014-09-04):
5126
5127* [`fa79413`](https://github.com/npm/npm/commit/fa794138bec8edb7b88639db25ee9c010d2f4c2b)
5128  [#6119](https://github.com/npm/npm/issues/6119) fall back to registry installs
5129  if package.json is missing in a local directory ([@iarna](https://github.com/iarna))
5130* [`16073e2`](https://github.com/npm/npm/commit/16073e2d8ae035961c4c189b602d4aacc6d6b387)
5131  `npm-package-arg@2.1.0`: support file URIs as local specs
5132  ([@othiym23](https://github.com/othiym23))
5133* [`9164acb`](https://github.com/npm/npm/commit/9164acbdee28956fa816ce5e473c559395ae4ec2)
5134  `github-url-from-username-repo@1.0.2`: don't match strings that are already
5135  URIs ([@othiym23](https://github.com/othiym23))
5136* [`4067d6b`](https://github.com/npm/npm/commit/4067d6bf303a69be13f3af4b19cf4fee1b0d3e12)
5137  [#5629](https://github.com/npm/npm/issues/5629) support saving of local packages
5138  in `package.json` ([@dylang](https://github.com/dylang))
5139* [`1b2ffdf`](https://github.com/npm/npm/commit/1b2ffdf359a8c897a78f91fc5a5d535c97aaec97)
5140  [#6097](https://github.com/npm/npm/issues/6097) document scoped packages
5141  ([@seldo](https://github.com/seldo))
5142* [`0a67d53`](https://github.com/npm/npm/commit/0a67d536067c4808a594d81288d34c0f7e97e105)
5143  [#6007](https://github.com/npm/npm/issues/6007) `request@2.42.0`: properly
5144  set headers on proxy requests ([@isaacs](https://github.com/isaacs))
5145* [`9bac6b8`](https://github.com/npm/npm/commit/9bac6b860b674d24251bb7b8ba412fdb26cbc836)
5146  `npmconf@2.0.8`: disallow semver ranges in tag configuration
5147  ([@isaacs](https://github.com/isaacs))
5148* [`d2d4d7c`](https://github.com/npm/npm/commit/d2d4d7cd3c32f91a87ffa11fe464d524029011c3)
5149  [#6082](https://github.com/npm/npm/issues/6082) don't allow tagging with a
5150  semver range as the tag name ([@isaacs](https://github.com/isaacs))
5151
5152### v2.0.0-beta.2 (2014-08-29):
5153
5154SPECIAL 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### v2.0.0-beta.0 (2014-08-21):
5211
5212* [`685f8be`](https://github.com/npm/npm/commit/685f8be1f2770cc75fd0e519a8d7aac72735a270)
5213  `npm-registry-client@3.1.3`: Print the notification header returned by the
5214  registry, and make sure status codes are printed without gratuitous quotes
5215  around them. ([@isaacs](https://github.com/isaacs) /
5216  [@othiym23](https://github.com/othiym23))
5217* [`a8cb676`](https://github.com/npm/npm/commit/a8cb676aef0561eaf04487d2719672b097392c85)
5218  [#5900](https://github.com/npm/npm/issues/5900) remove `npm` from its own
5219  `engines` field in `package.json`. None of us remember why it was there.
5220  ([@timoxley](https://github.com/timoxley))
5221* [`6c47201`](https://github.com/npm/npm/commit/6c47201a7d071e8bf091b36933daf4199cc98e80)
5222  [#5752](https://github.com/npm/npm/issues/5752),
5223  [#6013](https://github.com/npm/npm/issues/6013) save git URLs correctly in
5224  `_resolved` fields ([@isaacs](https://github.com/isaacs))
5225* [`e4e1223`](https://github.com/npm/npm/commit/e4e1223a91c37688ba3378e1fc9d5ae045654d00)
5226  [#5936](https://github.com/npm/npm/issues/5936) document the use of tags in
5227  `package.json` ([@KenanY](https://github.com/KenanY))
5228* [`c92b8d4`](https://github.com/npm/npm/commit/c92b8d4db7bde2a501da5b7d612684de1d629a42)
5229  [#6004](https://github.com/npm/npm/issues/6004) manually installed scoped
5230  packages are tracked correctly ([@dead](https://github.com/dead)-horse)
5231* [`21ca0aa`](https://github.com/npm/npm/commit/21ca0aaacbcfe2b89b0a439d914da0cae62de550)
5232  [#5945](https://github.com/npm/npm/issues/5945) link scoped packages
5233  correctly ([@dead](https://github.com/dead)-horse)
5234* [`16bead7`](https://github.com/npm/npm/commit/16bead7f2c82aec35b83ff0ec04df051ba456764)
5235  [#5958](https://github.com/npm/npm/issues/5958) ensure that file streams work
5236  in all versions of node ([@dead](https://github.com/dead)-horse)
5237* [`dbf0cab`](https://github.com/npm/npm/commit/dbf0cab29d0db43ac95e4b5a1fbdea1e0af75f10)
5238  you can now pass quoted args to `npm run-script`
5239  ([@bcoe](https://github.com/bcoe))
5240* [`0583874`](https://github.com/npm/npm/commit/05838743f01ccb8d2432b3858d66847002fb62df)
5241  `tar@1.0.1`: Add test for removing an extract target immediately after
5242  unpacking.
5243  ([@isaacs](https://github.com/isaacs))
5244* [`cdf3b04`](https://github.com/npm/npm/commit/cdf3b0428bc0b0183fb41dcde9e34e8f42c5e3a7)
5245  `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`, and
5246  `retries` options. Part 2 of race condition leading to `ENOENT`
5247  ([@isaacs](https://github.com/isaacs))
5248  errors.
5249* [`22d72a8`](https://github.com/npm/npm/commit/22d72a87a9e1a9ab56d9585397f63551887d9125)
5250  `fstream@1.0.2`: Fix a double-finish call which can result in excess FS
5251  operations after the `close` event. Part 1 of race condition leading to
5252  `ENOENT` errors.
5253  ([@isaacs](https://github.com/isaacs))
5254
5255### v2.0.0-alpha.7 (2014-08-14):
5256
5257* [`f23f1d8`](https://github.com/npm/npm/commit/f23f1d8e8f86ec1b7ab8dad68250bccaa67d61b1)
5258  doc: update version doc to include `pre-*` increment args
5259  ([@isaacs](https://github.com/isaacs))
5260* [`b6bb746`](https://github.com/npm/npm/commit/b6bb7461824d4dc1c0936f46bd7929b5cd597986)
5261  build: add 'make tag' to tag current release as latest
5262  ([@isaacs](https://github.com/isaacs))
5263* [`27c4bb6`](https://github.com/npm/npm/commit/27c4bb606e46e5eaf604b19fe8477bc6567f8b2e)
5264  build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs))
5265* [`cff66c3`](https://github.com/npm/npm/commit/cff66c3bf2850880058ebe2a26655dafd002495e)
5266  build: add script to output `v1.4-next` publish tag
5267  ([@isaacs](https://github.com/isaacs))
5268* [`22abec8`](https://github.com/npm/npm/commit/22abec8833474879ac49b9604c103bc845dad779)
5269  build: remove outdated `docpublish` make target
5270  ([@isaacs](https://github.com/isaacs))
5271* [`1be4de5`](https://github.com/npm/npm/commit/1be4de51c3976db8564f72b00d50384c921f0917)
5272  build: remove `unpublish` step from `make publish`
5273  ([@isaacs](https://github.com/isaacs))
5274* [`e429e20`](https://github.com/npm/npm/commit/e429e2011f4d78e398f2461bca3e5a9a146fbd0c)
5275  doc: add new changelog ([@othiym23](https://github.com/othiym23))
5276* [`9243d20`](https://github.com/npm/npm/commit/9243d207896ea307082256604c10817f7c318d68)
5277  lifecycle: test lifecycle path modification
5278  ([@isaacs](https://github.com/isaacs))
5279* [`021770b`](https://github.com/npm/npm/commit/021770b9cb07451509f0a44afff6c106311d8cf6)
5280  lifecycle: BREAKING CHANGE do not add the directory containing node executable
5281  ([@chulkilee](https://github.com/chulkilee))
5282* [`1d5c41d`](https://github.com/npm/npm/commit/1d5c41dd0d757bce8b87f10c4135f04ece55aeb9)
5283  install: rename .gitignore when unpacking foreign tarballs
5284  ([@isaacs](https://github.com/isaacs))
5285* [`9aac267`](https://github.com/npm/npm/commit/9aac2670a73423544d92b27cc301990a16a9563b)
5286  cache: detect non-gzipped tar files more reliably
5287  ([@isaacs](https://github.com/isaacs))
5288* [`3f24755`](https://github.com/npm/npm/commit/3f24755c8fce3c7ab11ed1dc632cc40d7ef42f62)
5289  `readdir-scoped-modules@1.0.0` ([@isaacs](https://github.com/isaacs))
5290* [`151cd2f`](https://github.com/npm/npm/commit/151cd2ff87b8ac2fc9ea366bc9b7f766dc5b9684)
5291  `read-installed@3.1.0` ([@isaacs](https://github.com/isaacs))
5292* [`f5a9434`](https://github.com/npm/npm/commit/f5a94343a8ebe4a8cd987320b55137aef53fb3fd)
5293  test: fix Travis timeouts ([@dylang](https://github.com/dylang))
5294* [`126cafc`](https://github.com/npm/npm/commit/126cafcc6706814c88af3042f2ffff408747bff4)
5295  `npm-registry-couchapp@2.5.0` ([@othiym23](https://github.com/othiym23))
5296
5297### v2.0.0-alpha.6 (2014-08-07):
5298
5299BREAKING CHANGE:
5300
5301* [`ea547e2`](https://github.com/npm/npm/commit/ea547e2) Bump semver to
5302  version 3: `^0.x.y` is now functionally the same as `=0.x.y`.
5303  ([@isaacs](https://github.com/isaacs))
5304
5305Other changes:
5306
5307* [`d987707`](https://github.com/npm/npm/commit/d987707) move fetch into
5308  npm-registry-client ([@othiym23](https://github.com/othiym23))
5309* [`9b318e2`](https://github.com/npm/npm/commit/9b318e2) `read-installed@3.0.0`
5310  ([@isaacs](https://github.com/isaacs))
5311* [`9d73de7`](https://github.com/npm/npm/commit/9d73de7) remove unnecessary
5312  mkdirps ([@isaacs](https://github.com/isaacs))
5313* [`33ccd13`](https://github.com/npm/npm/commit/33ccd13) Don't squash execute
5314  perms in `_git-remotes/` dir ([@adammeadows](https://github.com/adammeadows))
5315* [`48fd233`](https://github.com/npm/npm/commit/48fd233) `npm-package-arg@2.0.1`
5316  ([@isaacs](https://github.com/isaacs))
5317
5318### v2.0.0-alpha-5 (2014-07-22):
5319
5320This release bumps up to 2.0 because of this breaking change, which could
5321potentially affect how your package's scripts are run:
5322
5323* [`df4b0e7`](https://github.com/npm/npm/commit/df4b0e7fc1abd9a54f98db75ec9e4d03d37d125b)
5324  [#5518](https://github.com/npm/npm/issues/5518) BREAKING CHANGE: support
5325  passing arguments to `run` scripts ([@bcoe](https://github.com/bcoe))
5326
5327Other changes:
5328
5329* [`cd422c9`](https://github.com/npm/npm/commit/cd422c9de510766797c65720d70f085000f50543)
5330  [#5748](https://github.com/npm/npm/issues/5748) link binaries for scoped
5331  packages ([@othiym23](https://github.com/othiym23))
5332* [`4c3c778`](https://github.com/npm/npm/commit/4c3c77839920e830991e0c229c3c6a855c914d67)
5333  [#5758](https://github.com/npm/npm/issues/5758) `npm link` includes scope
5334  when linking scoped package ([@fengmk2](https://github.com/fengmk2))
5335* [`f9f58dd`](https://github.com/npm/npm/commit/f9f58dd0f5b715d4efa6619f13901916d8f99c47)
5336  [#5707](https://github.com/npm/npm/issues/5707) document generic pre- /
5337  post-commands ([@sudodoki](https://github.com/sudodoki))
5338* [`ac7a480`](https://github.com/npm/npm/commit/ac7a4801d80361b41dce4a18f22bcdf75e396000)
5339  [#5406](https://github.com/npm/npm/issues/5406) `npm cache` displays usage
5340  when called without arguments
5341  ([@michaelnisi](https://github.com/michaelnisi))
5342* [`f4554e9`](https://github.com/npm/npm/commit/f4554e99d34f77a8a02884493748f7d49a9a9d8b)
5343  Test fixes for Windows ([@isaacs](https://github.com/isaacs))
5344* update dependencies ([@othiym23](https://github.com/othiym23))
5345