deps: upgrade to npm 2.14.4
[platform/upstream/nodejs.git] / deps / npm / CHANGELOG.md
1 ### v2.14.4 (2015-09-10):
2
3 #### THE GREAT NODEv4 SAGA
4
5 So [Node 4 is out now](https://nodejs.org/en/blog/release/v4.0.0/) and that's
6 going to involve a number of things over in npm land. Most importantly, it's the
7 last major release that will include the `2.x` branch of npm. That also means
8 that `2.x` is going to go into LTS mode in the coming weeks -- once `npm@3`
9 becomes our official `latest` release. You can most likely expect Node 5 to
10 include `npm@3` by default, whenever that happens. We'll go into more detail
11 about LTS at that point, as well, so keep your eyes peeled for announcements!
12
13 #### NODE IS DEAD. LONG LIVE NODE!
14
15 Node 4 being released means that a few things that used to be floating patches
16 are finally making it right into npm proper. This week, we've got two such
17 updates, both to dependencies:
18
19 * [`505d9e4`](https://github.com/npm/npm/commit/505d9e40c13b8b0bb3f70ee9886f7b73ba569407)
20   `node-gyp@3.0.1`: Support for node nightlies and compilation for both node and
21   io.js without extra patching
22   ([@rvagg](https://github.com/rvagg))
23
24 [@thefourtheye](https://github.com/thefourtheye) was kind enough to submit a
25 *bunch* of PRs to npm's dependencies updating them to `graceful-fs@4.1.2`, which
26 mainly makes it so we're no longer monkey-patching `fs`. The following are all
27 updates related to this:
28
29 * [`10cb189`](https://github.com/npm/npm/commit/10cb189c773fef804214018d57509cc7a943184b)
30   `write-file-atomic@1.1.3`
31   ([@thefourtheye](https://github.com/thefourtheye))
32 * [`edfb80b`](https://github.com/npm/npm/commit/edfb80b39f8cfce9a993f139eb98248001198e09)
33   `tar@2.2.1`
34   ([@thefourtheye](https://github.com/thefourtheye))
35 * [`aa6e1ee`](https://github.com/npm/npm/commit/aa6e1eede7d71fa69d7256afdfbaa3406bc39a5b)
36   `read-package-json@2.0.1`
37   ([@thefourtheye](https://github.com/thefourtheye))
38 * [`18971a3`](https://github.com/npm/npm/commit/18971a361635ed3958ecd39b63930ae1e56f8612)
39   `read-installed@4.0.3`
40   ([@thefourtheye](https://github.com/thefourtheye))
41 * [`a4cba71`](https://github.com/npm/npm/commit/a4cba71bd2532236fda7385bf55e8790cafd4f0a)
42   `fstream@1.0.8`
43   ([@thefourtheye](https://github.com/thefourtheye))
44 * [`70a38e2`](https://github.com/npm/npm/commit/70a38e29418951ac61ab6cf269d188074fe8ac3a)
45   `fs-write-stream-atomic@1.0.4`
46   ([@thefourtheye](https://github.com/thefourtheye))
47 * [`9cbd20f`](https://github.com/npm/npm/commit/9cbd20f691e37960e4ba12d401abd1069657cb47)
48   `fs-vacuum@1.2.7`
49   ([@thefourtheye](https://github.com/thefourtheye))
50
51 #### OTHER PATCHES
52
53 * [`c4dd521`](https://github.com/npm/npm/commit/c4dd5213b2f3283ea0392845e5f78cac4573529e)
54   [#9506](https://github.com/npm/npm/issues/9506) Make `npm link` work on
55   Windows when using node pre-release/RC releases.
56   ([@jon-hall](https://github.com/jon-hall))
57 * [`b6bc29c`](https://github.com/npm/npm/commit/b6bc29c1401b3d6b570c09cbef1866bdb0436b59)
58   [#9544](https://github.com/npm/npm/issues/9549) `process.binding` is being
59   deprecated, so our only direct usage has been removed.
60   ([@ChALkeR](https://github.com/ChALkeR))
61
62 #### MORE DEPENDENCIES!
63
64 * [`d940594`](https://github.com/npm/npm/commit/d940594e479a7f012b6dd6952e8ef985ba2a6216)
65   `tap@1.4.1`
66   ([@isaacs](https://github.com/isaacs))
67 * [`ee38486`](https://github.com/npm/npm/commit/ee3848669331fd98879a3175789d963543f67ce3)
68   `which@1.1.2`: Added tests for Windows-related dead code that was previously
69   helping a silent failure happen.  Travis stuff, too.
70   ([@isaacs](https://github.com/isaacs))
71
72 #### DOC UPDATES
73
74 * [`475daf5`](https://github.com/npm/npm/commit/475daf54ad07777938d1d7ee1a3e576961e84510)
75   [#9492](https://github.com/npm/npm/issues/9492) Clarify how `.npmignore` and
76   `.gitignore` are found and used by npm.
77   ([@addaleax](https://github.com/addaleax))
78 * [`b2c391d`](https://github.com/npm/npm/commit/b2c391d7833249626a6d7650363a83bcc778717a)
79   `nopt@3.0.4`: Minor clarifications to docs about how array and errors work.
80   ([@zkat](https://github.com/zkat))
81
82 ### v2.14.3 (2015-09-03):
83
84 #### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID.
85
86 Our closed beta for Teens and Orcs is happening! The web team is hard at work
87 making sure everything looks pretty and usable and such. Once we fix things
88 stemming from that beta, you can expect the feature to be available publicly.
89 Some time after that, it'll even be available for free for FOSS orgs. It'll Be
90 Done When It's Doneā„¢.
91
92 #### OH GOOD, I CAN ACTUALLY UPSTREAM NOW
93
94 Looks like last week's release foiled our own test suite when trying to upstream
95 it to Node! Just a friendly reminder that no, `.npmrc` is no longer included
96 then you pack/release a package! [@othiym23](https://github.com/othiym23) and
97 [@isaacs](https://github.com/isaacs) managed to suss the really strange test
98 failures resulting from that, and we've patched it in this release.
99
100 * [`01a3428`](https://github.com/npm/npm/commit/01a3428534b754dca89a56fd1e49f55cb22f6f25)
101   [#9476](https://github.com/npm/npm/issues/9476) test: Recreate missing
102   `.npmrc` files when missing so downstream packagers can run tests on packed
103   npm.
104   ([@othiym23](https://github.com/othiym23))
105
106 #### TALKING ABOUT THE CHANGELOG IN THE CHANGELOG IS LIKE, POMO OR SOMETHING
107
108 * [`c1e7a83`](https://github.com/npm/npm/commit/c1e7a83c0ae7aadf01aecc57cf8a0ae2009d4da8)
109   [#9431](https://github.com/npm/npm/issues/9431) CHANGELOG: clarify
110   windows-related nature of patch
111   ([@saper](https://github.com/saper))
112
113 #### devDependencies UPDATED
114
115 No actual dep updates this week, but we're bumping a couple of devDeps:
116
117 * [`8454835`](https://github.com/npm/npm/commit/84548351bfd63e3e305d195abbcad24c6b7c3e8e)
118   `tap@1.4.0`: Add `t.contains()` as alias to `t.match()`
119   ([@isaacs](https://github.com/isaacs))
120 * [`13d2216`](https://github.com/npm/npm/commit/13d22161bcdeb6e1ed095d5ba2f77e6abfffa5eb)
121   `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode
122   ([@isaacs](https://github.com/isaacs))
123
124 ### v2.14.2 (2015-08-27):
125
126 #### GETTING THAT PESKY `preferGlobal` WARNING RIGHT
127
128 So apparently the `preferGlobal` option hasn't quite been warning correctly for
129 some time. But now it should be all better! tl;dr: if you try and install a
130 dependency with `preferGlobal: true`, and it's _not already_ in your
131 `package.json`, you'll get a warning that the author would really rather you
132 install it with `--global`. This should prevent Windows PowerShell from thinking
133 npm has failed just because of a benign warning.
134
135 * [`bbb25f3`](https://github.com/npm/npm/commit/bbb25f30d582f8979168c79233a9f8f840974f90)
136   [#8841](https://github.com/npm/npm/issues/8841)
137   [#9409](https://github.com/npm/npm/issues/9409) The `preferGlobal`
138   warning shouldn't happen if the dependency being installed is listed in
139   `devDependencies`. ([@saper](https://github.com/saper))
140 * [`222fcec`](https://github.com/npm/npm/commit/222fcec85ccd30d35899e5037079fb14625af4e2)
141   [#9409](https://github.com/npm/npm/issues/9409) `preferGlobal` now prints a
142   warning when there are no dependencies for the current package.
143   ([@zkat](https://github.com/zkat))
144 * [`5cfed6d`](https://github.com/npm/npm/commit/5cfed6d7a1a5f2731688cfc8293b5e43a6355393)
145   [#9409](https://github.com/npm/npm/issues/9409) Verify that
146   `preferGlobal` is warning as expected (when a `preferGlobal` dependency is
147   installed, but isn't listed in either `dependencies` or `devDependencies`).
148   ([@zkat](https://github.com/zkat))
149
150 #### BUMP +1
151
152 * [`eeafce2`](https://github.com/npm/npm/commit/eeafce2d06883c0f51bf403415b6bc5f2647eba3)
153   `validate-npm-package-license@3.0.1`: Include additional metadata in parsed license object,
154   useful for license checkers. ([@kemitchell](https://github.com/kemitchell))
155 * [`1502a28`](https://github.com/npm/npm/commit/1502a285f84aa548806b3eafc8889e6288e810f3)
156   `normalise-package-data@2.3.2`: Updated to use `validate-npm-package-license@3.0.1`.
157   ([@othiym23](https://github.com/othiym23))
158 * [`cbde823`](https://github.com/npm/npm/commit/cbde8233436bf0ea62a4740869b4990322c20659)
159   `init-package-json@1.9.1`: Add a `silent` option to suppress output on writing the
160   generated `package.json`. Also, updated to use `validate-npm-package-license@3.0.1`.
161   ([@zkat](https://github.com/zkat))
162 * [`08fda46`](https://github.com/npm/npm/commit/08fda465452b4d77f1ced8050ee3a35a77fc30a5)
163   `tar@2.2.0`: Minor improvements. ([@othiym23](https://github.com/othiym23))
164 * [`dc2f20b`](https://github.com/npm/npm/commit/dc2f20b53fff77203139c863b48da0e959df2ac9)
165   `rimraf@2.4.3`: `EPERM` now triggers a delay / retry loop (since Windows throws
166   this when things still hold a handle). ([@isaacs](https://github.com/isaacs))
167 * [`e8acb27`](https://github.com/npm/npm/commit/e8acb273aa67ee0394d0431650e1b2a7d09c8554)
168   `read@1.0.7`: Fix licensing ambiguity. ([@isaacs](https://github.com/isaacs))
169
170 #### OTHER STUFF THAT'S RELEVANT
171
172 * [`73a1ee0`](https://github.com/npm/npm/commit/73a1ee0be90fa1928521b63f28bef83b8ffab61d)
173   [#9386](https://github.com/npm/npm/issues/9386) Include additional unignorable files in
174   documentation.
175   ([@mjhasbach](https://github.com/mjhasbach))
176 * [`0313e40`](https://github.com/npm/npm/commit/0313e40ee0f757fce8861be590ad668c23d7be53)
177   [#9396](https://github.com/npm/npm/issues/9396) Improve the `EISDIR` error
178   message returned by npm's error-handling code to give users a better hint of
179   what's most likely going on.  Usually, error reports with this error code are
180   about people trying to install things without a `package.json`.
181   ([@KenanY](https://github.com/KenanY))
182 * [`2677457`](https://github.com/npm/npm/commit/26774579c739c5951351e58263cf4d6ea3d66ec8)
183   [#9360](https://github.com/npm/npm/issues/9360) Make it easier to run
184   only _some_ of npm tests with lifecycle scripts via `npm tap test/tap/testname.js`.
185   ([@iarna](https://github.com/iarna))
186
187 ### v2.14.1 (2015-08-20):
188
189 #### SECURITY FIX
190
191 There are patches for two information leaks of moderate severity in `npm@2.14.1`:
192
193 1. In some cases, npm was leaking sensitive credential information into the
194    child environment when running package and lifecycle scripts. This could
195    lead to packages being published with files (most notably `config.gypi`, a
196    file created by `node-gyp` that is a cache of environmental information
197    regenerated on every run) containing the bearer tokens used to authenticate
198    users to the registry. Users with affected packages have been notified (and
199    the affected tokens invalidated), and now npm has been modified to not
200    upload files that could contain this information, as well as scrubbing the
201    sensitive information out of the environment passed to child scripts.
202 2. Per-package `.npmrc` files are used by some maintainers as a way to scope
203    those packages to a specific registry and its credentials. This is a
204    reasonable use case, but by default `.npmrc` was packed into packages,
205    leaking those credentials.  npm will no longer include `.npmrc` when packing
206    tarballs.
207
208 If you maintain packages and believe you may be affected by either
209 of the above scenarios (especially if you've received a security
210 notification from npm recently), please upgrade to `npm@2.14.1` as
211 soon as possible. If you believe you may have inadvertently leaked
212 your credentials, upgrade to `npm@2.14.1` on the affected machine,
213 and run `npm logout` and then `npm login`. Your access tokens will be
214 invalidated, which will eliminate any risk posed by tokens inadvertently
215 included in published packages. We apologize for the inconvenience this
216 causes, as well as the oversight that led to the existence of this issue
217 in the first place.
218
219 Huge thanks to [@ChALkeR](https://github.com/ChALkeR) for bringing these
220 issues to our attention, and for helping us identify affected packages
221 and maintainers. Thanks also to the Node.js security working group for
222 their coƶrdination with the team in our response to this issue. We
223 appreciate everybody's patience and understanding tremendously.
224
225 * [`b9474a8`](https://github.com/npm/npm/commit/b9474a843ca55b7c5fac6da33989e8eb39aff8b1)
226   `fstream-npm@1.0.5`: Stop publishing build cruft (`config.gypi`) and per-project
227   `.npmrc` files to keep local configuration out of published packages.
228   ([@othiym23](https://github.com/othiym23))
229 * [`13c286d`](https://github.com/npm/npm/commit/13c286dbdc3fa8fec4cb79fc4d1ee505c8a41b2e)
230   [#9348](https://github.com/npm/npm/issues/9348) Filter "private"
231   (underscore-prefixed, even when scoped to a registry) configuration values
232   out of child environments. ([@othiym23](https://github.com/othiym23))
233
234 #### BETTER WINDOWS INTEGRATION, ONE STEP AT A TIME
235
236 * [`e40e71f`](https://github.com/npm/npm/commit/e40e71f2f838a8a42392f44e3eeec04e323ab743)
237   [#6412](https://github.com/npm/npm/issues/6412) Improve the search strategy
238   used by the npm shims for Windows to prioritize your own local npm installs.
239   npm has really needed this tweak for a long time, so hammer on it and let us
240   know if you run into issues, but with luck it will Just Work.
241   ([@joaocgreis](https://github.com/joaocgreis))
242 * [`204ebbb`](https://github.com/npm/npm/commit/204ebbb3e0cab696a429a878ceeb4a7e78ec2b94)
243   [#8751](https://github.com/npm/npm/issues/8751)
244   [#7333](https://github.com/npm/npm/issues/7333) Keep [autorun
245   scripts](https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx) from
246   interfering with npm package and lifecycle script execution on Windows by
247   adding `/d` and `/s` when invoking `cmd.exe`.
248   ([@saper](https://github.com/saper))
249
250 #### IT SEEMED LIKE AN IDEA AT THE TIME
251
252 * [`286f3d9`](https://github.com/npm/npm/commit/286f3d97103812f0fd84b70352addbe899e258f9)
253   [#9201](https://github.com/npm/npm/pull/9201) For a while npm was building
254   HTML partials for use on [`docs.npmjs.com`](https://docs.npmjs.com), but we
255   weren't actually using them. Stop building them, which makes running the full
256   test suite and installation process around a third faster.
257   ([@isaacs](https://github.com/isaacs))
258
259 #### A SINGLE LONELY DEPENDENCY UPGRADE
260
261 * [`b343b95`](https://github.com/npm/npm/commit/b343b956ef777e321e4251ddc96ec6d80827d9e2)
262   `request@2.61.0`: Bug fixes and keep-alive tweaks.
263   ([@simov](https://github.com/simov))
264
265 ### v2.14.0 (2015-08-13):
266
267 #### IT'S HERE! KINDA!
268
269 This release adds support for teens and orcs (err, teams and organizations) to
270 the npm CLI! Note that the web site and registry-side features of this are
271 still not ready for public consumption.
272
273 A beta should be starting in the next couple of weeks, and the features
274 themselves will become public once all that's done. Keep an eye out for more
275 news!
276
277 All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9011):
278
279 * [`6424170`](https://github.com/npm/npm/commit/6424170fc17c666a6efc090370ec691e0cab1792)
280   Added new `npm team` command and subcommands.
281   ([@zkat](https://github.com/zkat))
282 * [`52220d1`](https://github.com/npm/npm/commit/52220d146d474ec29b683bd99c06f75cbd46a9f4)
283   Added documentation for new `npm team` command.
284   ([@zkat](https://github.com/zkat))
285 * [`4e66830`](https://github.com/npm/npm/commit/4e668304850d02df8eb27a779fda76fe5de645e7)
286   Updated `npm access` to support teams and organizations.
287   ([@zkat](https://github.com/zkat))
288 * [`ea3eb87`](https://github.com/npm/npm/commit/ea3eb8733d9fa09ce34106b1b19fb1a8f95844a5)
289   Gussied up docs for `npm access` with new commands.
290   ([@zkat](https://github.com/zkat))
291 * [`6e0b431`](https://github.com/npm/npm/commit/6e0b431c1de5e329c86e57d097aa88ebfedea864)
292   Fix up `npm whoami` to make the underlying API usable elsewhere.
293   ([@zkat](https://github.com/zkat))
294 * [`f29c931`](https://github.com/npm/npm/commit/f29c931012ce5ccd69c29d83548f27e443bf7e62)
295   `npm-registry-client@7.0.1`: Upgrade `npm-registry-client` API to support
296   `team` and `access` calls against the registry.
297   ([@zkat](https://github.com/zkat))
298
299 #### A FEW EXTRA VERSION BUMPS
300
301 * [`c977e12`](https://github.com/npm/npm/commit/c977e12cbfa50c2f52fc807f5cc19ba1cc1b39bf)
302   `init-package-json@1.8.0`: Checks for some `npm@3` metadata.
303   ([@iarna](https://github.com/iarna))
304 * [`5c8c9e5`](https://github.com/npm/npm/commit/5c8c9e5ae177ba7d0d298cfa42f3fc7f0271e4ec)
305   `columnify@1.5.2`: Updated some dependencies.
306   ([@timoxley](https://github.com/timoxley))
307 * [`5d56742`](https://github.com/npm/npm/commit/5d567425768b75aeab402c817a53d8b2bc60d8de)
308   `chownr@1.0.1`: Tests, docs, and minor style nits.
309   ([@isaacs](https://github.com/isaacs))
310
311 #### ALSO A DOC FIX
312
313 * [`846fcc7`](https://github.com/npm/npm/commit/846fcc79b86984b109a97366b0422f995a45f8bf)
314   [`#9200`](https://github.com/npm/npm/pull/9200) Remove single quotes
315   around semver range, thus making it valid semver.
316   ([@KenanY](https://github.com/KenanY))
317
318 ### v2.13.5 (2015-08-07):
319
320 This is another quiet week for the `npm@2` release.
321 [@zkat](https://github.com/zkat) has been working hard on polishing the CLI
322 bits of the registry's new feature to support direct management of teams and
323 organizations, and [@iarna](https://github.com/iarna) continues to work through
324 the list of issues blocking the general release of `npm@3`, which is looking
325 more and more solid all the time.
326
327 [@othiym23](https://github.com/othiym23) and [@zkat](https://github.com/zkat)
328 have also been at this week's Node.js / io.js [collaborator
329 summit](https://github.com/nodejs/summit/tree/master), both as facilitators and
330 participants. This is a valuable opportunity to get some face time with other
331 contributors and to work through a bunch of important discussions, but it does
332 leave us feeling kind of sleepy. Running meetings is hard!
333
334 What does that leave for this release? A few of the more tricky bug fixes that
335 have been sitting around for a little while now, and a couple dependency
336 upgrades. Nothing too fancy, but most of these were contributed by developers
337 like _you_, which we think is swell. Thanks!
338
339 #### BUG FIXES
340
341 * [`d7271b8`](https://github.com/npm/npm/commit/d7271b8226712479cdd339bf85faf7e394923e0d)
342   [#4530](https://github.com/npm/npm/issues/4530) The bash completion script
343   for npm no longer alters global completion behavior around word breaks.
344   ([@whitty](https://github.com/whitty))
345 * [`c9ce294`](https://github.com/npm/npm/commit/c9ce29415a0a8fc610690b6e9d91b64d6e36cfcc)
346   [#7198](https://github.com/npm/npm/issues/7198) When setting up dependencies
347   to be shared via `npm link <package>`, only run the lifecycle scripts during
348   the original link, not when running `npm link <package>` or `npm install
349   --link` against them. ([@murgatroid99](https://github.com/murgatroid99))
350 * [`422da66`](https://github.com/npm/npm/commit/422da664bd3ce71313da447f170507faf5aac46a)
351   [#9108](https://github.com/npm/npm/issues/9108) Clear up minor confusion
352   around wording in `bundledDependencies` section of `package.json` docs.
353   ([@derekpeterson](https://github.com/derekpeterson))
354 * [`6b42d99`](https://github.com/npm/npm/commit/6b42d99460885e715772d3487b1c548d2bc8a738)
355   [#9146](https://github.com/npm/npm/issues/9146) Include scripts that run for
356   `preversion`, `version`, and `postversion` in the section for lifecycle
357   scripts rather than the generic `npm run-script` output.
358   ([@othiym23](https://github.com/othiym23))
359
360 #### NOPE, NOT DONE WITH DEPENDENCY UPDATES
361
362 * [`91a48bb`](https://github.com/npm/npm/commit/91a48bb5ef5a990781c86f8b69b8a32cf4fac2d9)
363   `chmodr@1.0.1`: Ignore symbolic links when recursively changing mode, just
364   like the Unix command. ([@isaacs](https://github.com/isaacs))
365 * [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e)
366   `nock@2.10.0` ([@pgte](https://github.com/pgte))
367
368 ### v2.13.4 (2015-07-30):
369
370 #### JULY ENDS ON A FAIRLY QUIET NOTE
371
372 Hey everyone! I hope you've had a great week. We're having a fairly small
373 release this week while we wrap up Teams and Orgs (or, as we've taken to calling
374 it internally, _Teens and Orcs_).
375
376 In other exciting news, a bunch of us are gonna be at the [Node.js Collaborator
377 Summit](https://github.com/nodejs/summit/issues/1), and you can also find us at
378 [wafflejs](https://wafflejs.com/) on Wednesday. Hopefully we'll be seeing some
379 of you there. :)
380
381 #### THE PATCH!!!
382
383 So here it is. The patch. Hope it helps. (Thanks,
384 [@ktarplee](https://github.com/ktarplee)!)
385
386 * [`2e58c48`](https://github.com/npm/npm/commit/2e58c4819e3cafe4ae23ab7f4a520fe09258cfd7)
387   [#9033](https://github.com/npm/npm/pull/9033) `npm version` now works on git
388   submodules
389   ([@ktarplee](https://github.com/ktarplee))
390
391 #### OH AND THERE'S A DEV DEPENDENCIES UPDATE
392
393 Hooray.
394
395 * [`d204683`](https://github.com/npm/npm/commit/d2046839d471322e61e3ceb0f00e78e5c481f967)
396   nock@2.9.1
397   ([@pgte](https://github.com/pgte))
398
399 ### v2.13.3 (2015-07-23):
400
401 #### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES
402
403 It's pretty hard to outdo last week's release buuuuut~ I promise I'll have a
404 treat when we release our shiny new **Teams and Organizations** feature! :D
405 (Coming Soonā„¢). It'll be a real *gem*.
406
407 That means it's a pretty low-key release this week. We got some nice
408 documentation tweaks, a few bugfixes, and other such things, though!
409
410 Oh, and a _bunch of version bumps_. Thanks, `semver`!
411
412 #### IT'S THE LITTLE THINGS THAT MATTER
413
414 * [`2fac6ae`](https://github.com/npm/npm/commit/2fac6aeffefba2934c3db395b525d931599c34d8)
415   [#9012](https://github.com/npm/npm/issues/9012) A convenience for releases --
416   using the globally-installed npm before now was causing minor annoyances, so
417   we just use the exact same npm we're releasing to build the new release.
418   ([@zkat](https://github.com/zkat))
419
420 #### WHAT DOES THIS BUTTON DO?
421
422 There's a couple of doc updates! The last one might be interesting.
423
424 * [`4cd3205`](https://github.com/npm/npm/commit/4cd32050c0f89b7f1ae486354fa2c35eea302ba5)
425   [#9002](https://github.com/npm/npm/issues/9002) Updated docs to list the
426   various files that npm automatically includes and excludes, regardless of
427   settings.
428   ([@SimenB](https://github.com/SimenB))
429 * [`cf09e75`](https://github.com/npm/npm/commit/cf09e754931739af32647d667b671e72a4c79081)
430   [#9022](https://github.com/npm/npm/issues/9022) Document the `"access"` field
431   in `"publishConfig"`. Did you know you don't need to use `--access=public`
432   when publishing scoped packages?! Just put it in your `package.json`!
433   Go refresh yourself on scopes packages by [checking our docs](https://docs.npmjs.com/getting-started/scoped-packages) on them.
434   ([@boennemann](https://github.com/boennemann))
435 * [`bfd73da`](https://github.com/npm/npm/commit/bfd73da33349cc2afb8278953b2ae16ea95023de)
436   [#9013](https://github.com/npm/npm/issues/9013) fixed typo in changelog
437   ([@radarhere](https://github.com/radarhere))
438
439 #### THE SEMVER MAJOR VERSION APOCALYPSE IS UPON US
440
441 Basically, `semver` is up to `@5`, and that meant we needed to go in an update a
442 bunch of our dependencies manually. `node-gyp` is still pending update, since
443 it's not ours, though!
444
445 * [`9232e58`](https://github.com/npm/npm/commit/9232e58d54c032c23716ef976023d36a42bfdcc9)
446   [#8972](https://github.com/npm/npm/issues/8972) `init-package-json@1.7.1`
447   ([@othiym23](https://github.com/othiym23))
448 * [`ba44f6b`](https://github.com/npm/npm/commit/ba44f6b4201a4faee025341b123e372d8f45b6d9)
449   [#8972](https://github.com/npm/npm/issues/8972) `normalize-package-data@2.3.1`
450   ([@othiym23](https://github.com/othiym23))
451 * [`3901d3c`](https://github.com/npm/npm/commit/3901d3cf191880bb4420b1d6b8aedbcd8fc26cdf)
452   [#8972](https://github.com/npm/npm/issues/8972) `npm-install-checks@1.0.6`
453   ([@othiym23](https://github.com/othiym23))
454 * [`ffcc7dd`](https://github.com/npm/npm/commit/ffcc7dd12f8bb94ff0f64c465c57e460b3f24a24)
455   [#8972](https://github.com/npm/npm/issues/8972) `npm-package-arg@4.0.2`
456   ([@othiym23](https://github.com/othiym23))
457 * [`7128f9e`](https://github.com/npm/npm/commit/7128f9ec10c0c8482087511b716dbddb54249626)
458   [#8972](https://github.com/npm/npm/issues/8972) `npm-registry-client@6.5.1`
459   ([@othiym23](https://github.com/othiym23))
460 * [`af28911`](https://github.com/npm/npm/commit/af28911ecd54a844f848c6ae41887097d6aa2f3b)
461   [#8972](https://github.com/npm/npm/issues/8972) `read-installed@4.0.2`
462   ([@othiym23](https://github.com/othiym23))
463 * [`3cc817a`](https://github.com/npm/npm/commit/3cc817a0f34f698b580ff6ff02308700efc54f7c)
464   [#8972](https://github.com/npm/npm/issues/8972) node-gyp needs its own version
465   of semver
466   ([@othiym23](https://github.com/othiym23))
467 * [`f98eccc`](https://github.com/npm/npm/commit/f98eccc6e3a6699ca0aa9ecbad93a3b995583871)
468   [#8972](https://github.com/npm/npm/issues/8972) `semver@5.0.1`: Stop including
469   browser builds.
470   ([@isaacs](https://github.com/isaacs))
471
472 #### \*BUMP\*
473
474 And some other version bumps for good measure.
475
476 * [`254ecfb`](https://github.com/npm/npm/commit/254ecfb04f026c2fd16427db01a53600c1892c8b)
477   [#8990](https://github.com/npm/npm/issues/8990) `marked-man@0.1.5`: Fixes an
478   issue with documentation rendering where backticks in 2nd-level headers would
479   break rendering (?!?!)
480   ([@steveklabnik](https://github.com/steveklabnik))
481 * [`79efd79`](https://github.com/npm/npm/commit/79efd79ac216da8cee8636fb2ed926b0196a4eb6)
482   `minimatch@2.0.10`: A pattern like `'*.!(x).!(y)'` should not match a name
483   like `'a.xyz.yab'`.
484   ([@isaacs](https://github.com/isaacs))
485 * [`39c7dc9`](https://github.com/npm/npm/commit/39c7dc9a4e17cd35a5ed882ba671821c9a900f9e)
486   `request@2.60.0`: A few bug fixes and doc updates.
487   ([@simov](https://github.com/simov))
488 * [`72d3c3a`](https://github.com/npm/npm/commit/72d3c3a9e1e461608aa21b14c01a650333330da9)
489   `rimraf@2.4.2`: Minor doc and dep updates
490   ([@isaacs](https://github.com/isaacs))
491 * [`7513035`](https://github.com/npm/npm/commit/75130356a06f5f4fbec3786aac9f9f0b36dfe010)
492   `nock@2.9.1`
493   ([@pgte](https://github.com/pgte))
494 * [`3d9aa82`](https://github.com/npm/npm/commit/3d9aa82260f0643a32c13d0c1ed16f644b6fd4ab)
495   Fixes this thing where Kat decided to save `nock` as a regular dependency ;)
496   ([@othiym23](https://github.com/othiym23))
497
498 ### v2.13.2 (2015-07-16):
499
500 #### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME!
501
502 Kat: Hooray! Full team again, and we've got a pretty small patch  release this
503 week, about everyone's favorite recurring issue: git URLs!
504
505 Rebecca: No Way! Again?
506
507 Kat: The ride never ends! In the meantime, there's some fun, exciting work in
508 the background to get orgs and teams out the door. Keep an eye out for news. :)
509
510 Rebecca: And make sure to keep an eye out for patches for the super-fresh
511 `npm@3`!
512
513 #### LET'S GIT INKY
514
515 Rebecca: So what's this about another git URL issue?
516
517 Kat: Welp, I apparently broke backwards-compatibility on what are actually
518 invalid `git+https` URLs! So I'm making it work, but we're gonna deprecate URLs
519 that look like `git+https://user@host:path/is/here`.
520
521 Rebecca: What should we use instead?!
522
523 Kat: Just do me a solid and use `git+ssh://user@host:path/here` or
524 `git+https://user@host/absolute/https/path` instead!
525
526 * [`769f06e`](https://github.com/npm/npm/commit/769f06e5455d7a9fc738379de2e05868df0dab6f)
527   Updated tests for `getResolved` so the URLs are run through
528   `normalize-git-url`.
529   ([@zkat](https://github.com/zkat))
530 * [`edbae68`](https://github.com/npm/npm/commit/edbae685bf48971e878ced373d6825fc1891ee47)
531   [#8881](https://github.com/npm/npm/issues/8881) Added tests to verify that `git+https:` URLs are handled compatibly.
532   ([@zkat](https://github.com/zkat))
533
534 #### NEWS FLASH! DOCUMENTATION IMPROVEMENTS!
535
536 * [`bad4e014`](https://github.com/npm/npm/commit/bad4e0143cc95754a682f1da543b2b4e196e924b)
537   [#8924](https://github.com/npm/npm/pull/8924) Make sure documented default
538   values in `lib/cache.js` properly correspond to current code.
539   ([@watilde](https://github.com/watilde))
540 * [`e7a11fd`](https://github.com/npm/npm/commit/e7a11fdf70e333cdfe3dac94a1a30907adb76d59)
541   [#8036](https://github.com/npm/npm/issues/8036) Clarify the documentation for
542   `.npmrc` to clarify that it's not read at the project level when doing global
543   installs.
544   ([@espadrine](https://github.com/espadrine))
545
546 #### STAY FRESH~
547
548 Kat: That's it for npm core changes!
549
550 Rebecca: Great! Let's look at the fresh new dependencies, then!
551
552 Kat: See you all next week!
553
554 Both: Stay Freeesh~
555
556 (some cat form of Forrest can be seen snoring in the corner)
557
558 * [`bfa1f45`](https://github.com/npm/npm/bfa1f45ee760d05039557d2245b7e3df9fda8def)
559   `normalize-git-url@3.0.1`: Fixes url normalization such that `git+https:`
560   accepts scp syntax, but get converted into absolute-path `https:` URLs. Also
561   fixes scp syntax so you can have absolute paths after the `:`
562   (`git@myhost.org:/some/absolute/place.git`)
563   ([@zkat](https://github.com/zkat))
564 * [`6f757d2`](https://github.com/npm/npm/6f757d22b53f91da0bebec6b5d16c1f4dbe130b4)
565   `glob@5.0.15`: Better handling of ENOTSUP
566   ([@isaacs](https://github.com/isaacs))
567 * [`0920819`](https://github.com/npm/npm/09208197fb8b0c6d5dbf6bd7f59970cf366de989)
568   `node-gyp@2.0.2`: Fixes an issue with long paths on Win32
569   ([@TooTallNate](https://github.com/TooTallNate))
570
571 ### v2.13.1 (2015-07-09):
572
573 #### KAUAI WAS NICE. I MISS IT.
574
575 But Forrest's still kinda on vacation, and not just mentally, because he's
576 hanging out with the fine meatbags at CascadiaFest. Enjoy this small bug
577 release.
578
579 #### MAKE OURSELVES HAPPY
580
581 * [`40981f2`](https://github.com/npm/npm/commit/40981f2e0c9c12bb003ccf188169afd1d201f5af)
582   [#8862](https://github.com/npm/npm/issues/8862) Make the lifecycle's safety
583   check work with scoped packages. ([@tcort](https://github.com/tcort))
584 * [`5125856`](https://github.com/npm/npm/commit/512585622481dbbda9a0306932468d59efaff658)
585   [#8855](https://github.com/npm/npm/issues/8855) Make dependency versions of
586   `"*"` match `"latest"` when all versions are prerelease.
587   ([@iarna](https://github.com/iarna))
588 * [`22fdc1d`](https://github.com/npm/npm/commit/22fdc1d52602ba7098af978c75fca8f7d1060141)
589   Visually emphasize the correct way to write lifecycle scripts.
590   ([@josh-egan](https://github.com/josh-egan))
591
592 #### MAKE TRAVIS HAPPY
593
594 * [`413c3ac`](https://github.com/npm/npm/commit/413c3ac2ab2437f3011c6ca0d1630109ec14e604)
595   Use npm's `2.x` branch for testing its `2.x` branch.
596   ([@iarna](https://github.com/iarna))
597 * [`7602f64`](https://github.com/npm/npm/commit/7602f64826f7a465d9f3a20bd87a376d992607e6)
598   Don't prompt for GnuPG passphrase in version lifecycle tests.
599   ([@othiym23](https://github.com/othiym23))
600
601 #### MAKE `npm outdated` HAPPY
602
603 * [`d338668`](https://github.com/npm/npm/commit/d338668601d1ebe5247a26237106e80ea8cd7f48)
604   [#8796](https://github.com/npm/npm/issues/8796) `fstream-npm@1.0.4`: When packing the
605   package tarball, npm no longer crashes for packages with certain combinations of
606   `.npmignore` entries, `.gitignore` entries, and lifecycle scripts.
607   ([@iarna](https://github.com/iarna))
608 * [`dbe7c9c`](https://github.com/npm/npm/commit/dbe7c9c74734be870d16dd61b9e7f746123011f6)
609   `nock@2.7.0`: Add matching based on query strings.
610   ([@othiym23](https://github.com/othiym23))
611
612 There are new versions of `strip-ansi` and `ansi-regex`, but npm only uses them
613 indirectly, so we pushed them down into their dependencies where they can get
614 updated at their own pace.
615
616 * [`06b6ca5`](https://github.com/npm/npm/commit/06b6ca5b5333025f10c8d901628859bd4678e027)
617   undeduplicate `ansi-regex` ([@othiym23](https://github.com/othiym23))
618 * [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9)
619   undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23))
620
621 ### v2.13.0 (2015-07-02):
622
623 #### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS!
624
625 Well, not _everything_. Just a couple of goodies, like the new `npm ping`
626 command, and the ability to add files to the commits created by `npm version`
627 with the new version hooks. There's also a couple of bugfixes in `npm` itself
628 and some of its dependencies. Here we go!
629
630 #### YES HELLO THIS IS NPM REGISTRY SORRY NO DOG HERE
631
632 Yes, that's right! We now have a dedicated `npm ping` command. It's super simple
633 and super easy. You ping. We tell you whether you pinged right by saying hello
634 right back. This should help out folks dealing with things like proxy issues or
635 other registry-access debugging issues. Give it a shot!
636
637 This addresses [#5750](https://github.com/npm/npm/issues/5750), and will help
638 with the `npm doctor` stuff described in
639 [#6756](https://github.com/npm/npm/issues/6756).
640
641 * [`f1f7a85`](https://github.com/npm/npm/commit/f1f7a85)
642   Add ping command to CLI
643   ([@michaelnisi](https://github.com/michaelnisi))
644 * [`8cec629`](https://github.com/npm/npm/commit/8cec629)
645   Add ping command to npm-registry-client
646   ([@michaelnisi](https://github.com/michaelnisi))
647 * [`0c0c92d`](https://github.com/npm/npm/0c0c92d)
648   Fixed ping command issues (added docs, tests, fixed minor bugs, etc)
649   ([@zkat](https://github.com/zkat))
650
651 #### I'VE WANTED THIS FOR `version` SINCE LIKE LITERALLY FOREVER AND A DAY
652
653 Seriously! This patch lets you add files to the `version` commit before it's
654 made, So you can add additional metadata files, more automated changes to
655 `package.json`, or even generate `CHANGELOG.md` automatically pre-commit if
656 you're into that sort of thing. I'm so happy this is there I can't even. Do you
657 have other fun usecases for this? Tell
658 [npmbot (@npmjs)](http://twitter.com/npmjs) about it!
659
660 * [`582f170`](https://github.com/npm/npm/commit/582f170)
661   [#8620](https://github.com/npm/npm/issues/8620) version: Allow scripts to add
662   files to the commit.
663   ([@jamestalmage](https://github.com/jamestalmage))
664
665 #### ALL YOUR FILE DESCRIPTORS ARE BELONG TO US
666
667 We've had problems in the past with things like `EMFILE` errors popping up when
668 trying to install packages with a bunch of dependencies. Isaac patched up
669 [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to handle this case
670 better, so we should be seeing fewer of those.
671
672 * [`022691a`](https://github.com/npm/npm/commit/022691a)
673   `graceful-fs@4.1.2`: Updated so we can monkey patch globally.
674   ([@isaacs](https://github.com/isaacs))
675 * [`c9fb0fd`](https://github.com/npm/npm/commit/c9fb0fd)
676   Globally monkey-patch graceful-fs. This should fix some errors when installing
677   packages with lots of dependencies.
678   ([@isaacs](https://github.com/isaacs))
679
680 #### READ THE FINE DOCS. THEY'VE IMPROVED
681
682 * [`5587d0d`](https://github.com/npm/npm/commit/5587d0d)
683   Nice clarification for `directories.bin`
684   ([@ujane](https://github.com/ujane))
685 * [`20673c7`](https://github.com/npm/npm/commit/20673c7)
686   Hey, Windows folks! Check out
687   [`nvm-windows`](https://github.com/coreybutler/nvm-windows)
688   ([@ArtskydJ](https://github.com/ArtskydJ))
689
690 #### MORE NUMBERS! MORE VALUE!
691
692 * [`5afa2d5`](https://github.com/npm/npm/commit/5afa2d5)
693   `validate-npm-package-name@2.2.2`: Documented package name rules in README
694   ([@zeusdeux](https://github.com/zeusdeux))
695 * [`021f4d9`](https://github.com/npm/npm/commit/021f4d9)
696   `rimraf@2.4.1`: [#74](https://github.com/isaacs/rimraf/issues/74) Use async
697   function for bin (to better handle Window's `EBUSY`)
698   ([@isaacs](https://github.com/isaacs))
699 * [`5223432`](https://github.com/npm/npm/commit/5223432)
700   `osenv@0.1.3`: Use `os.homedir()` polyfill for more reliable output. io.js
701   added the function and the polyfill does a better job than the prior solution.
702   ([@sindresorhus](https://github.com/sindresorhus))
703 * [`8ebbc90`](https://github.com/npm/npm/commit/8ebbc90)
704   `npm-cache-filename@1.0.2`: Make sure different git references get different
705   cache folders. This should prevent `foo/bar#v1.0` and `foo/bar#master` from
706   sharing the same cache folder.
707   ([@tomekwi](https://github.com/tomekwi))
708 * [`367b854`](https://github.com/npm/npm/commit/367b854)
709   `lru-cache@2.6.5`: Minor test/typo changes
710   ([@isaacs](https://github.com/isaacs))
711 * [`9fcae61`](https://github.com/npm/npm/commit/9fcae61)
712   `glob@5.0.13`: Tiny doc change + stop firing 'match' events for ignored items.
713   ([@isaacs](https://github.com/isaacs))
714
715 #### OH AND ONE MORE THING
716
717 * [`7827249`](https://github.com/npm/npm/commit/7827249)
718   `PeerDependencies` errors now include the package version.
719   ([@NickHeiner](https://github.com/NickHeiner))
720
721 ### v2.12.1 (2015-06-25):
722
723 #### HEY WHERE DID EVERYBODY GO
724
725 I keep [hearing some commotion](https://github.com/npm/npm/releases/tag/v3.0.0).
726 Is there something going on? Like, a party or something? Anyway, here's a small
727 release with at least two significant bug fixes, at least one of which some of
728 you have been waiting for for quite a while.
729
730 #### REMEMBER WHEN I SAID "REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?"?
731
732 `npm@2.12.0` has a change that introduces a fix for a permissions problem
733 whereby the `_locks` directory in the cache directory can up being owned by
734 root. The fix in 2.12.0 takes care of that problem, but introduces a new
735 problem for Windows users where npm tries to call `process.getuid()`, which
736 doesn't exist on Windows. It was easy enough to fix (but more or less
737 impossible to test, thanks to all the external dependencies involved with
738 permissions and platforms and whatnot), but as a result, Windows users might
739 want to skip `npm@2.12.0` and go straight to `npm@2.12.1`. Sorry about that!
740
741 * [`7e5da23`](https://github.com/npm/npm/commit/7e5da238ee869201fdb9027c27b79b0f76b440a8)
742   When using the new, "fixed" cache directory creator, be extra-careful to not
743   call `process.getuid()` on platforms that lack it.
744   ([@othiym23](https://github.com/othiym23))
745
746 #### WHEW! ALL DONE FIXING GIT FOREVER!
747
748 New npm CLI team hero [@zkat](https://github.com/zkat) has finally (FINALLY)
749 fixed the regression somebody (hi!) introduced a couple months ago whereby git
750 URLs of the format `git+ssh://user@githost.com:org/repo.git` suddenly stopped
751 working, and also started being saved (and cached) incorrectly. I am 100% sure
752 there are absolutely no more bugs in the git caching code at all ever. Mm hm.
753 Yep. Pretty sure. Maybe. Hmm... I hope.
754
755 *Sighs audibly.*
756
757 [Let us know](http://github.com/npm/npm/issues/new) if we broke something else
758 with this fix.
759
760 * [`94ca4a7`](https://github.com/npm/npm/commit/94ca4a711619ba8e40ce3d20bc42b13cdb7611b7)
761   [#8031](https://github.com/npm/npm/issues/8031) Even though
762   `git+ssh://user@githost.com:org/repo.git` isn't a URL, treat it like one for
763   the purposes of npm. ([@zkat](https://github.com/zkat))
764 * [`e7f56e5`](https://github.com/npm/npm/commit/e7f56e5a97fcf1c52d5c5bee71303b0126129815)
765   [#8031](https://github.com/npm/npm/issues/8031) `normalize-git-url@2.0.0`:
766   Handle git URLs (and URL-like remote refs) in a manner consistent with npm's
767   docs. ([@zkat](https://github.com/zkat))
768
769 #### YEP, THERE ARE STILL DEPENDENCY UPGRADES
770
771 * [`679bf47`](https://github.com/npm/npm/commit/679bf4745ac2cfbb01c9ce273e189807fd04fa33)
772   [#40](http://github.com/npm/read-installed/issues/40) `read-installed@4.0.1`:
773   Handle prerelease versions in top-level dependencies not in `package.json`
774   without marking those packages as invalid.
775   ([@benjamn](https://github.com/benjamn))
776 * [`3a67410`](https://github.com/npm/npm/commit/3a6741068c9119174c920496778aeee870ebdac0)
777   `tap@1.3.1` ([@isaacs](https://github.com/isaacs))
778 * [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a)
779   `nopt@3.0.3` ([@isaacs](https://github.com/isaacs))
780
781 ### v2.12.0 (2015-06-18):
782
783 #### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?
784
785 About [a million people](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+EACCES+_locks)
786 have filed issues related to having a tough time using npm after they've run
787 npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all
788 those permissions problems ages ago! Use this one weird trick and you'll never
789 have to deal with this again!"
790
791 Well, uh, if you run npm with root the first time you run npm on a machine, it
792 turns out that the directory npm uses to store lockfiles ends up being owned by
793 the wrong user (almost always root), and that can, well, it can cause problems
794 sometimes. By which I mean every time you run npm without being root it'll barf
795 with `EACCES` errors. Whoops!
796
797 This is an obnoxious regression, and to prevent it from recurring, we've made
798 it so that the cache, cached git remotes, and the lockfile directories are all
799 created and maintained using the same utilty module, which not only creates the
800 relevant paths with the correct permissions, but will fix the permissions on
801 those directories (if it can) when it notices that they're broken. An `npm
802 install` run as root ought to be sufficient to fix things up (and if that
803 doesn't work, first tell us about it, and then run `sudo chown -R $(whoami)
804 $HOME/.npm`)
805
806 Also, I apologize for inadvertently gaslighting any of you by claiming this bug
807 wasn't actually a bug. I do think we've got this permanently dealt with now,
808 but I'll be paying extra-close attention to permissions issues related to the
809 cache for a while.
810
811 * [`85d1a53`](https://github.com/npm/npm/commit/85d1a53d7b5e0fc04823187e522ae3711ede61fa)
812   Set permissions on lock directory to the owner of the process.
813   ([@othiym23](https://github.com/othiym23))
814
815 #### I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT
816
817 That's not literally true. We spent very little time discussing SPDX,
818 [@kemitchell](https://github.com/kemitchell) is a champ, and I had a lot of fun
819 playing drum & bass to a mostly empty Boogie Barn and only ended up with one
820 moderately severe cold for my pains. Another winner of a NodeConf! (I would
821 probably wear a SPDX T-shirt if somebody gave me one, though.)
822
823 A bunch of us did have a spirited discussion of the basics of open-source
824 intellectual property, and the convergence of me,
825 [@kemitchell](https://github.com/kemitchell), and
826 [@jandrieu](https://github.com/jandrieu) in one place allowed us to hammmer out
827 a small but significant issue that had been bedeviling early adopters of the
828 new SPDX expression syntax in `package.json` license fields: how to deal with
829 packages that are left without a license on purpose.
830
831 Refer to [the docs](https://github.com/npm/npm/blob/16a3dd545b10f8a2464e2037506ce39124739b41/doc/files/package.json.md#license)
832 for the specifics, but the short version is that instead of using
833 `LicenseRef-LICENSE` for proprietary licenses, you can now use either
834 `UNLICENSED` if you want to make it clear that you don't _want_ your software
835 to be licensed (and want npm to stop warning you about this), or `SEE LICENSE
836 IN <filename>` if there's a license with custom text you want to use. At some
837 point in the near term, we'll be updating npm to verify that the mentioned
838 file actually exists, but for now you're all on the honor system.
839
840 * [`4827fc7`](https://github.com/npm/npm/commit/4827fc784117c17f35dd9b51b21d1eff6094f661)
841   [#8557](https://github.com/npm/npm/issues/8557)
842   `normalize-package-data@2.2.1`: Allow `UNLICENSED` and `SEE LICENSE IN
843   <filename>` in "license" field of `package.json`.
844   ([@kemitchell](https://github.com/kemitchell))
845 * [`16a3dd5`](https://github.com/npm/npm/commit/16a3dd545b10f8a2464e2037506ce39124739b41)
846   [#8557](https://github.com/npm/npm/issues/8557) Document the new accepted
847   values for the "license" field.
848   ([@kemitchell](https://github.com/kemitchell))
849 * [`8155311`](https://github.com/npm/npm/commit/81553119350deaf199e79e38e35b52a5c8ad206c)
850   [#8557](https://github.com/npm/npm/issues/8557) `init-package-json@1.7.0`:
851   Support new "license" field values at init time.
852   ([@kemitchell](https://github.com/kemitchell))
853
854 #### SMALLISH BUG FIXES
855
856 * [`9d8cac9`](https://github.com/npm/npm/commit/9d8cac94a258db648a2b1069b1c8c6529c79d013)
857   [#8548](https://github.com/npm/npm/issues/8548) Remove extraneous newline
858   from `npm view` output, making it easier to use in shell scripts.
859   ([@eush77](https://github.com/eush77))
860 * [`765fd4b`](https://github.com/npm/npm/commit/765fd4bfca8ea3e2a4a399765b17eec40a3d893d)
861   [#8521](https://github.com/npm/npm/issues/8521) When checking for outdated
862   packages, or updating packages, raise an error when the registry is
863   unreachable instead of silently "succeeding".
864   ([@ryantemple](https://github.com/ryantemple))
865
866 #### SMALLERISH DOCUMENTATION TWEAKS
867
868 * [`5018335`](https://github.com/npm/npm/commit/5018335ce1754a9f771954ecbc1a93acde9b8c0a)
869   [#8365](https://github.com/npm/npm/issues/8365) Add details about which git
870   environment variables are whitelisted by npm.
871   ([@nmalaguti](https://github.com/nmalaguti))
872 * [`bed9edd`](https://github.com/npm/npm/commit/bed9edddfdcc6d22a80feab33b53e4ef9172ec72)
873   [#8554](https://github.com/npm/npm/issues/8554) Fix typo in version docs.
874   ([@rainyday](https://github.com/rainyday))
875
876 #### WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES
877
878 * [`7ce2f06`](https://github.com/npm/npm/commit/7ce2f06f6f34d469b1d2e248084d4f3fef10c05e)
879   `request@2.58.0`: Refactor tunneling logic, and use `extend` instead of
880   abusing `util._extend`. ([@simov](https://github.com/simov))
881 * [`e6c6195`](https://github.com/npm/npm/commit/e6c61954aad42e20eec49745615c7640b2026a6c)
882   `nock@2.6.0`: Refined interception behavior.
883   ([@pgte](https://github.com/pgte))
884 * [`9583cc3`](https://github.com/npm/npm/commit/9583cc3cb192c2fced006927cfba7cd37b588605)
885   `fstream-npm@1.0.3`: Ensure that `main` entry in `package.json` is always
886   included in the bundled package tarball.
887   ([@coderhaoxin](https://github.com/coderhaoxin))
888 * [`df89493`](https://github.com/npm/npm/commit/df894930f2716adac28740b29b2e863170919990)
889   `fstream@1.0.7` ([@isaacs](https://github.com/isaacs))
890 * [`9744049`](https://github.com/npm/npm/commit/974404934758124aa8ae5b54f7d5257c3bd6b588)
891   `dezalgo@1.0.3`: `dezalgo` should be usable in the browser, and can be now
892   that `asap` has been upgraded to be browserifiable.
893   ([@mvayngrib](https://github.com/mvayngrib))
894
895 ### v2.11.3 (2015-06-11):
896
897 This was a very quiet week. This release was done by
898 [@iarna](https://github.com/iarna), while the rest of the team hangs out at
899 NodeConf Adventure!
900
901 #### TESTS IN 0.8 FAIL LESS
902
903 * [`5b3b3c2`](https://github.com/npm/npm/commit/5b3b3c2)
904   [#8491](//github.com/npm/npm/pull/8491)
905   Updates a test to use only 0.8 compatible features
906   ([@watilde](https://github.com/watilde))
907
908 #### THE TREADMILL OF UPDATES NEVER CEASES
909
910 * [`9f439da`](https://github.com/npm/npm/commit/9f439da)
911   `spdx@0.4.1`: License range updates
912   ([@kemitchell](https://github.com/kemitchell))
913 * [`2dd055b`](https://github.com/npm/npm/commit/2dd055b)
914   `normalize-package-data@2.2.1`: Fixes a crashing bug when the package.json
915   `scripts` property is not an object.
916   ([@iarna](https://github.com/iarna))
917 * [`e02e85d`](https://github.com/npm/npm/commit/e02e85d)
918   `osenv@0.1.2`: Switches to using the `os-tmpdir` module instead of
919   `os.tmpdir()` for greate consistency in behavior between node versions.
920   ([@iarna](https://github.com/iarna))
921 * [`a6f0265`](https://github.com/npm/npm/commit/a6f0265)
922   `ini@1.3.4` ([@isaacs](https://github.com/isaacs))
923 * [`7395977`](https://github.com/npm/npm/commit/7395977)
924   `rimraf@2.4.0` ([@isaacs](https://github.com/isaacs))
925
926 ### v2.11.2 (2015-06-04):
927
928 Another small release this week, brought to you by the latest addition to the
929 CLI team, [@zkat](https://github.com/zkat) (Hi, all!)
930
931 Mostly small documentation tweaks and version updates. Oh! And `npm outdated`
932 is actually sorted now. Rejoice!
933
934 It's gonna be a while before we get another palindromic version number. Enjoy it
935 while it lasts. :3
936
937 #### QUALITY OF LIFE HAS NEVER BEEN BETTER
938
939 * [`31aada4`](https://github.com/npm/npm/commit/31aada4ccc369c0903ff7f233f464955d12c6fe2)
940   [#8401](https://github.com/npm/npm/issues/8401) `npm outdated` output is just
941   that much nicer to consume now, due to sorting by name.
942   ([@watilde](https://github.com/watilde))
943 * [`458a919`](https://github.com/npm/npm/commit/458a91925d8b20c5e672ba71a86745aad654abaf)
944   [#8469](https://github.com/npm/npm/pull/8469) Explicitly set `cwd` for
945   `preversion`, `version`, and `postversion` scripts. This makes the scripts
946   findable relative to the root dir.
947   ([@alexkwolfe](https://github.com/alexkwolfe))
948 * [`55d6d71`](https://github.com/npm/npm/commit/55d6d71562e979e745c9db88861cc39f99b9f3ec)
949   Ensure package name and version are included in display during `npm version`
950   lifecycle execution. Gets rid of those little `undefined`s in the console.
951   ([@othiym23](https://github.com/othiym23))
952
953 #### WORDS HAVE NEVER BEEN QUITE THIS READABLE
954
955 * [`3901e49`](https://github.com/npm/npm/commit/3901e4974c800e7f9fba4a5b2ff88da1126d5ef8)
956   [#8462](https://github.com/npm/npm/pull/8462) English apparently requires
957   correspondence between indefinite articles and attached nouns.
958   ([@Enet4](https://github.com/Enet4))
959 * [`5a744e4`](https://github.com/npm/npm/commit/5a744e4b143ef7b2f50c80a1d96fdae4204d452b)
960   [#8421](https://github.com/npm/npm/pull/8421) The effect of `npm prune`'s
961   `--production` flag and how to use it have been documented a bit better.
962   ([@foiseworth](https://github.com/foiseworth))
963 * [`eada625`](https://github.com/npm/npm/commit/eada625993485f0a2c5324b06f02bfa0a95ce4bc)
964   We've updated our `.mailmap` and `AUTHORS` files to make sure credit is given
965   where credit is due. ([@othiym23](https://github.com/othiym23))
966
967 #### VERSION NUMBERS HAVE NEVER BEEN BIGGER
968
969 * [`c929fd1`](https://github.com/npm/npm/commit/c929fd1d0604b5878ed05706447e078d3e41f5b3)
970   `readable-stream@1.1.13`: Manually deduped `v1.1.13` (streams3) to make
971   deduping more reliable on `npm@<3`. ([@othiym23](https://github.com/othiym23))
972 * [`a9b4b78`](https://github.com/npm/npm/commit/a9b4b78dcc85571fd1cdd737903f7f37a5e6a755)
973   `request@2.57.0`: Replace dependency on IncomingMessage's `.client` with
974   `.socket` as the former was deprecated in io.js 2.2.0.
975   ([@othiym23](https://github.com/othiym23))
976 * [`4b5e557`](https://github.com/npm/npm/commit/4b5e557a23cdefd521ad154111e3d4dcc81f1cdb)
977   `abbrev@1.0.7`: Better testing, with coverage.
978   ([@othiym23](https://github.com/othiym23))
979 * [`561affe`](https://github.com/npm/npm/commit/561affee21df9bbea5a47298f2452f533be8f359)
980   `semver@4.3.6`: .npmignore added for less cruft, and better testing, with coverage.
981   ([@othiym23](https://github.com/othiym23))
982 * [`60aef3c`](https://github.com/npm/npm/commit/60aef3cf5d84d757752db3eb8ede2cb385469e7b)
983   `graceful-fs@3.0.8`: io.js fixes.
984   ([@zkat](https://github.com/zkat))
985 * [`f8bd453`](https://github.com/npm/npm/commit/f8bd453b1a1c46ba7666cb166595e8a011eae443)
986   `config-chain@1.1.9`: Added MIT license to package.json
987   ([@zkat](https://github.com/zkat))
988
989 ### v2.11.1 (2015-05-28):
990
991 This release brought to you from poolside at the Omni Amelia Island Resort and
992 JSConf 2015, which is why it's so tiny.
993
994 #### CONFERENCE WIFI CAN'T STOP THESE BUG FIXES
995
996 * [`cf109a6`](https://github.com/npm/npm/commit/cf109a682f38a059a994da953d5c1b4aaece5e2f)
997   [#8381](https://github.com/npm/npm/issues/8381) Documented a subtle gotcha
998   with `.npmrc`, which is that it needs to have its permissions set such that
999   only the owner can read or write the file.
1000   ([@colakong](https://github.com/colakong))
1001 * [`180da67`](https://github.com/npm/npm/commit/180da67c9fa53103d625e2f031626c2453c7ebcd)
1002   [#8365](https://github.com/npm/npm/issues/8365) Git 2.3 adds support for
1003   `GIT_SSH_COMMAND`, which allows you to pass an explicit git command (with,
1004   for example, a specific identity passed in on the command line).
1005     ([@nmalaguti](https://github.com/nmalaguti))
1006
1007 #### MY (VIRGIN) PINA COLADA IS GETTING LOW, BETTER UPGRADE THESE DEPENDENCIES
1008
1009 * [`b72de41`](https://github.com/npm/npm/commit/b72de41c5cc9f0c46d3fa8f062c75bd273641474)
1010   `node-gyp@2.0.0`: Use a newer version of `gyp`, and generally improve support
1011   for Visual Studios and Windows.
1012     ([@TooTallNate](https://github.com/TooTallNate))
1013 * [`8edbe21`](https://github.com/npm/npm/commit/8edbe210af41e8f248f5bb92c72de92f54fda3b1)
1014   `node-gyp@2.0.1`: Don't crash when Python's version doesn't parse as valid
1015   semver. ([@TooTallNate](https://github.com/TooTallNate))
1016 * [`ba0e0a8`](https://github.com/npm/npm/commit/ba0e0a845a4f29717aba566b416a27d1a22f5d08)
1017   `glob@5.0.10`: Add coverage to tests. ([@isaacs](https://github.com/isaacs))
1018 * [`7333701`](https://github.com/npm/npm/commit/7333701b5d4f01673f37d64992c63c4e15864d6d)
1019   `request@2.56.0`: Bug fixes and dependency upgrades.
1020   ([@simov](https://github.com/simov))
1021
1022 ### v2.11.0 (2015-05-21):
1023
1024 For the first time in a very long time, we've added new events to the life
1025 cycle used by `npm run-script`. Since running `npm version (major|minor|patch)`
1026 is typically the last thing many developers do before publishing their updated
1027 packages, it makes sense to add life cycle hooks to run tests or otherwise
1028 preflight the package before doing a full publish. Thanks, as always, to the
1029 indefatigable [@watilde](https://github.com/watilde) for yet another great
1030 usability improvement for npm!
1031
1032 #### FEATURELETS
1033
1034 * [`b07f7c7`](https://github.com/npm/npm/commit/b07f7c7c1e5021730b3c320f1b3a46e70f8a21ff)
1035   [#7906](https://github.com/npm/npm/issues/7906)
1036   Add new [`scripts`](https://github.com/npm/npm/blob/master/doc/misc/npm-scripts.md) to
1037   allow you to run scripts before and after
1038   the [`npm version`](https://github.com/npm/npm/blob/master/doc/cli/npm-version.md)
1039   command has run. This makes it easy to, for instance, require that your
1040   test suite passes before bumping the version by just adding `"preversion":
1041   "npm test"` to the scripts section of your `package.json`.
1042   ([@watilde](https://github.com/watilde))
1043 * [`8a46136`](https://github.com/npm/npm/commit/8a46136f42e416cbadb533bcf89d73d681ed421d)
1044   [#8185](https://github.com/npm/npm/issues/8185)
1045   When we get a "not found" error from the registry, we'll now check to see
1046   if the package name you specified is invalid and if so, give you a better
1047   error message. ([@thefourtheye](https://github.com/thefourtheye))
1048
1049 #### BUG FIXES
1050
1051 * [`9bcf573`](https://github.com/npm/npm/commit/9bcf5730bd0316f210dafea898afe9103849cea9)
1052   [#8324](https://github.com/npm/npm/pull/8324) On Windows, when you've configured a
1053   custom `node-gyp`, run it with node itself instead of using the default open action (which
1054   is almost never what you want). ([@bangbang93](https://github.com/bangbang93))
1055 * [`1da9b04`](https://github.com/npm/npm/commit/1da9b0411d3416c7fca17d08cbbcfca7ae86e92d)
1056   [#7195](https://github.com/npm/npm/issues/7195)
1057   [#7260](https://github.com/npm/npm/issues/7260) `npm-registry-client@6.4.0`:
1058   (Re-)allow publication of existing mixed-case packages (part 1).
1059   ([@smikes](https://github.com/smikes))
1060 * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646)
1061   [#7195](https://github.com/npm/npm/issues/7195)
1062   [#7260](https://github.com/npm/npm/issues/7260)
1063   `normalize-package-data@2.2.0`: (Re-)allow publication of existing mixed-case
1064   packages (part 2). ([@smikes](https://github.com/smikes))
1065
1066 #### DOCUMENTATION IMPROVEMENTS
1067
1068 * [`f62ee05`](https://github.com/npm/npm/commit/f62ee05333b141539a8e851c620dd2e82ff06860)
1069   [#8314](https://github.com/npm/npm/issues/8314) Update the README to warn
1070   folks away from using the CLI's internal API. For the love of glob, just use a
1071   child process to run the CLI! ([@claycarpenter](https://github.com/claycarpenter))
1072 * [`1093921`](https://github.com/npm/npm/commit/1093921c04db41ab46db24a170a634a4b2acd8d9)
1073   [#8279](https://github.com/npm/npm/pull/8279)
1074   Update the documentation to note that, yes, you can publish scoped packages to the
1075   public registry now! ([@mantoni](https://github.com/mantoni))
1076 * [`f87cde5`](https://github.com/npm/npm/commit/f87cde5234a760d3e515ffdaacaed6f5b71dbf44)
1077   [#8292](https://github.com/npm/npm/pull/8292)
1078   Fix typo in an example and grammar in the description in
1079   the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md).
1080   ([@vshih](https://github.com/vshih))
1081 * [`d3526ce`](https://github.com/npm/npm/commit/d3526ceb09a0c29fdb7d4124536ae09057d033e7)
1082   Improve the formatting in
1083   the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md).
1084   ([@othiym23](https://github.com/othiym23))
1085 * [`19fe6d2`](https://github.com/npm/npm/commit/19fe6d20883e28956ff916fe4dae42d73ee6195b)
1086   [#8311](https://github.com/npm/npm/pull/8311)
1087   Update [README.md](https://github.com/npm/npm#readme) to use syntax highlighting in
1088   its code samples and bits of shell scripts. ([@SimenB](https://github.com/SimenB))
1089
1090 #### DEPENDENCY UPDATES! ALWAYS AND FOREVER!
1091
1092 * [`fc52160`](https://github.com/npm/npm/commit/fc52160d0223226fffe4166f42fdfd3b899b3c1e)
1093   [#4700](https://github.com/npm/npm/issues/4700) [#5044](https://github.com/npm/npm/issues/5044)
1094   `init-package-json@1.6.0`: Make entering an invalid version while running `npm init` give
1095   you an immediate error and prompt you to correct it. ([@watilde](https://github.com/watilde))
1096 * [`738853e`](https://github.com/npm/npm/commit/738853eb1f55636476a2a410c2c04732eec9d51e)
1097   [#7763](https://github.com/npm/npm/issues/7763) `fs-write-stream-atomic@1.0.3`: Fix a bug
1098   where errors would not propagate, making error messages unhelpful.
1099   ([@iarna](https://github.com/iarna))
1100 * [`6d74a2d`](https://github.com/npm/npm/commit/6d74a2d2ac7f92750cf6a2cfafae1af23b569098)
1101   `npm-package-arg@4.0.1`: Fix tests on windows ([@Bacra](https://github.com)) and with
1102   more recent `hosted-git-info`. ([@iarna](https://github.com/iarna))
1103 * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd)
1104   `hosted-git-info@2.1.4`: Correct spelling in its documentation.
1105   ([@iarna](https://github.com/iarna))
1106 * [`d7956ca`](https://github.com/npm/npm/commit/d7956ca17c057d5383ff0d3fc5cf6ac2940b034d)
1107   `glob@5.0.7`: Fix a bug where unusual error conditions could make
1108   further use of the module fail. ([@isaacs](https://github.com/isaacs))
1109 * [`44f7d74`](https://github.com/npm/npm/commit/44f7d74c5d3181d37da7ea7949c86b344153f8d9)
1110   `tap@1.1.0`: Update to the most recent tap to get a whole host of bug
1111   fixes and integration with [coveralls](https://coveralls.io/).
1112   ([@isaacs](https://github.com/isaacs))
1113 * [`c21e8a8`](https://github.com/npm/npm/commit/c21e8a8d94bcf0ad79dc583ddc53f8366d4813b3)
1114   `nock@2.2.0` ([@othiym23](https://github.com/othiym23))
1115
1116 #### LICENSE FILES FOR THE LICENSE GOD
1117
1118 * Add missing ISC license file to package ([@kasicka](https://github.com/kasicka)):
1119     * [`aa9908c`](https://github.com/npm/npm/commit/aa9908c20017729673b9d410b77f9a16b7aae8a4) `realize-package-specifier@3.0.1`
1120     * [`23a3b1a`](https://github.com/npm/npm/commit/23a3b1a726b9176c70ce0ccf3cd9d25c54429bdf) `fs-vacuum@1.2.6`
1121     * [`8e04bba`](https://github.com/npm/npm/commit/8e04bba830d4353d84751d21803cd127c96153a7) `dezalgo@1.0.2`
1122     * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) `hosted-git-info@2.1.4`
1123     * [`6a54917`](https://github.com/npm/npm/commit/6a54917fbd4df995495a95d4b548defd44b77c93) `write-file-atomic@1.1.2`
1124     * [`971f92c`](https://github.com/npm/npm/commit/971f92c4a4e5514217d1e4db45d1ccf71a60ff19) `async-some@1.0.2`
1125     * [`67b50b7`](https://github.com/npm/npm/commit/67b50b7667a42bb3340a660eb2e617e1a554d2d4) `normalize-git-url@1.0.1`
1126
1127 #### SPDX LICENSE UPDATES
1128
1129 * Switch license to
1130   [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) from
1131   plain "BSD" ([@isaacs](https://github.com/isaacs)):
1132     * [`efdb733`](https://github.com/npm/npm/commit/efdb73332eeedcad4c609796929070b62abb37ab) `npm-user-validate@0.1.2`
1133     * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) `normalize-package-data@2.2.0`
1134 * Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from
1135   [BSD](http://spdx.org/licenses/BSD-2-Clause.html#licenseText)
1136   ([@isaacs](https://github.com/isaacs)):
1137     * [`c300956`](https://github.com/npm/npm/commit/c3009565a964f0ead4ac4ab234b1a458e2365f17) `block-stream@0.0.8`
1138     * [`1de1253`](https://github.com/npm/npm/commit/1de125355765fecd31e682ed0ff9d2edbeac0bb0) `lockfile@1.0.1`
1139     * [`0d5698a`](https://github.com/npm/npm/commit/0d5698ab132e376c7aec93ae357c274932116220) `osenv@0.1.1`
1140     * [`2e84921`](https://github.com/npm/npm/commit/2e84921474e1ffb18de9fce4616e73171fa8046d) `abbrev@1.0.6`
1141     * [`872fac9`](https://github.com/npm/npm/commit/872fac9d10c11607e4d0348c08a683b84e64d30b) `chmodr@0.1.1`
1142     * [`01eb7f6`](https://github.com/npm/npm/commit/01eb7f60acba584346ad8aae846657899f3b6887) `chownr@0.0.2`
1143     * [`294336f`](https://github.com/npm/npm/commit/294336f0f31c7b9fe31a50075ed750db6db134d1) `read@1.0.6`
1144     * [`ebdf6a1`](https://github.com/npm/npm/commit/ebdf6a14d17962cdb7128402c53b452f91d44ca7) `graceful-fs@3.0.7`
1145 * Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from
1146   [MIT](http://spdx.org/licenses/MIT.html#licenseText)
1147   ([@isaacs](https://github.com/isaacs)):
1148     * [`e5d237f`](https://github.com/npm/npm/commit/e5d237fc0f436dd2a89437ebf8a9632a2e35ccbe) `nopt@3.0.2`
1149     * [`79fef14`](https://github.com/npm/npm/commit/79fef1421b78f044980f0d1bf0e97039b6992710) `rimraf@2.3.4`
1150     * [`22527da`](https://github.com/npm/npm/commit/22527da4816e7c2746cdc0317c5fb4a85152d554) `minimatch@2.0.8`
1151     * [`882ac87`](https://github.com/npm/npm/commit/882ac87a6c4123ca985d7ad4394ea5085e5b0ef5) `lru-cache@2.6.4`
1152     * [`9d9d015`](https://github.com/npm/npm/commit/9d9d015a2e972f68664dda54fbb204db28b21ede) `npmlog@1.2.1`
1153
1154 ### v2.10.1 (2015-05-14):
1155
1156 #### BUG FIXES & DOCUMENTATION TWEAKS
1157
1158 * [`dc77520`](https://github.com/npm/npm/commit/dc7752013ffce13a3d3f13e518a0052c22fc1158)
1159   When getting back a 404 from a request to a private registry that uses a
1160   registry path that extends past the root
1161   (`http://registry.enterprise.co/path/to/registry`), display the name of the
1162   nonexistent package, rather than the first element in the registry API path.
1163   Sorry, Artifactory users! ([@hayes](https://github.com/hayes))
1164 * [`f70dea9`](https://github.com/npm/npm/commit/f70dea9b4766f6eaa55012c3e8087e9cb04fd4ce)
1165   Make clearer that `--registry` can be used on a per-publish basis to push a
1166   package to a non-default registry. ([@mischkl](https://github.com/mischkl))
1167 * [`a3e26f5`](https://github.com/npm/npm/commit/a3e26f5b4465991a941a325468ab7725670d2a94)
1168   Did you know that GitHub shortcuts can have commit-ishes included
1169   (`org/repo#branch`)? They can! ([@iarna](https://github.com/iarna))
1170 * [`0e2c091`](https://github.com/npm/npm/commit/0e2c091a539b61fdc60423b6bbaaf30c24e4b1b8)
1171   Some errors from `readPackage` were being swallowed, potentially leading to
1172   invalid package trees on disk. ([@smikes](https://github.com/smikes))
1173
1174 #### DEPENDENCY UPDATES! STILL! MORE! AGAIN!
1175
1176 * [`0b901ad`](https://github.com/npm/npm/commit/0b901ad0811d84dda6ca0755a9adc8d47825edd0)
1177   `lru-cache@2.6.3`: Removed some cruft from the published package.
1178   ([@isaacs](https://github.com/isaacs))
1179 * [`d713e0b`](https://github.com/npm/npm/commit/d713e0b14930c563e3fdb6ac6323bae2a8924652)
1180   `mkdirp@0.5.1`: Made compliant with `standard`, dropped support for Node 0.6,
1181   added (Travis) support for Node 0.12 and io.js.
1182   ([@isaacs](https://github.com/isaacs))
1183 * [`a2d6578`](https://github.com/npm/npm/commit/a2d6578b6554c5c9d48fe2006751759f4da57520)
1184   `glob@1.0.3`: Updated to use `tap@1`. ([@isaacs](https://github.com/isaacs))
1185 * [`64cd1a5`](https://github.com/npm/npm/commit/64cd1a570aaa5f24ccba190948ec9456297c97f5)
1186   `fstream@ 1.0.6`: Made compliant with [`standard`](http://npm.im/standard)
1187   (done by [@othiym23](https://github.com/othiym23), and then debugged and
1188   fixed by [@iarna](https://github.com/iarna)), and license changed to ISC.
1189   ([@othiym23](https://github.com/othiym23) /
1190   [@iarna](https://github.com/iarna))
1191 * [`b527a7c`](https://github.com/npm/npm/commit/b527a7c2ba3c4002f443dd2c536ff4ff41a38b86)
1192   `which@1.1.1`: Callers can pass in their own `PATH` instead of relying on
1193   `process.env`. ([@isaacs](https://github.com/isaacs))
1194
1195 ### v2.10.0 (2015-05-8):
1196
1197 #### THE IMPLICATIONS ARE MORE PROFOUND THAN THEY APPEAR
1198
1199 If you've done much development in The EnterpriseĀ®ā„¢, you know that keeping
1200 track of software licenses is far more important than one might expect / hope /
1201 fear. Tracking licenses is a hassle, and while many (if not most) of us have
1202 (reluctantly) gotten around to setting a license to use by default with all our
1203 new projects (even if it's just WTFPL), that's about as far as most of us think
1204 about it. In big enterprise shops, ensuring that projects don't inadvertently
1205 use software with unacceptably encumbered licenses is serious business, and
1206 developers spend a surprising (and appalling) amount of time ensuring that
1207 licensing is covered by writing automated checkers and other license auditing
1208 tools.
1209
1210 The Linux Foundation has been working on a machine-parseable syntax for license
1211 expressions in the form of [SPDX](https://spdx.org/), an appropriately
1212 enterprisey acronym. IP attorney and JavaScript culture hero [Kyle
1213 Mitchell](http://kemitchell.com/) has put a considerable amount of effort into
1214 bringing SPDX to JavaScript and Node. He's written
1215 [`spdx.js`](https://github.com/kemitchell/spdx.js), a JavaScript SPDX
1216 expression parser, and has integrated it into npm in a few different ways.
1217
1218 For you as a user of npm, this means:
1219
1220 * npm now has proper support for dual licensing in `package.json`, due to
1221   SPDX's compound expression syntax. Run `npm help package.json` for details.
1222 * npm will warn you if the `package.json` for your project is either missing a
1223   `"license"` field, or if the value of that field isn't a valid SPDX
1224   expression (pro tip: `"BSD"` becomes `"BSD-2-Clause"` in SPDX (unless you
1225   really want one of its variants); `"MIT"` and `"ISC"` are fine as-is; the
1226   [full list](https://github.com/shinnn/spdx-license-ids/blob/master/spdx-license-ids.json)
1227   is its own package).
1228 * `npm init` now demands that you use a valid SPDX expression when using it
1229   interactively (pro tip: I mostly use `npm init -y`, having previously run
1230   `npm config set init.license=MIT` / `npm config set init.author.email=foo` /
1231   `npm config set init.author.name=me`).
1232 * The documentation for `package.json` has been updated to tell you how to use
1233   the `"license"` field properly with SPDX.
1234
1235 In general, this shouldn't be a big deal for anybody other than people trying
1236 to run their own automated license validators, but in the long run, if
1237 everybody switches to this format, many people's lives will be made much
1238 simpler. I think this is an important improvement for npm and am very thankful
1239 to Kyle for taking the lead on this. Also, even if you think all of this is
1240 completely stupid, just [choose a license](http://en.wikipedia.org/wiki/License-free_software)
1241 anyway. Future you will thank past you someday, unless you are
1242 [djb](http://cr.yp.to/), in which case you are djb, and more power to you.
1243
1244 * [`8669f7d`](https://github.com/npm/npm/commit/8669f7d88c472ccdd60e140106ac43cca636a648)
1245   [#8179](https://github.com/npm/npm/issues/8179) Document how to use SPDX in
1246   `license` stanzas in `package.json`, including how to migrate from old busted
1247   license declaration arrays to fancy new compound-license clauses.
1248   ([@kemitchell](https://github.com/kemitchell))
1249 * [`98ad98c`](https://github.com/npm/npm/commit/98ad98cb11f3d3ba29a488ef1ab050b066d9c7f6)
1250   [#8197](https://github.com/npm/npm/issues/8197) `init-package-json@1.5.0`
1251   Ensure that packages bootstrapped with `npm init` use an SPDX-compliant
1252   license expression. ([@kemitchell](https://github.com/kemitchell))
1253 * [`2ad3905`](https://github.com/npm/npm/commit/2ad3905e9139b0be2b22accf707b814469de813e)
1254   [#8197](https://github.com/npm/npm/issues/8197)
1255   `normalize-package-data@2.1.0`: Warn when a package is missing a license
1256   declaration, or using a license expression that isn't valid SPDX.
1257   ([@kemitchell](https://github.com/kemitchell))
1258 * [`127bb73`](https://github.com/npm/npm/commit/127bb73ccccc59a1267851c702d8ebd3f3a97e81)
1259   [#8197](https://github.com/npm/npm/issues/8197) `tar@2.1.1`: Switch from
1260   `BSD` to `ISC` for license, where the latter is valid SPDX.
1261   ([@othiym23](https://github.com/othiym23))
1262 * [`e9a933a`](https://github.com/npm/npm/commit/e9a933a9148180d9d799f99f4154f5110ff2cace)
1263   [#8197](https://github.com/npm/npm/issues/8197) `once@1.3.2`: Switch from
1264   `BSD` to `ISC` for license, where the latter is valid SPDX.
1265   ([@othiym23](https://github.com/othiym23))
1266 * [`412401f`](https://github.com/npm/npm/commit/412401fb6a19b18f3e02d97a24d4dafed650c186)
1267   [#8197](https://github.com/npm/npm/issues/8197) `semver@4.3.4`: Switch from
1268   `BSD` to `ISC` for license, where the latter is valid SPDX.
1269   ([@othiym23](https://github.com/othiym23))
1270
1271 As a corollary to the previous changes, I've put some work into making `npm
1272 install` spew out fewer pointless warnings about missing values in transitive
1273 dependencies. From now on, npm will only warn you about missing READMEs,
1274 license fields, and the like for top-level projects (including packages you
1275 directly install into your application, but we may relax that eventually).
1276
1277 Practically _nobody_ liked having those warnings displayed for child
1278 dependencies, for the simple reason that there was very little that anybody
1279 could _do_ about those warnings, unless they happened to be the maintainers of
1280 those dependencies themselves. Since many, many projects don't have
1281 SPDX-compliant licenses, the number of warnings reached a level where they ran
1282 the risk of turning into a block of visual noise that developers (read: me, and
1283 probably you) would ignore forever.
1284
1285 So I fixed it. If you still want to see the messages about child dependencies,
1286 they're still there, but have been pushed down a logging level to `info`. You
1287 can display them by running `npm install -d` or `npm install --loglevel=info`.
1288
1289 * [`eb18245`](https://github.com/npm/npm/commit/eb18245f55fb4cd62a36867744bcd1b7be0a33e2)
1290   Only warn on normalization errors for top-level dependencies. Transitive
1291   dependency validation warnings are logged at `info` level.
1292   ([@othiym23](https://github.com/othiym23))
1293
1294 #### BUG FIXES
1295
1296 * [`e40e809`](https://github.com/npm/npm/commit/e40e8095d2bc9fa4eb8f01aa22067e0068fa8a54)
1297   `tap@1.0.1`: TAP: The Next Generation. Fix up many tests to they work
1298   properly with the new major version of `node-tap`. Look at all the colors!
1299   ([@isaacs](https://github.com/isaacs))
1300 * [`f9314e9`](https://github.com/npm/npm/commit/f9314e97d26532c0ef2b03e98f3ed300b7cd5026)
1301   `nock@1.9.0`: Minor tweaks and bug fixes. ([@pgte](https://github.com/pgte))
1302 * [`45c2b1a`](https://github.com/npm/npm/commit/45c2b1aaa051733fa352074994ae6e569fd51e8b)
1303   [#8187](https://github.com/npm/npm/issues/8187) `npm ls` wasn't properly
1304   recognizing dependencies installed from GitHub repositories as git
1305   dependencies, and so wasn't displaying them as such.
1306   ([@zornme](https://github.com/zornme))
1307 * [`1ab57c3`](https://github.com/npm/npm/commit/1ab57c38116c0403965c92bf60121f0f251433e4)
1308   In some cases, `npm help` was using something that looked like a regular
1309   expression where a glob pattern should be used, and vice versa.
1310   ([@isaacs](https://github.com/isaacs))
1311
1312 ### v2.9.1 (2015-04-30):
1313
1314 #### WOW! MORE GIT FIXES! YOU LOVE THOSE!
1315
1316 The first item below is actually a pretty big deal, as it fixes (with a
1317 one-word change and a much, much longer test case (thanks again,
1318 [@iarna](https://github.com/iarna))) a regression that's been around for months
1319 now. If you're depending on multiple branches of a single git dependency in a
1320 single project, you probably want to check out `npm@2.9.1` and verify that
1321 things (again?) work correctly in your project.
1322
1323 * [`178a6ad`](https://github.com/npm/npm/commit/178a6ad540215820d16217465a5f220d8c95a313)
1324   [#7202](https://github.com/npm/npm/issues/7202) When caching git
1325   dependencies, do so by the whole URL, including the branch name, so that if a
1326   single application depends on multiple branches from the same repository (in
1327   practice, multiple version tags), every install is of the correct version,
1328   instead of reusing whichever branch the caching process happened to check out
1329   first.  ([@iarna](https://github.com/iarna))
1330 * [`63b79cc`](https://github.com/npm/npm/commit/63b79ccde092a9cb3b1f34abe43e1d2ba69c0dbf)
1331   [#8084](https://github.com/npm/npm/issues/8084) Ensure that Bitbucket,
1332   GitHub, and Gitlab dependencies are installed the same way as non-hosted git
1333   dependencies, fixing `npm install --link`.
1334   ([@laiso](https://github.com/laiso))
1335
1336 #### DOCUMENTATION FIXES AND TWEAKS
1337
1338 These changes may seem simple and small (except Lin's fix to the package name
1339 restrictions, which was more an egregious oversight on our part), but cleaner
1340 documentation makes npm significantly more pleasant to use. I really appreciate
1341 all the typo fixes, clarifications, and formatting tweaks people send us, and
1342 am delighted that we get so many of these pull requests. Thanks, everybody!
1343
1344 * [`ca478dc`](https://github.com/npm/npm/commit/ca478dcaa29b8f07cd6fe515a3c4518166819291)
1345   [#8137](https://github.com/npm/npm/issues/8137) Somehow, we had failed to
1346   clearly document the full restrictions on package names.
1347   [@linclark](https://github.com/linclark) has now fixed that, although we will
1348   take with us to our graves the reasons why the maximum package name length is 214
1349   characters (well, OK, it was that that was the longest name in the registry
1350   when we decided to put a cap on the name length).
1351   ([@linclark](https://github.com/linclark))
1352 * [`b574076`](https://github.com/npm/npm/commit/b5740767c320c1eff3576a8d63952534a0fbb936)
1353   [#8079](https://github.com/npm/npm/issues/8079) Make the `npm shrinkwrap`
1354   documentation use code formatting for examples consistently. It would be
1355   great to do this for more commands HINT HINT.
1356   ([@RichardLitt](https://github.com/RichardLitt))
1357 * [`1ff636e`](https://github.com/npm/npm/commit/1ff636e2db3852a53e38c866fed7eafdacd307fc)
1358   [#8105](https://github.com/npm/npm/issues/8105) Document that the global
1359   `npmrc` goes in `$PREFIX/etc/npmrc`, instead of `$PREFIX/npmrc`.
1360   ([@anttti](https://github.com/anttti))
1361 * [`c3f2f7c`](https://github.com/npm/npm/commit/c3f2f7c299342e1c1eccc55a976a63c607f51621)
1362   [#8127](https://github.com/npm/npm/issues/8127) Document how to use `npm run
1363   build` directly (hint: it's different from `npm build`!).
1364   ([@mikemaccana](https://github.com/mikemaccana))
1365 * [`873e467`](https://github.com/npm/npm/commit/873e46757e1986761b15353f94580a071adcb383)
1366   [#8069](https://github.com/npm/npm/issues/8069) Take the old, dead npm
1367   mailing list address out of `package.json`. It seems that people don't have
1368   much trouble figuring out how to report errors to npm.
1369   ([@robertkowalski](https://github.com/robertkowalski))
1370
1371 #### ENROBUSTIFICATIONMENT
1372
1373 * [`5abfc9c`](https://github.com/npm/npm/commit/5abfc9c9017da714e47a3aece750836b4f9af6a9)
1374   [#7973](https://github.com/npm/npm/issues/7973) `npm run-script` completion
1375   will only suggest run scripts, instead of including dependencies. If for some
1376   reason you still wanted it to suggest dependencies, let us know.
1377   ([@mantoni](https://github.com/mantoni))
1378 * [`4b564f0`](https://github.com/npm/npm/commit/4b564f0ce979dc74c09604f4d46fd25a2ee63804)
1379   [#8081](https://github.com/npm/npm/issues/8081) Use `osenv` to parse the
1380   environment's `PATH` in a platform-neutral way.
1381   ([@watilde](https://github.com/watilde))
1382 * [`a4b6238`](https://github.com/npm/npm/commit/a4b62387b41848818973eeed056fd5c6570274f3)
1383   [#8094](https://github.com/npm/npm/issues/8094) When we refactored the
1384   configuration code to split out checking for IPv4 local addresses, we
1385   inadvertently completely broke it by failing to return the values. In
1386   addition, just the call to `os.getInterfaces()` could throw on systems where
1387   querying the network configuration requires elevated privileges (e.g. Amazon
1388   Lambda). Add the return, and trap errors so they don't cause npm to explode.
1389   Thanks to [@mhart](https://github.com/mhart) for bringing this to our
1390   attention! ([@othiym23](https://github.com/othiym23))
1391
1392 #### DEPENDENCY UPDATES WAIT FOR NO SOPHONT
1393
1394 * [`000cd8b`](https://github.com/npm/npm/commit/000cd8b52104942ac3404f0ad0651d82f573da37)
1395   `rimraf@2.3.3`: More informative assertions on argument validation failure.
1396   ([@isaacs](https://github.com/isaacs))
1397 * [`530a2e3`](https://github.com/npm/npm/commit/530a2e369128270f3e098f0e9be061533003b0eb)
1398   `lru-cache@2.6.2`: Revert to old key access-time behavior, as it was correct
1399   all along. ([@isaacs](https://github.com/isaacs))
1400 * [`d88958c`](https://github.com/npm/npm/commit/d88958ca02ce81b027b9919aec539d0145875a59)
1401   `minimatch@2.0.7`: Feature detection and test improvements.
1402   ([@isaacs](https://github.com/isaacs))
1403 * [`3fa39e4`](https://github.com/npm/npm/commit/3fa39e4d492609d5d045033896dcd99f7b875329)
1404   `nock@1.7.1` ([@pgte](https://github.com/pgte))
1405
1406 ### v2.9.0 (2015-04-23):
1407
1408 This week was kind of a breather to concentrate on fixing up the tests on the
1409 `multi-stage` branch, and not mess with git issues for a little while.
1410 Unfortunately, There are now enough severe git issues that we'll probably have
1411 to spend another couple weeks tackling them. In the meantime, enjoy these two
1412 small features. They're just enough to qualify for a semver-minor bump:
1413
1414 #### NANOFEATURES
1415
1416 * [`2799322`](https://github.com/npm/npm/commit/279932298ce5b589c5eea9439ac40b88b99c6a4a)
1417   [#7426](https://github.com/npm/npm/issues/7426) Include local modules in `npm
1418   outdated` and `npm update`.  ([@ArnaudRinquin](https://github.com/ArnaudRinquin))
1419 * [`2114862`](https://github.com/npm/npm/commit/21148620fa03a582f4ec436bb16bd472664f2737)
1420   [#8014](https://github.com/npm/npm/issues/8014) The prefix used before the
1421   version on version tags is now configurable via `tag-version-prefix`. Be
1422   careful with this one and read the docs before using it.
1423   ([@kkragenbrink](https://github.com/kkragenbrink))
1424
1425 #### OTHER MINOR TWEAKS
1426
1427 * [`18ce0ec`](https://github.com/npm/npm/commit/18ce0ecd2d94ad3af01e997f1396515892dd363c)
1428   [#3032](https://github.com/npm/npm/issues/3032) `npm unpublish` will now use
1429   the registry set in `package.json`, just like `npm publish`. This only
1430   applies, for now, when unpublishing the entire package, as unpublishing a
1431   single version requires the name be included on the command line and
1432   therefore doesn't read from `package.json`. ([@watilde](https://github.com/watilde))
1433 * [`9ad2100`](https://github.com/npm/npm/commit/9ad210042242e51d52b2a8b633d8e59248f5faa4)
1434   [#8008](https://github.com/npm/npm/issues/8008) Once again, when considering
1435   what to install on `npm install`, include `devDependencies`.
1436   ([@smikes](https://github.com/smikes))
1437 * [`5466260`](https://github.com/npm/npm/commit/546626059909dca1906454e820ca4e315c1795bd)
1438   [#8003](https://github.com/npm/npm/issues/8003) Clarify the documentation
1439   around scopes to make it easier to understand how they support private
1440   packages. ([@smikes](https://github.com/smikes))
1441
1442 #### DEPENDENCIES WILL NOT STOP UNTIL YOU ARE VERY SLEEPY
1443
1444 * [`faf65a7`](https://github.com/npm/npm/commit/faf65a7bbb2fad13216f64ed8f1243bafe743f97)
1445   `init-package-json@1.4.2`: If there are multiple validation errors and
1446   warnings, ensure they all get displayed (includes a rad new way of testing
1447   `init-package-json` contributed by
1448   [@michaelnisi](https://github.com/michaelnisi)).
1449   ([@MisumiRize](https://github.com/MisumiRize))
1450 * [`7f10f38`](https://github.com/npm/npm/commit/7f10f38d29a8423d7cde8103fa7b64ac728da1e0)
1451   `editor@1.0.0`: `1.0.0` is literally more than `0.1.0` (no change aside from
1452   version number). ([@substack](https://github.com/substack))
1453 * [`4979af3`](https://github.com/npm/npm/commit/4979af3fcae5a3962383b7fdad3162381e62eefe)
1454   [#6805](https://github.com/npm/npm/issues/6805) `npm-registry-client@6.3.3`:
1455   Decode scoped package names sent by the registry so they look nicer.
1456   ([@mmalecki](https://github.com/mmalecki))
1457
1458 ### v2.8.4 (2015-04-16):
1459
1460 This is the fourth release of npm this week, so it's mostly just landing a few
1461 small outstanding PRs on dependencies and some tiny documentation tweaks.
1462 `npm@2.8.3` is where the real action is.
1463
1464 * [`ee2bd77`](https://github.com/npm/npm/commit/ee2bd77f3c64d38735d1d31028224a5c40422a9b)
1465   [#7983](https://github.com/npm/npm/issues/7983) `tar@2.1.0`: Better error
1466   reporting in corrupted tar files, and add support for the `fromBase` flag
1467   (rescued from the dustbin of history by
1468   [@deanmarano](https://github.com/deanmarano)).
1469   ([@othiym23](https://github.com/othiym23))
1470 * [`d8eee6c`](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af)
1471   `init-package-json@1.4.1`: Add support for a default author, and only add
1472   scope to a package name once. ([@othiym23](https://github.com/othiym23))
1473 * [`4fc5d98`](https://github.com/npm/npm/commit/4fc5d98b785f601c60d4dc0a2c8674f0cccf6262)
1474   `lru-cache@2.6.1`: Small tweaks to cache value aging and entry counting that
1475   are irrelevant to npm. ([@isaacs](https://github.com/isaacs))
1476 * [`1fe5840`](https://github.com/npm/npm/commit/1fe584089f5bef133de5518aa26eaf6064be2bf7)
1477   [#7946](https://github.com/npm/npm/issues/7946) Make `npm init` text
1478   friendlier. ([@sandfox](https://github.com/sandfox))
1479
1480 ### v2.8.3 (2015-04-15):
1481
1482 #### TWO SMALL GIT TWEAKS
1483
1484 This is the last of a set of releases intended to ensure npm's git support is
1485 robust enough that we can stop working on it for a while. These fixes are
1486 small, but prevent a common crasher and clear up one of the more confusing
1487 error messages coming out of npm when working with repositories hosted on git.
1488
1489 * [`387f889`](https://github.com/npm/npm/commit/387f889c0e8fb617d9cc9a42ed0a3ec49424ab5d)
1490   [#7961](https://github.com/npm/npm/issues/7961) Ensure that hosted git SSH
1491   URLs always have a valid protocol when stored in `resolved` fields in
1492   `npm-shrinkwrap.json`. ([@othiym23](https://github.com/othiym23))
1493 * [`394c2f5`](https://github.com/npm/npm/commit/394c2f5a1227232c0baf42fbba1402aafe0d6ffb)
1494   Switch the order in which hosted Git providers are checked to `git:`,
1495   `git+https:`, then `git+ssh:` (from `git:`, `git+ssh:`, then `git+https:`) in
1496   an effort to go from most to least likely to succeed, to make for less
1497   confusing error message. ([@othiym23](https://github.com/othiym23))
1498
1499 ### v2.8.2 (2015-04-14):
1500
1501 #### PEACE IN OUR TIME
1502
1503 npm has been having an issue with CouchDB's web server since the release
1504 of io.js and Node.js 0.12.0 that has consumed a huge amount of my time
1505 to little visible effect. Sam Mikes picked up the thread from me, and
1506 after a [_lot_ of effort](https://github.com/npm/npm/issues/7699#issuecomment-93091111)
1507 figured out that ultimately there are probably a couple problems with
1508 the new HTTP Agent keep-alive handling in new versions of Node. In
1509 addition, `npm-registry-client` was gratuitously sending a body along
1510 with a GET request which was triggering the bugs. Sam removed about 10 bytes from
1511 one file in `npm-registry-client`, and this problem, which has been bugging us for months,
1512 completely went away.
1513
1514 In conclusion, Sam Mikes is great, and anybody using a private registry
1515 hosted on CouchDB should thank him for his hard work. Also, thanks to
1516 the community at large for pitching in on this bug, which has been
1517 around for months now.
1518
1519 * [`431c3bf`](https://github.com/npm/npm/commit/431c3bf6cdec50f9f0c735f478cb2f3f337d3313)
1520   [#7699](https://github.com/npm/npm/issues/7699) `npm-registry-client@6.3.2`:
1521   Don't send body with HTTP GET requests when logging in.
1522   ([@smikes](https://github.com/smikes))
1523
1524 ### v2.8.1 (2015-04-12):
1525
1526 #### CORRECTION: NPM'S GIT INTEGRATION IS DOING OKAY
1527
1528 A [helpful bug report](https://github.com/npm/npm/issues/7872#issuecomment-91809553)
1529 led to another round of changes to
1530 [`hosted-git-info`](https://github.com/npm/hosted-git-info/commit/827163c74531b69985d1ede7abced4861e7b0cd4),
1531 some additional test-writing, and a bunch of hands-on testing against actual
1532 private repositories. While the complexity of npm's git dependency handling is
1533 nearly fractal (because npm is very complex, and git is even more complex),
1534 it's feeling way more solid than it has for a while. We think this is a
1535 substantial improvement over what we had before, so give `npm@2.8.1` a shot if
1536 you have particularly complex git use cases and
1537 [let us know](https://github.com/npm/npm/issues/new) how it goes.
1538
1539 (NOTE: These changes mostly affect cloning and saving references to packages
1540 hosted in git repositories, and don't address some known issues with things
1541 like lifecycle scripts not being run on npm dependencies. Work continues on
1542 other issues that affect parity between git and npm registry packages.)
1543
1544 * [`66377c6`](https://github.com/npm/npm/commit/66377c6ece2cf4d53d9a618b7d9824e1452bc293)
1545   [#7872](https://github.com/npm/npm/issues/7872) `hosted-git-info@2.1.2`: Pass
1546   through credentials embedded in SSH and HTTPs git URLs.
1547   ([@othiym23](https://github.com/othiym23))
1548 * [`15efe12`](https://github.com/npm/npm/commit/15efe124753257728a0ddc64074fa5a4b9c2eb30)
1549   [#7872](https://github.com/npm/npm/issues/7872) Use the new version of
1550   `hosted-git-info` to pass along credentials embedded in git URLs. Test it.
1551   Test it a lot. ([@othiym23](https://github.com/othiym23))
1552
1553 #### SCOPED DEPENDENCIES AND PEER DEPENDENCIES: NOT QUITE REESE'S
1554
1555 Big thanks to [@ewie](https://github.com/ewie) for identifying an issue with
1556 how npm was handling `peerDependencies` that were implicitly installed from the
1557 `package.json` files of scoped dependencies. This
1558 [will be a moot point](https://github.com/npm/npm/issues/6565#issuecomment-74971689)
1559 with the release of `npm@3`, but until then, it's important that
1560 `peerDependency` auto-installation work as expected.
1561
1562 * [`b027319`](https://github.com/npm/npm/commit/b0273190c71eba14395ddfdd1d9f7ba625297523)
1563   [#7920](https://github.com/npm/npm/issues/7920) Scoped packages with
1564   `peerDependencies` were installing the `peerDependencies` into the wrong
1565   directory. ([@ewie](https://github.com/ewie))
1566 * [`649e31a`](https://github.com/npm/npm/commit/649e31ae4fd02568bae5dc6b4ea783431ce3d63e)
1567   [#7920](https://github.com/npm/npm/issues/7920) Test `peerDependency`
1568   installs involving scoped packages using `npm-package-arg` instead of simple
1569   path tests, for consistency. ([@othiym23](https://github.com/othiym23))
1570
1571 #### MAKING IT EASIER TO WRITE NPM TESTS, VERSION 0.0.1
1572
1573 [@iarna](https://github.com/iarna) and I
1574 ([@othiym23](https://github.com/othiym23)) have been discussing a
1575 [candidate plan](https://github.com/npm/npm/wiki/rewriting-npm's-tests:-a-plan-maybe)
1576 for improving npm's test suite, with the goal of making it easier for new
1577 contributors to get involved with npm by reducing the learning curve
1578 necessary to be able to write good tests for proposed changes. This is the
1579 first substantial piece of that effort. Here's what the commit message for
1580 [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf)
1581 had to say about this work:
1582
1583 > It's too difficult for npm contributors to figure out what the conventional
1584 > style is for tests. Part of the problem is that the documentation in
1585 > CONTRIBUTING.md is inadequate, but another important factor is that the tests
1586 > themselves are written in a variety of styles.  One of the most notable
1587 > examples of this is the fact that many tests use fixture directories to store
1588 > precooked test scenarios and package.json files.
1589 >
1590 > This had some negative consequences:
1591 >
1592 >   * tests weren't idempotent
1593 >   * subtle dependencies between tests existed
1594 >   * new tests get written in this deprecated style because it's not
1595 >     obvious that the style is out of favor
1596 >   * it's hard to figure out why a lot of those directories existed,
1597 >     because they served a variety of purposes, so it was difficult to
1598 >     tell when it was safe to remove them
1599 >
1600 > All in all, the fixture directories were a major source of technical debt, and
1601 > cleaning them up, while time-consuming, makes the whole test suite much more
1602 > approachable, and makes it more likely that new tests written by outside
1603 > contributors will follow a conventional style. To support that, all of the
1604 > tests touched by this changed were cleaned up to pass the `standard` style
1605 > checker.
1606
1607 And here's a little extra context from a comment I left on [#7929](https://github.com/npm/npm/issues/7929):
1608
1609 > One of the other things that encouraged me was looking at this
1610 > [presentation on technical debt](http://www.slideshare.net/nnja/pycon-2015-technical-debt-the-monster-in-your-closet)
1611 > from Pycon 2015, especially slide 53, which I interpreted in terms of
1612 > difficulty getting new contributors to submit patches to an OSS project like
1613 > npm. npm has a long ways to go, but I feel good about this change.
1614
1615 * [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf)
1616   [#7929](https://github.com/npm/npm/issues/7929) Eliminate fixture directories
1617   from `test/tap`, leaving each test self-contained.
1618   ([@othiym23](https://github.com/othiym23))
1619 * [`4928d30`](https://github.com/npm/npm/commit/4928d30140821c63e03fffed73f8d88ebdc43710)
1620   [#7929](https://github.com/npm/npm/issues/7929) Move fixture files from
1621   `test/tap/*` to `test/fixtures`. ([@othiym23](https://github.com/othiym23))
1622 * [`e925deb`](https://github.com/npm/npm/commit/e925debca91092a814c1a00933babc3a8cf975be)
1623   [#7929](https://github.com/npm/npm/issues/7929) Tweak the run scripts to stop
1624   slaughtering the CPU on doc rebuild.
1625   ([@othiym23](https://github.com/othiym23))
1626 * [`65bf7cf`](https://github.com/npm/npm/commit/65bf7cffaf91c426b676c47529eee796f8b8b75c)
1627   [#7923](https://github.com/npm/npm/issues/7923) Use an alias of scripts and
1628   run-scripts in `npm run test-all` ([@watilde](https://github.com/watilde))
1629 * [`756a3fb`](https://github.com/npm/npm/commit/756a3fbb852a2469afe706635ed88d22c37743e5)
1630   [#7923](https://github.com/npm/npm/issues/7923) Sync timeout time of `npm
1631   run-script test-all` to be the same as `test` and `tap` scripts.
1632   ([@watilde](https://github.com/watilde))
1633 * [`8299b5f`](https://github.com/npm/npm/commit/8299b5fb6373354a7fbaab6f333863758812ae90)
1634   Set a timeout for tap tests for `npm run-script test-all`.
1635   ([@othiym23](https://github.com/othiym23))
1636
1637 #### THE EVER-BEATING DRUM OF DEPENDENCY UPDATES
1638
1639 * [`d90d0b9`](https://github.com/npm/npm/commit/d90d0b992acbf62fd5d68debf9d1dbd6cfa20804)
1640   [#7924](https://github.com/npm/npm/issues/7924) Remove `child-process-close`,
1641   as it was included for Node 0.6 compatibility, and npm no longer supports
1642   0.6. ([@robertkowalski](https://github.com/robertkowalski))
1643 * [`16427c1`](https://github.com/npm/npm/commit/16427c1f3ea3d71ee753c62eb4c2663c7b32b84f)
1644   `lru-cache@2.5.2`: More accurate updating of expiry times when `maxAge` is
1645   set. ([@isaacs](https://github.com/isaacs))
1646 * [`03cce83`](https://github.com/npm/npm/commit/03cce83b64344a9e0fe036dce214f4d68cfcc9e7)
1647   `nock@1.6.0`: Mocked network error handling.
1648   ([@pgte](https://github.com/pgte))
1649 * [`f93b1f0`](https://github.com/npm/npm/commit/f93b1f0b7eb5d1b8a7967e837bbd756db1091d00)
1650   `glob@5.0.5`: Use `path-is-absolute` polyfill, allowing newer Node.js and
1651   io.js versions to use `path.isAbsolute()`.
1652   ([@sindresorhus](https://github.com/sindresorhus))
1653 * [`a70d694`](https://github.com/npm/npm/commit/a70d69495a6e96997e64855d9e749d943ee6d64f)
1654   `request@2.55.0`: Bug fixes and simplification.
1655   ([@simov](https://github.com/simov))
1656 * [`2aecc6f`](https://github.com/npm/npm/commit/2aecc6f4083526feeb14615b4e5484edc66175b5)
1657   `columnify@1.5.1`: Switch to using babel from 6to5.
1658   ([@timoxley](https://github.com/timoxley))
1659
1660 ### v2.8.0 (2015-04-09):
1661
1662 #### WE WILL NEVER BE DONE FIXING NPM'S GIT SUPPORT
1663
1664 If you look at [the last release's release
1665 notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#git-mean-git-tuff-git-all-the-way-away-from-my-stuff),
1666 you will note that they confidently assert that it's perfectly OK to force all
1667 GitHub URLs through the same `git:` -> `git+ssh:` fallback flow for cloning. It
1668 turns out that many users depend on `git+https:` URLs in their build
1669 environments because they use GitHub auth tokens instead of SSH keys. Also, in
1670 some cases you just want to be able to explicitly say how a given dependency
1671 should be cloned from GitHub.
1672
1673 Because of the way we resolved the inconsistency in GitHub shorthand handling
1674 [before](https://github.com/npm/npm/blob/master/CHANGELOG.md#bug-fixes-1), this
1675 turned out to be difficult to work around. So instead of hacking around it, we
1676 completely redid how git is handled within npm and its attendant packages.
1677 Again. This time, we changed things so that `normalize-package-data` and
1678 `read-package-json` leave more of the git logic to npm itself, which makes
1679 handling shorthand syntax consistently much easier, and also allows users to
1680 resume using explicit, fully-qualified git URLs without npm messing with them.
1681
1682 Here's a summary of what's changed:
1683
1684 * Instead of converting the GitHub shorthand syntax to a `git+ssh:`, `git:`, or
1685   `git+https:` URL and saving that, save the shorthand itself to
1686   `package.json`.
1687 * If presented with shortcuts, try cloning via the git protocol, SSH, and HTTPS
1688   (in that order).
1689 * No longer prompt for credentials -- it didn't work right with the spinner,
1690   and wasn't guaranteed to work anyway. We may experiment with doing this a
1691   better way in the future. Users can override this by setting `GIT_ASKPASS` in
1692   their environment if they want to experiment with interactive cloning, but
1693   should also set `--no-spin` on the npm command line (or run `npm config set
1694   spin=false`).
1695 * **EXPERIMENTAL FEATURE**: Add support for `github:`, `gist:`, `bitbucket:`,
1696   and `gitlab:` shorthand prefixes. GitHub shortcuts will continue to be
1697   normalized to `org/repo` instead of being saved as `github:org/repo`, but
1698   `gitlab:`, `gist:`, and `bitbucket:` prefixes will be used on the command
1699   line and from `package.json`. BE CAREFUL WITH THIS. `package.json` files
1700   published with the new shorthand syntax can _only_ be read by `npm@2.8.0` and
1701   later, and this feature is mostly meant for playing around with it. If you
1702   want to save git dependencies in a form that older versions of npm can read,
1703   use `--save-exact`, which will save the git URL and resolved commit hash of
1704   the head of the branch in a manner similar to the way that `--save-exact`
1705   pins versions for registry dependencies.  This is documented (so check `npm
1706   help install` for details), but we're not going to make a lot of noise about
1707   it until it has a chance to bake in a little more.
1708
1709 It is [@othiym23](https://github.com/othiym23)'s sincere hope that this will
1710 resolve all of the inconsistencies users were seeing with GitHub and git-hosted
1711 packages, but given the level of change here, that may just be a fond wish.
1712 Extra testing of this change is requested.
1713
1714 * [`6b0f588`](https://github.com/npm/npm/commit/6b0f58877f37df9904490ffbaaad33862bd36dce)
1715   [#7867](https://github.com/npm/npm/issues/7867) Use git shorthand and git
1716   URLs as presented by user. Support new `hosted-git-info` shortcut syntax.
1717   Save shorthand in `package.json`. Try cloning via `git:`, `git+ssh:`, and
1718   `git+https:`, in that order, when supported by the underlying hosting
1719   provider. ([@othiym23](https://github.com/othiym23))
1720 * [`75d4267`](https://github.com/npm/npm/commit/75d426787869d54ca7400408f562f971b34649ef)
1721   [#7867](https://github.com/npm/npm/issues/7867) Document new GitHub, GitHub
1722   gist, Bitbucket, and GitLab shorthand syntax.
1723   ([@othiym23](https://github.com/othiym23))
1724 * [`7d92c75`](https://github.com/npm/npm/commit/7d92c7592998d90ec883fa989ca74f04ec1b93de)
1725   [#7867](https://github.com/npm/npm/issues/7867) When `--save-exact` is used
1726   with git shorthand or URLs, save the fully-resolved URL, with branch name
1727   resolved to the exact hash for the commit checked out.
1728   ([@othiym23](https://github.com/othiym23))
1729 * [`9220e59`](https://github.com/npm/npm/commit/9220e59f8def8c82c6d331a39ba29ad4c44e3a9b)
1730   [#7867](https://github.com/npm/npm/issues/7867) Ensure that non-prefixed and
1731   non-normalized GitHub shortcuts are saved to `package.json`.
1732   ([@othiym23](https://github.com/othiym23))
1733 * [`dd398e9`](https://github.com/npm/npm/commit/dd398e98a8eba27eeba84378200da3d078fdf980)
1734   [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.1`:
1735   Ensure that `gist:` shorthand survives being round-tripped through
1736   `package.json`. ([@othiym23](https://github.com/othiym23))
1737 * [`33d1420`](https://github.com/npm/npm/commit/33d1420bf2f629332fceb2ac7e174e63ac48f96a)
1738   [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.0`: Add
1739   support for auth embedded directly in git URLs.
1740   ([@othiym23](https://github.com/othiym23))
1741 * [`23a1d5a`](https://github.com/npm/npm/commit/23a1d5a540e8db27f5cd0245de7c3694e2bddad1)
1742   [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.0.2`: Make
1743   it possible to determine in which form a hosted git URL was passed.
1744   ([@iarna](https://github.com/iarna))
1745 * [`eaf75ac`](https://github.com/npm/npm/commit/eaf75acb718611ad5cfb360084ec86938d9c66c5)
1746   [#7867](https://github.com/npm/npm/issues/7867)
1747   `normalize-package-data@2.0.0`: Normalize GitHub specifiers so they pass
1748   through shortcut syntax and preserve explicit URLs.
1749   ([@iarna](https://github.com/iarna))
1750 * [`95e0535`](https://github.com/npm/npm/commit/95e0535e365e0aca49c634dd2061a0369b0475f1)
1751   [#7867](https://github.com/npm/npm/issues/7867) `npm-package-arg@4.0.0`: Add
1752   git URL and shortcut to hosted git spec and use `hosted-git-info@2.0.2`.
1753   ([@iarna](https://github.com/iarna))
1754 * [`a808926`](https://github.com/npm/npm/commit/a8089268d5f3d57f42dbaba02ff6437da5121191)
1755   [#7867](https://github.com/npm/npm/issues/7867)
1756   `realize-package-specifier@3.0.0`: Use `npm-package-arg@4.0.0` and test
1757   shortcut specifier behavior. ([@iarna](https://github.com/iarna))
1758 * [`6dd1e03`](https://github.com/npm/npm/commit/6dd1e039bddf8cf5383343f91d84bc5d78acd083)
1759   [#7867](https://github.com/npm/npm/issues/7867) `init-package-json@1.4.0`:
1760   Allow dependency on `read-package-json@2.0.0`.
1761   ([@iarna](https://github.com/iarna))
1762 * [`63254bb`](https://github.com/npm/npm/commit/63254bb6358f66752aca6aa1a275271b3ae03f7c)
1763   [#7867](https://github.com/npm/npm/issues/7867) `read-installed@4.0.0`: Use
1764   `read-package-json@2.0.0`. ([@iarna](https://github.com/iarna))
1765 * [`254b887`](https://github.com/npm/npm/commit/254b8871f5a173bb464cc5b0ace460c7878b8097)
1766   [#7867](https://github.com/npm/npm/issues/7867) `read-package-json@2.0.0`:
1767   Use `normalize-package-data@2.0.0`. ([@iarna](https://github.com/iarna))
1768 * [`0b9f8be`](https://github.com/npm/npm/commit/0b9f8be62fe5252abe54d49e36a696f4816c2eca)
1769   [#7867](https://github.com/npm/npm/issues/7867) `npm-registry-client@6.3.0`:
1770   Mark compatibility with `normalize-package-data@2.0.0` and
1771   `npm-package-arg@4.0.0`. ([@iarna](https://github.com/iarna))
1772 * [`f40ecaa`](https://github.com/npm/npm/commit/f40ecaad68f77abc50eb6f5b224e31dec3d250fc)
1773   [#7867](https://github.com/npm/npm/issues/7867) Extract a common method to
1774   use when cloning git repos for testing.
1775   ([@othiym23](https://github.com/othiym23))
1776
1777 #### TEST FIXES FOR NODE 0.8
1778
1779 npm continues to [get closer](https://github.com/npm/npm/issues/7842) to being
1780 completely green on Travis for Node 0.8.
1781
1782 * [`26d36e9`](https://github.com/npm/npm/commit/26d36e9cf0eca69fe1863d2ea536c28555b9e8de)
1783   [#7842](https://github.com/npm/npm/issues/7842) When spawning child
1784   processes, map exit code 127 to ENOENT so Node 0.8 handles child process
1785   failures the same as later versions.
1786   ([@SonicHedgehog](https://github.com/SonicHedgehog))
1787 * [`54cd895`](https://github.com/npm/npm/commit/54cd8956ea783f96749e46597d8c2cb9397c5d5f)
1788   [#7842](https://github.com/npm/npm/issues/7842) Node 0.8 requires -e with -p
1789   when evaluating snippets; fix test.
1790   ([@SonicHedgehog](https://github.com/SonicHedgehog))
1791
1792 #### SMALL FIX AND DOC TWEAK
1793
1794 * [`20e9003`](https://github.com/npm/npm/commit/20e90031b847e9f7c7168f3dad8b1e526f9a2586)
1795   `tar@2.0.1`: Fix regression where relative symbolic links within an
1796   extraction root that pointed within an extraction root would get normalized
1797   to absolute symbolic links. ([@isaacs](https://github.com/isaacs))
1798 * [`2ef8898`](https://github.com/npm/npm/commit/2ef88989c41bee1578570bb2172c90ede129dbd1)
1799   [#7879](https://github.com/npm/npm/issues/7879) Better document that `npm
1800   publish --tag=foo` will not set `latest` to that version.
1801   ([@linclark](https://github.com/linclark))
1802
1803 ### v2.7.6 (2015-04-02):
1804
1805 #### GIT MEAN, GIT TUFF, GIT ALL THE WAY AWAY FROM MY STUFF
1806
1807 Part of the reason that we're reluctant to take patches to how npm deals with
1808 git dependencies is that every time we touch the git support, something breaks.
1809 The last few releases are a case in point. `npm@2.7.4` completely broke
1810 installing private modules from GitHub, and `npm@2.7.5` fixed them at the cost
1811 of logging a misleading error message that caused many people to believe that
1812 their dependencies hadn't been successfully installed when they actually had
1813 been.
1814
1815 This all started from a desire to ensure that GitHub shortcut syntax is being
1816 handled correctly.  The correct behavior is for npm to try to clone all
1817 dependencies on GitHub (whether they're specified with the GitHub
1818 `organization/repository` shortcut syntax or not) via the plain `git:` protocol
1819 first, and to fall back to using `git+ssh:` if `git:` doesn't work. Previously,
1820 sometimes npm would use `git:` and `git+ssh:` in some cases (most notably when
1821 using GitHub shortcut syntax on the command line), and use `git+https:` in
1822 others (when the GitHub shortcut syntax was present in `package.json`). This
1823 led to subtle and hard-to-understand inconsistencies, and we're glad that as of
1824 `npm@2.7.6`, we've finally gotten things to where they were before we started,
1825 only slightly more consistent overall.
1826
1827 We are now going to go back to our policy of being extremely reluctant to touch
1828 the code that handles Git dependencies.
1829
1830 * [`b747593`](https://github.com/npm/npm/commit/b7475936f473f029e6a027ba1b16277523747d0b)
1831   [#7630](https://github.com/npm/npm/issues/7630) Don't automatically log all
1832   git failures as errors. `maybeGithub` needs to be able to fail without
1833   logging to support its fallback logic.
1834   ([@othiym23](https://github.com/othiym23))
1835 * [`cd67a0d`](https://github.com/npm/npm/commit/cd67a0db07891d20871822696c26692c8a84866a)
1836   [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote
1837   URL, handle failures gracefully (without assuming standard output exists).
1838   ([@othiym23](https://github.com/othiym23))
1839 * [`637c7d1`](https://github.com/npm/npm/commit/637c7d1411fe07f409cf91f2e65fd70685cb253c)
1840   [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote
1841   URL, handle failures gracefully (without assuming standard _error_ exists).
1842   ([@othiym23](https://github.com/othiym23))
1843
1844 #### OTHER SIGNIFICANT FIXES
1845
1846 * [`78005eb`](https://github.com/npm/npm/commit/78005ebb6f4103c20f077669c3929b7ea46a4c0d)
1847   [#7743](https://github.com/npm/npm/issues/7743) Always quote arguments passed
1848   to `npm run-script`. This allows build systems and the like to safely escape
1849   glob patterns passed as arguments to `run-scripts` with `npm run-script
1850   <script> -- <arguments>`. This is a tricky change to test, and may be
1851   reverted or moved to `npm@3` if it turns out it breaks things for users.
1852   ([@mantoni](https://github.com/mantoni))
1853 * [`da015ee`](https://github.com/npm/npm/commit/da015eee45f6daf384598151d06a9b57ffce136e)
1854   [#7074](https://github.com/npm/npm/issues/7074) `read-package-json@1.3.3`:
1855   `read-package-json` no longer caches `package.json` files, which trades a
1856   very small performance loss for the elimination of a large class of really
1857   annoying race conditions. See [#7074](https://github.com/npm/npm/issues/7074)
1858   for the grisly details. ([@othiym23](https://github.com/othiym23))
1859 * [`dd20f57`](https://github.com/npm/npm/commit/dd20f5755291b9433f0d298ee0eead22cda6db36)
1860   `init-package-json@1.3.2`: Only add the `@` to scoped package names if it's
1861   not already there when reading from the filesystem
1862   ([@watilde](https://github.com/watilde)), and support inline validation of
1863   package names ([@michaelnisi](https://github.com/michaelnisi)).
1864
1865 #### SMALL FIXES AND DEPENDENCY UPGRADES
1866
1867 * [`1f380f6`](https://github.com/npm/npm/commit/1f380f66c1e944b8ffbf096fa94d09e931626e12)
1868   [#7820](https://github.com/npm/npm/issues/7820) `are-we-there-yet@1.0.4`: Use
1869   `readable-stream` instead of built-in `stream` module to better support
1870   Node.js 0.8.x. ([@SonicHedgehog](https://github.com/SonicHedgehog))
1871 * [`d380188`](https://github.com/npm/npm/commit/d380188e161be31f5a4f53947de6bc28df4732d8)
1872   `semver@4.3.3`: Don't throw on `semver.parse(null)`, and parse numeric
1873   version strings more robustly. ([@isaacs](https://github.com/isaacs))
1874 * [`01d9964`](https://github.com/npm/npm/commit/01d99649265f921e1c61cf406613e7042bcea008)
1875   `nock@1.4.0`: This change may need to be rolled back, or rolled forward,
1876   because [nock depends on
1877   `setImmediate`](https://github.com/npm/npm/issues/7842), which causes tests
1878   to fail when run with Node.js 0.8. ([@othiym23](https://github.com/othiym23))
1879 * [`91f5cb1`](https://github.com/npm/npm/commit/91f5cb1fb91520fbe25a4da5b80848ed540b9ad3)
1880   [#7791](https://github.com/npm/npm/issues/7791) Fix brackets in npmconf so
1881   that `loaded` is set correctly.
1882   ([@charmander](https://github.com/charmander))
1883 * [`1349e27`](https://github.com/npm/npm/commit/1349e27c936a8b0fc9f6440a6d6404ef3b19c587)
1884   [#7818](https://github.com/npm/npm/issues/7818) Update `README.md` to point
1885   out that the install script now lives on https://www.npmjs.com.
1886   ([@weisjohn](https://github.com/weisjohn))
1887
1888 ### v2.7.5 (2015-03-26):
1889
1890 #### SECURITY FIXES
1891
1892 * [`300834e`](https://github.com/npm/npm/commit/300834e91a4e2a95fb7fb59c309e7c3fc91d2312)
1893   `tar@2.0.0`: Normalize symbolic links that point to targets outside the
1894   extraction root. This prevents packages containing symbolic links from
1895   overwriting targets outside the expected paths for a package. Thanks to [Tim
1896   Cuthbertson](http://gfxmonk.net/) and the team at [Lift
1897   Security](https://liftsecurity.io/) for working with the npm team to identify
1898   this issue. ([@othiym23](https://github.com/othiym23))
1899 * [`0dc6875`](https://github.com/npm/npm/commit/0dc68757cffd5397c280bc71365d106523a5a052)
1900   `semver@4.3.2`: Package versions can be no more than 256 characters long.
1901   This prevents a situation in which parsing the version number can use
1902   exponentially more time and memory to parse, leading to a potential denial of
1903   service. Thanks to Adam Baldwin at Lift Security for bringing this to our
1904   attention.  ([@isaacs](https://github.com/isaacs))
1905
1906 #### BUG FIXES
1907
1908 * [`5811468`](https://github.com/npm/npm/commit/5811468e104ccb6b26b8715dff390d68daa10066)
1909   [#7713](https://github.com/npm/npm/issues/7713) Add a test for `npm link` and
1910   `npm link <package>`. ([@watilde](https://github.com/watilde))
1911 * [`3cf3b0c`](https://github.com/npm/npm/commit/3cf3b0c8fddb6b66f969969feebea85fabd0360b)
1912   [#7713](https://github.com/npm/npm/issues/7713) Only use absolute symbolic
1913   links when `npm link`ing. ([@hokaccha](https://github.com/hokaccha))
1914 * [`f35aa93`](https://github.com/npm/npm/commit/f35aa933e136228a89e3fcfdebe8c7cc4f1e7c00)
1915   [#7443](https://github.com/npm/npm/issues/7443) Keep relative URLs when
1916   hitting search endpoint. ([@othiym23](https://github.com/othiym23))
1917 * [`eab6184`](https://github.com/npm/npm/commit/eab618425c51e3aa4416da28dcd8ca4ba63aec41)
1918   [#7766](https://github.com/npm/npm/issues/7766) One last tweak to ensure that
1919   GitHub shortcuts work with private repositories.
1920   ([@iarna](https://github.com/iarna))
1921 * [`5d7f704`](https://github.com/npm/npm/commit/5d7f704823f5f92ddd7ff3e7dd2b8bcc66c73005)
1922   [#7656](https://github.com/npm/npm/issues/7656) Don't try to load a deleted
1923   CA file, allowing the `cafile` config to be changed.
1924   ([@KenanY](https://github.com/KenanY))
1925 * [`a840a13`](https://github.com/npm/npm/commit/a840a13bbf0330157536381ea8e58d0bd93b4c05)
1926   [#7746](https://github.com/npm/npm/issues/7746) Only fix up URL paths when
1927   there are paths to fix up. ([@othiym23](https://github.com/othiym23))
1928
1929 #### DEPENDENCY UPDATES
1930
1931 * [`94df809`](https://github.com/npm/npm/commit/94df8095985bf5ba9d8db99dc445d05dac136aaf)
1932   `request@2.54.0`: Fixes for Node.js 0.12 and io.js.
1933   ([@simov](https://github.com/simov))
1934 * [`98a13ea`](https://github.com/npm/npm/commit/98a13eafdf098b53069ad15297008fcab9c61653)
1935   `opener@1.4.1`: Deal with `start` on Windows more conventionally.
1936   ([@domenic](https://github.com/domenic))
1937 * [`c2417c7`](https://github.com/npm/npm/commit/c2417c7702459a446f07d43ca3c4e99bde7fe9d6)
1938   `require-inject@1.2.0`: Add installGlobally to bypass cleanups.
1939   ([@iarna](https://github.com/iarna))
1940
1941 #### DOCUMENTATION FIXES
1942
1943 * [`f87c728`](https://github.com/npm/npm/commit/f87c728f8732c9e977c0dc2060c0610649e79155)
1944   [#7696](https://github.com/npm/npm/issues/7696) Months and minutes were
1945   swapped in doc-build.sh ([@MeddahJ](https://github.com/MeddahJ))
1946 * [`4e216b2`](https://github.com/npm/npm/commit/4e216b29b30463f06afe6e3c645e205da5f50922)
1947   [#7752](https://github.com/npm/npm/issues/7752) Update string examples to be
1948   properly quoted. ([@snuggs](https://github.com/snuggs))
1949 * [`402f52a`](https://github.com/npm/npm/commit/402f52ab201efa348feb87cad753fc4b91e8a3fb)
1950   [#7635](https://github.com/npm/npm/issues/7635) Clarify Windows installation
1951   instructions. ([@msikma](https://github.com/msikma))
1952 * [`c910399`](https://github.com/npm/npm/commit/c910399ecfd8db49fe4496dd26887765a8aed20f)
1953   small typo fix to `CHANGELOG.md` ([@e-jigsaw](https://github.com/e-jigsaw))
1954
1955 ### v2.7.4 (2015-03-20):
1956
1957 #### BUG FIXES
1958
1959 * [`fe1bc38`](https://github.com/npm/npm/commit/fe1bc387a14475e373557de669e03d9d006d3173)
1960   [#7672](https://github.com/npm/npm/issues/7672) `npm-registry-client@3.1.2`:
1961   Fix client-side certificate handling by correcting property name.
1962   ([@atamon](https://github.com/atamon))
1963 * [`3ce3cc2`](https://github.com/npm/npm/commit/3ce3cc242fc345bca6820185a4f5a013c5bc1944)
1964   [#7635](https://github.com/npm/npm/issues/7635) `fstream-npm@1.0.2`: Raise a
1965   more descriptive error when `bundledDependencies` isn't an array.
1966   ([@KenanY](https://github.com/KenanY))
1967 * [`3a12723`](https://github.com/npm/npm/commit/3a127235076a1f00bc8befba56c024c6d0e7f477)
1968   [#7661](https://github.com/npm/npm/issues/7661) Allow setting `--registry` on
1969   the command line to trump the mapped registry for `--scope`.
1970   ([@othiym23](https://github.com/othiym23))
1971 * [`89ce829`](https://github.com/npm/npm/commit/89ce829a00b526d0518f5cd855c323bffe182af0)
1972   [#7630](https://github.com/npm/npm/issues/7630) `hosted-git-info@1.5.3`: Part
1973   3 of ensuring that GitHub shorthand is handled consistently.
1974   ([@othiym23](https://github.com/othiym23))
1975 * [`63313eb`](https://github.com/npm/npm/commit/63313eb0c37891c355546fd1093010c8a0c3cd81)
1976   [#7630](https://github.com/npm/npm/issues/7630)
1977   `realize-package-specifier@2.2.0`: Part 2 of ensuring that GitHub shorthand
1978   is handled consistently. ([@othiym23](https://github.com/othiym23))
1979 * [`3ed41bf`](https://github.com/npm/npm/commit/3ed41bf64a1bb752bb3155c74dd6ffbbd28c89c9)
1980   [#7630](https://github.com/npm/npm/issues/7630) `npm-package-arg@3.1.1`: Part
1981   1 of ensuring that GitHub shorthand is handled consistently.
1982   ([@othiym23](https://github.com/othiym23))
1983
1984 #### DEPENDENCY UPDATES
1985
1986 * [`6a498c6`](https://github.com/npm/npm/commit/6a498c6aaa00611a0a1ea405255900c327103f8b)
1987   `npm-registry-couchapp@2.6.7`: Ensure that npm continues to work with new
1988   registry architecture. ([@bcoe](https://github.com/bcoe))
1989 * [`bd72c47`](https://github.com/npm/npm/commit/bd72c47ce8c58e287d496902c11845c8fea420d6)
1990   `glob@5.0.3`: Updated to latest version.
1991   ([@isaacs](https://github.com/isaacs))
1992 * [`4bfbaa2`](https://github.com/npm/npm/commit/4bfbaa2d8b9dc7067d999de8f55676db3a4f4196)
1993   `npmlog@1.2.0`: Getting up to date with latest version (but not using any of
1994   the new features). ([@othiym23](https://github.com/othiym23))
1995
1996 #### A NEW REGRESSION TEST
1997
1998 * [`3703b0b`](https://github.com/npm/npm/commit/3703b0b87c127a64649bdbfc3bc697ebccc4aa24)
1999   Add regression test for `npm version` to ensure `message` property in config
2000   continues to be honored. ([@dannyfritz](https://github.com/dannyfritz))
2001
2002 ### v2.7.3 (2015-03-16):
2003
2004 #### HAHA WHOOPS LIL SHINKWRAP ISSUE THERE LOL
2005
2006 * [`1549106`](https://github.com/npm/npm/commit/1549106f518000633915686f5f1ccc6afcf77f8f)
2007   [#7641](https://github.com/npm/npm/issues/7641) Due to 448efd0, running `npm
2008   shrinkwrap --dev` caused production dependencies to no longer be included in
2009   `npm-shrinkwrap.json`. Whoopsie! ([@othiym23](https://github.com/othiym23))
2010
2011 ### v2.7.2 (2015-03-12):
2012
2013 #### NPM GASTROENTEROLOGY
2014
2015 * [`fb0ac26`](https://github.com/npm/npm/commit/fb0ac26eecdd76f6eaa4a96a865b7c6f52ce5aa5)
2016   [#7579](https://github.com/npm/npm/issues/7579) Only block removing files and
2017   links when we're sure npm isn't responsible for them. This change is hard to
2018   summarize, because if things are working correctly you should never see it,
2019   but if you want more context, just [go read the commit
2020   message](https://github.com/npm/npm/commit/fb0ac26eecdd76f6eaa4a96a865b7c6f52ce5aa5),
2021   which lays it all out. ([@othiym23](https://github.com/othiym23))
2022 * [`051c473`](https://github.com/npm/npm/commit/051c4738486a826300f205b71590781ce7744f01)
2023   [#7552](https://github.com/npm/npm/issues/7552) `bundledDependencies` are now
2024   properly included in the installation context. This is another fantastically
2025   hard-to-summarize bug, and once again, I encourage you to [read the commit
2026   message](https://github.com/npm/npm/commit/051c4738486a826300f205b71590781ce7744f01)
2027   if you're curious about the details. The snappy takeaway is that this
2028   unbreaks many use cases for `ember-cli`. ([@othiym23](https://github.com/othiym23))
2029
2030 #### LESS DRAMATIC CHANGES
2031
2032 * [`fcd9247`](https://github.com/npm/npm/commit/fcd92476f3a9092f6f8c83a19a24fe63b206edcd)
2033   [#7597](https://github.com/npm/npm/issues/7597) Awk varies pretty
2034   dramatically from platform to platform, so use Perl to generate the AUTHORS
2035   list instead. ([@KenanY](https://github.com/KenanY))
2036 * [`721b17a`](https://github.com/npm/npm/commit/721b17a31690bec074eb8763d823d6de63406005)
2037   [#7598](https://github.com/npm/npm/issues/7598) `npm install --save` really
2038   isn't experimental anymore. ([@RichardLitt](https://github.com/RichardLitt))
2039
2040 #### DEPENDENCY REFRESH
2041
2042 * [`a91f2c7`](https://github.com/npm/npm/commit/a91f2c7c9a5183d9cde7aae040ebd9ccdf104be7)
2043   [#7559](https://github.com/npm/npm/issues/7559) `node-gyp@1.0.3` Switch
2044   `node-gyp` to use `stdio` instead of `customFds` so it stops printing a
2045   deprecation warning every time you build a native dependency.
2046   ([@jeffbski](https://github.com/jeffbski))
2047 * [`0c85db7`](https://github.com/npm/npm/commit/0c85db7f0dde41762411e40a029153e6a65ef483)
2048   `rimraf@2.3.2`: Globbing now deals with paths containing valid glob
2049   metacharacters better. ([@isaacs](https://github.com/isaacs))
2050 * [`d14588e`](https://github.com/npm/npm/commit/d14588ed09b032c4c770e34b4c0f2436f5fccf6e)
2051   `minimatch@2.0.4`: Bug fixes. ([@isaacs](https://github.com/isaacs))
2052 * [`aa9952e`](https://github.com/npm/npm/commit/aa9952e8270a6c1b7f97e579875dd6e3aa22abfd)
2053   `graceful-fs@3.0.6`: Bug fixes. ([@isaacs](https://github.com/isaacs))
2054
2055 ### v2.7.1 (2015-03-05):
2056
2057 #### GITSANITY
2058
2059 * [`6823807`](https://github.com/npm/npm/commit/6823807bba6c00228a724e1205ae90d67df0adad)
2060   [#7121](https://github.com/npm/npm/issues/7121) `npm install --save` for Git
2061   dependencies saves the URL passed in, instead of the temporary directory used
2062   to clone the remote repo. Fixes using Git dependencies when shrinkwrapping.
2063   In the process, rewrote the Git dependency caching code. Again. No more
2064   single-letter variable names, and a much clearer workflow.
2065   ([@othiym23](https://github.com/othiym23))
2066 * [`c8258f3`](https://github.com/npm/npm/commit/c8258f31365b045e5fcf15b865a363abbc3be616)
2067   [#7486](https://github.com/npm/npm/issues/7486) When installing Git remotes,
2068   the caching code was passing in the function `gitEnv` instead of the results
2069   of invoking it. ([@functino](https://github.com/functino))
2070 * [`c618eed`](https://github.com/npm/npm/commit/c618eeda3e321fd454d77c476b53a0330f2344cc)
2071   [#2556](https://github.com/npm/npm/issues/2556) Make it possible to install
2072   Git dependencies when using `--link` by not linking just the Git
2073   dependencies. ([@smikes](https://github.com/smikes))
2074
2075 #### WHY DID THIS TAKE SO LONG.
2076
2077 * [`abdd040`](https://github.com/npm/npm/commit/abdd040da90932535472f593d5433a67ee074801)
2078   `read-package-json@1.3.2`: Provide more helpful error messages when JSON
2079   parse errors are encountered by using a more forgiving JSON parser than
2080   JSON.parse. ([@smikes](https://github.com/smikes))
2081
2082 #### BUGS & TWEAKS
2083
2084 * [`c56cfcd`](https://github.com/npm/npm/commit/c56cfcd79cd8ab4ccd06d2c03d7e04030d576683)
2085   [#7525](https://github.com/npm/npm/issues/7525) `npm dedupe` handles scoped
2086   packages. ([@KidkArolis](https://github.com/KidkArolis))
2087 * [`1b8ba74`](https://github.com/npm/npm/commit/1b8ba7426393cbae2c76ad2c35953782d4401871)
2088   [#7531](https://github.com/npm/npm/issues/7531) `npm stars` and `npm whoami`
2089   will no longer send the registry the error text saying you need to log in as
2090   your username.  ([@othiym23](https://github.com/othiym23))
2091 * [`6de1e91`](https://github.com/npm/npm/commit/6de1e91116a5105dfa75126532b9083d8672e034)
2092   [#6441](https://github.com/npm/npm/issues/6441) Prevent needless reinstalls
2093   by only updating packages when the current version isn't the same as the
2094   version returned as `wanted` by `npm outdated`.
2095   ([@othiym23](https://github.com/othiym23))
2096 * [`2abc3ee`](https://github.com/npm/npm/commit/2abc3ee08f0cabc4e7bfd7b973c0b59dc44715ff)
2097   Add `npm upgrade` as an alias for `npm update`.
2098   ([@othiym23](https://github.com/othiym23))
2099 * [`bcd4722`](https://github.com/npm/npm/commit/bcd47224e18884191a5d0057c2b2fff83ac8206e)
2100   [#7508](https://github.com/npm/npm/issues/7508) FreeBSD uses `EAI_FAIL`
2101   instead of `ENOTFOUND`. ([@othiym23](https://github.com/othiym23))
2102 * [`21c1ac4`](https://github.com/npm/npm/commit/21c1ac41280f0716a208cde14025a2ad5ef61fed)
2103   [#7507](https://github.com/npm/npm/issues/7507) Update support URL in generic
2104   error handler to `https:` from `http:`.
2105   ([@watilde](https://github.com/watilde))
2106 * [`b6bd99a`](https://github.com/npm/npm/commit/b6bd99a73f575545fbbaef95c12237c47dd32561)
2107   [#7492](https://github.com/npm/npm/issues/7492) On install, the
2108   `package.json` `engineStrict` deprecation only warns for the current package.
2109   ([@othiym23](https://github.com/othiym23))
2110 * [`4ef1412`](https://github.com/npm/npm/commit/4ef1412d0061239da2b1c4460ed6db37cc9ded27)
2111   [#7075](https://github.com/npm/npm/issues/7075) If you try to tag a release
2112   as a valid semver range, `npm publish` and `npm tag` will error early instead
2113   of proceeding. ([@smikes](https://github.com/smikes))
2114 * [`ad53d0f`](https://github.com/npm/npm/commit/ad53d0f666125d9f50d661b54901c6e5bab4d603)
2115   Use `rimraf` in npm build script because Windows doesn't know what rm is.
2116   ([@othiym23](https://github.com/othiym23))
2117 * [`8885c4d`](https://github.com/npm/npm/commit/8885c4dfb618f2838930b5c5149abea300a762d6)
2118   `rimraf@2.3.1`: Better Windows support.
2119   ([@isaacs](https://github.com/isaacs))
2120 * [`8885c4d`](https://github.com/npm/npm/commit/8885c4dfb618f2838930b5c5149abea300a762d6)
2121   `glob@4.4.2`: Handle bad symlinks properly.
2122   ([@isaacs](https://github.com/isaacs))
2123
2124 ###E TYPSO & CLARFIICATIONS
2125
2126 dId yuo know that submiting fxies for doc tpyos is an exclelent way to get
2127 strated contriburting to a new open-saurce porject?
2128
2129 * [`42c605c`](https://github.com/npm/npm/commit/42c605c7b401f603c32ea70427e1a7666adeafd9)
2130   Fix typo in `CHANGELOG.md` ([@adrianblynch](https://github.com/adrianblynch))
2131 * [`c9bd58d`](https://github.com/npm/npm/commit/c9bd58dd637b9c41441023584a13e3818d5db336)
2132   Add note about `node_modules/.bin` being added to the path in `npm
2133   run-script`. ([@quarterto](https://github.com/quarterto))
2134 * [`903bdd1`](https://github.com/npm/npm/commit/903bdd105b205d6e45d3a2ab83eea8e4071e9aeb)
2135   Matt Ranney confused the world when he renamed `node-redis` to `redis`. "The
2136   world" includes npm's documentation.
2137   ([@RichardLitt](https://github.com/RichardLitt))
2138 * [`dea9bb2`](https://github.com/npm/npm/commit/dea9bb2319183fe54bf4d173d8533d46d2c6611c)
2139   Fix typo in contributor link. ([@watilde](https://github.com/watilde))
2140 * [`1226ca9`](https://github.com/npm/npm/commit/1226ca98d4d7650cc3ba16bf7ac62e44820f3bfa)
2141   Properly close code block in npm-install.md.
2142   ([@olizilla](https://github.com/olizilla))
2143
2144 ### v2.7.0 (2015-02-26):
2145
2146 #### SOMETIMES SEMVER MEANS "SUBJECTIVE-EMPATHETIC VERSIONING"
2147
2148 For a very long time (maybe forever?), the documentation for `npm run-script`
2149 has said that `npm restart` will only call `npm stop` and `npm start` when
2150 there is no command defined as `npm restart` in `package.json`. The problem
2151 with this documentation is that `npm run-script` was apparently never wired up
2152 to actually work this way.
2153
2154 Until now.
2155
2156 If the patch below were landed on its own, free of context, it would be a
2157 breaking change. But, since the "new" behavior is how the documentation claims
2158 this feature has always worked, I'm classifying it as a patch-level bug fix. I
2159 apologize in advance if this breaks anybody's deployment scripts, and if it
2160 turns out to be a significant regression in practice, we can revert this change
2161 and move it to `npm@3`, which is allowed to make breaking changes due to being
2162 a new major version of semver.
2163
2164 * [`2f6a1df`](https://github.com/npm/npm/commit/2f6a1df3e1e3e0a3bc4abb69e40f59a64204e7aa)
2165   [#1999](https://github.com/npm/npm/issues/1999) Only run `stop` and `start`
2166   scripts (plus their pre- and post- scripts) when there's no `restart` script
2167   defined. This makes it easier to support graceful restarts of services
2168   managed by npm.  ([@watilde](https://github.com/watilde) /
2169   [@scien](https://github.com/scien))
2170
2171 #### A SMALL FEATURE WITH BIG IMPLICATIONS
2172
2173 * [`145af65`](https://github.com/npm/npm/commit/145af6587f45de135cc876be2027ed818ed4ca6a)
2174   [#4887](https://github.com/npm/npm/issues/4887) Replace calls to the
2175   `node-gyp` script bundled with npm by passing the
2176   `--node-gyp=/path/to/node-gyp` option to npm. Swap in `pangyp` or a version
2177   of `node-gyp` modified to work better with io.js without having to touch
2178   npm's code!  ([@ackalker](https://github.com/ackalker))
2179
2180 #### [@WATILDE'S](https://github.com/watilde) NPM USABILITY CORNER
2181
2182 Following `npm@2.6.1`'s unexpected fix of many of the issues with `npm update
2183 -g` simply by making `--depth=0` the default for `npm outdated`, friend of npm
2184 [@watilde](https://github.com/watilde) has made several modest changes to npm's
2185 behavior that together justify bumping npm's minor version, as well as making
2186 npm significantly more pleasant to use:
2187
2188 * [`448efd0`](https://github.com/npm/npm/commit/448efd0eaa6f97af0889bf47efc543a1ea2f8d7e)
2189   [#2853](https://github.com/npm/npm/issues/2853) Add support for `--dev` and
2190   `--prod` to `npm ls`, so that you can list only the trees of production or
2191   development dependencies, as desired.
2192   ([@watilde](https://github.com/watilde))
2193 * [`a0a8777`](https://github.com/npm/npm/commit/a0a87777af8bee180e4e9321699f050c29ed5ac4)
2194   [#7463](https://github.com/npm/npm/issues/7463) Split the list printed by
2195   `npm run-script` into lifecycle scripts and scripts directly invoked via `npm
2196   run-script`. ([@watilde](https://github.com/watilde))
2197 * [`a5edc17`](https://github.com/npm/npm/commit/a5edc17d5ef1435b468a445156a4a109df80f92b)
2198   [#6749](https://github.com/npm/npm/issues/6749) `init-package-json@1.3.1`:
2199   Support for passing scopes to `npm init` so packages are initialized as part
2200   of that scope / organization / team. ([@watilde](https://github.com/watilde))
2201
2202 #### SMALLER FEATURES AND FIXES
2203
2204 It turns out that quite a few pull requests had piled up on npm's issue
2205 tracker, and they included some nice small features and fixes:
2206
2207 * [`f33e8b8`](https://github.com/npm/npm/commit/f33e8b8ff2de094071c5976be95e35110cf2ab1a)
2208   [#7354](https://github.com/npm/npm/issues/7354) Add `--if-present` flag to
2209   allow e.g. CI systems to call (semi-) standard build tasks defined in
2210   `package.json`, but don't raise an error if no such script is defined.
2211   ([@jussi-kalliokoski](https://github.com/jussi-kalliokoski))
2212 * [`7bf85cc`](https://github.com/npm/npm/commit/7bf85cc372ab5698593b01e139c383fa62c92516)
2213   [#4005](https://github.com/npm/npm/issues/4005)
2214   [#6248](https://github.com/npm/npm/issues/6248) Globally unlink a package
2215   when `npm rm` / `npm unlink` is called with no arguments.
2216   ([@isaacs](https://github.com/isaacs))
2217 * [`a2e04bd`](https://github.com/npm/npm/commit/a2e04bd921feab8f9e40a27e180ca9308eb709d7)
2218   [#7294](https://github.com/npm/npm/issues/7294) Ensure that when depending on
2219   `git+<proto>` URLs, npm doesn't keep tacking additional `git+` prefixes onto
2220   the front. ([@twhid](https://github.com/twhid))
2221 * [`0f87f5e`](https://github.com/npm/npm/commit/0f87f5ed28960d962f34977953561d22983da4f9)
2222   [#6422](https://github.com/npm/npm/issues/6422) When depending on GitHub
2223   private repositories, make sure we construct the Git URLS correctly.
2224   ([@othiym23](https://github.com/othiym23))
2225 * [`50f461d`](https://github.com/npm/npm/commit/50f461d248c4d22e881a9535dccc1d57d994dbc7)
2226   [#4595](https://github.com/npm/npm/issues/4595) Support finding compressed
2227   manpages. It's still up to the system to figure out how to display them,
2228   though. ([@pshevtsov](https://github.com/pshevtsov))
2229 * [`44da664`](https://github.com/npm/npm/commit/44da66456b530c049ff50953f78368460df87461)
2230   [#7465](https://github.com/npm/npm/issues/7465) When calling git, log the
2231   **full** command, with all arguments, on error.
2232   ([@thriqon](https://github.com/thriqon))
2233 * [`9748d5c`](https://github.com/npm/npm/commit/9748d5cd195d0269b32caf45129a93d29359a796)
2234   Add parent to error on `ETARGET` error.
2235   ([@davglass](https://github.com/davglass))
2236 * [`37038d7`](https://github.com/npm/npm/commit/37038d7db47a986001f77ac17b3e164000fc8ff3)
2237   [#4663](https://github.com/npm/npm/issues/4663) Remove hackaround for Linux
2238   tests, as it's evidently no longer necessary.
2239   ([@mmalecki](https://github.com/mmalecki))
2240 * [`d7b7853`](https://github.com/npm/npm/commit/d7b785393dffce93bb70317fbc039a6428ca37c5)
2241   [#2612](https://github.com/npm/npm/issues/2612) Add support for path
2242   completion on `npm install`, which narrows completion to only directories
2243   containing `package.json` files. ([@deestan](https://github.com/deestan))
2244 * [`628fcdb`](https://github.com/npm/npm/commit/628fcdb0be4e14c0312085a50dc2ae01dc713fa6)
2245   Remove all command completion calls to `-/short`, because it's been removed
2246   from the primary registry for quite some time, and is generally a poor idea
2247   on any registry with more than a few hundred packages.
2248   ([@othiym23](https://github.com/othiym23))
2249 * [`3f6061d`](https://github.com/npm/npm/commit/3f6061d75650441ee690472d1fa9c8dd7a7b1b28)
2250   [#6659](https://github.com/npm/npm/issues/6659) Instead of removing zsh
2251   completion global, make it a local instead.
2252   ([@othiym23](https://github.com/othiym23))
2253
2254 #### DOCUMENTATION TWEAKS
2255
2256 * [`5bc70e6`](https://github.com/npm/npm/commit/5bc70e6cfb3598da433806c6f447fc94c8e1d35d)
2257   [#7417](https://github.com/npm/npm/issues/7417) Provide concrete examples of
2258   how the new `npm update` defaults work in practice, tied to actual test
2259   cases. Everyone interested in using `npm update -g` now that it's been fixed
2260   should read these documents, as should anyone interested in writing
2261   documentation for npm. ([@smikes](https://github.com/smikes))
2262 * [`8ac6f21`](https://github.com/npm/npm/commit/8ac6f2123a6af13dc9447fad96ec9cb583c45a71)
2263   [#6543](https://github.com/npm/npm/issues/6543) Clarify `npm-scripts`
2264   warnings to de-emphasize dangers of using `install` scripts.
2265   ([@zeke](https://github.com/zeke))
2266 * [`ebe3b37`](https://github.com/npm/npm/commit/ebe3b37098efdada41dcc4c52a291e29296ea242)
2267   [#6711](https://github.com/npm/npm/issues/6711) Note that git tagging of
2268   versions can be disabled via `--no-git-tag-verson`.
2269   ([@smikes](https://github.com/smikes))
2270 * [`2ef5771`](https://github.com/npm/npm/commit/2ef5771632006e6cee8cf17f836c0f98ab494bd1)
2271   [#6711](https://github.com/npm/npm/issues/6711) Document `git-tag-version`
2272   configuration option. ([@KenanY](https://github.com/KenanY))
2273 * [`95e59b2`](https://github.com/npm/npm/commit/95e59b287c9517780318e145371a859e8ebb2d20)
2274   Document that `NODE_ENV=production` behaves analogously to `--production` on
2275   `npm install`. ([@stefaneg](https://github.com/stefaneg))
2276 * [`687117a`](https://github.com/npm/npm/commit/687117a5bcd6a838cd1532ea7020ec6fcf0c33c0)
2277   [#7463](https://github.com/npm/npm/issues/7463) Document the new script
2278   grouping behavior in the man page for `npm run-script`.
2279   ([@othiym23](https://github.com/othiym23))
2280 * [`536b2b6`](https://github.com/npm/npm/commit/536b2b6f55c349247b3e79b5d11b4c033ef5a3df)
2281   Rescue one of the the disabled tests and make it work properly.
2282   ([@smikes](https://github.com/smikes))
2283
2284 #### DEPENDENCY UPDATES
2285
2286 * [`89fc6a4`](https://github.com/npm/npm/commit/89fc6a4e7ff8c524675fcc14493ca0a1e3a76d38)
2287   `which@1.0.9`: Test for being run as root, as well as the current user.
2288   ([@isaacs](https://github.com/isaacs))
2289 * [`5d0612f`](https://github.com/npm/npm/commit/5d0612f31e226cba32a05351c47b055c0ab6c557)
2290   `glob@4.4.1`: Better error message to explain why calling sync glob with a
2291   callback results in an error. ([@isaacs](https://github.com/isaacs))
2292 * [`64b07f6`](https://github.com/npm/npm/commit/64b07f6caf6cb07e4102f1e4e5f2ff2b944e452e)
2293   `tap@0.7.1`: More accurate counts of pending & skipped tests.
2294   ([@rmg](https://github.com/rmg))
2295 * [`8fda451`](https://github.com/npm/npm/commit/8fda45195dae1d6f792be556abe87f7763fab09b)
2296   `semver@4.3.1`: Make official the fact that `node-semver` has moved from
2297   [@isaacs](https://github.com/isaacs)'s organization to
2298   [@npm](https://github.com/npm)'s. ([@isaacs](https://github.com/isaacs))
2299
2300 ### v2.6.1 (2015-02-19):
2301
2302 * [`8b98f0e`](https://github.com/npm/npm/commit/8b98f0e709d77a8616c944aebd48ab726f726f76)
2303   [#4471](https://github.com/npm/npm/issues/4471) `npm outdated` (and only `npm
2304   outdated`) now defaults to `--depth=0`. See the [docs for
2305   `--depth`](https://github.com/npm/npm/blob/82f484672adb1a3caf526a8a48832789495bb43d/doc/misc/npm-config.md#depth)
2306   for the mildly confusing details. ([@smikes](https://github.com/smikes))
2307 * [`aa79194`](https://github.com/npm/npm/commit/aa791942a9f3c8af6a650edec72a675deb7a7c6e)
2308   [#6565](https://github.com/npm/npm/issues/6565) Tweak `peerDependency`
2309   deprecation warning to include which peer dependency on which package is
2310   going to need to change. ([@othiym23](https://github.com/othiym23))
2311 * [`5fa067f`](https://github.com/npm/npm/commit/5fa067fd47682ac3cdb12a2b009d8ca59b05f992)
2312   [#7171](https://github.com/npm/npm/issues/7171) Tweak `engineStrict`
2313   deprecation warning to include which `package.json` is using it.
2314   ([@othiym23](https://github.com/othiym23))
2315 * [`0fe0caa`](https://github.com/npm/npm/commit/0fe0caa7eddb7acdacbe5ee81ceabaca27175c78)
2316   `glob@4.4.0`: Glob patterns can now ignore matches.
2317   ([@isaacs](https://github.com/isaacs))
2318
2319 ### v2.6.0 (2015-02-12):
2320
2321 #### A LONG-AWAITED GUEST
2322
2323 * [`38c4825`](https://github.com/npm/npm/commit/38c48254d3d217b4babf5027cb39492be4052fc2)
2324   [#5068](https://github.com/npm/npm/issues/5068) Add new logout command, and
2325   make it do something useful on both bearer-based and basic-based authed
2326   clients. ([@othiym23](https://github.com/othiym23))
2327 * [`4bf0f5d`](https://github.com/npm/npm/commit/4bf0f5d56c33649124b486e016ba4a620c105c1c)
2328   `npm-registry-client@6.1.1`: Support new `logout` endpoint to invalidate
2329   token for sessions. ([@othiym23](https://github.com/othiym23))
2330
2331 #### DEPRECATIONS
2332
2333 * [`c8e08e6`](https://github.com/npm/npm/commit/c8e08e6d91f4016c80f572aac5a2080df0f78098)
2334   [#6565](https://github.com/npm/npm/issues/6565) Warn that `peerDependency`
2335   behavior is changing and add a note to the docs.
2336   ([@othiym23](https://github.com/othiym23))
2337 * [`7c81a5f`](https://github.com/npm/npm/commit/7c81a5f5f058941f635a92f22641ea68e79b60db)
2338   [#7171](https://github.com/npm/npm/issues/7171) Warn that `engineStrict` in
2339   `package.json` will be going away in the next major version of npm (coming
2340   soon!) ([@othiym23](https://github.com/othiym23))
2341
2342 #### BUG FIXES & TWEAKS
2343
2344 * [`add5890`](https://github.com/npm/npm/commit/add5890ce447dabf120b907a85f715df1e065f44)
2345   [#4668](https://github.com/npm/npm/issues/4668) `read-package-json@1.3.1`:
2346   Warn when a `bin` symbolic link is a dangling reference.
2347   ([@nicks](https://github.com/nicks))
2348 * [`4b42071`](https://github.com/npm/npm/commit/4b420714dfb84338d85def78c30bd665e32d72c1)
2349   `semver@4.3.0`: Add functions to extract parts of the version triple, fix a
2350   typo. ([@isaacs](https://github.com/isaacs))
2351 * [`a9aff38`](https://github.com/npm/npm/commit/a9aff38719918486fc381d67ad3371c475632ff7)
2352   Use full path for man pages as the symbolic link source, instead of just the
2353   file name. ([@bengl](https://github.com/bengl))
2354 * [`6fd0fbd`](https://github.com/npm/npm/commit/6fd0fbd8a0347fd47cb7ee0064e0902a2f8a087c)
2355   [#7233](https://github.com/npm/npm/issues/7233) Ensure `globalconfig` path
2356   exists before trying to edit it. ([@ljharb](https://github.com/ljharb))
2357 * [`a0a2620`](https://github.com/npm/npm/commit/a0a262047647d9e2690cebe5a89e6a0dd33202bb)
2358   `ini@1.3.3`: Allow embedded, quoted equals signs in ini field names.
2359   ([@isaacs](https://github.com/isaacs))
2360
2361 Also typos and other documentation issues were addressed by
2362 [@rutsky](https://github.com/rutsky), [@imurchie](https://github.com/imurchie),
2363 [@marcin-wosinek](https://github.com/marcin-wosinek),
2364 [@marr](https://github.com/marr), [@amZotti](https://github.com/amZotti), and
2365 [@karlhorky](https://github.com/karlhorky). Thank you, everyone!
2366
2367 ### v2.5.1 (2015-02-06):
2368
2369 This release doesn't look like much, but considerable effort went into ensuring
2370 that npm's tests will pass on io.js 1.1.0 and Node 0.11.16 / 0.12.0 on both OS
2371 X and Linux.
2372
2373 **NOTE:** there are no actual changes to npm's code in `npm@2.5.1`. Only test
2374 code (and the upgrade of `request` to the latest version) has changed.
2375
2376 #### `npm-registry-mock@1.0.0`:
2377
2378 * [`0e8d473`](https://github.com/npm/npm/commit/0e8d4736a1cbdda41ae8eba8a02c7ff7ce80c2ff)
2379   [#7281](https://github.com/npm/npm/issues/7281) `npm-registry-mock@1.0.0`:
2380   Clean up API, set `connection: close`.
2381   ([@robertkowalski](https://github.com/robertkowalski))
2382 * [`4707bba`](https://github.com/npm/npm/commit/4707bba7d44dfab85cc45c2ecafa9c1601ba2e9a)
2383   Further update tests to work with `npm-registry-mock@1.0.0`.
2384   ([@othiym23](https://github.com/othiym23))
2385 * [`41a0f89`](https://github.com/npm/npm/commit/41a0f8959d4e02af9661588afa7d2b4543cc21b6)
2386   Got rid of completely gratuitous global config manipulation in tests.
2387   ([@othiym23](https://github.com/othiym23))
2388
2389 #### MINOR DEPENDENCY TWEAK
2390
2391 * [`a4c7af9`](https://github.com/npm/npm/commit/a4c7af9c692f250c0fd017397ed9514fc263b752)
2392   `request@2.53.0`: Tweaks to tunneling proxy behavior.
2393   ([@nylen](https://github.com/nylen))
2394
2395 ### v2.5.0 (2015-01-29):
2396
2397 #### SMALL FEATURE I HAVE ALREADY USED TO MAINTAIN NPM ITSELF
2398
2399 * [`9d61e96`](https://github.com/npm/npm/commit/9d61e96fb1f48687a85c211e4e0cd44c7f95a38e)
2400   `npm outdated --long` now includes a column showing the type of dependency.
2401   ([@watilde](https://github.com/watilde))
2402
2403 #### BUG FIXES & TWEAKS
2404
2405 * [`fec4c96`](https://github.com/npm/npm/commit/fec4c967ee235030bf31393e8605e9e2811f4a39)
2406   Allow `--no-proxy` to override `HTTP_PROXY` setting in environment.
2407   ([@othiym23](https://github.com/othiym23))
2408 * [`589acb9`](https://github.com/npm/npm/commit/589acb9714f395c2ad0d98cb0ac4236f1842d2cc)
2409   Only set `access` when publshing when it's explicitly set.
2410   ([@othiym23](https://github.com/othiym23))
2411 * [`1027087`](https://github.com/npm/npm/commit/102708704c8c4f0ea99775d38f8d1efecf584940)
2412   Add script and `Makefile` stanza to update AUTHORS.
2413   ([@KenanY](https://github.com/KenanY))
2414 * [`eeff04d`](https://github.com/npm/npm/commit/eeff04da7979a0181becd36b8777d607e7aa1787)
2415   Add `NPMOPTS` to top-level install in `Makefile` to override `userconfig`.
2416   ([@aredridel](https://github.com/aredridel))
2417 * [`0d17328`](https://github.com/npm/npm/commit/0d173287336650606d4c91818bb7bcfb0c5d57a1)
2418   `fstream@1.0.4`: Run chown only when necessary.
2419   ([@silkentrance](https://github.com/silkentrance))
2420 * [`9aa4622`](https://github.com/npm/npm/commit/9aa46226ee63b9e183fd49fc72d9bdb0fae9605e)
2421   `columnify@1.4.1`: ES6ified! ([@timoxley](https://github.com/timoxley))
2422 * [`51b2fd1`](https://github.com/npm/npm/commit/51b2fd1974e38b825ac5ca4a852ab3c4142624cc)
2423   Update default version in `docs/npm-config.md`.
2424   ([@lucthev](https://github.com/lucthev))
2425
2426 #### `npm-registry-client@6.0.7`:
2427
2428 * [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
2429   [#7226](https://github.com/npm/npm/issues/7226) Ensure that all request
2430   settings are copied onto the agent.
2431   ([@othiym23](https://github.com/othiym23))
2432 * [`e186f6e`](https://github.com/npm/npm/commit/e186f6e7cfeb4db9c94d7375638f0b2f0d472947)
2433   Only set `access` on publish when it differs from the norm.
2434   ([@othiym23](https://github.com/othiym23))
2435 * [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
2436   Allow overriding request's environment-based proxy handling.
2437   ([@othiym23](https://github.com/othiym23))
2438 * [`f9313a0`](https://github.com/npm/npm/commit/f9313a066c9889a0ee898d8a35676e40b8101e7f)
2439   Properly handle retry failures on fetch.
2440   ([@othiym23](https://github.com/othiym23))
2441
2442 ### v2.4.1 (2015-01-23):
2443
2444 ![bridge that doesn't meet in the middle](http://www.static-18.themodernnomad.com/wp-content/uploads/2011/08/bridge-fail.jpg)
2445
2446 Let's accentuate the positive: the `dist-tag` endpoints for `npm dist-tag
2447 {add,rm,ls}` are now live on the public npm registry.
2448
2449 * [`f70272b`](https://github.com/npm/npm/commit/f70272bed7d77032d1e21553371dd5662fef32f2)
2450   `npm-registry-client@6.0.3`: Properly escape JSON tag version strings and
2451   filter `_etag` from CouchDB docs. ([@othiym23](https://github.com/othiym23))
2452
2453 ### v2.4.0 (2015-01-22):
2454
2455 #### REGISTRY 2: ACCESS AND DIST-TAGS
2456
2457 NOTE: This week's registry-2 commands are leading the implementation on
2458 registry.npmjs.org a little bit, so some of the following may not work for
2459 another week or so. Also note that `npm access` has documentation and
2460 subcommands that are not yet finished, because they depend on incompletely
2461 specified registry API endpoints. Things are coming together very quickly,
2462 though, so expect the missing pieces to be filled in the coming weeks.
2463
2464 * [`c963eb2`](https://github.com/npm/npm/commit/c963eb295cf766921b1680f4a71fd0ed3e1bcad8)
2465   [#7181](https://github.com/npm/npm/issues/7181) NEW `npm access public` and
2466   `npm access restricted`: Toggle visibility of scoped packages.
2467   ([@othiym23](https://github.com/othiym23))
2468 * [`dc51810`](https://github.com/npm/npm/commit/dc51810e08c0f104259146c9c035d255de4f7d1d)
2469   [#6243](https://github.com/npm/npm/issues/6243) /
2470   [#6854](https://github.com/npm/npm/issues/6854) NEW `npm dist-tags`: Directly
2471   manage `dist-tags` on packages. Most notably, `dist-tags` can now be deleted.
2472   ([@othiym23](https://github.com/othiym23))
2473 * [`4c7c132`](https://github.com/npm/npm/commit/4c7c132a6b8305dca2974943226c39c0cdc64ff9)
2474   [#7181](https://github.com/npm/npm/issues/7181) /
2475   [#6854](https://github.com/npm/npm/issues/6854) `npm-registry-client@6.0.1`:
2476   Add new `access` and `dist-tags` endpoints
2477   ([@othiym23](https://github.com/othiym23))
2478
2479 #### NOT EXACTLY SELF-DEPRECATING
2480
2481 * [`10d5c77`](https://github.com/npm/npm/commit/10d5c77653487f15759ac7de262a97e9c655240c)
2482   [#6274](https://github.com/npm/npm/issues/6274) Deprecate `npm tag` in favor
2483   of `npm dist-tag`. ([@othiym23](https://github.com/othiym23))
2484
2485 #### BUG FIX AND TINY FEATURE
2486
2487 * [`29a6ef3`](https://github.com/npm/npm/commit/29a6ef38ef86ac318c5d9ea4bee28ce614672fa6)
2488   [#6850](https://github.com/npm/npm/issues/6850) Be smarter about determining
2489   base of file deletion when unbuilding. ([@phated](https://github.com/phated))
2490 * [`4ad01ea`](https://github.com/npm/npm/commit/4ad01ea2930a7a1cf88be121cc5ce9eba40c6807)
2491   `init-package-json@1.2.0`: Support `--save-exact` in `npm init`.
2492   ([@gustavnikolaj](https://github.com/gustavnikolaj))
2493
2494 ### v2.3.0 (2015-01-15):
2495
2496 #### REGISTRY 2: OH MY STARS! WHO AM I?
2497
2498 * [`e662a60`](https://github.com/npm/npm/commit/e662a60e2f9a542effd8e72279d4622fe514415e)
2499   The new `whoami` endpoint might not return a value.
2500   ([@othiym23](https://github.com/othiym23))
2501 * [`c2cccd4`](https://github.com/npm/npm/commit/c2cccd4bbc65885239ed646eb510155f7b8af13d)
2502   `npm-registry-client@5.0.0`: Includes the following fine changes
2503   ([@othiym23](https://github.com/othiym23)):
2504   * [`ba6b73e`](https://github.com/npm/npm-registry-client/commit/ba6b73e351027246c228622014e4441412409bad)
2505     [#92](https://github.com/npm/npm-registry-client/issues/92) BREAKING CHANGE:
2506     Move `/whoami` endpoint out of the package namespace (to `/-/whoami`).
2507     ([@othiym23](https://github.com/othiym23))
2508   * [`3b174b7`](https://github.com/npm/npm-registry-client/commit/3b174b75c0c9ea77e298e6bb664fb499824ecc7c)
2509     [#93](https://github.com/npm/npm-registry-client/issues/93) Registries based
2510     on token-based auth can now offer starring.
2511     ([@bcoe](https://github.com/bcoe))
2512   * [`4701a29`](https://github.com/npm/npm-registry-client/commit/4701a29bcda41bc14aa91f361dd0d576e24677d7)
2513     Fix HTTP[S] connection keep-alive on Node 0.11 / io.js 1.0.
2514     ([@fengmk2](https://github.com/fengmk2))
2515
2516 #### BETTER REGISTRY METADATA CACHING
2517
2518 * [`98e1e10`](https://github.com/npm/npm/commit/98e1e1080df1f2cab16ed68035603950ea3d2d48)
2519   [#6791](https://github.com/npm/npm/issues/6791) Add caching based on
2520   Last-Modified / If-Modified-Since headers. Includes this
2521   `npm-registry-client@5.0.0` change ([@lxe](https://github.com/lxe)):
2522   * [`07bc335`](https://github.com/npm/npm-registry-client/commit/07bc33502b93554cd7539bfcce37d6e2d5404cd0)
2523     [#86](https://github.com/npm/npm-registry-client/issues/86) Add Last-Modified
2524     / If-Modified-Since cache header handling. ([@lxe](https://github.com/lxe))
2525
2526 #### HOW MUCH IS THAT WINDOWS IN THE DOGGY?
2527
2528 * [`706d49a`](https://github.com/npm/npm/commit/706d49ab45521360fce1a68779b8de899015d8c2)
2529   [#7107](https://github.com/npm/npm/issues/7107) `getCacheStat` passes a stub
2530   stat on Windows. ([@rmg](https://github.com/rmg))
2531 * [`5fce278`](https://github.com/npm/npm/commit/5fce278a688a1cb79183e012bde40b089c2e97a4)
2532   [#5267](https://github.com/npm/npm/issues/5267) Use `%COMSPEC%` when set on
2533   Windows. ([@edmorley](https://github.com/edmorley))
2534 * [`cc2e099`](https://github.com/npm/npm/commit/cc2e09912ce2f91567c485422e4e797c4deb9842)
2535   [#7083](https://github.com/npm/npm/issues/7083) Ensure Git cache prefix
2536   exists before repo clone on Windows.
2537   ([@othiym23](https://github.com/othiym23))
2538
2539 #### THRILLING BUG FIXES
2540
2541 * [`c6fb430`](https://github.com/npm/npm/commit/c6fb430e55672b3caf87d25cbd2aeeebc449e2f2)
2542   [#4197](https://github.com/npm/npm/issues/4197) Report `umask` as a 0-padded
2543   octal literal. ([@smikes](https://github.com/smikes))
2544 * [`209713e`](https://github.com/npm/npm/commit/209713ebd4b77da11ce27d90c3346f78d760ba52)
2545   [#4197](https://github.com/npm/npm/issues/4197) `umask@1.1.0`: Properly
2546   handle `umask`s (i.e. not decimal numbers).
2547   ([@smikes](https://github.com/smikes))
2548 * [`9eac0a1`](https://github.com/npm/npm/commit/9eac0a14488c5979ebde4c17881c8cd74f395069)
2549   Make the example for bin links non-destructive.
2550   ([@KevinSheedy](https://github.com/KevinSheedy))
2551 * [`6338bcf`](https://github.com/npm/npm/commit/6338bcfcd9cd1b0cc48b051dae764dc436ab5332)
2552   `glob@4.3.5`: " -> ', for some reason. ([@isaacs](https://github.com/isaacs))
2553
2554 ### v2.2.0 (2015-01-08):
2555
2556 * [`88c531d`](https://github.com/npm/npm/commit/88c531d1c0b3aced8f2a09632db01b5635e7226a)
2557   [#7056](https://github.com/npm/npm/issues/7056) version doesn't need a
2558   package.json. ([@othiym23](https://github.com/othiym23))
2559 * [`2656c19`](https://github.com/npm/npm/commit/2656c19f6b915c3173acc3b6f184cc321563da5f)
2560   [#7095](https://github.com/npm/npm/issues/7095) Link to npm website instead
2561   of registry. ([@konklone](https://github.com/konklone))
2562 * [`c76b801`](https://github.com/npm/npm/commit/c76b8013bf1758587565822626171b76cb465c9e)
2563   [#7067](https://github.com/npm/npm/issues/7067) Obfuscate secrets, including
2564   nerfed URLs. ([@smikes](https://github.com/smikes))
2565 * [`17f66ce`](https://github.com/npm/npm/commit/17f66ceb1bd421084e4ae82a6b66634a6e272929)
2566   [#6849](https://github.com/npm/npm/issues/6849) Explain the tag workflow more
2567   clearly. ([@smikes](https://github.com/smikes))
2568 * [`e309df6`](https://github.com/npm/npm/commit/e309df642de33d10d6dffadaa8a5d214a924d0dc)
2569   [#7096](https://github.com/npm/npm/issues/7096) Really, `npm update -g` is
2570   almost always a terrible idea. ([@smikes](https://github.com/smikes))
2571 * [`acf287d`](https://github.com/npm/npm/commit/acf287d2547c8a0a8871652c164019261b666d55)
2572   [#6999](https://github.com/npm/npm/issues/6999) `npm run-script env`: add a
2573   new default script that will print out environment values.
2574   ([@gcb](https://github.com/gcb))
2575 * [`560c009`](https://github.com/npm/npm/commit/560c00945d4dec926cd29193e336f137c7f3f951)
2576   [#6745](https://github.com/npm/npm/issues/6745) Document `npm update --dev`.
2577   ([@smikes](https://github.com/smikes))
2578 * [`226a677`](https://github.com/npm/npm/commit/226a6776a1a9e28570485623b8adc2ec4b041335)
2579   [#7046](https://github.com/npm/npm/issues/7046) We have never been the Node
2580   package manager. ([@linclark](https://github.com/linclark))
2581 * [`38eef22`](https://github.com/npm/npm/commit/38eef2248f03bb8ab04cae1833e2a228fb887f3c)
2582   `npm-install-checks@1.0.5`: Compatibility with npmlog@^1.
2583   ([@iarna](https://github.com/iarna))
2584
2585 ### v2.1.18 (2015-01-01):
2586
2587 * [`bf8640b`](https://github.com/npm/npm/commit/bf8640b0395b5dff71260a0cede7efc699a7bcf5)
2588   [#7044](https://github.com/npm/npm/issues/7044) Document `.npmignore` syntax.
2589   ([@zeke](https://github.com/zeke))
2590
2591 ### v2.1.17 (2014-12-25):
2592
2593 merry npm xmas
2594
2595 Working with [@phated](https://github.com/phated), I discovered that npm still
2596 had some lingering race conditions around how it handles Git dependencies. The
2597 following changes were intended to remedy to these issues. Thanks to
2598 [@phated](https://github.com/phated) for all his help getting to the bottom of
2599 these.
2600
2601 * [`bdf1c84`](https://github.com/npm/npm/commit/bdf1c8483f5c4ad79b712db12d73276e15883923)
2602   [#7006](https://github.com/npm/npm/issues/7006) Only `chown` template and
2603   top-level Git cache directories. ([@othiym23](https://github.com/othiym23))
2604 * [`581a72d`](https://github.com/npm/npm/commit/581a72da18f35ec87edef6255adf4ef4714a478c)
2605   [#7006](https://github.com/npm/npm/issues/7006) Map Git remote inflighting to
2606   clone paths rather than Git URLs. ([@othiym23](https://github.com/othiym23))
2607 * [`1c48d08`](https://github.com/npm/npm/commit/1c48d08dea31a11ac11a285cac598a482481cade)
2608   [#7009](https://github.com/npm/npm/issues/7009) `normalize-git-url@1.0.0`:
2609   Normalize Git URLs while caching. ([@othiym23](https://github.com/othiym23))
2610 * [`5423cf0`](https://github.com/npm/npm/commit/5423cf0be8ff2b76bfff7c8e780e5f261235a86a)
2611   [#7009](https://github.com/npm/npm/issues/7009) Pack tarballs to their final
2612   locations atomically. ([@othiym23](https://github.com/othiym23))
2613 * [`7f6557f`](https://github.com/npm/npm/commit/7f6557ff317469ee4a87c542ff9a991e74ce9f38)
2614   [#7009](https://github.com/npm/npm/issues/7009) Inflight local directory
2615   packing, just to be safe. ([@othiym23](https://github.com/othiym23))
2616
2617 Other changes:
2618
2619 * [`1c491e6`](https://github.com/npm/npm/commit/1c491e65d70af013e8d5ac008d6d9762d6d91793)
2620   [#6991](https://github.com/npm/npm/issues/6991) `npm version`: fix regression
2621   in dirty-checking behavior ([@rlidwka](https://github.com/rlidwka))
2622 * [`55ceb2b`](https://github.com/npm/npm/commit/55ceb2b08ff8a0f56b94cc972ca15d7862e8733c)
2623   [#1991](https://github.com/npm/npm/issues/1991) modify docs to reflect actual
2624   `npm restart` behavior ([@smikes](https://github.com/smikes))
2625 * [`fb8e31b`](https://github.com/npm/npm/commit/fb8e31b95476a50bda35a665a99eec8a5d25a4db)
2626   [#6982](https://github.com/npm/npm/issues/6982) when doing registry
2627   operations, ensure registry URL always ends with `/`
2628   ([@othiym23](https://github.com/othiym23))
2629 * [`5bcba65`](https://github.com/npm/npm/commit/5bcba65bed2678ffe80fb596f72abe9871d131c8)
2630   pull whitelisted Git environment variables out into a named constant
2631   ([@othiym23](https://github.com/othiym23))
2632 * [`be04bbd`](https://github.com/npm/npm/commit/be04bbdc52ebfc820cd939df2f7d79fe87067747)
2633   [#7000](https://github.com/npm/npm/issues/7000) No longer install badly-named
2634   manpage files, and log an error when trying to uninstall them.
2635   ([@othiym23](https://github.com/othiym23))
2636 * [`6b7c5ec`](https://github.com/npm/npm/commit/6b7c5eca6b65e1247d0e51f6400cf2637ac880ce)
2637   [#7011](https://github.com/npm/npm/issues/7011) Send auth for tarball fetches
2638   for packages in `npm-shrinkwrap.json` from private registries.
2639     ([@othiym23](https://github.com/othiym23))
2640 * [`9b9de06`](https://github.com/npm/npm/commit/9b9de06a99893b40aa23f0335726dec6df7979db)
2641   `glob@4.3.2`: Better handling of trailing slashes.
2642   ([@isaacs](https://github.com/isaacs))
2643 * [`030f3c7`](https://github.com/npm/npm/commit/030f3c7450b8ce124a19073bfbae0948a0a1a02c)
2644   `semver@4.2.0`: Diffing between version strings.
2645   ([@isaacs](https://github.com/isaacs))
2646
2647 ### v2.1.16 (2014-12-22):
2648
2649 * [`a4e4e33`](https://github.com/npm/npm/commit/a4e4e33edb35c68813f04bf42bdf933a6f727bcd)
2650   [#6987](https://github.com/npm/npm/issues/6987) `read-installed@3.1.5`: fixed
2651   a regression where a new / empty package would cause read-installed to throw.
2652   ([@othiym23](https://github.com/othiym23) /
2653   [@pgilad](https://github.com/pgilad))
2654
2655 ### v2.1.15 (2014-12-18):
2656
2657 * [`e5a2dee`](https://github.com/npm/npm/commit/e5a2dee47c74f26c56fee5998545b97497e830c8)
2658   [#6951](https://github.com/npm/npm/issues/6951) `fs-vacuum@1.2.5`: Use
2659   `path-is-inside` for better Windows normalization.
2660   ([@othiym23](https://github.com/othiym23))
2661 * [`ac6167c`](https://github.com/npm/npm/commit/ac6167c2b9432939c57296f7ddd11ad5f8f918b2)
2662   [#6955](https://github.com/npm/npm/issues/6955) Call `path.normalize` in
2663   `lib/utils/gently-rm.js` for better Windows normalization.
2664   ([@ben-page](https://github.com/ben-page))
2665 * [`c625d71`](https://github.com/npm/npm/commit/c625d714795e3b5badd847945e2401adfad5a196)
2666   [#6964](https://github.com/npm/npm/issues/6964) Clarify CA configuration
2667   docs. ([@jeffjo](https://github.com/jeffjo))
2668 * [`58b8cb5`](https://github.com/npm/npm/commit/58b8cb5cdf26a854358b7c2ab636572dba9bac16)
2669   [#6950](https://github.com/npm/npm/issues/6950) Fix documentation typos.
2670   ([@martinvd](https://github.com/martinvd))
2671 * [`7c1299d`](https://github.com/npm/npm/commit/7c1299d00538ea998684a1903a4091eafc63b7f1)
2672   [#6909](https://github.com/npm/npm/issues/6909) Remove confusing mention of
2673   rubygems `~>` semver operator. ([@mjtko](https://github.com/mjtko))
2674 * [`7dfdcc6`](https://github.com/npm/npm/commit/7dfdcc6debd8ef1fc52a2b508997d15887aad824)
2675   [#6909](https://github.com/npm/npm/issues/6909) `semver@4.1.1`: Synchronize
2676   documentation with PR [#6909](https://github.com/npm/npm/issues/6909)
2677   ([@othiym23](https://github.com/othiym23))
2678 * [`adfddf3`](https://github.com/npm/npm/commit/adfddf3b682e0ae08e4b59d87c1b380dd651c572)
2679   [#6925](https://github.com/npm/npm/issues/6925) Correct typo in
2680   `doc/api/npm-ls.md` ([@oddurs](https://github.com/oddurs))
2681 * [`f5c534b`](https://github.com/npm/npm/commit/f5c534b711ab173129baf366c4f08d68f6117333)
2682   [#6920](https://github.com/npm/npm/issues/6920) Remove recommendation to run
2683   as root from `README.md`.
2684   ([@robertkowalski](https://github.com/robertkowalski))
2685 * [`3ef4459`](https://github.com/npm/npm/commit/3ef445922cd39f25b992d91bd22c4d367882ea22)
2686   [#6920](https://github.com/npm/npm/issues/6920) `npm-@googlegroups.com` has
2687   gone the way of all things. That means it's gone.
2688   ([@robertkowalski](https://github.com/robertkowalski))
2689
2690 ### v2.1.14 (2014-12-13):
2691
2692 * [`cf7aeae`](https://github.com/npm/npm/commit/cf7aeae3c3a24e48d3de4006fa082f0c6040922a)
2693   [#6923](https://github.com/npm/npm/issues/6923) Overaggressive link update
2694   for new website broke node-gyp. ([@othiym23](https://github.com/othiym23))
2695
2696 ### v2.1.13 (2014-12-11):
2697
2698 * [`cbb890e`](https://github.com/npm/npm/commit/cbb890eeacc0501ba1b8c6955f1c829c8af9f486)
2699   [#6897](https://github.com/npm/npm/issues/6897) npm is a nice package manager
2700   that runs server-side JavaScript. ([@othiym23](https://github.com/othiym23))
2701 * [`d9043c3`](https://github.com/npm/npm/commit/d9043c3b8d7450c3cb9ca795028c0e1c05377820)
2702   [#6893](https://github.com/npm/npm/issues/6893) Remove erroneous docs about
2703   preupdate / update / postupdate lifecycle scripts, which have never existed.
2704   ([@devTristan](https://github.com/devTristan))
2705 * [`c5df4d0`](https://github.com/npm/npm/commit/c5df4d0d683cd3506808d1cd1acebff02a8b82db)
2706   [#6884](https://github.com/npm/npm/issues/6884) Update npmjs.org to npmjs.com
2707   in docs. ([@linclark](https://github.com/linclark))
2708 * [`cb6ff8d`](https://github.com/npm/npm/commit/cb6ff8dace1b439851701d4784d2d719c22ca7a7)
2709   [#6879](https://github.com/npm/npm/issues/6879) npm version: Update
2710   shrinkwrap post-check. ([@othiym23](https://github.com/othiym23))
2711 * [`2a340bd`](https://github.com/npm/npm/commit/2a340bdd548c6449468281e1444a032812bff677)
2712   [#6868](https://github.com/npm/npm/issues/6868) Use magic numbers instead of
2713   regexps to distinguish tarballs from other things.
2714   ([@daxxog](https://github.com/daxxog))
2715 * [`f1c8bdb`](https://github.com/npm/npm/commit/f1c8bdb3f6b753d0600597e12346bdc3a34cb9c1)
2716   [#6861](https://github.com/npm/npm/issues/6861) `npm-registry-client@4.0.5`:
2717   Distinguish between error properties that are part of the response and error
2718   strings that should be returned to the user.
2719   ([@disrvptor](https://github.com/disrvptor))
2720 * [`d3a1b63`](https://github.com/npm/npm/commit/d3a1b6397fddef04b5198ca89d36d720aeb05eb6)
2721   [#6762](https://github.com/npm/npm/issues/6762) Make `npm outdated` ignore
2722   private packages. ([@KenanY](https://github.com/KenanY))
2723 * [`16d8542`](https://github.com/npm/npm/commit/16d854283ca5bcdb0cb2812fc5745d841652b952)
2724   install.sh: Drop support for node < 0.8, remove engines bits.
2725   ([@isaacs](https://github.com/isaacs))
2726 * [`b9c6046`](https://github.com/npm/npm/commit/b9c60466d5b713b1dc2947da14a5dfe42352e029)
2727   `init-package-json@1.1.3`: ([@terinstock](https://github.com/terinstock))
2728   noticed that `init.license` configuration doesn't stick. Make sure that
2729   dashed defaults don't trump dotted parameters.
2730   ([@othiym23](https://github.com/othiym23))
2731 * [`b6d6acf`](https://github.com/npm/npm/commit/b6d6acfc02c8887f78067931babab8f7c5180fed)
2732   `which@1.0.8`: No longer use graceful-fs for some reason.
2733   ([@isaacs](https://github.com/isaacs))
2734 * [`d39f673`](https://github.com/npm/npm/commit/d39f673caf08a90fb2bb001d79c98062d2cd05f4)
2735   `request@2.51.0`: Incorporate bug fixes. ([@nylen](https://github.com/nylen))
2736 * [`c7ad727`](https://github.com/npm/npm/commit/c7ad7279cc879930ec58ccc62fa642e621ecb65c)
2737   `columnify@1.3.2`: Incorporate bug fixes.
2738   ([@timoxley](https://github.com/timoxley))
2739
2740 ### v2.1.12 (2014-12-04):
2741
2742 * [`e5b1e44`](https://github.com/npm/npm/commit/e5b1e448bb4a9d6eae4ba0f67b1d3c2cea8ed383)
2743   add alias verison=version ([@isaacs](https://github.com/isaacs))
2744 * [`5eed7bd`](https://github.com/npm/npm/commit/5eed7bddbd7bb92a44c4193c93e8529500c558e6)
2745   `request@2.49.0` ([@nylen](https://github.com/nylen))
2746 * [`e72f81d`](https://github.com/npm/npm/commit/e72f81d8412540ae7d1e0edcc37c11bcb8169051)
2747   `glob@4.3.1` / `minimatch@2.0.1` ([@isaacs](https://github.com/isaacs))
2748 * [`b8dcc36`](https://github.com/npm/npm/commit/b8dcc3637b5b71933b97162b7aff1b1a622c13e2)
2749   `graceful-fs@3.0.5` ([@isaacs](https://github.com/isaacs))
2750
2751 ### v2.1.11 (2014-11-27):
2752
2753 * [`4861d28`](https://github.com/npm/npm/commit/4861d28ad0ebd959fe6bc15b9c9a50fcabe57f55)
2754   `which@1.0.7`: License update. ([@isaacs](https://github.com/isaacs))
2755 * [`30a2ea8`](https://github.com/npm/npm/commit/30a2ea80c891d384b31a1cf28665bba4271915bd)
2756   `ini@1.3.2`: License update. ([@isaacs](https://github.com/isaacs))
2757 * [`6a4ea05`](https://github.com/npm/npm/commit/6a4ea054f6ddf52fc58842ba2046564b04c5c0e2)
2758   `fstream@1.0.3`: Propagate error events to downstream streams.
2759   ([@gfxmonk](https://github.com/gfxmonk))
2760 * [`a558695`](https://github.com/npm/npm/commit/a5586954f1c18df7c96137e0a79f41a69e7a884e)
2761   `tar@1.0.3`: Don't extract broken files, propagate `drain` event.
2762   ([@gfxmonk](https://github.com/gfxmonk))
2763 * [`989624e`](https://github.com/npm/npm/commit/989624e8321f87734c1b1272fc2f646e7af1f81c)
2764   [#6767](https://github.com/npm/npm/issues/6767) Actually pass parameters when
2765   adding git repo to cach under Windows.
2766   ([@othiym23](https://github.com/othiym23))
2767 * [`657af73`](https://github.com/npm/npm/commit/657af7308f7d6cd2f81389fcf0d762252acaf1ce)
2768   [#6774](https://github.com/npm/npm/issues/6774) When verifying paths on
2769   unbuild, resolve both source and target as symlinks.
2770   ([@hokaccha](https://github.com/hokaccha))
2771 * [`fd19c40`](https://github.com/npm/npm/commit/fd19c4046414494f9647a6991c00f8406a939929)
2772   [#6713](https://github.com/npm/npm/issues/6713)
2773   `realize-package-specifier@1.3.0`: Make it so that `npm install foo@1` work
2774   when a file named `1` exists. ([@iarna](https://github.com/iarna))
2775 * [`c8ac37a`](https://github.com/npm/npm/commit/c8ac37a470491b2ed28514536e2e198494638c79)
2776   `npm-registry-client@4.0.4`: Fix regression in failed fetch retries.
2777   ([@othiym23](https://github.com/othiym23))
2778
2779 ### v2.1.10 (2014-11-20):
2780
2781 * [`756f3d4`](https://github.com/npm/npm/commit/756f3d40fe18bc02bc93afe17016dfcc266c4b6b)
2782   [#6735](https://github.com/npm/npm/issues/6735) Log "already built" messages
2783   at info, not error. ([@smikes](https://github.com/smikes))
2784 * [`1b7330d`](https://github.com/npm/npm/commit/1b7330dafba3bbba171f74f1e58b261cb1b9301e)
2785   [#6729](https://github.com/npm/npm/issues/6729) `npm-registry-client@4.0.3`:
2786   GitHub won't redirect you through an HTML page to a compressed tarball if you
2787   don't tell it you accept JSON responses.
2788   ([@KenanY](https://github.com/KenanY))
2789 * [`d9c7857`](https://github.com/npm/npm/commit/d9c7857be02dacd274e55bf6d430d90d91509d53)
2790   [#6506](https://github.com/npm/npm/issues/6506)
2791   `readdir-scoped-modules@1.0.1`: Use `graceful-fs` so the whole dependency
2792   tree gets read,  even in case of `EMFILE`.
2793   ([@sakana](https://github.com/sakana))
2794 * [`3a085be`](https://github.com/npm/npm/commit/3a085be158ace8f1e4395e69f8c102d3dea00c5f)
2795   Grammar fix in docs. ([@icylace](https://github.com/icylace))
2796 * [`3f8e2ff`](https://github.com/npm/npm/commit/3f8e2ff8342d327d6f1375437ecf4bd945dc360f)
2797   Did you know that npm has a Code of Conduct? Add a link to it to
2798   CONTRIBUTING.md. ([@isaacs](https://github.com/isaacs))
2799 * [`319ccf6`](https://github.com/npm/npm/commit/319ccf633289e06e57a80d74c39706899348674c)
2800   `glob@4.2.1`: Performance tuning. ([@isaacs](https://github.com/isaacs))
2801 * [`835f046`](https://github.com/npm/npm/commit/835f046e7568c33e81a0b48c84cff965024d8b8a)
2802   `readable-stream@1.0.33`: Bug fixes. ([@rvagg](https://github.com/rvagg))
2803 * [`a34c38d`](https://github.com/npm/npm/commit/a34c38d0732fb246d11f2a776d2ad0d8db654338)
2804   `request@2.48.0`: Bug fixes. ([@nylen](https://github.com/nylen))
2805
2806 ### v2.1.9 (2014-11-13):
2807
2808 * [`eed9f61`](https://github.com/npm/npm/commit/eed9f6101963364acffc59d7194fc1655180e80c)
2809   [#6542](https://github.com/npm/npm/issues/6542) `npm owner add / remove` now
2810   works properly with scoped packages
2811   ([@othiym23](https://github.com/othiym23))
2812 * [`cd25973`](https://github.com/npm/npm/commit/cd25973825aa5315b7ebf26227bd32bd6be5533f)
2813   [#6548](https://github.com/npm/npm/issues/6548) using sudo won't leave the
2814   cache's git directories with bad permissions
2815   ([@othiym23](https://github.com/othiym23))
2816 * [`56930ab`](https://github.com/npm/npm/commit/56930abcae6a6ea41f1b75e23765c61259cef2dd)
2817   fixed irregular `npm cache ls` output (yes, that's a thing)
2818   ([@othiym23](https://github.com/othiym23))
2819 * [`740f483`](https://github.com/npm/npm/commit/740f483db6ec872b453065842da080a646c3600a)
2820   legacy tests no longer poison user's own cache
2821   ([@othiym23](https://github.com/othiym23))
2822 * [`ce37f14`](https://github.com/npm/npm/commit/ce37f142a487023747a9086335618638ebca4372)
2823   [#6169](https://github.com/npm/npm/issues/6169) add terse output similar to
2824   `npm publish / unpublish` for `npm owner add / remove`
2825   ([@KenanY](https://github.com/KenanY))
2826 * [`bf2b8a6`](https://github.com/npm/npm/commit/bf2b8a66d7188900bf1e957c052b893948b67e0e)
2827   [#6680](https://github.com/npm/npm/issues/6680) pass auth credentials to
2828   registry when downloading search index
2829   ([@terinjokes](https://github.com/terinjokes))
2830 * [`00ecb61`](https://github.com/npm/npm/commit/00ecb6101422984696929f602e14da186f9f669c)
2831   [#6400](https://github.com/npm/npm/issues/6400) `.npmignore` is respected for
2832   git repos on cache / pack / publish
2833   ([@othiym23](https://github.com/othiym23))
2834 * [`d1b3a9e`](https://github.com/npm/npm/commit/d1b3a9ec5e2b6d52765ba5da5afb08dba41c49c1)
2835   [#6311](https://github.com/npm/npm/issues/6311) `npm ls -l --depth=0` no
2836   longer prints phantom duplicate children
2837   ([@othiym23](https://github.com/othiym23))
2838 * [`07c5f34`](https://github.com/npm/npm/commit/07c5f34e45c9b18c348ed53b5763b1c5d4325740)
2839   [#6690](https://github.com/npm/npm/issues/6690) `uid-number@0.0.6`: clarify
2840   confusing names in error-handling code ([@isaacs](https://github.com/isaacs))
2841 * [`1ac9be9`](https://github.com/npm/npm/commit/1ac9be9f3bab816211d72d13cb05b5587878a586)
2842   [#6684](https://github.com/npm/npm/issues/6684) `npm init`: don't report
2843   write if canceled ([@smikes](https://github.com/smikes))
2844 * [`7bb207d`](https://github.com/npm/npm/commit/7bb207d1d6592a9cffc986871e4b671575363c2f)
2845   [#5754](https://github.com/npm/npm/issues/5754) never remove app directories
2846   on failed install ([@othiym23](https://github.com/othiym23))
2847 * [`705ce60`](https://github.com/npm/npm/commit/705ce601e7b9c5428353e02ebb30cb76c1991fdd)
2848   [#5754](https://github.com/npm/npm/issues/5754) `fs-vacuum@1.2.2`: don't
2849   throw when another fs task writes to a directory being vacuumed
2850   ([@othiym23](https://github.com/othiym23))
2851 * [`1b650f4`](https://github.com/npm/npm/commit/1b650f4f217c413a2ffb96e1701beb5aa67a0de2)
2852   [#6255](https://github.com/npm/npm/issues/6255) ensure that order credentials
2853   are used from `.npmrc` doesn't regress
2854   ([@othiym23](https://github.com/othiym23))
2855 * [`9bb2c34`](https://github.com/npm/npm/commit/9bb2c3435cedef40b45d3e9bd7a8edfb8cbe7209)
2856   [#6644](https://github.com/npm/npm/issues/6644) `warn` rather than `info` on
2857   fetch failure ([@othiym23](https://github.com/othiym23))
2858 * [`e34a7b6`](https://github.com/npm/npm/commit/e34a7b6b7371b1893a062f627ae8e168546d7264)
2859   [#6524](https://github.com/npm/npm/issues/6524) `npm-registry-client@4.0.2`:
2860   proxy via `request` more transparently
2861   ([@othiym23](https://github.com/othiym23))
2862 * [`40afd6a`](https://github.com/npm/npm/commit/40afd6aaf34c11a10e80ec87b115fb2bb907e3bd)
2863   [#6524](https://github.com/npm/npm/issues/6524) push proxy settings into
2864   `request` ([@tauren](https://github.com/tauren))
2865
2866 ### v2.1.8 (2014-11-06):
2867
2868 * [`063d843`](https://github.com/npm/npm/commit/063d843965f9f0bfa5732d7c2d6f5aa37a8260a2)
2869   npm version now updates version in npm-shrinkwrap.json
2870   ([@faiq](https://github.com/faiq))
2871 * [`3f53cd7`](https://github.com/npm/npm/commit/3f53cd795f8a600e904a97f215ba5b5a9989d9dd)
2872   [#6559](https://github.com/npm/npm/issues/6559) save local dependencies in
2873   npm-shrinkwrap.json ([@Torsph](https://github.com/Torsph))
2874 * [`e249262`](https://github.com/npm/npm/commit/e24926268b2d2220910bc81cce6d3b2e08d94eb1)
2875   npm-faq.md: mention scoped pkgs in namespace Q
2876   ([@smikes](https://github.com/smikes))
2877 * [`6b06ec4`](https://github.com/npm/npm/commit/6b06ec4ef5da490bdca1512fa7f12490245c192b)
2878   [#6642](https://github.com/npm/npm/issues/6642) `init-package-json@1.1.2`:
2879   Handle both `init-author-name` and `init.author.name`.
2880   ([@othiym23](https://github.com/othiym23))
2881 * [`9cb334c`](https://github.com/npm/npm/commit/9cb334c8a895a55461aac18791babae779309a0e)
2882   [#6409](https://github.com/npm/npm/issues/6409) document commit-ish with
2883   GitHub URLs ([@smikes](https://github.com/smikes))
2884 * [`0aefae9`](https://github.com/npm/npm/commit/0aefae9bc2598a4b7a3ee7bb2306b42e3e12bb28)
2885   [#2959](https://github.com/npm/npm/issues/2959) npm run no longer fails
2886   silently ([@flipside](https://github.com/flipside))
2887 * [`e007a2c`](https://github.com/npm/npm/commit/e007a2c1e4fac1759fa61ac6e78c6b83b2417d11)
2888   [#3908](https://github.com/npm/npm/issues/3908) include command in spawn
2889   errors ([@smikes](https://github.com/smikes))
2890
2891 ### v2.1.7 (2014-10-30):
2892
2893 * [`6750b05`](https://github.com/npm/npm/commit/6750b05dcba20d8990a672957ec56c48f97e241a)
2894   [#6398](https://github.com/npm/npm/issues/6398) `npm-registry-client@4.0.0`:
2895   consistent API, handle relative registry paths, use auth more consistently
2896   ([@othiym23](https://github.com/othiym23))
2897 * [`7719cfd`](https://github.com/npm/npm/commit/7719cfdd8b204dfeccc41289707ea58b4d608905)
2898   [#6560](https://github.com/npm/npm/issues/6560) use new npm-registry-client
2899   API ([@othiym23](https://github.com/othiym23))
2900 * [`ed61971`](https://github.com/npm/npm/commit/ed619714c93718b6c1922b8c286f4b6cd2b97c80)
2901   move caching of search metadata from `npm-registry-client` to npm itself
2902   ([@othiym23](https://github.com/othiym23))
2903 * [`3457041`](https://github.com/npm/npm/commit/34570414cd528debeb22943873440594d7f47abf)
2904   handle caching of metadata independently from `npm-registry-client`
2905   ([@othiym23](https://github.com/othiym23))
2906 * [`20a331c`](https://github.com/npm/npm/commit/20a331ced6a52faac6ec242e3ffdf28bcd447c40)
2907   [#6538](https://github.com/npm/npm/issues/6538) map registry URLs to
2908   credentials more safely ([@indexzero](https://github.com/indexzero))
2909 * [`4072e97`](https://github.com/npm/npm/commit/4072e97856bf1e7affb38333d080c172767eea27)
2910   [#6589](https://github.com/npm/npm/issues/6589) `npm-registry-client@4.0.1`:
2911   allow publishing of packages with names identical to built-in Node modules
2912   ([@feross](https://github.com/feross))
2913 * [`254f0e4`](https://github.com/npm/npm/commit/254f0e4adaf2c56e9df25c7343c43b0b0804a3b5)
2914   `tar@1.0.2`: better error-handling ([@runk](https://github.com/runk))
2915 * [`73ee2aa`](https://github.com/npm/npm/commit/73ee2aa4f1a47e43fe7cf4317a5446875f7521fa)
2916   `request@2.47.0` ([@mikeal](https://github.com/mikeal))
2917
2918 ### v2.1.6 (2014-10-23):
2919
2920 * [`681b398`](https://github.com/npm/npm/commit/681b3987a18e7aba0aaf78c91a23c7cc0ab82ce8)
2921   [#6523](https://github.com/npm/npm/issues/6523) fix default `logelevel` doc
2922   ([@KenanY](https://github.com/KenanY))
2923 * [`80b368f`](https://github.com/npm/npm/commit/80b368ffd786d4d008734b56c4a6fe12d2cb2926)
2924   [#6528](https://github.com/npm/npm/issues/6528) `npm version` should work in
2925   a git directory without git ([@terinjokes](https://github.com/terinjokes))
2926 * [`5f5f9e4`](https://github.com/npm/npm/commit/5f5f9e4ddf544c2da6adf3f8c885238b0e745076)
2927   [#6483](https://github.com/npm/npm/issues/6483) `init-package-json@1.1.1`:
2928   Properly pick up default values from environment variables.
2929   ([@othiym23](https://github.com/othiym23))
2930 * [`a114870`](https://github.com/npm/npm/commit/a1148702f53f82d49606b2e4dac7581261fff442)
2931   perl 5.18.x doesn't like -pi without filenames
2932   ([@othiym23](https://github.com/othiym23))
2933 * [`de5ba00`](https://github.com/npm/npm/commit/de5ba007a48db876eb5bfb6156435f3512d58977)
2934   `request@2.46.0`: Tests and cleanup.
2935   ([@othiym23](https://github.com/othiym23))
2936 * [`76933f1`](https://github.com/npm/npm/commit/76933f169f17b5273b32e924a7b392d5729931a7)
2937   `fstream-npm@1.0.1`: Always include `LICENSE[.*]`, `LICENCE[.*]`,
2938   `CHANGES[.*]`, `CHANGELOG[.*]`, and `HISTORY[.*]`.
2939   ([@jonathanong](https://github.com/jonathanong))
2940
2941 ### v2.1.5 (2014-10-16):
2942
2943 * [`6a14b23`](https://github.com/npm/npm/commit/6a14b232a0e34158bd95bb25c607167be995c204)
2944   [#6397](https://github.com/npm/npm/issues/6397) Defactor npmconf back into
2945   npm. ([@othiym23](https://github.com/othiym23))
2946 * [`4000e33`](https://github.com/npm/npm/commit/4000e3333a76ca4844681efa8737cfac24b7c2c8)
2947   [#6323](https://github.com/npm/npm/issues/6323) Install `peerDependencies`
2948   from top. ([@othiym23](https://github.com/othiym23))
2949 * [`5d119ae`](https://github.com/npm/npm/commit/5d119ae246f27353b14ff063559d1ba8c616bb89)
2950   [#6498](https://github.com/npm/npm/issues/6498) Better error messages on
2951   malformed `.npmrc` properties. ([@nicks](https://github.com/nicks))
2952 * [`ae18efb`](https://github.com/npm/npm/commit/ae18efb65fed427b1ef18e4862885bf60b87b92e)
2953   [#6093](https://github.com/npm/npm/issues/6093) Replace instances of 'hash'
2954   with 'object' in documentation. ([@zeke](https://github.com/zeke))
2955 * [`53108b2`](https://github.com/npm/npm/commit/53108b276fec5f97a38250933a2768d58b6928da)
2956   [#1558](https://github.com/npm/npm/issues/1558) Clarify how local paths
2957   should be used. ([@KenanY](https://github.com/KenanY))
2958 * [`344fa1a`](https://github.com/npm/npm/commit/344fa1a219ac8867022df3dc58a47636dde8a242)
2959   [#6488](https://github.com/npm/npm/issues/6488) Work around bug in marked.
2960   ([@othiym23](https://github.com/othiym23))
2961
2962 OUTDATED DEPENDENCY CLEANUP JAMBOREE
2963
2964 * [`60c2942`](https://github.com/npm/npm/commit/60c2942e13655d9ecdf6e0f1f97f10cb71a75255)
2965   `realize-package-specifier@1.2.0`: Handle names and rawSpecs more
2966   consistently. ([@iarna](https://github.com/iarna))
2967 * [`1b5c95f`](https://github.com/npm/npm/commit/1b5c95fbda77b87342bd48c5ecac5b1fd571ccfe)
2968   `sha@1.3.0`: Change line endings?
2969   ([@ForbesLindesay](https://github.com/ForbesLindesay))
2970 * [`d7dee3f`](https://github.com/npm/npm/commit/d7dee3f3f7d9e7c2061a4ecb4dd93e3e4bfe4f2e)
2971   `request@2.45.0`: Dependency updates, better proxy support, better compressed
2972   response handling, lots of 'use strict'.
2973   ([@mikeal](https://github.com/mikeal))
2974 * [`3d75180`](https://github.com/npm/npm/commit/3d75180c2cc79fa3adfa0e4cb783a27192189a65)
2975   `opener@1.4.0`: Added gratuitous return.
2976   ([@Domenic](https://github.com/Domenic))
2977 * [`8e2703f`](https://github.com/npm/npm/commit/8e2703f78d280d1edeb749e257dda1f288bad6e3)
2978   `retry@0.6.1` / `npm-registry-client@3.2.4`: Change of ownership.
2979   ([@tim-kos](https://github.com/tim-kos))
2980 * [`c87b00f`](https://github.com/npm/npm/commit/c87b00f82f92434ee77831915012c77a6c244c39)
2981   `once@1.3.1`: Wrap once with wrappy. ([@isaacs](https://github.com/isaacs))
2982 * [`01ec790`](https://github.com/npm/npm/commit/01ec790fd47def56eda6abb3b8d809093e8f493f)
2983   `npm-user-validate@0.1.1`: Correct repository URL.
2984   ([@robertkowalski](https://github.com/robertkowalski))
2985 * [`389e52c`](https://github.com/npm/npm/commit/389e52c2d94c818ca8935ccdcf392994fec564a2)
2986   `glob@4.0.6`: Now absolutely requires `graceful-fs`.
2987   ([@isaacs](https://github.com/isaacs))
2988 * [`e15ab15`](https://github.com/npm/npm/commit/e15ab15a27a8f14cf0d9dc6f11dee452080378a0)
2989   `ini@1.3.0`: Tighten up whitespace handling.
2990   ([@isaacs](https://github.com/isaacs))
2991 * [`7610f3e`](https://github.com/npm/npm/commit/7610f3e62e699292ece081bfd33084d436e3246d)
2992   `archy@1.0.0` ([@substack](https://github.com/substack))
2993 * [`9c13149`](https://github.com/npm/npm/commit/9c1314985e513e20ffa3ea0ca333ba2ab78299c9)
2994   `semver@4.1.0`: Add support for prerelease identifiers.
2995   ([@bromanko](https://github.com/bromanko))
2996 * [`f096c25`](https://github.com/npm/npm/commit/f096c250441b031d758f03afbe8d2321f94c7703)
2997   `graceful-fs@3.0.4`: Add a bunch of additional tests, skip the unfortunate
2998   complications of `graceful-fs@3.0.3`. ([@isaacs](https://github.com/isaacs))
2999
3000 ### v2.1.4 (2014-10-09):
3001
3002 * [`3aeb440`](https://github.com/npm/npm/commit/3aeb4401444fad83cc7a8d11bf2507658afa5248)
3003   [#6442](https://github.com/npm/npm/issues/6442) proxying git needs `GIT_SSL_CAINFO`
3004   ([@wmertens](https://github.com/wmertens))
3005 * [`a8da8d6`](https://github.com/npm/npm/commit/a8da8d6e0cd56d97728c0b76b51604ee06ef6264)
3006   [#6413](https://github.com/npm/npm/issues/6413) write builtin config on any
3007   global npm install ([@isaacs](https://github.com/isaacs))
3008 * [`9e4d632`](https://github.com/npm/npm/commit/9e4d632c0142ba55df07d624667738b8727336fc)
3009   [#6343](https://github.com/npm/npm/issues/6343) don't pass run arguments to
3010   pre & post scripts ([@TheLudd](https://github.com/TheLudd))
3011 * [`d831b1f`](https://github.com/npm/npm/commit/d831b1f7ca1a9921ea5b394e39b7130ecbc6d7b4)
3012   [#6399](https://github.com/npm/npm/issues/6399) race condition: inflight
3013   installs, prevent `peerDependency` problems
3014   ([@othiym23](https://github.com/othiym23))
3015 * [`82b775d`](https://github.com/npm/npm/commit/82b775d6ff34c4beb6c70b2344d491a9f2026577)
3016   [#6384](https://github.com/npm/npm/issues/6384) race condition: inflight
3017   caching by URL rather than semver range
3018   ([@othiym23](https://github.com/othiym23))
3019 * [`7bee042`](https://github.com/npm/npm/commit/7bee0429066fedcc9e6e962c043eb740b3792809)
3020   `inflight@1.0.4`: callback can take arbitrary number of parameters
3021   ([@othiym23](https://github.com/othiym23))
3022 * [`3bff494`](https://github.com/npm/npm/commit/3bff494f4abf17d6d7e0e4a3a76cf7421ecec35a)
3023   [#5195](https://github.com/npm/npm/issues/5195) fixed regex color regression
3024   for `npm search` ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
3025 * [`33ba2d5`](https://github.com/npm/npm/commit/33ba2d585160a0a2a322cb76c4cd989acadcc984)
3026   [#6387](https://github.com/npm/npm/issues/6387) allow `npm view global` if
3027   package is specified ([@evanlucas](https://github.com/evanlucas))
3028 * [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
3029   [#6388](https://github.com/npm/npm/issues/6388) npm-publish ā†’
3030   npm-developers(7) ([@kennydude](https://github.com/kennydude))
3031
3032 TEST CLEANUP EXTRAVAGANZA:
3033
3034 * [`8d6bfcb`](https://github.com/npm/npm/commit/8d6bfcb88408f5885a2a67409854c43e5c3a23f6)
3035   tap tests run with no system-wide side effects
3036   ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
3037 * [`7a1472f`](https://github.com/npm/npm/commit/7a1472fbdbe99956ad19f629e7eb1cc07ba026ef)
3038   added npm cache cleanup script
3039   ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
3040 * [`0ce6a37`](https://github.com/npm/npm/commit/0ce6a3752fa9119298df15671254db6bc1d8e64c)
3041   stripped out dead test code (othiym23)
3042 * replace spawn with common.npm (@chrismeyersfsu):
3043     * [`0dcd614`](https://github.com/npm/npm/commit/0dcd61446335eaf541bf5f2d5186ec1419f86a42)
3044       test/tap/cache-shasum-fork.js
3045     * [`97f861c`](https://github.com/npm/npm/commit/97f861c967606a7e51e3d5047cf805d9d1adea5a)
3046       test/tap/false_name.js
3047     * [`d01b3de`](https://github.com/npm/npm/commit/d01b3de6ce03f25bbf3db97bfcd3cc85830d6801)
3048       test/tap/git-cache-locking.js
3049     * [`7b63016`](https://github.com/npm/npm/commit/7b63016778124c6728d6bd89a045c841ae3900b6)
3050       test/tap/pack-scoped.js
3051     * [`c877553`](https://github.com/npm/npm/commit/c877553265c39673e03f0a97972f692af81a595d)
3052       test/tap/scripts-whitespace-windows.js
3053     * [`df98525`](https://github.com/npm/npm/commit/df98525331e964131299d457173c697cfb3d95b9)
3054       test/tap/prepublish.js
3055     * [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
3056       test/tap/prune.js
3057
3058 ### v2.1.3 (2014-10-02):
3059
3060 BREAKING CHANGE FOR THE SQRT(i) PEOPLE ACTUALLY USING `npm submodule`:
3061
3062 * [`1e64473`](https://github.com/npm/npm/commit/1e6447360207f45ad6188e5780fdf4517de6e23d)
3063   `rm -rf npm submodule` command, which has been broken since the Carter
3064   Administration ([@isaacs](https://github.com/isaacs))
3065
3066 BREAKING CHANGE IF YOU ARE FOR SOME REASON STILL USING NODE 0.6 AND YOU SHOULD
3067 NOT BE DOING THAT CAN YOU NOT:
3068
3069 * [`3e431f9`](https://github.com/npm/npm/commit/3e431f9d6884acb4cde8bcb8a0b122a76b33ee1d)
3070   [joyent/node#8492](https://github.com/joyent/node/issues/8492) bye bye
3071   customFds, hello stdio ([@othiym23](https://github.com/othiym23))
3072
3073 Other changes:
3074
3075 * [`ea607a8`](https://github.com/npm/npm/commit/ea607a8a20e891ad38eed11b5ce2c3c0a65484b9)
3076   [#6372](https://github.com/npm/npm/issues/6372) noisily error (without
3077   aborting) on multi-{install,build} ([@othiym23](https://github.com/othiym23))
3078 * [`3ee2799`](https://github.com/npm/npm/commit/3ee2799b629fd079d2db21d7e8f25fa7fa1660d0)
3079   [#6372](https://github.com/npm/npm/issues/6372) only make cache creation
3080   requests in flight ([@othiym23](https://github.com/othiym23))
3081 * [`1a90ec2`](https://github.com/npm/npm/commit/1a90ec2f2cfbefc8becc6ef0c480e5edacc8a4cb)
3082   [#6372](https://github.com/npm/npm/issues/6372) wait to put Git URLs in
3083   flight until normalized ([@othiym23](https://github.com/othiym23))
3084 * [`664795b`](https://github.com/npm/npm/commit/664795bb7d8da7142417b3f4ef5986db3a394071)
3085   [#6372](https://github.com/npm/npm/issues/6372) log what is and isn't in
3086   flight ([@othiym23](https://github.com/othiym23))
3087 * [`00ef580`](https://github.com/npm/npm/commit/00ef58025a1f52dfabf2c4dc3898621d16a6e062)
3088   `inflight@1.0.3`: fix largely theoretical race condition, because we really
3089   really hate race conditions ([@isaacs](https://github.com/isaacs))
3090 * [`1cde465`](https://github.com/npm/npm/commit/1cde4658d897ae0f93ff1d65b258e1571b391182)
3091   [#6363](https://github.com/npm/npm/issues/6363)
3092   `realize-package-specifier@1.1.0`: handle local dependencies better
3093   ([@iarna](https://github.com/iarna))
3094 * [`86f084c`](https://github.com/npm/npm/commit/86f084c6c6d7935cd85d72d9d94b8784c914d51e)
3095   `realize-package-specifier@1.0.2`: dependency realization! in its own module!
3096   ([@iarna](https://github.com/iarna))
3097 * [`553d830`](https://github.com/npm/npm/commit/553d830334552b83606b6bebefd821c9ea71e964)
3098   `npm-package-arg@2.1.3`: simplified semver, better tests
3099   ([@iarna](https://github.com/iarna))
3100 * [`bec9b61`](https://github.com/npm/npm/commit/bec9b61a316c19f5240657594f0905a92a474352)
3101   `readable-stream@1.0.32`: for some reason
3102   ([@rvagg](https://github.com/rvagg))
3103 * [`ff08ec5`](https://github.com/npm/npm/commit/ff08ec5f6d717bdbd559de0b2ede769306a9a763)
3104   `dezalgo@1.0.1`: use wrappy for instrumentability
3105   ([@isaacs](https://github.com/isaacs))
3106
3107 ### v2.1.2 (2014-09-29):
3108
3109 * [`a1aa20e`](https://github.com/npm/npm/commit/a1aa20e44bb8285c6be1e7fa63b9da920e3a70ed)
3110   [#6282](https://github.com/npm/npm/issues/6282)
3111   `normalize-package-data@1.0.3`: don't prune bundledDependencies
3112   ([@isaacs](https://github.com/isaacs))
3113 * [`a1f5fe1`](https://github.com/npm/npm/commit/a1f5fe1005043ce20a06e8b17a3e201aa3215357)
3114   move locks back into cache, now path-aware
3115   ([@othiym23](https://github.com/othiym23))
3116 * [`a432c4b`](https://github.com/npm/npm/commit/a432c4b48c881294d6d79b5f41c2e1c16ad15a8a)
3117   convert lib/utils/tar.js to use atomic streams
3118   ([@othiym23](https://github.com/othiym23))
3119 * [`b8c3c74`](https://github.com/npm/npm/commit/b8c3c74a3c963564233204161cc263e0912c930b)
3120   `fs-write-stream-atomic@1.0.2`: Now works with streams1 fs.WriteStreams.
3121   ([@isaacs](https://github.com/isaacs))
3122 * [`c7ab76f`](https://github.com/npm/npm/commit/c7ab76f44cce5f42add5e3ba879bd10e7e00c3e6)
3123   logging cleanup ([@othiym23](https://github.com/othiym23))
3124 * [`4b2d95d`](https://github.com/npm/npm/commit/4b2d95d0641435b09d047ae5cb2226f292bf38f0)
3125   [#6329](https://github.com/npm/npm/issues/6329) efficiently validate tmp
3126   tarballs safely ([@othiym23](https://github.com/othiym23))
3127
3128 ### v2.1.1 (2014-09-26):
3129
3130 * [`563225d`](https://github.com/npm/npm/commit/563225d813ea4c12f46d4f7821ac7f76ba8ee2d6)
3131   [#6318](https://github.com/npm/npm/issues/6318) clean up locking; prefix
3132   lockfile with "." ([@othiym23](https://github.com/othiym23))
3133 * [`c7f30e4`](https://github.com/npm/npm/commit/c7f30e4550fea882d31fcd4a55b681cd30713c44)
3134   [#6318](https://github.com/npm/npm/issues/6318) remove locking code around
3135   tarball packing and unpacking ([@othiym23](https://github.com/othiym23))
3136
3137 ### v2.1.0 (2014-09-25):
3138
3139 NEW FEATURE:
3140
3141 * [`3635601`](https://github.com/npm/npm/commit/36356011b6f2e6a5a81490e85a0a44eb27199dd7)
3142   [#5520](https://github.com/npm/npm/issues/5520) Add `'npm view .'`.
3143   ([@evanlucas](https://github.com/evanlucas))
3144
3145 Other changes:
3146
3147 * [`f24b552`](https://github.com/npm/npm/commit/f24b552b596d0627549cdd7c2d68fcf9006ea50a)
3148   [#6294](https://github.com/npm/npm/issues/6294) Lock cache ā†’ lock cache
3149   target. ([@othiym23](https://github.com/othiym23))
3150 * [`ad54450`](https://github.com/npm/npm/commit/ad54450104f94c82c501138b4eee488ce3a4555e)
3151   [#6296](https://github.com/npm/npm/issues/6296) Ensure that npm-debug.log
3152   file is created when rollbacks are done.
3153   ([@isaacs](https://github.com/isaacs))
3154 * [`6810071`](https://github.com/npm/npm/commit/681007155a40ac9d165293bd6ec5d8a1423ccfca)
3155   docs: Default loglevel "http" ā†’ "warn".
3156   ([@othiym23](https://github.com/othiym23))
3157 * [`35ac89a`](https://github.com/npm/npm/commit/35ac89a940f23db875e882ce2888208395130336)
3158   Skip installation of installed scoped packages.
3159   ([@timoxley](https://github.com/timoxley))
3160 * [`e468527`](https://github.com/npm/npm/commit/e468527256ec599892b9b88d61205e061d1ab735)
3161   Ensure cleanup executes for scripts-whitespace-windows test.
3162   ([@timoxley](https://github.com/timoxley))
3163 * [`ef9101b`](https://github.com/npm/npm/commit/ef9101b7f346797749415086956a0394528a12c4)
3164   Ensure cleanup executes for packed-scope test.
3165   ([@timoxley](https://github.com/timoxley))
3166 * [`69b4d18`](https://github.com/npm/npm/commit/69b4d18cdbc2ae04c9afaffbd273b436a394f398)
3167   `fs-write-stream-atomic@1.0.1`: Fix a race condition in our race-condition
3168   fixer. ([@isaacs](https://github.com/isaacs))
3169 * [`26b17ff`](https://github.com/npm/npm/commit/26b17ff2e3b21ee26c6fdbecc8273520cff45718)
3170   [#6272](https://github.com/npm/npm/issues/6272) `npmconf` decides what the
3171   default prefix is. ([@othiym23](https://github.com/othiym23))
3172 * [`846faca`](https://github.com/npm/npm/commit/846facacc6427dafcf5756dcd36d9036539938de)
3173   Fix development dependency is preferred over dependency.
3174   ([@andersjanmyr](https://github.com/andersjanmyr))
3175 * [`9d1a9db`](https://github.com/npm/npm/commit/9d1a9db3af5adc48a7158a5a053eeb89ee41a0e7)
3176   [#3265](https://github.com/npm/npm/issues/3265) Re-apply a71615a. Fixes
3177   [#3265](https://github.com/npm/npm/issues/3265) again, with a test!
3178   ([@glasser](https://github.com/glasser))
3179 * [`1d41db0`](https://github.com/npm/npm/commit/1d41db0b2744a7bd50971c35cc060ea0600fb4bf)
3180   `marked-man@0.1.4`: Fixes formatting of synopsis blocks in man docs.
3181   ([@kapouer](https://github.com/kapouer))
3182 * [`a623da0`](https://github.com/npm/npm/commit/a623da01bea1b2d3f3a18b9117cfd2d8e3cbdd77)
3183   [#5867](https://github.com/npm/npm/issues/5867) Specify dummy git template
3184   dir when cloning to prevent copying hooks.
3185   ([@boneskull](https://github.com/boneskull))
3186
3187 ### v2.0.2 (2014-09-19):
3188
3189 * [`42c872b`](https://github.com/npm/npm/commit/42c872b32cadc0e555638fc78eab3a38a04401d8)
3190   [#5920](https://github.com/npm/npm/issues/5920)
3191   `fs-write-stream-atomic@1.0.0` ([@isaacs](https://github.com/isaacs))
3192 * [`6784767`](https://github.com/npm/npm/commit/6784767fe15e28b44c81a1d4bb1738c642a65d78)
3193   [#5920](https://github.com/npm/npm/issues/5920) make all write streams atomic
3194   ([@isaacs](https://github.com/isaacs))
3195 * [`f6fac00`](https://github.com/npm/npm/commit/f6fac000dd98ebdd5ea1d5921175735d463d328b)
3196   [#5920](https://github.com/npm/npm/issues/5920) barf on 0-length cached
3197   tarballs ([@isaacs](https://github.com/isaacs))
3198 * [`3b37592`](https://github.com/npm/npm/commit/3b37592a92ea98336505189ae8ca29248b0589f4)
3199   `write-file-atomic@1.1.0`: use graceful-fs
3200   ([@iarna](https://github.com/iarna))
3201
3202 ### v2.0.1 (2014-09-18):
3203
3204 * [`74c5ab0`](https://github.com/npm/npm/commit/74c5ab0a676793c6dc19a3fd5fe149f85fecb261)
3205   [#6201](https://github.com/npm/npm/issues/6201) `npmconf@2.1.0`: scope
3206   always-auth to registry URI ([@othiym23](https://github.com/othiym23))
3207 * [`774b127`](https://github.com/npm/npm/commit/774b127da1dd6fefe2f1299e73505d9146f00294)
3208   [#6201](https://github.com/npm/npm/issues/6201) `npm-registry-client@3.2.2`:
3209   use scoped always-auth settings ([@othiym23](https://github.com/othiym23))
3210 * [`f2d2190`](https://github.com/npm/npm/commit/f2d2190aa365d22378d03afab0da13f95614a583)
3211   [#6201](https://github.com/npm/npm/issues/6201) support saving
3212   `--always-auth` when logging in ([@othiym23](https://github.com/othiym23))
3213 * [`17c941a`](https://github.com/npm/npm/commit/17c941a2d583210fe97ed47e2968d94ce9f774ba)
3214   [#6163](https://github.com/npm/npm/issues/6163) use `write-file-atomic`
3215   instead of `fs.writeFile()` ([@fiws](https://github.com/fiws))
3216 * [`fb5724f`](https://github.com/npm/npm/commit/fb5724fd98e1509c939693568df83d11417ea337)
3217   [#5925](https://github.com/npm/npm/issues/5925) `npm init -f`: allow `npm
3218   init` to run without prompting
3219   ([@michaelnisi](https://github.com/michaelnisi))
3220 * [`b706d63`](https://github.com/npm/npm/commit/b706d637d5965dbf8f7ce07dc5c4bc80887f30d8)
3221   [#3059](https://github.com/npm/npm/issues/3059) disable prepublish when
3222   running `npm install --production`
3223   ([@jussi-kalliokoski](https://github.com/jussi-kalliokoski))
3224 * [`119f068`](https://github.com/npm/npm/commit/119f068eae2a36fa8b9c9ca557c70377792243a4)
3225   attach the node version used when publishing a package to its registry
3226   metadata ([@othiym23](https://github.com/othiym23))
3227 * [`8fe0081`](https://github.com/npm/npm/commit/8fe008181665519c2ac201ee432a3ece9798c31f)
3228   seriously, don't use `npm -g update npm`
3229   ([@thomblake](https://github.com/thomblake))
3230 * [`ea5b3d4`](https://github.com/npm/npm/commit/ea5b3d446b86dcabb0dbc6dba374d3039342ecb3)
3231   `request@2.44.0` ([@othiym23](https://github.com/othiym23))
3232
3233 ### v2.0.0 (2014-09-12):
3234
3235 BREAKING CHANGES:
3236
3237 * [`4378a17`](https://github.com/npm/npm/commit/4378a17db340404a725ffe2eb75c9936f1612670)
3238   `semver@4.0.0`: prerelease versions no longer show up in ranges; `^0.x.y`
3239   behaves the way it did in `semver@2` rather than `semver@3`; docs have been
3240   reorganized for comprehensibility ([@isaacs](https://github.com/isaacs))
3241 * [`c6ddb64`](https://github.com/npm/npm/commit/c6ddb6462fe32bf3a27b2c4a62a032a92e982429)
3242   npm now assumes that node is newer than 0.6
3243   ([@isaacs](https://github.com/isaacs))
3244
3245 Other changes:
3246
3247 * [`ea515c3`](https://github.com/npm/npm/commit/ea515c3b858bf493a7b87fa4cdc2110a0d9cef7f)
3248   [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all
3249   callbacks have finished before proceeding
3250   ([@othiym23](https://github.com/othiym23))
3251 * [`0b0a59d`](https://github.com/npm/npm/commit/0b0a59d504f20f424294b1590ace73a7464f0378)
3252   [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just
3253   before the CLI exits ([@isaacs](https://github.com/isaacs))
3254 * [`a11c88b`](https://github.com/npm/npm/commit/a11c88bdb1488b87d8dcac69df9a55a7a91184b6)
3255   [#6175](https://github.com/npm/npm/issues/6175) pack scoped packages
3256   correctly ([@othiym23](https://github.com/othiym23))
3257 * [`e4e48e0`](https://github.com/npm/npm/commit/e4e48e037d4e95fdb6acec80b04c5c6eaee59970)
3258   [#6121](https://github.com/npm/npm/issues/6121) `read-installed@3.1.2`: don't
3259   mark linked dev dependencies as extraneous
3260   ([@isaacs](https://github.com/isaacs))
3261 * [`d673e41`](https://github.com/npm/npm/commit/d673e4185d43362c2b2a91acbca8c057e7303c7b)
3262   `cmd-shim@2.0.1`: depend on `graceful-fs` directly
3263   ([@ForbesLindesay](https://github.com/ForbesLindesay))
3264 * [`9d54d45`](https://github.com/npm/npm/commit/9d54d45e602d595bdab7eae09b9fa1dc46370147)
3265   `npm-registry-couchapp@2.5.3`: make tests more reliable on Travis
3266   ([@iarna](https://github.com/iarna))
3267 * [`673d738`](https://github.com/npm/npm/commit/673d738c6142c3d043dcee0b7aa02c9831a2e0ca)
3268   ensure permissions are set correctly in cache when running as root
3269   ([@isaacs](https://github.com/isaacs))
3270 * [`6e6a5fb`](https://github.com/npm/npm/commit/6e6a5fb74af10fd345411df4e121e554e2e3f33e)
3271   prepare for upgrade to `node-semver@4.0.0`
3272   ([@isaacs](https://github.com/isaacs))
3273 * [`ab8dd87`](https://github.com/npm/npm/commit/ab8dd87b943262f5996744e8d4cc30cc9358b7d7)
3274   swap out `ronn` for `marked-man@0.1.3` ([@isaacs](https://github.com/isaacs))
3275 * [`803da54`](https://github.com/npm/npm/commit/803da5404d5a0b7c9defa3fe7fa0f2d16a2b19d3)
3276   `npm-registry-client@3.2.0`: prepare for `node-semver@4.0.0` and include more
3277   error information ([@isaacs](https://github.com/isaacs))
3278 * [`4af0e71`](https://github.com/npm/npm/commit/4af0e7134f5757c3d456d83e8349224a4ba12660)
3279   make default error display less scary ([@isaacs](https://github.com/isaacs))
3280 * [`4fd9e79`](https://github.com/npm/npm/commit/4fd9e7901a15abff7a3dd478d99ce239b9580bca)
3281   `npm-registry-client@3.2.1`: handle errors returned by the registry much,
3282   much better ([@othiym23](https://github.com/othiym23))
3283 * [`ca791e2`](https://github.com/npm/npm/commit/ca791e27e97e51c1dd491bff6622ac90b54c3e23)
3284   restore a long (always?) missing pass for deduping
3285   ([@othiym23](https://github.com/othiym23))
3286 * [`ca0ef0e`](https://github.com/npm/npm/commit/ca0ef0e99bbdeccf28d550d0296baa4cb5e7ece2)
3287   correctly interpret relative paths for local dependencies
3288   ([@othiym23](https://github.com/othiym23))
3289 * [`5eb8db2`](https://github.com/npm/npm/commit/5eb8db2c370eeb4cd34f6e8dc6a935e4ea325621)
3290   `npm-package-arg@2.1.2`: support git+file:// URLs for local bare repos
3291   ([@othiym23](https://github.com/othiym23))
3292 * [`860a185`](https://github.com/npm/npm/commit/860a185c43646aca84cb93d1c05e2266045c316b)
3293   tweak docs to no longer advocate checking in `node_modules`
3294   ([@hunterloftis](https://github.com/hunterloftis))
3295 * [`80e9033`](https://github.com/npm/npm/commit/80e9033c40e373775e35c674faa6c1948661782b)
3296   add links to nodejs.org downloads to docs
3297   ([@meetar](https://github.com/meetar))
3298
3299 ### v1.4.28 (2014-09-12):
3300
3301 * [`f4540b6`](https://github.com/npm/npm/commit/f4540b6537a87e653d7495a9ddcf72949fdd4d14)
3302   [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just
3303   before the CLI exits ([@isaacs](https://github.com/isaacs))
3304 * [`1eabfd5`](https://github.com/npm/npm/commit/1eabfd5c03f33c2bd28823714ff02059eeee3899)
3305   [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all
3306   callbacks have finished before proceeding
3307   ([@othiym23](https://github.com/othiym23))
3308
3309 ### v2.0.0-beta.3 (2014-09-04):
3310
3311 * [`fa79413`](https://github.com/npm/npm/commit/fa794138bec8edb7b88639db25ee9c010d2f4c2b)
3312   [#6119](https://github.com/npm/npm/issues/6119) fall back to registry installs
3313   if package.json is missing in a local directory ([@iarna](https://github.com/iarna))
3314 * [`16073e2`](https://github.com/npm/npm/commit/16073e2d8ae035961c4c189b602d4aacc6d6b387)
3315   `npm-package-arg@2.1.0`: support file URIs as local specs
3316   ([@othiym23](https://github.com/othiym23))
3317 * [`9164acb`](https://github.com/npm/npm/commit/9164acbdee28956fa816ce5e473c559395ae4ec2)
3318   `github-url-from-username-repo@1.0.2`: don't match strings that are already
3319   URIs ([@othiym23](https://github.com/othiym23))
3320 * [`4067d6b`](https://github.com/npm/npm/commit/4067d6bf303a69be13f3af4b19cf4fee1b0d3e12)
3321   [#5629](https://github.com/npm/npm/issues/5629) support saving of local packages
3322   in `package.json` ([@dylang](https://github.com/dylang))
3323 * [`1b2ffdf`](https://github.com/npm/npm/commit/1b2ffdf359a8c897a78f91fc5a5d535c97aaec97)
3324   [#6097](https://github.com/npm/npm/issues/6097) document scoped packages
3325   ([@seldo](https://github.com/seldo))
3326 * [`0a67d53`](https://github.com/npm/npm/commit/0a67d536067c4808a594d81288d34c0f7e97e105)
3327   [#6007](https://github.com/npm/npm/issues/6007) `request@2.42.0`: properly
3328   set headers on proxy requests ([@isaacs](https://github.com/isaacs))
3329 * [`9bac6b8`](https://github.com/npm/npm/commit/9bac6b860b674d24251bb7b8ba412fdb26cbc836)
3330   `npmconf@2.0.8`: disallow semver ranges in tag configuration
3331   ([@isaacs](https://github.com/isaacs))
3332 * [`d2d4d7c`](https://github.com/npm/npm/commit/d2d4d7cd3c32f91a87ffa11fe464d524029011c3)
3333   [#6082](https://github.com/npm/npm/issues/6082) don't allow tagging with a
3334   semver range as the tag name ([@isaacs](https://github.com/isaacs))
3335
3336 ### v1.4.27 (2014-09-04):
3337
3338 * [`4cf3c8f`](https://github.com/npm/npm/commit/4cf3c8fd78c9e2693a5f899f50c28f4823c88e2e)
3339   [#6007](https://github.com/npm/npm/issues/6007) request@2.42.0: properly set
3340   headers on proxy requests ([@isaacs](https://github.com/isaacs))
3341 * [`403cb52`](https://github.com/npm/npm/commit/403cb526be1472bb7545fa8e62d4976382cdbbe5)
3342   [#6055](https://github.com/npm/npm/issues/6055) npmconf@1.1.8: restore
3343   case-insensitivity of environmental config
3344   ([@iarna](https://github.com/iarna))
3345
3346 ### v2.0.0-beta.2 (2014-08-29):
3347
3348 SPECIAL LABOR DAY WEEKEND RELEASE PARTY WOOO
3349
3350 * [`ed207e8`](https://github.com/npm/npm/commit/ed207e88019de3150037048df6267024566e1093)
3351   `npm-registry-client@3.1.7`: Clean up auth logic and improve logging around
3352   auth decisions. Also error on trying to change a user document without
3353   writing to it. ([@othiym23](https://github.com/othiym23))
3354 * [`66c7423`](https://github.com/npm/npm/commit/66c7423b7fb07a326b83c83727879410d43c439f)
3355   `npmconf@2.0.7`: support -C as an alias for --prefix
3356   ([@isaacs](https://github.com/isaacs))
3357 * [`0dc6a07`](https://github.com/npm/npm/commit/0dc6a07c778071c94c2251429c7d107e88a45095)
3358   [#6059](https://github.com/npm/npm/issues/6059) run commands in prefix, not
3359   cwd ([@isaacs](https://github.com/isaacs))
3360 * [`65d2179`](https://github.com/npm/npm/commit/65d2179af96737eb9038eaa24a293a62184aaa13)
3361   `github-url-from-username-repo@1.0.1`: part 3 handle slashes in branch names
3362   ([@robertkowalski](https://github.com/robertkowalski))
3363 * [`e8d75d0`](https://github.com/npm/npm/commit/e8d75d0d9f148ce2b3e8f7671fa281945bac363d)
3364   [#6057](https://github.com/npm/npm/issues/6057) `read-installed@3.1.1`:
3365   properly handle extraneous dev dependencies of required dependencies
3366   ([@othiym23](https://github.com/othiym23))
3367 * [`0602f70`](https://github.com/npm/npm/commit/0602f708f070d524ad41573afd4c57171cab21ad)
3368   [#6064](https://github.com/npm/npm/issues/6064) ls: do not show deps of
3369   extraneous deps ([@isaacs](https://github.com/isaacs))
3370
3371 ### v2.0.0-beta.1 (2014-08-28):
3372
3373 * [`78a1fc1`](https://github.com/npm/npm/commit/78a1fc12307a0cbdbc944775ed831b876ee65855)
3374   `github-url-from-git@1.4.0`: add support for git+https and git+ssh
3375   ([@stefanbuck](https://github.com/stefanbuck))
3376 * [`bf247ed`](https://github.com/npm/npm/commit/bf247edf5429c6b3ec4d4cb798fa0eb0a9c19fc1)
3377   `columnify@1.2.1` ([@othiym23](https://github.com/othiym23))
3378 * [`4bbe682`](https://github.com/npm/npm/commit/4bbe682a6d4eabcd23f892932308c9f228bf4de3)
3379   `cmd-shim@2.0.0`: upgrade to graceful-fs 3
3380   ([@ForbesLindesay](https://github.com/ForbesLindesay))
3381 * [`ae1d590`](https://github.com/npm/npm/commit/ae1d590bdfc2476a4ed446e760fea88686e3ae05)
3382   `npm-package-arg@2.0.4`: accept slashes in branch names
3383   ([@thealphanerd](https://github.com/thealphanerd))
3384 * [`b2f51ae`](https://github.com/npm/npm/commit/b2f51aecadf585711e145b6516f99e7c05f53614)
3385   `semver@3.0.1`: semver.clean() is cleaner
3386   ([@isaacs](https://github.com/isaacs))
3387 * [`1d041a8`](https://github.com/npm/npm/commit/1d041a8a5ebd5bf6cecafab2072d4ec07823adab)
3388   `github-url-from-username-repo@1.0.0`: accept slashes in branch names
3389   ([@robertkowalski](https://github.com/robertkowalski))
3390 * [`02c85d5`](https://github.com/npm/npm/commit/02c85d592c4058e5d9eafb0be36b6743ae631998)
3391   `async-some@1.0.1` ([@othiym23](https://github.com/othiym23))
3392 * [`5af493e`](https://github.com/npm/npm/commit/5af493efa8a463cd1acc4a9a394699e2c0793b9c)
3393   ensure lifecycle spawn errors caught properly
3394   ([@isaacs](https://github.com/isaacs))
3395 * [`60fe012`](https://github.com/npm/npm/commit/60fe012fac9570d6c72554cdf34a6fa95bf0f0a6)
3396   `npmconf@2.0.6`: init.version defaults to 1.0.0
3397   ([@isaacs](https://github.com/isaacs))
3398 * [`b4c717b`](https://github.com/npm/npm/commit/b4c717bbf58fb6a0d64ad229036c79a184297ee2)
3399   `npm-registry-client@3.1.4`: properly encode % in passwords
3400   ([@isaacs](https://github.com/isaacs))
3401 * [`7b55f44`](https://github.com/npm/npm/commit/7b55f44420252baeb3f30da437d22956315c31c9)
3402   doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs))
3403
3404 ### v1.4.26 (2014-08-28):
3405
3406 * [`eceea95`](https://github.com/npm/npm/commit/eceea95c804fa15b18e91c52c0beb08d42a3e77d)
3407   `github-url-from-git@1.4.0`: add support for git+https and git+ssh
3408   ([@stefanbuck](https://github.com/stefanbuck))
3409 * [`e561758`](https://github.com/npm/npm/commit/e5617587e7d7ab686192391ce55357dbc7fed0a3)
3410   `columnify@1.2.1` ([@othiym23](https://github.com/othiym23))
3411 * [`0c4fab3`](https://github.com/npm/npm/commit/0c4fab372ee76eab01dda83b6749429a8564902e)
3412   `cmd-shim@2.0.0`: upgrade to graceful-fs 3
3413   ([@ForbesLindesay](https://github.com/ForbesLindesay))
3414 * [`2d69e4d`](https://github.com/npm/npm/commit/2d69e4d95777671958b5e08d3b2f5844109d73e4)
3415   `github-url-from-username-repo@1.0.0`: accept slashes in branch names
3416   ([@robertkowalski](https://github.com/robertkowalski))
3417 * [`81f9b2b`](https://github.com/npm/npm/commit/81f9b2bac9d34c223ea093281ba3c495f23f10d1)
3418   ensure lifecycle spawn errors caught properly
3419   ([@isaacs](https://github.com/isaacs))
3420 * [`bfaab8c`](https://github.com/npm/npm/commit/bfaab8c6e0942382a96b250634ded22454c36b5a)
3421   `npm-registry-client@2.0.7`: properly encode % in passwords
3422   ([@isaacs](https://github.com/isaacs))
3423 * [`91cfb58`](https://github.com/npm/npm/commit/91cfb58dda851377ec604782263519f01fd96ad8)
3424   doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs))
3425
3426 ### v2.0.0-beta.0 (2014-08-21):
3427
3428 * [`685f8be`](https://github.com/npm/npm/commit/685f8be1f2770cc75fd0e519a8d7aac72735a270)
3429   `npm-registry-client@3.1.3`: Print the notification header returned by the
3430   registry, and make sure status codes are printed without gratuitous quotes
3431   around them. ([@isaacs](https://github.com/isaacs) /
3432   [@othiym23](https://github.com/othiym23))
3433 * [`a8cb676`](https://github.com/npm/npm/commit/a8cb676aef0561eaf04487d2719672b097392c85)
3434   [#5900](https://github.com/npm/npm/issues/5900) remove `npm` from its own
3435   `engines` field in `package.json`. None of us remember why it was there.
3436   ([@timoxley](https://github.com/timoxley))
3437 * [`6c47201`](https://github.com/npm/npm/commit/6c47201a7d071e8bf091b36933daf4199cc98e80)
3438   [#5752](https://github.com/npm/npm/issues/5752),
3439   [#6013](https://github.com/npm/npm/issues/6013) save git URLs correctly in
3440   `_resolved` fields ([@isaacs](https://github.com/isaacs))
3441 * [`e4e1223`](https://github.com/npm/npm/commit/e4e1223a91c37688ba3378e1fc9d5ae045654d00)
3442   [#5936](https://github.com/npm/npm/issues/5936) document the use of tags in
3443   `package.json` ([@KenanY](https://github.com/KenanY))
3444 * [`c92b8d4`](https://github.com/npm/npm/commit/c92b8d4db7bde2a501da5b7d612684de1d629a42)
3445   [#6004](https://github.com/npm/npm/issues/6004) manually installed scoped
3446   packages are tracked correctly ([@dead](https://github.com/dead)-horse)
3447 * [`21ca0aa`](https://github.com/npm/npm/commit/21ca0aaacbcfe2b89b0a439d914da0cae62de550)
3448   [#5945](https://github.com/npm/npm/issues/5945) link scoped packages
3449   correctly ([@dead](https://github.com/dead)-horse)
3450 * [`16bead7`](https://github.com/npm/npm/commit/16bead7f2c82aec35b83ff0ec04df051ba456764)
3451   [#5958](https://github.com/npm/npm/issues/5958) ensure that file streams work
3452   in all versions of node ([@dead](https://github.com/dead)-horse)
3453 * [`dbf0cab`](https://github.com/npm/npm/commit/dbf0cab29d0db43ac95e4b5a1fbdea1e0af75f10)
3454   you can now pass quoted args to `npm run-script`
3455   ([@bcoe](https://github.com/bcoe))
3456 * [`0583874`](https://github.com/npm/npm/commit/05838743f01ccb8d2432b3858d66847002fb62df)
3457   `tar@1.0.1`: Add test for removing an extract target immediately after
3458   unpacking.
3459   ([@isaacs](https://github.com/isaacs))
3460 * [`cdf3b04`](https://github.com/npm/npm/commit/cdf3b0428bc0b0183fb41dcde9e34e8f42c5e3a7)
3461   `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`, and
3462   `retries` options. Part 2 of race condition leading to `ENOENT`
3463   ([@isaacs](https://github.com/isaacs))
3464   errors.
3465 * [`22d72a8`](https://github.com/npm/npm/commit/22d72a87a9e1a9ab56d9585397f63551887d9125)
3466   `fstream@1.0.2`: Fix a double-finish call which can result in excess FS
3467   operations after the `close` event. Part 1 of race condition leading to
3468   `ENOENT` errors.
3469   ([@isaacs](https://github.com/isaacs))
3470
3471 ### v1.4.25 (2014-08-21):
3472
3473 * [`64c0ec2`](https://github.com/npm/npm/commit/64c0ec241ef5d83761ca8de54acb3c41b079956e)
3474   `npm-registry-client@2.0.6`: Print the notification header returned by the
3475   registry, and make sure status codes are printed without gratuitous quotes
3476   around them.
3477   ([@othiym23](https://github.com/othiym23))
3478 * [`a8ed12b`](https://github.com/npm/npm/commit/a8ed12b) `tar@1.0.1`:
3479   Add test for removing an extract target immediately after unpacking.
3480   ([@isaacs](https://github.com/isaacs))
3481 * [`70fd11d`](https://github.com/npm/npm/commit/70fd11d)
3482   `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`,
3483   and `retries` options.  Part 2 of race condition leading to `ENOENT`
3484   errors.
3485   ([@isaacs](https://github.com/isaacs))
3486 * [`0072c4d`](https://github.com/npm/npm/commit/0072c4d)
3487   `fstream@1.0.2`: Fix a double-finish call which can result in excess
3488   FS operations after the `close` event.  Part 2 of race condition
3489   leading to `ENOENT` errors.
3490   ([@isaacs](https://github.com/isaacs))
3491
3492 ### v2.0.0-alpha.7 (2014-08-14):
3493
3494 * [`f23f1d8`](https://github.com/npm/npm/commit/f23f1d8e8f86ec1b7ab8dad68250bccaa67d61b1)
3495   doc: update version doc to include `pre-*` increment args
3496   ([@isaacs](https://github.com/isaacs))
3497 * [`b6bb746`](https://github.com/npm/npm/commit/b6bb7461824d4dc1c0936f46bd7929b5cd597986)
3498   build: add 'make tag' to tag current release as latest
3499   ([@isaacs](https://github.com/isaacs))
3500 * [`27c4bb6`](https://github.com/npm/npm/commit/27c4bb606e46e5eaf604b19fe8477bc6567f8b2e)
3501   build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs))
3502 * [`cff66c3`](https://github.com/npm/npm/commit/cff66c3bf2850880058ebe2a26655dafd002495e)
3503   build: add script to output `v1.4-next` publish tag
3504   ([@isaacs](https://github.com/isaacs))
3505 * [`22abec8`](https://github.com/npm/npm/commit/22abec8833474879ac49b9604c103bc845dad779)
3506   build: remove outdated `docpublish` make target
3507   ([@isaacs](https://github.com/isaacs))
3508 * [`1be4de5`](https://github.com/npm/npm/commit/1be4de51c3976db8564f72b00d50384c921f0917)
3509   build: remove `unpublish` step from `make publish`
3510   ([@isaacs](https://github.com/isaacs))
3511 * [`e429e20`](https://github.com/npm/npm/commit/e429e2011f4d78e398f2461bca3e5a9a146fbd0c)
3512   doc: add new changelog ([@othiym23](https://github.com/othiym23))
3513 * [`9243d20`](https://github.com/npm/npm/commit/9243d207896ea307082256604c10817f7c318d68)
3514   lifecycle: test lifecycle path modification
3515   ([@isaacs](https://github.com/isaacs))
3516 * [`021770b`](https://github.com/npm/npm/commit/021770b9cb07451509f0a44afff6c106311d8cf6)
3517   lifecycle: BREAKING CHANGE do not add the directory containing node executable
3518   ([@chulkilee](https://github.com/chulkilee))
3519 * [`1d5c41d`](https://github.com/npm/npm/commit/1d5c41dd0d757bce8b87f10c4135f04ece55aeb9)
3520   install: rename .gitignore when unpacking foreign tarballs
3521   ([@isaacs](https://github.com/isaacs))
3522 * [`9aac267`](https://github.com/npm/npm/commit/9aac2670a73423544d92b27cc301990a16a9563b)
3523   cache: detect non-gzipped tar files more reliably
3524   ([@isaacs](https://github.com/isaacs))
3525 * [`3f24755`](https://github.com/npm/npm/commit/3f24755c8fce3c7ab11ed1dc632cc40d7ef42f62)
3526   `readdir-scoped-modules@1.0.0` ([@isaacs](https://github.com/isaacs))
3527 * [`151cd2f`](https://github.com/npm/npm/commit/151cd2ff87b8ac2fc9ea366bc9b7f766dc5b9684)
3528   `read-installed@3.1.0` ([@isaacs](https://github.com/isaacs))
3529 * [`f5a9434`](https://github.com/npm/npm/commit/f5a94343a8ebe4a8cd987320b55137aef53fb3fd)
3530   test: fix Travis timeouts ([@dylang](https://github.com/dylang))
3531 * [`126cafc`](https://github.com/npm/npm/commit/126cafcc6706814c88af3042f2ffff408747bff4)
3532   `npm-registry-couchapp@2.5.0` ([@othiym23](https://github.com/othiym23))
3533
3534 ### v1.4.24 (2014-08-14):
3535
3536 * [`9344bd9`](https://github.com/npm/npm/commit/9344bd9b2929b5c399a0e0e0b34d45bce7bc24bb)
3537   doc: add new changelog ([@othiym23](https://github.com/othiym23))
3538 * [`4be76fd`](https://github.com/npm/npm/commit/4be76fd65e895883c337a99f275ccc8c801adda3)
3539   doc: update version doc to include `pre-*` increment args
3540   ([@isaacs](https://github.com/isaacs))
3541 * [`e4f2620`](https://github.com/npm/npm/commit/e4f262036080a282ad60e236a9aeebd39fde9fe4)
3542   build: add `make tag` to tag current release as `latest`
3543   ([@isaacs](https://github.com/isaacs))
3544 * [`ec2596a`](https://github.com/npm/npm/commit/ec2596a7cb626772780b25b0a94a7e547a812bd5)
3545   build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs))
3546 * [`9ee55f8`](https://github.com/npm/npm/commit/9ee55f892b8b473032a43c59912c5684fd1b39e6)
3547   build: add script to output `v1.4-next` publish tag
3548   ([@isaacs](https://github.com/isaacs))
3549 * [`aecb56f`](https://github.com/npm/npm/commit/aecb56f95a84687ea46920a0b98aaa587fee1568)
3550   build: remove outdated `docpublish` make target
3551   ([@isaacs](https://github.com/isaacs))
3552 * [`b57a9b7`](https://github.com/npm/npm/commit/b57a9b7ccd13e6b38831ed63595c8ea5763da247)
3553   build: remove unpublish step from `make publish`
3554   ([@isaacs](https://github.com/isaacs))
3555 * [`2c6acb9`](https://github.com/npm/npm/commit/2c6acb96c71c16106965d5cd829b67195dd673c7)
3556   install: rename `.gitignore` when unpacking foreign tarballs
3557   ([@isaacs](https://github.com/isaacs))
3558 * [`22f3681`](https://github.com/npm/npm/commit/22f3681923e993a47fc1769ba735bfa3dd138082)
3559   cache: detect non-gzipped tar files more reliably
3560   ([@isaacs](https://github.com/isaacs))
3561
3562 ### v2.0.0-alpha.6 (2014-08-07):
3563
3564 BREAKING CHANGE:
3565
3566 * [`ea547e2`](https://github.com/npm/npm/commit/ea547e2) Bump semver to
3567   version 3: `^0.x.y` is now functionally the same as `=0.x.y`.
3568   ([@isaacs](https://github.com/isaacs))
3569
3570 Other changes:
3571
3572 * [`d987707`](https://github.com/npm/npm/commit/d987707) move fetch into
3573   npm-registry-client ([@othiym23](https://github.com/othiym23))
3574 * [`9b318e2`](https://github.com/npm/npm/commit/9b318e2) `read-installed@3.0.0`
3575   ([@isaacs](https://github.com/isaacs))
3576 * [`9d73de7`](https://github.com/npm/npm/commit/9d73de7) remove unnecessary
3577   mkdirps ([@isaacs](https://github.com/isaacs))
3578 * [`33ccd13`](https://github.com/npm/npm/commit/33ccd13) Don't squash execute
3579   perms in `_git-remotes/` dir ([@adammeadows](https://github.com/adammeadows))
3580 * [`48fd233`](https://github.com/npm/npm/commit/48fd233) `npm-package-arg@2.0.1`
3581   ([@isaacs](https://github.com/isaacs))
3582
3583 ### v1.4.23 (2014-07-31):
3584
3585 * [`8dd11d1`](https://github.com/npm/npm/commit/8dd11d1) update several
3586   dependencies to avoid using `semver`s starting with 0.
3587
3588 ### v1.4.22 (2014-07-31):
3589
3590 * [`d9a9e84`](https://github.com/npm/npm/commit/d9a9e84) `read-package-json@1.2.4`
3591   ([@isaacs](https://github.com/isaacs))
3592 * [`86f0340`](https://github.com/npm/npm/commit/86f0340)
3593   `github-url-from-git@1.2.0` ([@isaacs](https://github.com/isaacs))
3594 * [`a94136a`](https://github.com/npm/npm/commit/a94136a) `fstream@0.1.29`
3595   ([@isaacs](https://github.com/isaacs))
3596 * [`bb82d18`](https://github.com/npm/npm/commit/bb82d18) `glob@4.0.5`
3597   ([@isaacs](https://github.com/isaacs))
3598 * [`5b6bcf4`](https://github.com/npm/npm/commit/5b6bcf4) `cmd-shim@1.1.2`
3599   ([@isaacs](https://github.com/isaacs))
3600 * [`c2aa8b3`](https://github.com/npm/npm/commit/c2aa8b3) license: Cleaned up
3601   legalese with actual lawyer ([@isaacs](https://github.com/isaacs))
3602 * [`63fe0ee`](https://github.com/npm/npm/commit/63fe0ee) `init-package-json@1.0.0`
3603   ([@isaacs](https://github.com/isaacs))
3604
3605 ### v2.0.0-alpha-5 (2014-07-22):
3606
3607 This release bumps up to 2.0 because of this breaking change, which could
3608 potentially affect how your package's scripts are run:
3609
3610 * [`df4b0e7`](https://github.com/npm/npm/commit/df4b0e7fc1abd9a54f98db75ec9e4d03d37d125b)
3611   [#5518](https://github.com/npm/npm/issues/5518) BREAKING CHANGE: support
3612   passing arguments to `run` scripts ([@bcoe](https://github.com/bcoe))
3613
3614 Other changes:
3615
3616 * [`cd422c9`](https://github.com/npm/npm/commit/cd422c9de510766797c65720d70f085000f50543)
3617   [#5748](https://github.com/npm/npm/issues/5748) link binaries for scoped
3618   packages ([@othiym23](https://github.com/othiym23))
3619 * [`4c3c778`](https://github.com/npm/npm/commit/4c3c77839920e830991e0c229c3c6a855c914d67)
3620   [#5758](https://github.com/npm/npm/issues/5758) `npm link` includes scope
3621   when linking scoped package ([@fengmk2](https://github.com/fengmk2))
3622 * [`f9f58dd`](https://github.com/npm/npm/commit/f9f58dd0f5b715d4efa6619f13901916d8f99c47)
3623   [#5707](https://github.com/npm/npm/issues/5707) document generic pre- /
3624   post-commands ([@sudodoki](https://github.com/sudodoki))
3625 * [`ac7a480`](https://github.com/npm/npm/commit/ac7a4801d80361b41dce4a18f22bcdf75e396000)
3626   [#5406](https://github.com/npm/npm/issues/5406) `npm cache` displays usage
3627   when called without arguments
3628   ([@michaelnisi](https://github.com/michaelnisi))
3629 * [`f4554e9`](https://github.com/npm/npm/commit/f4554e99d34f77a8a02884493748f7d49a9a9d8b)
3630   Test fixes for Windows ([@isaacs](https://github.com/isaacs))
3631 * update dependencies ([@othiym23](https://github.com/othiym23))
3632
3633
3634 ### v1.5.0-alpha-4 (2014-07-18):
3635
3636 * fall back to `_auth` config as default auth when using default registry
3637   ([@isaacs](https://github.com/isaacs))
3638 * support for 'init.version' for those who don't want to deal with semver 0.0.x
3639   oddities ([@rvagg](https://github.com/rvagg))
3640 * [`be06213`](https://github.com/npm/npm/commit/be06213415f2d51a50d2c792b4cd0d3412a9a7b1)
3641   remove residual support for `win` log level
3642   ([@aterris](https://github.com/aterris))
3643
3644 ### v1.5.0-alpha-3 (2014-07-17):
3645
3646 * [`a3a85dd`](https://github.com/npm/npm/commit/a3a85dd004c9245a71ad2f0213bd1a9a90d64cd6)
3647   `--save` scoped packages correctly ([@othiym23](https://github.com/othiym23))
3648 * [`18a3385`](https://github.com/npm/npm/commit/18a3385bcf8bfb8312239216afbffb7eec759150)
3649   `npm-registry-client@3.0.2` ([@othiym23](https://github.com/othiym23))
3650 * [`375988b`](https://github.com/npm/npm/commit/375988b9bf5aa5170f06a790d624d31b1eb32c6d)
3651   invalid package names are an early error for optional deps
3652   ([@othiym23](https://github.com/othiym23))
3653 * consistently use `node-package-arg` instead of arbitrary package spec
3654   splitting ([@othiym23](https://github.com/othiym23))
3655
3656 ### v1.4.21 (2014-07-14):
3657
3658 * [`88f51aa`](https://github.com/npm/npm/commit/88f51aa27eb9a958d1fa7ec50fee5cfdedd05110)
3659   fix handling for 301s in `npm-registry-client@2.0.3`
3660   ([@Raynos](https://github.com/Raynos))
3661
3662 ### v1.5.0-alpha-2 (2014-07-01):
3663
3664 * [`54cf625`](https://github.com/npm/npm/commit/54cf62534e3331e3f454e609e44f0b944e819283)
3665   fix handling for 301s in `npm-registry-client@3.0.1`
3666   ([@Raynos](https://github.com/Raynos))
3667 * [`e410861`](https://github.com/npm/npm/commit/e410861c69a3799c1874614cb5b87af8124ff98d)
3668   don't crash if no username set on `whoami`
3669   ([@isaacs](https://github.com/isaacs))
3670 * [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406)
3671   respect `--json` for output ([@isaacs](https://github.com/isaacs))
3672 * [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6)
3673   outdated: Don't show headings if there's nothing to output
3674   ([@isaacs](https://github.com/isaacs))
3675 * [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3)
3676   outdated: Default to `latest` rather than `*` for unspecified deps
3677   ([@isaacs](https://github.com/isaacs))
3678
3679 ### v1.4.20 (2014-07-02):
3680
3681 * [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406)
3682   respect `--json` for output ([@isaacs](https://github.com/isaacs))
3683 * [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6)
3684   outdated: Don't show headings if there's nothing to output
3685   ([@isaacs](https://github.com/isaacs))
3686 * [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3)
3687   outdated: Default to `latest` rather than `*` for unspecified deps
3688   ([@isaacs](https://github.com/isaacs))
3689
3690 ### v1.5.0-alpha-1 (2014-07-01):
3691
3692 * [`eef4884`](https://github.com/npm/npm/commit/eef4884d6487ee029813e60a5f9c54e67925d9fa)
3693   use the correct piece of the spec for GitHub shortcuts
3694   ([@othiym23](https://github.com/othiym23))
3695
3696 ### v1.5.0-alpha-0 (2014-07-01):
3697
3698 * [`7f55057`](https://github.com/npm/npm/commit/7f55057807cfdd9ceaf6331968e666424f48116c)
3699   install scoped packages ([#5239](https://github.com/npm/npm/issues/5239))
3700   ([@othiym23](https://github.com/othiym23))
3701 * [`0df7e16`](https://github.com/npm/npm/commit/0df7e16c0232d8f4d036ebf4ec3563215517caac)
3702   publish scoped packages ([#5239](https://github.com/npm/npm/issues/5239))
3703   ([@othiym23](https://github.com/othiym23))
3704 * [`0689ba2`](https://github.com/npm/npm/commit/0689ba249b92b4c6279a26804c96af6f92b3a501)
3705   support (and save) --scope=@s config
3706   ([@othiym23](https://github.com/othiym23))
3707 * [`f34878f`](https://github.com/npm/npm/commit/f34878fc4cee29901e4daf7bace94be01e25cad7)
3708   scope credentials to registry ([@othiym23](https://github.com/othiym23))
3709 * [`0ac7ca2`](https://github.com/npm/npm/commit/0ac7ca233f7a69751fe4386af6c4daa3ee9fc0da)
3710   capture and store bearer tokens when sent by registry
3711   ([@othiym23](https://github.com/othiym23))
3712 * [`63c3277`](https://github.com/npm/npm/commit/63c3277f089b2c4417e922826bdc313ac854cad6)
3713   only delete files that are created by npm
3714   ([@othiym23](https://github.com/othiym23))
3715 * [`4f54043`](https://github.com/npm/npm/commit/4f540437091d1cbca3915cd20c2da83c2a88bb8e)
3716   `npm-package-arg@2.0.0` ([@othiym23](https://github.com/othiym23))
3717 * [`9e1460e`](https://github.com/npm/npm/commit/9e1460e6ac9433019758481ec031358f4af4cd44)
3718   `read-package-json@1.2.3` ([@othiym23](https://github.com/othiym23))
3719 * [`719d8ad`](https://github.com/npm/npm/commit/719d8adb9082401f905ff4207ede494661f8a554)
3720   `fs-vacuum@1.2.1` ([@othiym23](https://github.com/othiym23))
3721 * [`9ef8fe4`](https://github.com/npm/npm/commit/9ef8fe4d6ead3acb3e88c712000e2d3a9480ebec)
3722   `async-some@1.0.0` ([@othiym23](https://github.com/othiym23))
3723 * [`a964f65`](https://github.com/npm/npm/commit/a964f65ab662107b62a4ca58535ce817e8cca331)
3724   `npmconf@2.0.1` ([@othiym23](https://github.com/othiym23))
3725 * [`113765b`](https://github.com/npm/npm/commit/113765bfb7d3801917c1d9f124b8b3d942bec89a)
3726   `npm-registry-client@3.0.0` ([@othiym23](https://github.com/othiym23))
3727
3728 ### v1.4.19 (2014-07-01):
3729
3730 * [`f687433`](https://github.com/npm/npm/commit/f687433) relative URLS for
3731   working non-root registry URLS ([@othiym23](https://github.com/othiym23))
3732 * [`bea190c`](https://github.com/npm/npm/commit/bea190c)
3733   [#5591](https://github.com/npm/npm/issues/5591) bump nopt and npmconf
3734   ([@isaacs](https://github.com/isaacs))
3735
3736 ### v1.4.18 (2014-06-29):
3737
3738 * Bump glob dependency from 4.0.2 to 4.0.3. It now uses graceful-fs when
3739   available, increasing resilience to [various filesystem
3740   errors](https://github.com/isaacs/node-graceful-fs#improvements-over-fs-module).
3741   ([@isaacs](https://github.com/isaacs))
3742
3743 ### v1.4.17 (2014-06-27):
3744
3745 * replace escape codes with ansicolors
3746   ([@othiym23](https://github.com/othiym23))
3747 * Allow to build all the docs OOTB. ([@GeJ](https://github.com/GeJ))
3748 * Use core.longpaths on win32 git - fixes
3749   [#5525](https://github.com/npm/npm/issues/5525) ([@bmeck](https://github.com/bmeck))
3750 * `npmconf@1.1.2` ([@isaacs](https://github.com/isaacs))
3751 * Consolidate color sniffing in config/log loading process
3752   ([@isaacs](https://github.com/isaacs))
3753 * add verbose log when project config file is ignored
3754   ([@isaacs](https://github.com/isaacs))
3755 * npmconf: Float patch to remove 'scope' from config defs
3756   ([@isaacs](https://github.com/isaacs))
3757 * doc: npm-explore can't handle a version
3758   ([@robertkowalski](https://github.com/robertkowalski))
3759 * Add user-friendly errors for ENOSPC and EROFS.
3760   ([@voodootikigod](https://github.com/voodootikigod))
3761 * bump tar and fstream deps ([@isaacs](https://github.com/isaacs))
3762 * Run the npm-registry-couchapp tests along with npm tests
3763   ([@isaacs](https://github.com/isaacs))
3764
3765 ### v1.2.8000 (2014-06-17):
3766
3767 * Same as v1.4.16, but with the spinner disabled, and a version number that
3768   starts with v1.2.
3769
3770 ### v1.4.16 (2014-06-17):
3771
3772 * `npm-registry-client@2.0.2` ([@isaacs](https://github.com/isaacs))
3773 * `fstream@0.1.27` ([@isaacs](https://github.com/isaacs))
3774 * `sha@1.2.4` ([@isaacs](https://github.com/isaacs))
3775 * `rimraf@2.2.8` ([@isaacs](https://github.com/isaacs))
3776 * `npmlog@1.0.1` ([@isaacs](https://github.com/isaacs))
3777 * `npm-registry-client@2.0.1` ([@isaacs](https://github.com/isaacs))
3778 * removed redundant dependency ([@othiym23](https://github.com/othiym23))
3779 * `npmconf@1.0.5` ([@isaacs](https://github.com/isaacs))
3780 * Properly handle errors that can occur in the config-loading process
3781   ([@isaacs](https://github.com/isaacs))
3782
3783 ### v1.4.15 (2014-06-10):
3784
3785 * cache: atomic de-race-ified package.json writing
3786   ([@isaacs](https://github.com/isaacs))
3787 * `fstream@0.1.26` ([@isaacs](https://github.com/isaacs))
3788 * `graceful-fs@3.0.2` ([@isaacs](https://github.com/isaacs))
3789 * `osenv@0.1.0` ([@isaacs](https://github.com/isaacs))
3790 * Only spin the spinner when we're fetching stuff
3791   ([@isaacs](https://github.com/isaacs))
3792 * Update `osenv@0.1.0` which removes ~/tmp as possible tmp-folder
3793   ([@robertkowalski](https://github.com/robertkowalski))
3794 * `ini@1.2.1` ([@isaacs](https://github.com/isaacs))
3795 * `graceful-fs@3` ([@isaacs](https://github.com/isaacs))
3796 * Update glob and things depending on glob
3797   ([@isaacs](https://github.com/isaacs))
3798 * github-url-from-username-repo and read-package-json updates
3799   ([@isaacs](https://github.com/isaacs))
3800 * `editor@0.1.0` ([@isaacs](https://github.com/isaacs))
3801 * `columnify@1.1.0` ([@isaacs](https://github.com/isaacs))
3802 * bump ansi and associated deps ([@isaacs](https://github.com/isaacs))
3803
3804 ### v1.4.14 (2014-06-05):
3805
3806 * char-spinner: update to not bork windows
3807   ([@isaacs](https://github.com/isaacs))
3808
3809 ### v1.4.13 (2014-05-23):
3810
3811 * Fix `npm install` on a tarball.
3812   ([`ed3abf1`](https://github.com/npm/npm/commit/ed3abf1aa10000f0f687330e976d78d1955557f6),
3813   [#5330](https://github.com/npm/npm/issues/5330),
3814   [@othiym23](https://github.com/othiym23))
3815 * Fix an issue with the spinner on Node 0.8.
3816   ([`9f00306`](https://github.com/npm/npm/commit/9f003067909440390198c0b8f92560d84da37762),
3817   [@isaacs](https://github.com/isaacs))
3818 * Re-add `npm.commands.cache.clean` and `npm.commands.cache.read` APIs, and
3819   document `npm.commands.cache.*` as npm-cache(3).
3820   ([`e06799e`](https://github.com/npm/npm/commit/e06799e77e60c1fc51869619083a25e074d368b3),
3821   [@isaacs](https://github.com/isaacs))
3822
3823 ### v1.4.12 (2014-05-23):
3824
3825 * remove normalize-package-data from top level, de-^-ify inflight dep
3826   ([@isaacs](https://github.com/isaacs))
3827 * Always sort saved bundleDependencies ([@isaacs](https://github.com/isaacs))
3828 * add inflight to bundledDependencies
3829   ([@othiym23](https://github.com/othiym23))
3830
3831 ### v1.4.11 (2014-05-22):
3832
3833 * fix `npm ls` labeling issue
3834 * `node-gyp@0.13.1`
3835 * default repository to https:// instead of git://
3836 * addLocalTarball: Remove extraneous unpack
3837   ([@isaacs](https://github.com/isaacs))
3838 * Massive cache folder refactor ([@othiym23](https://github.com/othiym23) and
3839   [@isaacs](https://github.com/isaacs))
3840 * Busy Spinner, no http noise ([@isaacs](https://github.com/isaacs))
3841 * Per-project .npmrc file support ([@isaacs](https://github.com/isaacs))
3842 * `npmconf@1.0.0`, Refactor config/uid/prefix loading process
3843   ([@isaacs](https://github.com/isaacs))
3844 * Allow once-disallowed characters in passwords
3845   ([@isaacs](https://github.com/isaacs))
3846 * Send npm version as 'version' header ([@isaacs](https://github.com/isaacs))
3847 * fix cygwin encoding issue (Karsten Tinnefeld)
3848 * Allow non-github repositories with `npm repo`
3849   ([@evanlucas](https://github.com/evanlucas))
3850 * Allow peer deps to be satisfied by grandparent
3851 * Stop optional deps moving into deps on `update --save`
3852   ([@timoxley](https://github.com/timoxley))
3853 * Ensure only matching deps update with `update --save*`
3854   ([@timoxley](https://github.com/timoxley))
3855 * Add support for `prerelease`, `preminor`, `prepatch` to `npm version`
3856
3857 ### v1.4.10 (2014-05-05):
3858
3859 * Don't set referer if already set
3860 * fetch: Send referer and npm-session headers
3861 * `run-script`: Support `--parseable` and `--json`
3862 * list runnable scripts ([@evanlucas](https://github.com/evanlucas))
3863 * Use marked instead of ronn for html docs
3864
3865 ### v1.4.9 (2014-05-01):
3866
3867 * Send referer header (with any potentially private stuff redacted)
3868 * Fix critical typo bug in previous npm release
3869
3870 ### v1.4.8 (2014-05-01):
3871
3872 * Check SHA before using files from cache
3873 * adduser: allow change of the saved password
3874 * Make `npm install` respect `config.unicode`
3875 * Fix lifecycle to pass `Infinity` for config env value
3876 * Don't return 0 exit code on invalid command
3877 * cache: Handle 404s and other HTTP errors as errors
3878 * Resolve ~ in path configs to env.HOME
3879 * Include npm version in default user-agent conf
3880 * npm init: Use ISC as default license, use save-prefix for deps
3881 * Many test and doc fixes
3882
3883 ### v1.4.7 (2014-04-15):
3884
3885 * Add `--save-prefix` option that can be used to override the default of `^`
3886   when using `npm install --save` and its counterparts.
3887   ([`64eefdf`](https://github.com/npm/npm/commit/64eefdfe26bb27db8dc90e3ab5d27a5ef18a4470),
3888   [@thlorenz](https://github.com/thlorenz))
3889 * Allow `--silent` to silence the echoing of commands that occurs with `npm
3890   run`.
3891   ([`c95cf08`](https://github.com/npm/npm/commit/c95cf086e5b97dbb48ff95a72517b203a8f29eab),
3892   [@Raynos](https://github.com/Raynos))
3893 * Some speed improvements to the cache, which should improve install times.
3894   ([`cb94310`](https://github.com/npm/npm/commit/cb94310a6adb18cb7b881eacb8d67171eda8b744),
3895   [`3b0870f`](https://github.com/npm/npm/commit/3b0870fb2f40358b3051abdab6be4319d196b99d),
3896   [`120f5a9`](https://github.com/npm/npm/commit/120f5a93437bbbea9249801574a2f33e44e81c33),
3897   [@isaacs](https://github.com/isaacs))
3898 * Improve ability to retry registry requests when a subset of the registry
3899   servers are down.
3900   ([`4a5257d`](https://github.com/npm/npm/commit/4a5257de3870ac3dafa39667379f19f6dcd6093e),
3901   https://github.com/npm/npm-registry-client/commit/7686d02cb0b844626d6a401e58c0755ef3bc8432,
3902   [@isaacs](https://github.com/isaacs))
3903 * Fix marking of peer dependencies as extraneous.
3904   ([`779b164`](https://github.com/npm/npm/commit/779b1649764607b062c031c7e5c972151b4a1754),
3905   https://github.com/npm/read-installed/commit/6680ba6ef235b1ca3273a00b70869798ad662ddc,
3906   [@isaacs](https://github.com/isaacs))
3907 * Fix npm crashing when doing `npm shrinkwrap` in the presence of a
3908   `package.json` with no dependencies.
3909   ([`a9d9fa5`](https://github.com/npm/npm/commit/a9d9fa5ad3b8c925a589422b7be28d2735f320b0),
3910   [@kislyuk](https://github.com/kislyuk))
3911 * Fix error when using `npm view` on packages that have no versions or have
3912   been unpublished.
3913   ([`94df2f5`](https://github.com/npm/npm/commit/94df2f56d684b35d1df043660180fc321b743dc8),
3914   [@juliangruber](https://github.com/juliangruber);
3915   [`2241a09`](https://github.com/npm/npm/commit/2241a09c843669c70633c399ce698cec3add40b3),
3916   [@isaacs](https://github.com/isaacs))
3917
3918 ### v1.4.6 (2014-03-19):
3919
3920 * Fix extraneous package detection to work in more cases.
3921   ([`f671286`](https://github.com/npm/npm/commit/f671286), npm/read-installed#20,
3922   [@LaurentVB](https://github.com/LaurentVB))
3923
3924 ### v1.4.5 (2014-03-18):
3925
3926 * Sort dependencies in `package.json` when doing `npm install --save` and all
3927   its variants.
3928   ([`6fd6ff7`](https://github.com/npm/npm/commit/6fd6ff7e536ea6acd33037b1878d4eca1f931985),
3929   [@domenic](https://github.com/domenic))
3930 * Add `--save-exact` option, usable alongside `--save` and its variants, which
3931   will write the exact version number into `package.json` instead of the
3932   appropriate semver-compatibility range.
3933   ([`17f07df`](https://github.com/npm/npm/commit/17f07df8ad8e594304c2445bf7489cb53346f2c5),
3934   [@timoxley](https://github.com/timoxley))
3935 * Accept gzipped content from the registry to speed up downloads and save
3936   bandwidth.
3937   ([`a3762de`](https://github.com/npm/npm/commit/a3762de843b842be8fa0ab57cdcd6b164f145942),
3938   npm/npm-registry-client#40, [@fengmk2](https://github.com/fengmk2))
3939 * Fix `npm ls`'s `--depth` and `--log` options.
3940   ([`1d29b17`](https://github.com/npm/npm/commit/1d29b17f5193d52a5c4faa412a95313dcf41ed91),
3941   npm/read-installed#13, [@zertosh](https://github.com/zertosh))
3942 * Fix "Adding a cache directory to the cache will make the world implode" in
3943   certain cases.
3944   ([`9a4b2c4`](https://github.com/npm/npm/commit/9a4b2c4667c2b1e0054e3d5611ab86acb1760834),
3945   domenic/path-is-inside#1, [@pmarques](https://github.com/pmarques))
3946 * Fix readmes not being uploaded in certain rare cases.
3947   ([`527b72c`](https://github.com/npm/npm/commit/527b72cca6c55762b51e592c48a9f28cc7e2ff8b),
3948   [@isaacs](https://github.com/isaacs))
3949
3950 ### v1.4.4 (2014-02-20):
3951
3952 * Add `npm t` as an alias for `npm test` (which is itself an alias for `npm run
3953   test`, or even `npm run-script test`). We like making running your tests
3954   easy. ([`14e650b`](https://github.com/npm/npm/commit/14e650bce0bfebba10094c961ac104a61417a5de), [@isaacs](https://github.com/isaacs))
3955
3956 ### v1.4.3 (2014-02-16):
3957
3958 * Add back `npm prune --production`, which was removed in 1.3.24.
3959   ([`acc4d02`](https://github.com/npm/npm/commit/acc4d023c57d07704b20a0955e4bf10ee91bdc83),
3960   [@davglass](https://github.com/davglass))
3961 * Default `npm install --save` and its counterparts to use the `^` version
3962   specifier, instead of `~`.
3963   ([`0a3151c`](https://github.com/npm/npm/commit/0a3151c9cbeb50c1c65895685c2eabdc7e2608dc),
3964   [@mikolalysenko](https://github.com/mikolalysenko))
3965 * Make `npm shrinkwrap` output dependencies in a sorted order, so that diffs
3966   between shrinkwrap files should be saner now.
3967   ([`059b2bf`](https://github.com/npm/npm/commit/059b2bfd06ae775205a37257dca80142596a0113),
3968   [@Raynos](https://github.com/Raynos))
3969 * Fix `npm dedupe` not correctly respecting dependency constraints.
3970   ([`86028e9`](https://github.com/npm/npm/commit/86028e9fd8524d5e520ce01ba2ebab5a030103fc),
3971   [@rafeca](https://github.com/rafeca))
3972 * Fix `npm ls` giving spurious warnings when you used `"latest"` as a version
3973   specifier.
3974   (https://github.com/npm/read-installed/commit/d2956400e0386931c926e0f30c334840e0938f14,
3975   [@bajtos](https://github.com/bajtos))
3976 * Fixed a bug where using `npm link` on packages without a `name` value could
3977   cause npm to delete itself.
3978   ([`401a642`](https://github.com/npm/npm/commit/401a64286aa6665a94d1d2f13604f7014c5fce87),
3979   [@isaacs](https://github.com/isaacs))
3980 * Fixed `npm install ./pkg@1.2.3` to actually install the directory at
3981   `pkg@1.2.3`; before it would try to find version `1.2.3` of the package
3982   `./pkg` in the npm registry.
3983   ([`46d8768`](https://github.com/npm/npm/commit/46d876821d1dd94c050d5ebc86444bed12c56739),
3984   [@rlidwka](https://github.com/rlidwka); see also
3985   [`f851b79`](https://github.com/npm/npm/commit/f851b79a71d9a5f5125aa85877c94faaf91bea5f))
3986 * Fix `npm outdated` to respect the `color` configuration option.
3987   ([`d4f6f3f`](https://github.com/npm/npm/commit/d4f6f3ff83bd14fb60d3ac6392cb8eb6b1c55ce1),
3988   [@timoxley](https://github.com/timoxley))
3989 * Fix `npm outdated --parseable`.
3990   ([`9575a23`](https://github.com/npm/npm/commit/9575a23f955ce3e75b509c89504ef0bd707c8cf6),
3991   [@yhpark](https://github.com/yhpark))
3992 * Fix a lockfile-related errors when using certain Git URLs.
3993   ([`164b97e`](https://github.com/npm/npm/commit/164b97e6089f64e686db7a9a24016f245effc37f),
3994   [@nigelzor](https://github.com/nigelzor))
3995
3996 ### v1.4.2 (2014-02-13):
3997
3998 * Fixed an issue related to mid-publish GET requests made against the registry.
3999   (https://github.com/npm/npm-registry-client/commit/acbec48372bc1816c67c9e7cbf814cf50437ff93,
4000   [@isaacs](https://github.com/isaacs))
4001
4002 ### v1.4.1 (2014-02-13):
4003
4004 * Fix `npm shrinkwrap` forgetting to shrinkwrap dependencies that were also
4005   development dependencies.
4006   ([`9c575c5`](https://github.com/npm/npm/commit/9c575c56efa9b0c8b0d4a17cb9c1de3833004bcd),
4007   [@diwu1989](https://github.com/diwu1989))
4008 * Fixed publishing of pre-existing packages with uppercase characters in their
4009   name.
4010   (https://github.com/npm/npm-registry-client/commit/9345d3b6c3d8510dd5c4418f27ee1fce59acebad,
4011   [@isaacs](https://github.com/isaacs))
4012
4013 ### v1.4.0 (2014-02-12):
4014
4015 * Remove `npm publish --force`. See
4016   https://github.com/npm/npmjs.org/issues/148.
4017   ([@isaacs](https://github.com/isaacs),
4018   npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a)
4019 * Other changes to the registry client related to saved configs and couch
4020   logins. ([@isaacs](https://github.com/isaacs);
4021   npm/npm-registry-client@25e2b019a1588155e5f87d035c27e79963b75951,
4022   npm/npm-registry-client@9e41e9101b68036e0f078398785f618575f3cdde,
4023   npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a)
4024 * Show an error to the user when doing `npm update` and the `package.json`
4025   specifies a version that does not exist.
4026   ([@evanlucas](https://github.com/evanlucas),
4027   [`027a33a`](https://github.com/npm/npm/commit/027a33a5c594124cc1d82ddec5aee2c18bc8dc32))
4028 * Fix some issues with cache ownership in certain installation configurations.
4029   ([@outcoldman](https://github.com/outcoldman),
4030   [`a132690`](https://github.com/npm/npm/commit/a132690a2876cda5dcd1e4ca751f21dfcb11cb9e))
4031 * Fix issues where GitHub shorthand dependencies `user/repo` were not always
4032   treated the same as full Git URLs.
4033   ([@robertkowalski](https://github.com/robertkowalski),
4034   https://github.com/meryn/normalize-package-data/commit/005d0b637aec1895117fcb4e3b49185eebf9e240)
4035
4036 ### v1.3.26 (2014-02-02):
4037
4038 * Fixes and updates to publishing code
4039   ([`735427a`](https://github.com/npm/npm/commit/735427a69ba4fe92aafa2d88f202aaa42920a9e2)
4040   and
4041   [`c0ac832`](https://github.com/npm/npm/commit/c0ac83224d49aa62e55577f8f27d53bbfd640dc5),
4042   [@isaacs](https://github.com/isaacs))
4043 * Fix `npm bugs` with no arguments.
4044   ([`b99d465`](https://github.com/npm/npm/commit/b99d465221ac03bca30976cbf4d62ca80ab34091),
4045   [@Hoops](https://github.com/Hoops))
4046
4047 ### v1.3.25 (2014-01-25):
4048
4049 * Remove gubblebum blocky font from documentation headers.
4050   ([`6940c9a`](https://github.com/npm/npm/commit/6940c9a100160056dc6be8f54a7ad7fa8ceda7e2),
4051   [@isaacs](https://github.com/isaacs))
4052
4053 ### v1.3.24 (2014-01-19):
4054
4055 * Make the search output prettier, with nice truncated columns, and a `--long`
4056   option to create wrapping columns.
4057   ([`20439b2`](https://github.com/npm/npm/commit/20439b2) and
4058   [`3a6942d`](https://github.com/npm/npm/commit/3a6942d),
4059   [@timoxley](https://github.com/timoxley))
4060 * Support multiple packagenames in `npm docs`.
4061   ([`823010b`](https://github.com/npm/npm/commit/823010b),
4062   [@timoxley](https://github.com/timoxley))
4063 * Fix the `npm adduser` bug regarding "Error: default value must be string or
4064   number" again. ([`b9b4248`](https://github.com/npm/npm/commit/b9b4248),
4065   [@isaacs](https://github.com/isaacs))
4066 * Fix `scripts` entries containing whitespaces on Windows.
4067   ([`80282ed`](https://github.com/npm/npm/commit/80282ed),
4068   [@robertkowalski](https://github.com/robertkowalski))
4069 * Fix `npm update` for Git URLs that have credentials in them
4070   ([`93fc364`](https://github.com/npm/npm/commit/93fc364),
4071   [@danielsantiago](https://github.com/danielsantiago))
4072 * Fix `npm install` overwriting `npm link`-ed dependencies when they are tagged
4073   Git dependencies. ([`af9bbd9`](https://github.com/npm/npm/commit/af9bbd9),
4074   [@evanlucas](https://github.com/evanlucas))
4075 * Remove `npm prune --production` since it buggily removed some dependencies
4076   that were necessary for production; see
4077   [#4509](https://github.com/npm/npm/issues/4509). Hopefully it can make its
4078   triumphant return, one day.
4079   ([`1101b6a`](https://github.com/npm/npm/commit/1101b6a),
4080   [@isaacs](https://github.com/isaacs))
4081
4082 Dependency updates:
4083 * [`909cccf`](https://github.com/npm/npm/commit/909cccf) `read-package-json@1.1.6`
4084 * [`a3891b6`](https://github.com/npm/npm/commit/a3891b6) `rimraf@2.2.6`
4085 * [`ac6efbc`](https://github.com/npm/npm/commit/ac6efbc) `sha@1.2.3`
4086 * [`dd30038`](https://github.com/npm/npm/commit/dd30038) `node-gyp@0.12.2`
4087 * [`c8c3ebe`](https://github.com/npm/npm/commit/c8c3ebe) `npm-registry-client@0.3.3`
4088 * [`4315286`](https://github.com/npm/npm/commit/4315286) `npmconf@0.1.12`
4089
4090 ### v1.3.23 (2014-01-03):
4091
4092 * Properly handle installations that contained a certain class of circular
4093   dependencies.
4094   ([`5dc93e8`](https://github.com/npm/npm/commit/5dc93e8c82604c45b6067b1acf1c768e0bfce754),
4095   [@substack](https://github.com/substack))
4096
4097 ### v1.3.22 (2013-12-25):
4098
4099 * Fix a critical bug in `npm adduser` that would manifest in the error message
4100   "Error: default value must be string or number."
4101   ([`fba4bd2`](https://github.com/npm/npm/commit/fba4bd24bc2ab00ccfeda2043aa53af7d75ef7ce),
4102   [@isaacs](https://github.com/isaacs))
4103 * Allow `npm bugs` in the current directory to open the current package's bugs
4104   URL.
4105   ([`d04cf64`](https://github.com/npm/npm/commit/d04cf6483932c693452f3f778c2fa90f6153a4af),
4106   [@evanlucas](https://github.com/evanlucas))
4107 * Several fixes to various error messages to include more useful or updated
4108   information.
4109   ([`1e6f2a7`](https://github.com/npm/npm/commit/1e6f2a72ca058335f9f5e7ca22d01e1a8bb0f9f7),
4110   [`ff46366`](https://github.com/npm/npm/commit/ff46366bd40ff0ef33c7bac8400bc912c56201d1),
4111   [`8b4bb48`](https://github.com/npm/npm/commit/8b4bb4815d80a3612186dc5549d698e7b988eb03);
4112   [@rlidwka](https://github.com/rlidwka),
4113   [@evanlucas](https://github.com/evanlucas))
4114
4115 ### v1.3.21 (2013-12-17):
4116
4117 * Fix a critical bug that prevented publishing due to incorrect hash
4118   calculation.
4119   ([`4ca4a2c`](https://github.com/npm/npm-registry-client/commit/4ca4a2c6333144299428be6b572e2691aa59852e),
4120   [@dominictarr](https://github.com/dominictarr))
4121
4122 ### v1.3.20 (2013-12-17):
4123
4124 * Fixes a critical bug in v1.3.19.  Thankfully, due to that bug, no one could
4125   install npm v1.3.19 :)
4126
4127 ### v1.3.19 (2013-12-16):
4128
4129 * Adds atomic PUTs for publishing packages, which should result in far fewer
4130   requests and less room for replication errors on the server-side.
4131
4132 ### v1.3.18 (2013-12-16):
4133
4134 * Added an `--ignore-scripts` option, which will prevent `package.json` scripts
4135   from being run. Most notably, this will work on `npm install`, so e.g. `npm
4136   install --ignore-scripts` will not run preinstall and prepublish scripts.
4137   ([`d7e67bf`](https://github.com/npm/npm/commit/d7e67bf0d94b085652ec1c87d595afa6f650a8f6),
4138   [@sqs](https://github.com/sqs))
4139 * Fixed a bug introduced in 1.3.16 that would manifest with certain cache
4140   configurations, by causing spurious errors saying "Adding a cache directory
4141   to the cache will make the world implode."
4142   ([`966373f`](https://github.com/npm/npm/commit/966373fad8d741637f9744882bde9f6e94000865),
4143   [@domenic](https://github.com/domenic))
4144 * Re-fixed the multiple download of URL dependencies, whose fix was reverted in
4145   1.3.17.
4146   ([`a362c3f`](https://github.com/npm/npm/commit/a362c3f1919987419ed8a37c8defa19d2e6697b0),
4147   [@spmason](https://github.com/spmason))
4148
4149 ### v1.3.17 (2013-12-11):
4150
4151 * This release reverts
4152   [`644c2ff`](https://github.com/npm/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7),
4153   which avoided re-downloading URL and shinkwrap dependencies when doing `npm
4154   install`. You can see the in-depth reasoning in
4155   [`d8c907e`](https://github.com/npm/npm/commit/d8c907edc2019b75cff0f53467e34e0ffd7e5fba);
4156   the problem was, that the patch changed the behavior of `npm install -f` to
4157   reinstall all dependencies.
4158 * A new version of the no-re-downloading fix has been submitted as
4159   [#4303](https://github.com/npm/npm/issues/4303) and will hopefully be
4160   included in the next release.
4161
4162 ### v1.3.16 (2013-12-11):
4163
4164 * Git URL dependencies are now updated on `npm install`, fixing a two-year old
4165   bug
4166   ([`5829ecf`](https://github.com/npm/npm/commit/5829ecf032b392d2133bd351f53d3c644961396b),
4167   [@robertkowalski](https://github.com/robertkowalski)). Additional progress on
4168   reducing the resulting Git-related I/O is tracked as
4169   [#4191](https://github.com/npm/npm/issues/4191), but for now, this will be a
4170   big improvement.
4171 * Added a `--json` mode to `npm outdated` to give a parseable output.
4172   ([`0b6c9b7`](https://github.com/npm/npm/commit/0b6c9b7c8c5579f4d7d37a0c24d9b7a12ccbe5fe),
4173   [@yyx990803](https://github.com/yyx990803))
4174 * Made `npm outdated` much prettier and more useful. It now outputs a
4175   color-coded and easy-to-read table.
4176   ([`fd3017f`](https://github.com/npm/npm/commit/fd3017fc3e9d42acf6394a5285122edb4dc16106),
4177   [@quimcalpe](https://github.com/quimcalpe))
4178 * Added the `--depth` option to `npm outdated`, so that e.g. you can do `npm
4179   outdated --depth=0` to show only top-level outdated dependencies.
4180   ([`1d184ef`](https://github.com/npm/npm/commit/1d184ef3f4b4bc309d38e9128732e3e6fb46d49c),
4181   [@yyx990803](https://github.com/yyx990803))
4182 * Added a `--no-git-tag-version` option to `npm version`, for doing the usual
4183   job of `npm version` minus the Git tagging. This could be useful if you need
4184   to increase the version in other related files before actually adding the
4185   tag.
4186   ([`59ca984`](https://github.com/npm/npm/commit/59ca9841ba4f4b2f11b8e72533f385c77ae9f8bd),
4187   [@evanlucas](https://github.com/evanlucas))
4188 * Made `npm repo` and `npm docs` work without any arguments, adding them to the
4189   list of npm commands that work on the package in the current directory when
4190   invoked without arguments.
4191   ([`bf9048e`](https://github.com/npm/npm/commit/bf9048e2fa16d43fbc4b328d162b0a194ca484e8),
4192   [@robertkowalski](https://github.com/robertkowalski);
4193   [`07600d0`](https://github.com/npm/npm/commit/07600d006c652507cb04ac0dae9780e35073dd67),
4194   [@wilmoore](https://github.com/wilmoore)). There are a few other commands we
4195   still want to implement this for; see
4196   [#4204](https://github.com/npm/npm/issues/4204).
4197 * Pass through the `GIT_SSL_NO_VERIFY` environment variable to Git, if it is
4198   set; we currently do this with a few other environment variables, but we
4199   missed that one.
4200   ([`c625de9`](https://github.com/npm/npm/commit/c625de91770df24c189c77d2e4bc821f2265efa8),
4201   [@arikon](https://github.com/arikon))
4202 * Fixed `npm dedupe` on Windows due to incorrect path separators being used
4203   ([`7677de4`](https://github.com/npm/npm/commit/7677de4583100bc39407093ecc6bc13715bf8161),
4204   [@mcolyer](https://github.com/mcolyer)).
4205 * Fixed the `npm help` command when multiple words were searched for; it
4206   previously gave a `ReferenceError`.
4207   ([`6a28dd1`](https://github.com/npm/npm/commit/6a28dd147c6957a93db12b1081c6e0da44fe5e3c),
4208   [@dereckson](https://github.com/dereckson))
4209 * Stopped re-downloading URL and shrinkwrap dependencies, as demonstrated in
4210   [#3463](https://github.com/npm/npm/issues/3463)
4211   ([`644c2ff`](https://github.com/isaacs/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7),
4212   [@spmason](https://github.com/spmason)). You can use the `--force` option to
4213   force re-download and installation of all dependencies.