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