Simple email application for Android. Original source code: https://framagit.org/dystopia-project/simple-email
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1566 lines
79 KiB

  1. ## v4.6.1 (2017-04-21)
  2. A little release to tide you over while we hammer out the last bits for npm@5.
  3. ### FEATURES
  4. * [`d13c9b2f2`](https://github.com/npm/npm/commit/d13c9b2f24b6380427f359b6e430b149ac8aaa79)
  5. `init-package-json@1.10.0`:
  6. The `name:` prompt is now `package name:` to make this less ambiguous for new users.
  7. The default package name is now a valid package name. For example: If your package directory
  8. has mixed case, the default package name will be all lower case.
  9. * [`f08c66323`](https://github.com/npm/npm/commit/f08c663231099f7036eb82b92770806a3a79cdf1)
  10. [#16213](https://github.com/npm/npm/pull/16213)
  11. Add `--allow-same-version` option to `npm version` so that you can use `npm version` to run
  12. your version lifecycles and tag your git repo without actually changing the version number in
  13. your `package.json`.
  14. ([@lucastheisen](https://github.com/lucastheisen))
  15. * [`f5e8becd0`](https://github.com/npm/npm/commit/f5e8becd05e0426379eb0c999abdbc8e87a7f6f2)
  16. Timing has been added throughout the install implementation. You can see it by running
  17. a command with `--loglevel=timing`. You can also run commands with `--timing` which will write
  18. an `npm-debug.log` even on success and add an entry to `_timing.json` in your cache with
  19. the timing information from that run.
  20. ([@iarna](https://github.com/iarna))
  21. ### BUG FIXES
  22. * [`9c860f2ed`](https://github.com/npm/npm/commit/9c860f2ed3bdea1417ed059b019371cd253db2ad)
  23. [#16021](https://github.com/npm/npm/pull/16021)
  24. Fix a crash in `npm doctor` when used with a registry that does not support
  25. the `ping` API endpoint.
  26. ([@watilde](https://github.com/watilde))
  27. * [`65b9943e9`](https://github.com/npm/npm/commit/65b9943e9424c67547b0029f02b0258e35ba7d26)
  28. [#16364](https://github.com/npm/npm/pull/16364)
  29. Shorten the ELIFECYCLE error message. The shorter error message should make it much
  30. easier to discern the actual cause of the error.
  31. ([@j-f1](https://github.com/j-f1))
  32. * [`a87a4a835`](https://github.com/npm/npm/commit/a87a4a8359693518ee41dfeb13c5a8929136772a)
  33. `npmlog@4.0.2`:
  34. Fix flashing of the progress bar when your terminal is very narrow.
  35. ([@iarna](https://github.com/iarna))
  36. * [`41c10974f`](https://github.com/npm/npm/commit/41c10974fe95a2e520e33e37725570c75f6126ea)
  37. `write-file-atomic@1.3.2`:
  38. Wait for `fsync` to complete before considering our file written to disk.
  39. This will improve certain sorts of Windows diagnostic problems.
  40. * [`2afa9240c`](https://github.com/npm/npm/commit/2afa9240ce5b391671ed5416464f2882d18a94bc)
  41. [#16336](https://github.com/npm/npm/pull/16336)
  42. Don't ham-it-up when expecting JSON.
  43. ([@bdukes](https://github.com/bdukes))
  44. ### DOCUMENTATION FIXES
  45. * [`566f3eebe`](https://github.com/npm/npm/commit/566f3eebe741f935b7c1e004bebf19b8625a1413)
  46. [#16296](https://github.com/npm/npm/pull/16296)
  47. Use a single convention when referring to the `<command>` you're running.
  48. ([@desfero](https://github.com/desfero))
  49. * [`ccbb94934`](https://github.com/npm/npm/commit/ccbb94934d4f677f680c3e2284df3d0ae0e65758)
  50. [#16267](https://github.com/npm/npm/pull/16267)
  51. Fix a missing space in the example package.json.
  52. ([@famousgarkin](https://github.com/famousgarkin))
  53. ### DEPENDENCY UPDATES
  54. * [`ebde4ea33`](https://github.com/npm/npm/commit/ebde4ea3363dfc154c53bd537189503863c9b3a4)
  55. `hosted-git-info@2.4.2`
  56. * [`c46ad71bb`](https://github.com/npm/npm/commit/c46ad71bbe27aaa9ee10e107d8bcd665d98544d7)
  57. `init-package-json@1.9.6`
  58. * [`d856d570d`](https://github.com/npm/npm/commit/d856d570d2df602767c039cf03439d647bba2e3d)
  59. `npm-registry-client@8.1.1`
  60. * [`4a2e14436`](https://github.com/npm/npm/commit/4a2e1443613a199665e7adbda034d5b9d10391a2)
  61. `readable-stream@2.2.9`
  62. * [`f0399138e`](https://github.com/npm/npm/commit/f0399138e6d6f1cd7f807d523787a3b129996301)
  63. `normalize-package-data@2.3.8`
  64. ### v4.5.0 (2017-03-24)
  65. Welcome a wrinkle on npm's registry API!
  66. Codename: Corgi
  67. ![corgi-meme](https://cloud.githubusercontent.com/assets/757502/24126107/64c14268-0d89-11e7-871b-d457e6d0082b.jpg)
  68. This release has some bug fixes, but it's mostly about bringing support for
  69. MUCH smaller package metadata. How much smaller? Well, for npm itself it
  70. reduces 416K of gzip compressed JSON to 24K.
  71. As a user, all you have to do is update to get to use the new API. If
  72. you're interested in the details we've [documented the
  73. changes](https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md)
  74. in detail.
  75. #### CORGUMENTS
  76. Package metadata: now smaller. This means a smaller cache and less to download.
  77. * [`86dad0d74`](https://github.com/npm/npm/commit/86dad0d747f288eab467d49c9635644d3d44d6f0)
  78. Add support for filtered package metadata.
  79. ([@iarna](https://github.com/iarna))
  80. * [`41789cffa`](https://github.com/npm/npm/commit/41789cffac9845603f4bdf3f5b03f412144a0e9f)
  81. `npm-registry-client@8.1.0`
  82. ([@iarna](https://github.com/iarna))
  83. #### NO SHRINKWRAP, NO PROBLEM
  84. Previously we needed to extract every package's tarball to look for an
  85. `npm-shrinkwrap.json` before we could begin working through what its
  86. dependencies were. This was one of the things stopping npm's network
  87. accesses from happening more concurrently. The new filtered package
  88. metadata provides a new key, `_hasShrinkwrap`. When that's set to `false`
  89. then we know we don't have to look for one.
  90. * [`4f5060eb3`](https://github.com/npm/npm/commit/4f5060eb31b9091013e1d6a34050973613a294a3)
  91. [#15969](https://github.com/npm/npm/pull/15969)
  92. Add support for skipping `npm-shrinkwrap.json` extraction when the
  93. registry can affirm that one doesn't exist.
  94. ([@iarna](https://github.com/iarna))
  95. #### INTERRUPTING SCRIPTS
  96. * [`878aceb25`](https://github.com/npm/npm/commit/878aceb25e6d6052dac15da74639ce274c8e62c5)
  97. [#16129](https://github.com/npm/npm/pull/16129)
  98. Better handle Ctrl-C while running scripts. `npm` will now no longer exit
  99. until the script it is running has exited. If you press Ctrl-C a second
  100. time it kill the script rather than just forwarding the Ctrl-C.
  101. ([@jaridmargolin](https://github.com/jaridmargolin))
  102. #### DEPENDENCY UPDATES:
  103. * [`def75eebf`](https://github.com/npm/npm/commit/def75eebf1ad437bf4fd3f5e103cc2d963bd2a73)
  104. `hosted-git-info@2.4.1`:
  105. Preserve case of the user name part of shortcut specifiers, previously they were lowercased.
  106. ([@iarna](https://github.com/iarna))
  107. * [`eb3789fd1`](https://github.com/npm/npm/commit/eb3789fd18cfb063de9e6f80c3049e314993d235)
  108. `node-gyp@3.6.0`: Add support for VS2017 and Chakracore improvements.
  109. ([@refack](https://github.com/refack))
  110. ([@kunalspathak](https://github.com/kunalspathak))
  111. * [`245e25315`](https://github.com/npm/npm/commit/245e25315524b95c0a71c980223a27719392ba75)
  112. `readable-stream@2.2.6` ([@mcollina](https://github.com/mcollina))
  113. * [`30357ebc5`](https://github.com/npm/npm/commit/30357ebc5691d7c9e9cdc6e0fe7dc6253220c9c2)
  114. `which@1.2.14` ([@isaacs](https://github.com/isaacs))
  115. ### v4.4.4 (2017-03-16)
  116. 😩😤😅 Okay! We have another `next`
  117. release for ya today. So, yes! With v4.4.3 we fixed the bug that made
  118. bundled scoped modules uninstallable. But somehow I overlooked the fact
  119. that we: A) were using these and B) that made upgrading to v4.4.3 impossible. 😭
  120. So I've renamed those two scoped modules to no longer use scopes and we now
  121. have a shiny new test to ensure that scoped modules don't creep into our
  122. transitive deps and make it impossible to upgrade to `npm`.
  123. (None of our woes applies to most of you all because most of you all don't
  124. use bundled dependencies. `npm` does because we want the published artifact to be
  125. installable without having to already have `npm`.)
  126. * [`2a7409fcb`](https://github.com/npm/npm/commit/2a7409fcba6a8fab716c80f56987b255983e048e)
  127. [#16066](https://github.com/npm/npm/pull/16066)
  128. Ensure we aren't using any scoped modules
  129. Because `npm`s prior 4.4.3 can't install dependencies that have bundled scoped
  130. modules. This didn't show up sooner because they ALSO had a bug that caused
  131. bundled scoped modules to not be included in the bundle.
  132. ([@iarna](https://github.com/iarna))
  133. * [`eb4c70796`](https://github.com/npm/npm/commit/eb4c70796c38f24ee9357f5d4a0116db582cc7a9)
  134. [#16066](https://github.com/npm/npm/pull/16066)
  135. Switch to move-concurrently to remove scoped dependency
  136. ([@iarna](https://github.com/iarna))
  137. ### v4.4.3 (2017-03-15)
  138. This is a small patch release, mostly because the published tarball for
  139. v4.4.2 was missing a couple of modules, due to a bug involving scoped
  140. modules, bundled dependencies and legacy tree layouts.
  141. There are a couple of other things here that happened to be ready to go. So
  142. without further ado…
  143. #### BUG FIXES
  144. * [`3d80f8f70`](https://github.com/npm/npm/commit/3d80f8f70679ad2b8ce7227d20e8dbce257a47b9)
  145. [npm/fs-vacuum#6](https://github.com/npm/fs-vacuum/pull/6)
  146. `fs-vacuum@1.2.1`: Make sure we never, ever remove home directories. Previously if your
  147. home directory was entirely empty then we might `rmdir` it.
  148. ([@helio-frota](https://github.com/helio-frota))
  149. * [`1af85ca9f`](https://github.com/npm/npm/commit/1af85ca9f4d625f948e85961372de7df3f3774e2)
  150. [#16040](https://github.com/npm/npm/pull/16040)
  151. Fix bug where bundled transitive dependencies that happened to be
  152. installed under bundled scoped dependencies wouldn't be included in the
  153. tarball when building a package.
  154. ([@iarna](https://github.com/iarna))
  155. * [`13c7fdc2e`](https://github.com/npm/npm/commit/13c7fdc2e87456a87b1c9385a3daeae228ed7c95)
  156. [#16040](https://github.com/npm/npm/pull/16040)
  157. Fix a bug where bundled scoped dependencies couldn't be extracted.
  158. ([@iarna](https://github.com/iarna))
  159. * [`d6cde98c2`](https://github.com/npm/npm/commit/d6cde98c2513fe160eab41e31c3198dfde993207)
  160. [#16040](https://github.com/npm/npm/pull/16040)
  161. Stop printing `ENOENT` errors more than once.
  162. ([@iarna](https://github.com/iarna))
  163. * [`722fbf0f6`](https://github.com/npm/npm/commit/722fbf0f6cf4413cdc24b610bbd60a7dbaf2adfe)
  164. [#16040](https://github.com/npm/npm/pull/16040)
  165. Rewrite the `extract` action for greater clarity.
  166. Specifically, this involves moving things around structurally to do the same
  167. thing [`d0c6d194`](https://github.com/npm/npm/commit/d0c6d194) did, but in a more comprehensive manner.
  168. This also fixes a long standing bug where errors from the move step would be
  169. eaten during this phase and as a result we would get mysterious crashes in
  170. the finalize phase when finalize tried to act on them.
  171. ([@iarna](https://github.com/iarna))
  172. * [`6754dabb6`](https://github.com/npm/npm/commit/6754dabb6bd3301504efb3b62f36d3fe70958c19)
  173. [#16040](https://github.com/npm/npm/pull/16040)
  174. Flatten out `@npmcorp/move`'s deps for backwards compatibility reasons. Versions prior to this
  175. one will fail to install any package that bundles a scoped dependency. This was responsible
  176. for `ENOENT` errors during the `finalize` phase.
  177. ([@iarna](https://github.com/iarna))
  178. #### DOC UPDATES
  179. * [`fba51c582`](https://github.com/npm/npm/commit/fba51c582d1d08dd4aa6eb27f9044dddba91bb18)
  180. [#15960](https://github.com/npm/npm/pull/15960)
  181. Update troubleshooting and contribution guide links.
  182. ([@watilde](https://github.com/watilde))
  183. ### v4.4.2 (2017-03-09):
  184. This week, the focus on the release was mainly going through [all of npm's deps
  185. that we manage
  186. ourselves](https://github.com/npm/npm/wiki/npm-maintained-dependencies), and
  187. making sure all their PRs and versions were up to date. That means there's a few
  188. fixes here and there. Nothing too big codewise, though.
  189. The most exciting part of this release is probably our [shiny new
  190. Contributing](https://github.com/npm/npm/blob/latest/CONTRIBUTING.md) and
  191. [Troubleshooting](https://github.com/npm/npm/blob/latest/TROUBLESHOOTING.md)
  192. docs! [@snopeks](https://github.com/snopeks) did some ✨fantastic✨ work hashing it
  193. out, and we're really hoping this is a nice big step towards making contributing
  194. to npm easier. The troubleshooting doc will also hopefully solve common issues
  195. for people! Do you think something is missing from it? File a PR and we'll add
  196. it! The current document is just a baseline for further editing and additions.
  197. Also there's maybe a bit of an easter egg in this release. 'Cause those are fun and I'm a huge nerd. 😉
  198. #### DOCUMENTATION AHOY
  199. * [`07e997a`](https://github.com/npm/npm/commit/07e997a7ecedba7b29ad76ffb2ce990d5c0200fc)
  200. [#15756](https://github.com/npm/npm/pull/15756)
  201. Overhaul `CONTRIBUTING.md` and add new `TROUBLESHOOTING.md` files. 🙌🏼
  202. ([@snopeks](https://github.com/snopeks))
  203. * [`2f3e4b6`](https://github.com/npm/npm/commit/2f3e4b645cdc268889cf95ba24b2aae572d722ad)
  204. [#15833](https://github.com/npm/npm/pull/15833)
  205. Mention the [24-hour unpublish
  206. policy](http://blog.npmjs.org/post/141905368000/changes-to-npms-unpublish-policy)
  207. on the main registry.
  208. ([@carols10cents](https://github.com/carols10cents))
  209. #### NOT REALLY FEATURES, NOT REALLY BUGFIXES. MORE LIKE TWEAKS? 🤔
  210. * [`84be534`](https://github.com/npm/npm/commit/84be534aedb78c65cd8012427fc04871ceeccf90)
  211. [#15888](https://github.com/npm/npm/pull/15888)
  212. Stop flattening `ls`-tree output. From now on, deduped deps will be marked as
  213. such in the place where they would've been before getting hoisted by the
  214. installer.
  215. ([@iarna](https://github.com/iarna))
  216. * [`e9a5dca`](https://github.com/npm/npm/commit/e9a5dca369ead646ab5922326cede1406c62bd3b)
  217. [#15967](https://github.com/npm/npm/pull/15967)
  218. Limit metadata fetches to 10 concurrent requests.
  219. ([@iarna](https://github.com/iarna))
  220. * [`46aa9bc`](https://github.com/npm/npm/commit/46aa9bcae088740df86234fc199f7aef53b116df)
  221. [#15967](https://github.com/npm/npm/pull/15967)
  222. Limit concurrent installer actions to 10.
  223. ([@iarna](https://github.com/iarna))
  224. #### BUGFIXES
  225. * [`c3b994b`](https://github.com/npm/npm/commit/c3b994b71565eb4f943cce890bb887d810e6e2d4)
  226. [#15901](https://github.com/npm/npm/pull/15901)
  227. Use EXDEV aware move instead of rename. This will allow moving across devices
  228. and moving when filesystems don't support renaming directories full of files. It might make folks using Docker a bit happier.
  229. ([@iarna](https://github.com/iarna))
  230. * [`0de1a9c`](https://github.com/npm/npm/commit/0de1a9c1db90e6705c65c068df1fe82899e60d68)
  231. [#15735](https://github.com/npm/npm/pull/15735)
  232. Autocomplete support for npm scripts with `:` colons in the name.
  233. ([@beyondcompute](https://github.com/beyondcompute))
  234. * [`84b0b92`](https://github.com/npm/npm/commit/84b0b92e7f78ec4add42e8161c555325c99b7f98)
  235. [#15874](https://github.com/npm/npm/pull/15874)
  236. Stop using [undocumented](https://github.com/nodejs/node/pull/11355)
  237. `res.writeHeader` alias for `res.writeHead`.
  238. ([@ChALkeR](https://github.com/ChALkeR))
  239. * [`895ffe4`](https://github.com/npm/npm/commit/895ffe4f3eecd674796395f91c30eda88aca6b36)
  240. [#15824](https://github.com/npm/npm/pull/15824)
  241. Fix empty versions column in `npm search` output.
  242. ([@bcoe](https://github.com/bcoe))
  243. * [`38c8d7a`](https://github.com/npm/npm/commit/38c8d7adc1f43ab357d1e729ae7cd5d801a26e68)
  244. `init-package-json@1.9.5`: [npm/init-package-json#61](https://github.com/npm/init-package-json/pull/61) Exclude existing `devDependencies` from being added to `dependencies`. Fixes [#12260](https://github.com/npm/npm/issues/12260).
  245. ([@addaleax](https://github.com/addaleax))
  246. ### v4.4.1 (2017-03-06):
  247. This is a quick little patch release to forgo the update notification
  248. checker if you're on an unsuported (but not otherwise broken) version of
  249. Node.js. Right now that means 0.10 or 0.12.
  250. * [`56ac249`](https://github.com/npm/npm/commit/56ac249ef8ede1021f1bc62a0e4fe1e9ba556af2)
  251. [#15864](https://github.com/npm/npm/pull/15864)
  252. Only use `update-notifier` on supported versions.
  253. ([@legodude17](https://github.com/legodude17))
  254. ### v4.4.0 (2017-02-23):
  255. Aaaah, [@iarna](https://github.com/iarna) here, it's been a little while
  256. since I did one of these! This is a nice little release, we've got an
  257. update notifier, vastly less verbose error messages, new warnings on package
  258. metadata that will probably give you a bad day, and a sprinkling of bug
  259. fixes.
  260. #### UPDATE NOTIFICATIONS
  261. We now have a little nudge to update your `npm`, courtesy of
  262. [update-notifier](https://www.npmjs.com/package/update-notifier).
  263. * [`148ee66`](https://github.com/npm/npm/commit/148ee663740aa05877c64f16cdf18eba33fbc371)
  264. [#15774](https://github.com/npm/npm/pull/15774)
  265. `npm` will now check at start up to see if a newer version is available.
  266. It will check once a day. If you want to disable this, set `optOut` to `true` in
  267. `~/.config/configstore/update-notifier-npm.json`.
  268. ([@ceejbot](https://github.com/ceejbot))
  269. #### LESS VERBOSE ERROR MESSAGES
  270. `npm` has, for a long time, had very verbose error messages. There was a
  271. lot of info in there, including the cause of the error you were seeing but
  272. without a lot of experience reading them pulling that out was time consuming
  273. and difficult.
  274. With this change the output is cut down substantially, centering the error
  275. message. So, for example if you try to `npm run sdlkfj` then the entire
  276. error you'll get will be:
  277. ```
  278. npm ERR! missing script: sldkfj
  279. npm ERR! A complete log of this run can be found in:
  280. npm ERR! /Users/rebecca/.npm/_logs/2017-02-24T00_41_36_988Z-debug.log
  281. ```
  282. The CLI team has discussed cutting this down even further and stripping the
  283. `npm ERR!` prefix off those lines too. We'd appreciate your feedback on
  284. this!
  285. * [`e544124`](https://github.com/npm/npm/commit/e544124592583654f2970ec332003cfd00d04f2b)
  286. [#15716](https://github.com/npm/npm/pull/15716)
  287. Make error output less verbose.
  288. ([@iarna](https://github.com/iarna))
  289. * [`166bda9`](https://github.com/npm/npm/commit/166bda97410d0518b42ed361020ade1887e684af)
  290. [#15716](https://github.com/npm/npm/pull/15716)
  291. Stop encouraging users to visit the issue tracker unless we know for
  292. certain that it's an npm bug.
  293. ([@iarna](https://github.com/iarna))
  294. #### OTHER NEW FEATURES
  295. * [`53412eb`](https://github.com/npm/npm/commit/53412eb22c1c75d768e30f96d69ed620dfedabde)
  296. [#15772](https://github.com/npm/npm/pull/15772)
  297. We now warn if you have a module listed in both dependencies and
  298. devDependencies.
  299. ([@TedYav](https://github.com/TedYav))
  300. * [`426b180`](https://github.com/npm/npm/commit/426b1805904a13bdc5c0dd504105ba037270cbee)
  301. [#15757](https://github.com/npm/npm/pull/15757)
  302. Default reporting metrics to default registry. Previously it defaulted to using
  303. `https://registry.npmjs.org`, now it will default to the result of
  304. `npm config get registry`. For most folks this won't actually change anything, but it
  305. means that folks who use a private registry will have metrics routed there by default.
  306. This has the potential to be interesting because it means that in the
  307. future private registry products ([npme](https://npme.npmjs.com/docs/)!)
  308. will be able to report on these metrics.
  309. ([@iarna](https://github.com/iarna))
  310. #### BUG FIXES
  311. * [`8ea0de9`](https://github.com/npm/npm/commit/8ea0de98563648ba0db032acd4d23d27c4a50a66)
  312. [#15716](https://github.com/npm/npm/pull/15716)
  313. Write logs for `cb() never called` errors.
  314. * [`c4e83dc`](https://github.com/npm/npm/commit/c4e83dca830b24305e3cb3201a42452d56d2d864)
  315. Make it so that errors while reading the existing node_modules tree can't
  316. result in installer crashes.
  317. ([@iarna](https://github.com/iarna))
  318. * [`2690dc2`](https://github.com/npm/npm/commit/2690dc2684a975109ef44953c2cf0746dbe343bb)
  319. Update `npm doctor` to not treat broken symlinks in your global modules as
  320. a permission failure. This is particularly important if you link modules and your text
  321. editor uses the convention of creating symlinks from `.#filename.js` to a
  322. machine name and pid to lock files (eg emacs and compatible things).
  323. ([@iarna](https://github.com/iarna))
  324. * [`f4c3f48`](https://github.com/npm/npm/commit/f4c3f489aa5787cf0d60e8436be2190e4b0d0ff7)
  325. [#15777](https://github.com/npm/npm/pull/15777)
  326. Not exactly a bug, but change a parameterless `.apply` to `.call`.
  327. ([@notarseniy](https://github.com/notarseniy))
  328. #### DEPENDENCY UPDATES
  329. * [`549dcff`](https://github.com/npm/npm/commit/549dcff58c7aaa1e7ba71abaa14008fdf2697297)
  330. `rimraf@2.6.0`:
  331. Retry EBUSY, ENOTEMPTY and EPERM on non-Windows platforms too.
  332. More reliable `rimraf.sync` on Windows.
  333. ([@isaacs](https://github.com/isaacs))
  334. * [`052dfb6`](https://github.com/npm/npm/commit/052dfb623da508f2b5f681da0258125552a18a4a)
  335. `validate-npm-package-name@3.0.0`:
  336. Remove ableist language in README.
  337. Stop allowing ~'!()* in package names.
  338. ([@tomdale](https://github.com/tomdale))
  339. ([@chrisdickinson](https://github.com/chrisdickinson))
  340. * [`6663ea6`](https://github.com/npm/npm/commit/6663ea6ac0f0ecec5a3f04a3c01a71499632f4dc)
  341. `abbrev@1.1.0` ([@isaacs](https://github.com/isaacs))
  342. * [`be6de9a`](https://github.com/npm/npm/commit/be6de9aab9e20b6eac70884e8626161eebf8721a)
  343. `opener@1.4.3` ([@dominic](https://github.com/dominic))
  344. * [`900a5e3`](https://github.com/npm/npm/commit/900a5e3e3411ec221306455f99b24b9ce35757c0)
  345. `readable-stream@2.2.3` ([@RangerMauve](https://github.com/RangerMauve)) ([@mcollina](https://github.com/mcollina))
  346. * [`c972a8b`](https://github.com/npm/npm/commit/c972a8b0f20a61a79c45b6642f870bea8c55c7e4)
  347. `tacks@1.2.6`
  348. ([@iarna](https://github.com/iarna))
  349. * [`85a36ef`](https://github.com/npm/npm/commit/85a36efdac0c24501876875cb9ad40292024e0b0)
  350. [`7ac9265`](https://github.com/npm/npm/commit/7ac9265c56b4d9eeaca6fcfb29513f301713e7bb)
  351. `tap@10.2.0`
  352. ([@isaacs](https://github.com/saacs))
  353. ### v4.3.0 (2017-02-09):
  354. Yay! Release time! It's a rainy day, and we have another smallish release for
  355. y'all. These things are not necessarily related. Or are they 🌧🤔
  356. As far as news go, you may have noticed that the CLI team dropped support for
  357. `node@0.12` when that version went out of maintenance. Still, we've avoided
  358. explicitly breaking it and `node@0.10` so far -- but not much longer.
  359. Sometime soon, the CLI team plans on switching over to language features only
  360. available as of `node@4 LTS`, and will likely start dropping old versions of node
  361. as they go out of maintenance. The new features are exciting! We're really
  362. looking forward to using them in the core CLI (and its dependencies) as we keep up
  363. with our current feature work.
  364. And speaking of features, this release is a minor bump due to a small change in
  365. how `npm login` works for the sake of supporting OAuth-based login for npm
  366. Enterprise users. But we won't leave the rest of y'all out -- we're working on a
  367. larger version of this feature. Soon enough, you'll be able to log in to npm
  368. with, say, GitHub -- and use some shiny features that come from the integration.
  369. Or turn on 2FA and other such security features. Keep your eyes peeled for new
  370. on this in the next few releases and our weekly newsletter!
  371. #### NEW AUTH TYPES
  372. There's a new command line option: `--auth-type`, which can be used to log in to
  373. a supporting registry with OAuth2 or SAML. The current implementation is mainly
  374. meant to support npmE customers, so if you're one of those: ask us about using
  375. it! If not, just hold off cause we'll have a much more complete version of this
  376. feature out soon.
  377. * [`ac8595e`](https://github.com/npm/npm/commit/ac8595e3c9b615ff95abc3301fac1262c434792c) [`bcf2dd8`](https://github.com/npm/npm/commit/bcf2dd8a165843255c06515fa044c6e4d3b71ca4) [`9298d20`](https://github.com/npm/npm/commit/9298d20af58b92572515bfa9cf7377bd4221dc7d) [`66b61bc`](https://github.com/npm/npm/commit/66b61bc42e81ee8a1ee00fc63517f62284140688) [`dc85de7`](https://github.com/npm/npm/commit/dc85de7df6bb61f7788611813ee82ae695a18f1f)
  378. [#13389](https://github.com/npm/npm/pull/13389)
  379. Implement single-sign-on support with `--auth-type` option.
  380. ([@zkat](https://github.com/zkat))
  381. #### FASTER STARTUP. SOMETIMES!
  382. `request` is pretty heavy. And it loads a bunch of things. It's actually a
  383. pretty big chunk of npm's load time. This small patch by Rebecca will make it so
  384. npm only loads that module when we're actually intending to make network
  385. requests. Those of you who use npm commands that run offline might see a small
  386. speedup in startup time.
  387. * [`ac73568`](https://github.com/npm/npm/commit/ac735682e666e8724549d56146821f3b8b018e25)
  388. [#15631](https://github.com/npm/npm/pull/15631)
  389. Lazy load `caching-registry-client`.
  390. ([@iarna](https://github.com/iarna))
  391. #### DOCUMENTATION
  392. * [`4ad9247`](https://github.com/npm/npm/commit/4ad9247aa82f7553c9667ee93c74ec7399d6ceec)
  393. [#15630](https://github.com/npm/npm/pull/15630)
  394. Fix formatting/rendering for root npm README.
  395. ([@ungoldman](https://github.com/ungoldman))
  396. #### DEPENDENCY UPDATES
  397. * [`8cc1112`](https://github.com/npm/npm/commit/8cc1112958638ff88ac2c24c4a065acacb93d64b)
  398. [npm/hosted-git-info#21](https://github.com/npm/hosted-git-info/pull/21)
  399. `hosted-git-info@2.2.0`:
  400. Add support for `.tarball()` URLs.
  401. ([@zkat](https://github.com/zkat))
  402. * [`6eacc1b`](https://github.com/npm/npm/commit/6eacc1bc1925fe3cc79fc97bdc3194d944fce55e)
  403. `npm-registry-mock@1.1.0`
  404. ([@addaleax](https://github.com/addaleax))
  405. * [`a9b6d77`](https://github.com/npm/npm/commit/a9b6d775e61cf090df0e13514c624f99bf31d1e7)
  406. `aproba@1.1.1`
  407. ([@iarna](https://github.com/iarna))
  408. ### v4.2.0 (2017-01-26):
  409. Hi all! I'm Kat, and I'm currently sitting in a train traveling at ~300km/h
  410. through Spain. So clearly, this release should have *something* to do with
  411. speed. And it does! Heck, with this release, you could say we're really
  412. _blazing_, even. 🌲🔥😏
  413. #### IMPROVED CLI SEARCH~
  414. You might recall if you've been keeping up that one of the reasons for a
  415. semver-major bump to `npm@4` was an improved CLI search (read: no longer blowing
  416. up Node). The work done for that new search system, while still relying on a
  417. full metadata download and local search, was also meant to act as groundwork for
  418. then-ongoing work on a brand-new, smarter search system for npm. Shortly after
  419. `npm@4` came out, the bulk of the server-side work was done, and with this
  420. release, the npm CLI has integrated use of the new endpoint for high-quality,
  421. fast-turnaround searches.
  422. No, seriously, it's *fast*. And *relevant*:
  423. [![GOTTA GO FAST! This is a gif of the new npm search returning results in around a second for `npm search web framework`.](https://cloud.githubusercontent.com/assets/17535/21954136/f007e8be-d9fd-11e6-9231-f899c12790e0.gif)](https://github.com/npm/npm/pull/15481)
  424. Give it a shot! And remember to check out the new website version of the search,
  425. too, which uses the same backend as the CLI now. 🎉
  426. Incidentally, the backend is a public service, so you can write your own search
  427. tools, be they web-based, CLI, or GUI-based. You can read up on the [full
  428. documentation for the search
  429. endpoint](https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md#get-v1search),
  430. and let us know about the cool things you come up with!
  431. * [`ce3ca51`](https://github.com/npm/npm/commit/ce3ca51ca2d60e15e901c8bf6256338e53e1eca2)
  432. [#15481](https://github.com/npm/npm/pull/15481)
  433. Add an internal `gunzip-maybe` utility for optional gunzipping.
  434. ([@zkat](https://github.com/zkat))
  435. * [`e322932`](https://github.com/npm/npm/commit/e3229324d507fda10ea9e94fd4de8a4ae5025c75) [`a53055e`](https://github.com/npm/npm/commit/a53055e423f1fe168f05047aa0dfec6d963cb211) [`a1f4365`](https://github.com/npm/npm/commit/a1f436570730c6e4a173ca92d1967a87c29b7f2d) [`c56618c`](https://github.com/npm/npm/commit/c56618c62854ea61f6f716dffe7bcac80b5f4144)
  436. [#15481](https://github.com/npm/npm/pull/15481)
  437. Add support for using the new npm search endpoint for fast, quality search
  438. results. Includes a fallback to "classic" search.
  439. ([@zkat](https://github.com/zkat))
  440. #### WHERE DID THE DEBUG LOGS GO
  441. This is another pretty significant change: Usually, when the npm process
  442. crashed, you would get an `npm-debug.log` in your current working directory.
  443. This debug log would get cleared out as soon as you ran npm again. This was a
  444. bit annoying because 1) you would get a random file in your `git status` that
  445. you might accidentally commit, and 2) if you hit a hard-to-reproduce bug and
  446. instinctually tried again, you would no longer have access to the repro
  447. `npm-debug.log`.
  448. So now, any time a crash happens, we'll save your debug logs to your cache
  449. folder, under `_logs` (`~/.npm` on *nix, by default -- use `npm config get
  450. cache` to see what your current value is). The cache will now hold a
  451. (configurable) number of `npm-debug.log` files, which you can access in the
  452. future. Hopefully this will help clean stuff up and reduce frustration from
  453. missed repros! In the future, this will also be used by `npm report` to make it
  454. super easy to put up issues about crashes you run into with npm. 💃🕺🏿👯‍♂️
  455. * [`04fca22`](https://github.com/npm/npm/commit/04fca223a0f704b69340c5f81b26907238fad878)
  456. [#11439](https://github.com/npm/npm/pull/11439)
  457. Put debug logs in `$(npm get cache)/_logs` and store multiple log files.
  458. ([@KenanY](https://github.com/KenanY))
  459. ([@othiym23](https://github.com/othiym23))
  460. ([@isaacs](https://github.com/isaacs))
  461. ([@iarna](https://github.com/iarna))
  462. #### DOCS
  463. * [`ae8e71c`](https://github.com/npm/npm/commit/ae8e71c2b7d64d782af287a21e146d7cea6e5273)
  464. [#15402](https://github.com/npm/npm/pull/15402)
  465. Add missing backtick in one of the `npm doctor` messages.
  466. ([@watilde](https://github.com/watilde), [@charlotteis](https://github.com/charlotteis))
  467. * [`821fee6`](https://github.com/npm/npm/commit/821fee6d0b12a324e035c397ae73904db97d07d2)
  468. [#15480](https://github.com/npm/npm/pull/15480)
  469. Clarify that unscoped packages can depend on scoped packages and vice-versa.
  470. ([@chocolateboy](https://github.com/chocolateboy))
  471. * [`2ee45a8`](https://github.com/npm/npm/commit/2ee45a884137ae0706b7c741c671fef2cb3bac96)
  472. [#15515](https://github.com/npm/npm/pull/15515)
  473. Update minimum supported Node version number in the README to `node@>=4`.
  474. ([@watilde](https://github.com/watilde))
  475. * [`af06aa9`](https://github.com/npm/npm/commit/af06aa9a357578a8fd58c575f3dbe55bc65fc376)
  476. [#15520](https://github.com/npm/npm/pull/15520)
  477. Add section to `npm-scope` docs to explain that scope owners will own scoped
  478. packages with that scope. That is, user `@alice` is not allowed to publish to
  479. `@bob/my-package` unless explicitly made an owner by user (or org) `@bob`.
  480. ([@hzoo](https://github.com/hzoo))
  481. * [`bc892e6`](https://github.com/npm/npm/commit/bc892e6d07a4c6646480703641a4d71129c38b6d)
  482. [#15539](https://github.com/npm/npm/pull/15539)
  483. Replace `http` with `https` and fix typos in some docs.
  484. ([@watilde](https://github.com/watilde))
  485. * [`1dfe875`](https://github.com/npm/npm/commit/1dfe875b9ac61a0ab9f61a2eab02bacf6cce583c)
  486. [#15545](https://github.com/npm/npm/pull/15545)
  487. Update Node.js download link to point to the right place.
  488. ([@watilde](https://github.com/watilde))
  489. #### DEPENDENCIES
  490. * [`b824bfb`](https://github.com/npm/npm/commit/b824bfbeb2d89c92762e9170b026af98b5a3668a)
  491. `ansi-regex@2.1.1`
  492. * [`81ea3e8`](https://github.com/npm/npm/commit/81ea3e8e4ea34cd9c2b418512dcb508abcee1380)
  493. `mississippi@1.3.0`
  494. #### MISC
  495. * [`98df212`](https://github.com/npm/npm/commit/98df212a91fd6ff4a02b9cd247f4166f93d3977a)
  496. [#15492](https://github.com/npm/npm/pull/15492)
  497. Update the "master" node version used for AppVeyor to `node@7`.
  498. ([@watilde](https://github.com/watilde))
  499. * [`d75fc03`](https://github.com/npm/npm/commit/d75fc03eda5364f12ac266fa4f66e31c2e44e864)
  500. [#15413](https://github.com/npm/npm/pull/15413)
  501. `npm run-script` now exits with the child process' exit code on exit.
  502. ([@kapals](https://github.com/kapals))
  503. ### v4.1.2 (2017-01-12)
  504. We have a twee little release this week as we come back from the holidays.
  505. #### 0.12 IS UNSUPPORTED NOW (really)
  506. After [jumping the gun a
  507. little](https://github.com/npm/npm/releases/tag/v4.0.2), we can now
  508. officially remove 0.12 from our supported versions list. The Node.js
  509. project has now officially ended even maintenance support for 0.12 and thus,
  510. so will we. To reiterate from the last time we did this:
  511. What this means:
  512. * Your contributions will no longer block on the tests passing on 0.12.
  513. * We will no longer block dependency upgrades on working with 0.12.
  514. * Bugs filed on the npm CLI that are due to incompatibilities with 0.12
  515. (and older versions) will be closed with a strong urging to upgrade to a
  516. supported version of Node.
  517. * On the flip side, we'll continue to (happily!) accept patches that
  518. address regressions seen when running the CLI with Node.js 0.12.
  519. What this doesn't mean:
  520. * The CLI is going to start depending on ES2015+ features. npm continues
  521. to work, in almost all cases, all the way back to Node.js 0.8, and our
  522. long history of backwards compatibility is a source of pride for the
  523. team.
  524. * We aren't concerned about the problems of users who, for whatever
  525. reason, can't update to newer versions of npm. As mentioned above, we're
  526. happy to take community patches intended to address regressions.
  527. We're not super interested in taking sides on what version of Node.js
  528. you "should" be running. We're a workflow tool, and we understand that
  529. you all have a diverse set of operational environments you need to be
  530. able to support. At the same time, we _are_ a small team, and we need
  531. to put some limits on what we support. Tracking what's supported by our
  532. runtime's own team seems most practical, so that's what we're doing.
  533. * [`c7bbba8`](https://github.com/npm/npm/commit/c7bbba8744b62448103a1510c65d9751288abb5d)
  534. Remove 0.12 from our supported versions list.
  535. ([@iarna](https://github.com/iarna))
  536. #### WRITING TO SYMLINKED `package.json` (AND OTHER FILES)
  537. If your `package.json`, `npm-shrinkwrap.json` or `.npmrc` were a symlink and
  538. you used an `npm` command that modified one of these (eg `npm config set` or
  539. `npm install --save`) then previously we would have removed your symlink and
  540. replaced it with an ordinary file. While making these files symlinks is pretty
  541. uncommon, this was still surprising behavior. With this fix we now overwrite
  542. the _destination_ of the symlink and preserve the symlink itself.
  543. * [`a583983`](https://github.com/npm/npm/commit/a5839833d3de7072be06884b91902c093aff1aed)
  544. [write-file-atomic/#5](https://github.com/npm/write-file-atomic/issues/5)
  545. [#10223](https://github.com/npm/npm/10223)
  546. `write-file-atomic@1.3.1`:
  547. When the target is a symlink, write-file-atomic now overwrites the
  548. _destination_ of the symlink, instead of replacing the symlink itself. This
  549. makes it's behavior match `fs.writeFile`.
  550. Fixed a bug where it would ALWAYS fs.stat to look up default mode and chown
  551. values even if you'd passed them in. (It still used the values you passed
  552. in, but did a needless stat.)
  553. ([@iarna](https://github.com/iarna))
  554. #### DEPENDENCY UPDATES
  555. * [`521f230`](https://github.com/npm/npm/commit/521f230dd57261e64ac9613b3db62f5312971dca)
  556. `node-gyp@3.5.0`:
  557. Improvements to how Python is located. New `--devdir` flag.
  558. ([@bnoordhuis](https://github.com/bnoordhuis))
  559. ([@mhart](https://github.com/mhart))
  560. * [`ccd83e8`](https://github.com/npm/npm/commit/ccd83e8a70d35fb0904f8a9adb2ff7ac8a6b2706)
  561. `JSONStream@1.3.0`:
  562. Add new emitPath option.
  563. ([@nathanwills](https://github.com/nathanwills))
  564. #### TEST IMPROVEMENTS
  565. * [`d76e084`](https://github.com/npm/npm/commit/d76e08463fd65705217624b861a1443811692f34)
  566. Disable metric reporting for test suite even if the user has it enabled.
  567. ([@iarna](https://github.com/iarna))
  568. ### v4.1.1 (2016-12-16)
  569. This fixes a bug in the metrics reporting where, if you had enabled it then
  570. installs would create a metrics reporting process, that would create a
  571. metrics reporting process, that would… well, you get the idea. The only
  572. way to actually kill these processes is to turn off your networking, then
  573. on MacOS/Linux kill them with `kill -9`. Alternatively you can just reboot.
  574. Anyway, this is a quick release to fix that bug:
  575. * [`51c393f`](https://github.com/npm/npm/commit/51c393feff5f4908c8a9fb02baef505b1f2259be)
  576. [#15237](https://github.com/npm/npm/pull/15237)
  577. Don't launch a metrics sender process if we're running from a metrics
  578. sender process.
  579. ([@iarna](https://github.com/iarna))
  580. ### v4.1.0 (2016-12-15)
  581. I'm really excited about `npm@4.1.0`. I know, I know, I'm kinda overexcited
  582. in my changelogs, but this one is GREAT. We've got a WHOLE NEW subcommand, I
  583. mean, when was the last time you saw that? YEARS! And we have the beginnings
  584. of usage metrics reporting. Then there's a fix for a really subtle bug that
  585. resulted in `shasum` errors. And then we also have a few more bug fixes and
  586. other improvements.
  587. #### ANONYMOUS METRIC REPORTING
  588. We're adding the ability for you all to help us track the quality of your
  589. experiences using `npm`. Metrics will be sent if you run:
  590. ```
  591. npm config set send-metrics true
  592. ```
  593. Then `npm` will report to `registry.npmjs.org` the number of successful and
  594. failed installations you've had. The data contains no identifying
  595. information and npm will not attempt to correlate things like IP address
  596. with the metrics being submitted.
  597. Currently we only track number of successful and failed installations. In
  598. the future we would like to find additional metrics to help us better
  599. quantify the quality of the `npm` experience.
  600. * [`190a658`](https://github.com/npm/npm/commit/190a658c4222f6aa904cbc640fc394a5c875e4db)
  601. [#15084](https://github.com/npm/npm/pull/15084)
  602. Add facility for recording and reporting success metrics.
  603. ([@iarna](https://github.com/iarna))
  604. * [`87afc8b`](https://github.com/npm/npm/commit/87afc8b466f553fb49746c932c259173de48d0a4)
  605. [npm/npm-registry-client#147](https://github.com/npm/npm-registry-client/pull/148)
  606. `npm-registry-client@7.4.5`:
  607. Add support for sending anonymous CLI metrics.
  608. ([@iarna](https://github.com/iarna),
  609. [@sisidovski](https://github.com/sisidovski))
  610. ### NPM DOCTOR
  611. <pre>
  612. <u>Check</u> <u>Value</u> <u>Recommendation</u>
  613. npm ping ok
  614. npm -v v4.0.5
  615. node -v v4.6.1 Use node v6.9.2
  616. npm config get registry https://registry.npmjs.org/
  617. which git /Users/rebecca/bin/git
  618. Perms check on cached files ok
  619. Perms check on global node_modules ok
  620. Perms check on local node_modules ok
  621. Checksum cached files ok
  622. </pre>
  623. It's a rare day that we add a new command to `npm`, so I'm excited to
  624. present to you `npm doctor`. It checks for a number of common problems and
  625. provides some recommended solutions. It was put together through the hard
  626. work of [@watilde](https://github.com/watilde).
  627. * [`2359505`](https://github.com/npm/npm/commit/23595055669f76c9fe8f5f1cf4a705c2e794f0dc)
  628. [`0209ee5`](https://github.com/npm/npm/commit/0209ee50448441695fbf9699019d34178b69ba73)
  629. [#14582](https://github.com/npm/npm/pull/14582)
  630. Add new `npm doctor` to give your project environment a health check.
  631. ([@watilde](https://github.com/watilde))
  632. #### FIX MAJOR SOURCE OF SHASUM ERRORS
  633. If you've been getting intermittent shasum errors then you'll be pleased to
  634. know that we've tracked down at least one source of them, if not THE source
  635. of them.
  636. * [`87afc8b`](https://github.com/npm/npm/commit/87afc8b466f553fb49746c932c259173de48d0a4)
  637. [#14626](https://github.com/npm/npm/issues/14626)
  638. [npm/npm-registry-client#148](https://github.com/npm/npm-registry-client/pull/148)
  639. `npm-registry-client@7.4.5`:
  640. Fix a bug where an `ECONNRESET` while fetching a package file would result
  641. in a partial download that would be reported as a "shasum mismatch". It
  642. now throws away the partial download and retries it.
  643. ([@iarna](https://github.com/iarna))
  644. #### FILE URLS AND NODE.JS 7
  645. When `npm` was formatting `file` URLs we took advantage of `url.format` to
  646. construct them. Node.js 7 changed the behavior in such a way that our use of
  647. `url.format` stopped producing URLs that we could make use of.
  648. The reasons for this have to do with the `file` URL specification and how
  649. invalid (according to the specification) URLs are handled. How this changed
  650. is most easily explained with a table:
  651. <table>
  652. <tr><th></th><th>URL</th><th>Node.js &lt;= 6</th><th><tt>npm</tt>'s understanding</th><th>Node.js 7</th><th><tt>npm</tt>'s understanding</th></tr>
  653. <tr><td>VALID</td><td><tt>file:///abc/def</tt></td><td><tt>file:///abc/def</tt></td><td><tt>/abc/def</tt></td><td><tt>file:///abc/def</tt></td><td><tt>/abc/def</tt></td></tr>
  654. <tr><td>invalid</td><td><tt>file:/abc/def</tt></td><td><tt>file:/abc/def</tt></td><td><tt>/abc/def</tt></td><td><tt>file:///abc/def</tt></td><td><tt>/abc/def</tt></td></tr>
  655. <tr><td>invalid</td><td><tt>file:abc/def</tt></td><td><tt>file:abc/def</tt></td><td><tt>$CWD/abc/def</tt></td><td><tt>file://abc/def</tt></td><td><tt>/def</tt> on the <tt>abc</tt> host</td></tr>
  656. <tr><td>invalid</td><td><tt>file:../abc/def</tt></td><td><tt>file:../abc/def</tt></td><td><tt>$CWD/../abc/def</tt></td><td><tt>file://../abc/def</tt></td><td><tt>/abc/def</tt> on the <tt>..</tt> host</td></tr>
  657. </table>
  658. So the result was that passing a `file` URL that npm had received that used
  659. through Node.js 7's `url.format` changed its meaning as far as `npm` was
  660. concerned. As those kinds of URLs are, per the specification, invalid, how
  661. they should be handled is undefined and so the change in Node.js wasn't a
  662. bug per se.
  663. Our solution is to stop using `url.format` when constructing this kind of
  664. URL.
  665. * [`173935b`](https://github.com/npm/npm/commit/173935b4298e09c4fdcb8f3a44b06134d5aff181)
  666. [#15114](https://github.com/npm/npm/issues/15114)
  667. Stop using `url.format` for relative local dep paths.
  668. ([@zkat](https://github.com/zkat))
  669. #### EXTRANEOUS LIFECYCLE SCRIPT EXECUTION WHEN REMOVING
  670. * [`afb1dfd`](https://github.com/npm/npm/commit/afb1dfd944e57add25a05770c0d52d983dc4e96c)
  671. [#15090](https://github.com/npm/npm/pull/15090)
  672. Skip top level lifecycles when uninstalling.
  673. ([@iarna](https://github.com/iarna))
  674. #### REFACTORING AND INTERNALS
  675. * [`c9b279a`](https://github.com/npm/npm/commit/c9b279aca0fcb8d0e483e534c7f9a7250e2a9392)
  676. [#15205](https://github.com/npm/npm/pull/15205)
  677. [#15196](https://github.com/npm/npm/pull/15196)
  678. Only have one function that determines which version of a package to use
  679. given a specifier and a list of versions.
  680. ([@iarna](https://github.com/iarna),
  681. [@zkat](https://github.com/zkat))
  682. * [`981ce63`](https://github.com/npm/npm/commit/981ce6395e7892dde2591b44e484e191f8625431)
  683. [#15090](https://github.com/npm/npm/pull/15090)
  684. Rewrite prune to use modern npm plumbing.
  685. ([@iarna](https://github.com/iarna))
  686. * [`bc4b739`](https://github.com/npm/npm/commit/bc4b73911f58a11b4a2d28b49e24b4dd7365f95b)
  687. [#15089](https://github.com/npm/npm/pull/15089)
  688. Rename functions and variables in the module that computes what changes to
  689. make to your installation.
  690. ([@iarna](https://github.com/iarna))
  691. * [`2449f74`](https://github.com/npm/npm/commit/2449f74a202b3efdb1b2f5a83356a78ea9ecbe35)
  692. [#15089](https://github.com/npm/npm/pull/15089)
  693. When computing changes to make to your installation, use a function to add
  694. new actions to take instead of just pushing on a list.
  695. ([@iarna](https://github.com/iarna))
  696. #### IMPROVED LOGGING
  697. * [`335933a`](https://github.com/npm/npm/commit/335933a05396258eead139d27eea3f7668ccdfab)
  698. [#15089](https://github.com/npm/npm/pull/15089)
  699. Log when we remove obsolete dependencies in the tree.
  700. ([@iarna](https://github.com/iarna))
  701. #### DOCUMENTATION
  702. * [`33ca4e6`](https://github.com/npm/npm/commit/33ca4e6db3c1878cbc40d5e862ab49bb0e82cfb2)
  703. [#15157](https://github.com/npm/npm/pull/15157)
  704. Update `npm cache` docs to use more consistent language
  705. ([@JonahMoses](https://github.com/JonahMoses))
  706. #### DEPENDENCY UPDATES
  707. * [`c2d22fa`](https://github.com/npm/npm/commit/c2d22faf916e8260136a1cc95913ca474421c0d3)
  708. [#15215](https://github.com/npm/npm/pull/15215)
  709. `nopt@4.0.1`:
  710. The breaking change is a small tweak to how empty string values are
  711. handled. See the brand-new
  712. [CHANGELOG.md for nopt](https://github.com/npm/nopt/blob/v4.0.1/CHANGELOG.md) for further
  713. details about what's changed in this release!
  714. ([@adius](https://github.com/adius),
  715. [@samjonester](https://github.com/samjonester),
  716. [@elidoran](https://github.com/elidoran),
  717. [@helio](https://github.com/helio),
  718. [@silkentrance](https://github.com/silkentrance),
  719. [@othiym23](https://github.com/othiym23))
  720. * [`54d949b`](https://github.com/npm/npm/commit/54d949b05adefffeb7b5b10229c5fe0ccb929ac3)
  721. [npm/lockfile#24](https://github.com/npm/lockfile/pull/24)
  722. `lockfile@1.0.3`:
  723. Handled case where callback was not passed in by the user.
  724. ([@ORESoftware](https://github.com/ORESoftware))
  725. * [`54acc03`](https://github.com/npm/npm/commit/54acc0389b39850c0725d0868cb5e61317b57503)
  726. `npmlog@4.0.2`:
  727. Documentation update.
  728. ([@helio-frota](https://github.com/helio-frota))
  729. * [`57f4bc1`](https://github.com/npm/npm/commit/57f4bc1150322294c1ea0a287ad0a8e457c151e6)
  730. `osenv@0.1.4`:
  731. Test changes.
  732. ([@isaacs](https://github.com/isaacs))
  733. * [`bea1a2d`](https://github.com/npm/npm/commit/bea1a2d0db566560e13ecc1d5f42e55811269c88)
  734. `retry@0.10.1`:
  735. No changes.
  736. ([@tim-kos](https://github.com/tim-kos))
  737. * [`6749e39`](https://github.com/npm/npm/commit/6749e395f868109afd97f79d36507e6567dd48fb)
  738. [kapouer/marked-man#9](https://github.com/kapouer/marked-man/pull/9)
  739. `marked-man@0.2.0`:
  740. Add table support.
  741. ([@gholk](https://github.com/gholk))
  742. ### v4.0.5 (2016-12-01)
  743. It's that time of year! December is upon us, which means y'all are just going to
  744. be doing a lot less, in general, for the next month or so. The "Xmas Chasm", as
  745. we like to call it, has already begun. So for those of you reading it from the
  746. other side: Hi! Welcome back!
  747. This week's release is a relatively small one, involving just a few bugfixes and
  748. dependency upgrades. The CLI team has been busy recently with scoping out
  749. `npm@5`, and starting to do initial spec work for in-scope stuff.
  750. #### BUGFIXES
  751. On to the actual changes!
  752. * [`9776d8f`](https://github.com/npm/npm/commit/9776d8f70a0ea8d921cbbcab7a54e52c15fc455f)
  753. [#15081](https://github.com/npm/npm/pull/15081)
  754. `bundledDependencies` are intended to be left untouched by the installer, as
  755. much as possible -- if they're bundled, we assume that you want to be
  756. particular about the contents of your bundle.
  757. The installer used to have a corner case where existing dependencies that had
  758. bundledDependencies would get clobbered by as the installer moved stuff
  759. around, even though the installer already avoided moving deps that were
  760. themselves bundled. This is now fixed, along with the connected crasher, and
  761. your bundledDeps should be left even more intact than before!
  762. ([@iarna](https://github.com/iarna))
  763. * [`fc61c08`](https://github.com/npm/npm/commit/fc61c082122104031ccfb2a888432c9f809a0e8b)
  764. [#15082](https://github.com/npm/npm/pull/15082)
  765. Initialize nodes from bundled dependencies. This should address
  766. [#14427](https://github.com/npm/npm/issues/14427) and related issues, but it's
  767. turned out to be a tremendously difficult issue to reproduce in a test. We
  768. decided to include it even pending tests, because we found the root cause of
  769. the errors.
  770. ([@iarna](https://github.com/iarna))
  771. * [`d8471a2`](https://github.com/npm/npm/commit/d8471a294ef848fc893f60e17d6ec6695b975d16)
  772. [#12811](https://github.com/npm/npm/pull/12811)
  773. Consider `devDependencies` when deciding whether to hoist a package. This
  774. should resolve a variety of missing dependency issues some folks were seeing
  775. when `devDependencies` happened to also be dependencies of your
  776. `dependencies`. This often manifested as modules going missing, or only being
  777. installed, after `npm install` was called twice.
  778. ([@schmod](https://github.com/schmod))
  779. #### DEPENDENCY UPDATES
  780. * [`5978703`](https://github.com/npm/npm/commit/5978703da8669adae464789b1b15ee71d7f8d55d)
  781. `graceful-fs@4.1.11`:
  782. `EPERM` errors are Windows are now handled more gracefully. Windows users that
  783. tended to see these errors due to, say, an antivirus-induced race condition,
  784. should see them much more rarely, if at all.
  785. ([@zkatr](https://github.com/zkat))
  786. * [`85b0174`](https://github.com/npm/npm/commit/85b0174ba9842e8e89f3c33d009e4b4a9e877c7d)
  787. `request@2.79.0`
  788. ([@zkat](https://github.com/zkat))
  789. * [`9664d36`](https://github.com/npm/npm/commit/9664d36653503247737630440bc2ff657de965c3)
  790. `tap@8.0.1`
  791. ([@zkat](https://github.com/zkat))
  792. #### MISCELLANEOUS
  793. * [`f0f7b0f`](https://github.com/npm/npm/commit/f0f7b0fd025daa2b69994130345e6e8fdaaa0304)
  794. [#15083](https://github.com/npm/npm/pull/15083)
  795. Removed dead code.
  796. ([@iarna](https://github.com/iarna)) * [`bc32afe`](https://github.com/npm/npm/commit/bc32afe4d12e3760fb5a26466dc9c26a5a2981d5) [`c8a22fe`](https://github.com/npm/npm/commit/c8a22fe5320550e09c978abe560b62ce732686f4) [`db2666d`](https://github.com/npm/npm/commit/db2666d8c078fc69d0c02c6a3de9b31be1e995e9)
  797. [#15085](https://github.com/npm/npm/pull/15085)
  798. Change some network tests so they can run offline.
  799. ([@iarna](https://github.com/iarna))
  800. * [`744a39b`](https://github.com/npm/npm/commit/744a39b836821b388ad8c848bd898c1d006689a9)
  801. [#15085](https://github.com/npm/npm/pull/15085)
  802. Make Node.js tests compatible with Windows.
  803. ([@iarna](https://github.com/iarna))
  804. ### v4.0.3 (2016-11-17)
  805. Hey you all, we've got a couple of bug fixes for you, a slew of
  806. documentation improvements and some improvements to our CI environment. I
  807. know we just got v4 out the door, but the CLI team is already busy planning
  808. v5. We'll have more for you in early December.
  809. #### BUG FIXES
  810. * [`45d40d9`](https://github.com/npm/npm/commit/45d40d96d2cd145f1e36702d6ade8cd033f7f332)
  811. [`ba2adc2`](https://github.com/npm/npm/commit/ba2adc2e822d5e75021c12f13e3f74ea2edbde32)
  812. [`1dc8908`](https://github.com/npm/npm/commit/1dc890807bd78a1794063688af31287ed25a2f06)
  813. [`2ba19ee`](https://github.com/npm/npm/commit/2ba19ee643d612d103cdd8f288d313b00d05ee87)
  814. [#14403](https://github.com/npm/npm/pull/14403)
  815. Fix a bug where a scoped module could produce crashes when incorrectly
  816. computing the paths related to their location. This patch reorganizes how path information
  817. is passed in to eliminate the possibility of this sort of bug.
  818. ([@iarna](https://github.com/iarna))
  819. ([@NatalieWolfe](https://github.com/NatalieWolfe))
  820. * [`1011ec6`](https://github.com/npm/npm/commit/1011ec61230288c827a1c256735c55cf03d6228f)
  821. [npm/npmlog#46](https://github.com/npm/npmlog/pull/46)
  822. `npmlog@4.0.1`: Fix a bug where the progress bar would still display even if
  823. you passed in `--no-progress`.
  824. ([@iarna](https://github.com/iarna))
  825. #### DOCUMENTATION UPDATES
  826. * [`c3ac177`](https://github.com/npm/npm/commit/c3ac177236124c80524c5f252ba8f6670f05dcd8)
  827. [#14406](https://github.com/npm/npm/pull/14406)
  828. Sync up the dispute policy included with the CLI with the [current official text](https://www.npmjs.com/policies/disputes).
  829. ([@mike-engel](https://github.com/mike-engel))
  830. * [`9c663b2`](https://github.com/npm/npm/commit/9c663b2dd8552f892dc0205330bbc73a484ecd81)
  831. [#14627](https://github.com/npm/npm/pull/14627)
  832. Update build status branch in README.
  833. ([@cameronroe](https://github.com/cameronroe))
  834. * [`8a8a0a3`](https://github.com/npm/npm/commit/8a8a0a3d490fc767def208f925cdff57e16e565b)
  835. [#14609](https://github.com/npm/npm/pull/14609)
  836. Update examples URLs of GitHub repos where those repos have moved to new URLs.
  837. ([@dougwilson](https://github.com/dougwilson))
  838. * [`7a6425b`](https://github.com/npm/npm/commit/7a6425bcd4decde5d4b0af8b507e98723a07c680)
  839. [#14472](https://github.com/npm/npm/pull/14472)
  840. Document `sign-git-tag` in
  841. [npm-version(1)](https://github.com/npm/npm/blob/release-next/doc/cli/npm-version.md)'s
  842. configuration section.
  843. ([@strugee](https://github.com/strugee))
  844. * [`f3087cc`](https://github.com/npm/npm/commit/f3087cc58c903d9a70275be805ebaf0eadbcbe1b)
  845. [#14546](https://github.com/npm/npm/pull/14546)
  846. Add a note about the dangers of configuring npm via uppercase env vars.
  847. ([@tuhoojabotti](https://github.com/tuhoojabotti))
  848. * [`50e51b0`](https://github.com/npm/npm/commit/50e51b04a143959048cf9e1e4c8fe15094f480b0)
  849. [#14559](https://github.com/npm/npm/pull/14559)
  850. Remove documentation that incorrectly stated that we check `.npmrc` permissions.
  851. ([@iarna](https://github.com/iarna))
  852. ##### OH UH, HELLO AGAIN NODE.JS 0.12
  853. * [`6f0c353`](https://github.com/npm/npm/commit/6f0c353e4e89b0378a4c88c829ccf9a1c5ae829d)
  854. [`f78bde6`](https://github.com/npm/npm/commit/f78bde6983bdca63d5fcb9c220c87e8f75ffb70e)
  855. [#14591](https://github.com/npm/npm/pull/14591)
  856. Reintroduce Node.js 0.12 to our support matrix. We jumped the gun when
  857. removing it. We won't drop support for it till the Node.js project does
  858. so at the end of December 2016.
  859. ([@othiym23](https://github.com/othiym23))
  860. #### TEST/CI UPDATES
  861. * [`aa73d1c`](https://github.com/npm/npm/commit/aa73d1c1cc22608f95382a35b33da252addff38e)
  862. [`c914e80`](https://github.com/npm/npm/commit/c914e80f5abcb16c572fe756c89cf0bcef4ff991)
  863. * [`58fe064`](https://github.com/npm/npm/commit/58fe064dcc80bc08c677647832f2adb4a56b538a)
  864. [#14602](https://github.com/npm/npm/pull/14602)
  865. When running tests with coverage, use nyc's cache. This provides an 8x speedup!
  866. ([@bcoe](https://github.com/bcoe))
  867. * [`ba091ce`](https://github.com/npm/npm/commit/ba091ce843af5d694f4540e825b095435b3558d8)
  868. [#14435](https://github.com/npm/npm/pull/14435)
  869. Remove an unused zero byte `package.json` found in the test fixtures.
  870. ([@baderbuddy](https://github.com/baderbuddy))
  871. #### DEPENDENCY UPDATES
  872. * [`442e01e`](https://github.com/npm/npm/commit/442e01e42d8a439809f6726032e3b73ac0d2b2f8)
  873. `readable-stream@2.2.2`:
  874. Bring in latest changes from Node.js 7.x.
  875. ([@calvinmetcalf](https://github.com/calvinmetcalf))
  876. * [`bfc4a1c`](https://github.com/npm/npm/commit/bfc4a1c0c17ef0a00dfaa09beba3389598a46535)
  877. `which@1.2.12`:
  878. Remove unused require.
  879. ([@isaacs](https://github.com/isaacs))
  880. #### DEV DEPENDENCY UPDATES
  881. * [`7075b05`](https://github.com/npm/npm/commit/7075b054d8d2452bb53bee9b170498a48a0dc4e9)
  882. `marked-man@0.1.6`
  883. ([@kapouer](https://github.com/kapouer))
  884. * [`3e13fea`](https://github.com/npm/npm/commit/3e13fea907ee1141506a6de7d26cbc91c28fdb80)
  885. `tap@8.0.0`
  886. ([@isaacs](https://github.com/isaacs))
  887. ### v4.0.2 (2016-11-03)
  888. Hola, amigxs. I know it's been a long time since I rapped at ya, but I
  889. been spending a lotta time quietly reflecting on all the things going on
  890. in my life. I was, like, [in Japan for a while](https://gist.github.com/othiym23/c98bd4ef5d9fb3f496835bd481ef40ae),
  891. and before that my swell colleagues [@zkat](https://github.com/zkat) and
  892. [@iarna](https://github.com/iarna) have been very capably managing the release
  893. process for quite a while. But I returned from Japan somewhat refreshed, very
  894. jetlagged, and filled with a burning urge to get `npm@4` as stable as possible
  895. before we push it out to the user community at large, so I decided to do this
  896. release myself. (Also, huge thanks to Kat and Rebecca for putting out `npm@4`
  897. so capably while I was on vacation! So cool to return to a major release having
  898. gone so well without my involvement!)
  899. That said...
  900. #### NEVER TRUST AN X.0.0 RELEASE
  901. Even though 4.0.1 came out hard on the heels of 4.0.0 with a couple
  902. critical fixes, we've found a couple other major issues that we want to
  903. see fixed before making `npm@4` into `npm@latest`. Some of these are
  904. arguably breaking changes on their own, so now is the time to get them
  905. out if we're going to do so before `npm@5`, and all of them are pretty
  906. significant blockers for a substantial number of users, so now is the
  907. best time to fix them.
  908. ##### PREPUBLISHONLY WHOOPS
  909. The code running the `publish*` lifecycle events was very confusingly written.
  910. In fact, we didn't really figure out what it was doing until we added the new
  911. `prepublishOnly` event and it was running people's scripts from the wrong
  912. directory. We made it simpler. See the [commit
  913. message](https://github.com/npm/npm/commit/8b32d67aa277fd7e62edbed886387a855f58387f)
  914. for details.
  915. Because the change is no longer running publish events when publishing prebuilt
  916. artifacts, it's technically a breaking / semver-major change. In the off chance
  917. that the new behavior breaks any of y'all's workflows, let us know, and we can
  918. roll some or all of this change back until `npm@5` (or forever, if that works
  919. better for you).
  920. * [`8b32d67`](https://github.com/npm/npm/commit/8b32d67aa277fd7e62edbed886387a855f58387f)
  921. [#14502](https://github.com/npm/npm/pull/14502)
  922. Simplify lifecycle invocation and fix `prepublishOnly`.
  923. ([@othiym23](https://github.com/othiym23))
  924. ##### G'BYE NODE.JS 0.10, 0.12, and 5.X; HI THERE, NODE 7
  925. With the advent of the second official Node.js LTS release, Node 6.x
  926. 'Boron', the Node.js project has now officially dropped versions 0.10
  927. and 0.12 out of the maintenance phase of LTS. (Also, Node 5 was never
  928. part of LTS, and will see no further support now that Node 7 has been
  929. released.) As a small team with limited resources, the npm CLI team is
  930. following suit and dropping those versions of Node from its CI test
  931. matrix.
  932. What this means:
  933. * Your contributions will no longer block on the tests passing on 0.10 and 0.12.
  934. * We will no longer block dependency upgrades on working with 0.10 and 0.12.
  935. * Bugs filed on the npm CLI that are due to incompatibilities with 0.10
  936. or 0.12 (and older versions) will be closed with a strong urging to
  937. upgrade to a supported version of Node.
  938. * On the flip side, we'll continue to (happily!) accept patches that
  939. address regressions seen when running the CLI with Node.js 0.10 and
  940. 0.12.
  941. What this doesn't mean:
  942. * The CLI is going to start depending on ES2015+ features. npm continues
  943. to work, in almost all cases, all the way back to Node.js 0.8, and our
  944. long history of backwards compatibility is a source of pride for the
  945. team.
  946. * We aren't concerned about the problems of users who, for whatever
  947. reason, can't update to newer versions of npm. As mentioned above, we're
  948. happy to take community patches intended to address regressions.
  949. We're not super interested in taking sides on what version of Node.js
  950. you "should" be running. We're a workflow tool, and we understand that
  951. you all have a diverse set of operational environments you need to be
  952. able to support. At the same time, we _are_ a small team, and we need
  953. to put some limits on what we support. Tracking what's supported by our
  954. runtime's own team seems most practical, so that's what we're doing.
  955. * [`ab630c9`](https://github.com/npm/npm/commit/ab630c9a7a1b40cdd4f1244be976c25ab1525907)
  956. [#14503](https://github.com/npm/npm/pull/14503)
  957. Node 6 is LTS; 5.x, 0.10, and 0.12 are unsupported.
  958. ([@othiym23](https://github.com/othiym23))
  959. * [`731ae52`](https://github.com/npm/npm/commit/731ae526fb6e9951c43d82a26ccd357b63cc56c2)
  960. [#14503](https://github.com/npm/npm/pull/14503)
  961. Update supported version expression.
  962. ([@othiym23](https://github.com/othiym23))
  963. ##### DISENTANGLING SCOPE
  964. The new `Npm-Scope` header was previously reusing the `scope`
  965. configuration option to pass the current scope back to your current
  966. registry (which, as [described
  967. previously](https://github.com/npm/npm/blob/release-next/CHANGELOG.md#send-extra-headers-to-registry), is meant to set up some upcoming
  968. registry features). It turns out that had some [seriously weird
  969. consequences](https://github.com/npm/npm/issues/14412) in the case where
  970. you were already configuring `scope` in your own environment. The CLI
  971. now uses separate configuration for this.
  972. * [`39358f7`](https://github.com/npm/npm/commit/39358f732ded4aa46d86d593393a0d6bca5dc12a)
  973. [#14477](https://github.com/npm/npm/pull/14477)
  974. Differentiate registry scope from project scope in configuration.
  975. ([@zkat](https://github.com/zkat))
  976. #### SMALLER CHANGES
  977. * [`7f41295`](https://github.com/npm/npm/commit/7f41295775f28b958a926f9cb371cb37b05771dd)
  978. [#14519](https://github.com/npm/npm/pull/14519)
  979. Document that as of `npm@4.0.1`, `npm shrinkwrap` now includes `devDependencies` unless
  980. instructed otherwise.
  981. ([@iarna](https://github.com/iarna))
  982. * [`bdc2f9e`](https://github.com/npm/npm/commit/bdc2f9e255ddf1a47fd13ec8749d17ed41638b2c)
  983. [#14501](https://github.com/npm/npm/pull/14501)
  984. The `ENOSELF` error message is tricky to word. It's also an error that
  985. normally bites new users. Clean it up in an effort to make it easier
  986. to understand what's going on.
  987. ([@snopeks](https://github.com/snopeks), [@zkat](https://github.com/zkat))
  988. #### DEPENDENCY UPGRADES
  989. * [`a52d0f0`](https://github.com/npm/npm/commit/a52d0f0c9cf2de5caef77e12eabd7dca9e89b49c)
  990. `glob@7.1.1`:
  991. - Handle files without associated perms on Windows.
  992. - Fix failing case with `absolute` option.
  993. ([@isaacs](https://github.com/isaacs), [@phated](https://github.com/phated))
  994. * [`afda66d`](https://github.com/npm/npm/commit/afda66d9afcdcbae1d148f589287583c4182d124)
  995. [isaacs/node-graceful-fs#97](https://github.com/isaacs/node-graceful-fs/pull/97)
  996. `graceful-fs@4.1.10`: Better backoff for EPERM on Windows.
  997. ([@sam-github](https://github.com/sam-github))
  998. * [`e0023c0`](https://github.com/npm/npm/commit/e0023c089ded9161fbcbe544f12b07e12e3e5729)
  999. [npm/inflight#3](https://github.com/npm/inflight/pull/3)
  1000. `inflight@1.0.6`: Clean up even if / when a callback throws.
  1001. ([@phated](https://github.com/phated))
  1002. * [`1d91594`](https://github.com/npm/npm/commit/1d9159440364d2fe21e8bc15e08e284aaa118347)
  1003. `request@2.78.0`
  1004. ([@othiym23](https://github.com/othiym23))
  1005. ### v4.0.1 (2016-10-24)
  1006. Ayyyy~ 🌊
  1007. So thanks to folks who were running on `npm@next`, we managed to find a few
  1008. issues of notes in that preview version, and we're rolling out a small patch
  1009. change to fix them. Most notably, anyone who was using a symlinked `node` binary
  1010. (for example, if they installed Node.js through `homebrew`), was getting a very
  1011. loud warning every time they ran scripts. Y'all should get warnings in a more
  1012. useful way, now that we're resolving those path symlinks.
  1013. Another fairly big change that we decided to slap into this version, since
  1014. `npm@4.0.0` is never going to be `latest`, is to make it so `devDependencies`
  1015. are included in `npm-shrinkwrap.json` by default -- if you do not want this, use
  1016. `--production` with `npm shrinkwrap`.
  1017. #### BIG FIXES/CHANGES
  1018. * [`eff46dd`](https://github.com/npm/npm/commit/eff46dd498ed007bfa77ab7782040a3a828b852d)
  1019. [#14374](https://github.com/npm/npm/pull/14374)
  1020. Fully resolve the path for `node` executables in both `$PATH` and
  1021. `process.execPath` to avoid issues with symlinked `node`.
  1022. ([@addaleax](https://github.com/addaleax))
  1023. * [`964f2d3`](https://github.com/npm/npm/commit/964f2d3a0675584267e6ece95b0115a53c6ca6a9)
  1024. [#14375](https://github.com/npm/npm/pull/14375)
  1025. Make including `devDependencies` in `npm-shrinkwrap.json` the default. This
  1026. should help make the transition to `npm@5` smoother in the future.
  1027. ([@iarna](https://github.com/iarna))
  1028. #### BUGFIXES
  1029. * [`a5b0a8d`](https://github.com/npm/npm/commit/a5b0a8db561916086fc7dbd6eb2836c952a42a7e)
  1030. [#14400](https://github.com/npm/npm/pull/14400)
  1031. Recently, we've had some consistent timeout failures while running the test
  1032. suite under Travis. This tweak to tests should take care of those issues and
  1033. Travis should go back to being reliably green.
  1034. ([@iarna](https://github.com/iarna))
  1035. #### DOC PATCHES
  1036. * [`c5907b2`](https://github.com/npm/npm/commit/c5907b2fc1a82ec919afe3b370ecd34d8895c7a2)
  1037. [#14251](https://github.com/npm/npm/pull/14251)
  1038. Update links to Node.js downloads. They previously pointed to 404 pages.😬
  1039. ([@ArtskydJ](https://github.com/ArtskydJ))
  1040. * [`0c122f2`](https://github.com/npm/npm/commit/0c122f24ff1d4d400975edda2b7262aaaf6f7d69)
  1041. [#14380](https://github.com/npm/npm/pull/14380)
  1042. Add note and clarification on when `prepare` script is run. Make it more
  1043. consistent with surrounding descriptions.
  1044. ([@SimenB](https://github.com/SimenB))
  1045. * [`51a62ab`](https://github.com/npm/npm/commit/51a62abd88324ba3dad18e18ca5e741f1d60883c)
  1046. [#14359](https://github.com/npm/npm/pull/14359)
  1047. Fixes typo in `npm@4` changelog.
  1048. ([@kimroen](https://github.com/kimroen))
  1049. ### v4.0.0 (2016-10-20)
  1050. Welcome to `npm@4`, friends!
  1051. This is our first semver major release since the release of `npm@3` just over a
  1052. year ago. Back then, `@3` turned out to be a bit of a ground-shaking release,
  1053. with a brand-new installer with significant structural changes to how npm set up
  1054. your tree. This is the end of an era, in a way. `npm@4` also marks the release
  1055. when we move *both* `npm@2` and `npm@3` into maintenance: We will no longer be
  1056. updating those release branches with anything except critical bugfixes and
  1057. security patches.
  1058. While its predecessor had some pretty serious impaact, `npm@4` is expected to
  1059. have a much smaller effect on your day-to-day use of npm. Over the past year,
  1060. we've collected a handful of breaking changes that we wanted to get in which are
  1061. only breaking under a strict semver interpretation (which we follow). Some of
  1062. these are simple usability improvements, while others fix crashes and serious
  1063. issues that required a major release to include.
  1064. We hope this release sees you well, and you can look forward to an accelerated
  1065. release pace now that the CLI team is done focusing on sustaining work -- our
  1066. Windows fixing and big bugs pushes -- and we can start focusing again on
  1067. usability, features, and performance. Keep an eye out for `npm@5` in Q1 2017,
  1068. too: We're planning a major overhaul of `shrinkwrap` as well as various speed
  1069. and usability fixes for that release. It's gonna be a fun ride. I promise. 😘
  1070. #### BRIEF OVERVIEW OF **BREAKING** CHANGES
  1071. The following breaking changes are included in this release:
  1072. * `npm search` rewritten to stream results, and no longer supports sorting.
  1073. * `npm scripts` no longer prepend the path of the node executable used to run
  1074. npm before running scripts. A `--scripts-prepend-node-path` option has been
  1075. added to configure this behavior.
  1076. * `npat` has been removed.
  1077. * `prepublish` has been deprecated, replaced by `prepare`. A `prepublishOnly`
  1078. script has been temporarily added, which will *only* run on `npm publish`.
  1079. * `npm outdated` exits with exit code `1` if it finds any outdated packages.
  1080. * `npm tag` has been removed after a deprecation cycle. Use `npm dist-tag`.
  1081. * Partial shrinkwraps are no longer supported. `npm-shrinkwrap.json` is
  1082. considered a complete installation manifest except for `devDependencies`.
  1083. * npm's default git branch is no longer `master`. We'll be using `latest` from
  1084. now on.
  1085. #### SEARCH REWRITE (**BREAKING**)
  1086. Let's face it -- `npm search` simply doesn't work anymore. Apart from the fact
  1087. that it grew slower over the years, it's reached a point where we can no longer
  1088. fit the entire registry metadata in memory, and anyone who tries to use the
  1089. command now sees a really awful memory overflow crash from node.
  1090. It's still going to be some time before the CLI, registry, and web team are able
  1091. to overhaul `npm search` altogether, but until then, we've rewritten the
  1092. previous `npm search` implementation to *stream* results on the fly, from both
  1093. the search endpoint and a local cache. In absolute terms, you won't see a
  1094. performance increase and this patch *does* come at the cost of sorting
  1095. capabilities, but what it does do is start outputting results as it finds them.
  1096. This should make the experience much better, overall, and we believe this is an
  1097. acceptable band-aid until we have that search endpoint in place.
  1098. Incidentally, if you want a really nice search experience, we recommend checking
  1099. out [npms.io](http://npms.io), which includes a handy-dandy
  1100. [`npms-cli`](https://npm.im/npms-cli) for command-line usage -- it's an npm
  1101. search site that returns high-quality results quickly and is operated by members
  1102. of the npm community.
  1103. * [`cfd43b4`](https://github.com/npm/npm/commit/cfd43b49aed36d0e8ea6c35b07ed8b303b69be61) [`2b8057b`](https://github.com/npm/npm/commit/2b8057be2e1b51e97b1f8f38d7f58edf3ce2c145)
  1104. [#13746](https://github.com/npm/npm/pull/13746)
  1105. Stream search process end-to-end.
  1106. ([@zkat](https://github.com/zkat) and [@aredridel](https://github.com/aredridel))
  1107. * [`50f4ec8`](https://github.com/npm/npm/commit/50f4ec8e8ce642aa6a58cb046b2b770ccf0029db) [`70b4bc2`](https://github.com/npm/npm/commit/70b4bc22ec8e81cd33b9448f5b45afd1a50d50ba) [`8fb470f`](https://github.com/npm/npm/commit/8fb470fe755c4ad3295cb75d7b4266f8e67f8d38) [`ac3a6e0`](https://github.com/npm/npm/commit/ac3a6e0eba61fb40099b1370c74ad1598777def4) [`bad54dd`](https://github.com/npm/npm/commit/bad54dd9f1119fe900a8d065f8537c6f1968b589) [`87d504e`](https://github.com/npm/npm/commit/87d504e0a61bccf09f5e975007d018de3a1c5f50)
  1108. [#13746](https://github.com/npm/npm/pull/13746)
  1109. Updated search-related tests.
  1110. ([@zkat](https://github.com/zkat))
  1111. * [`3596de8`](https://github.com/npm/npm/commit/3596de88598c69eb5bae108703c8e74ca198b20c)
  1112. [#13746](https://github.com/npm/npm/pull/13746)
  1113. `JSONStream@1.2.1`
  1114. ([@zkat](https://github.com/zkat))
  1115. * [`4b09209`](https://github.com/npm/npm/commit/4b09209bb605f547243065032a8b37772669745f)
  1116. [#13746](https://github.com/npm/npm/pull/13746)
  1117. `mississippi@1.2.0`
  1118. ([@zkat](https://github.com/zkat))
  1119. * [`b650b39`](https://github.com/npm/npm/commit/b650b39d42654abb9eed1c7cd463b1c595ca2ef9)
  1120. [#13746](https://github.com/npm/npm/pull/13746)
  1121. `sorted-union-stream@2.1.3`
  1122. ([@zkat](https://github.com/zkat))
  1123. #### SCRIPT NODE PATH (**BREAKING**)
  1124. Thanks to some great work by [@addaleax](https://github.com/addaleax), we've
  1125. addressed a fairly tricky issue involving the node process used by `npm
  1126. scripts`.
  1127. Previously, npm would prefix the path of the node executable to the script's
  1128. `PATH`. This had the benefit of making sure that the node process would be the
  1129. same for both npm and `scripts` unless you had something like
  1130. [`node-bin`](https://npm.im/node-bin) in your `node_modules`. And it turns out
  1131. lots of people relied on this behavior being this way!
  1132. It turns out that this had some unintended consequences: it broke systems like
  1133. [`nyc`](https://npm.im/nyc), but also completely broke/defeated things like
  1134. [`rvm`](https://rvm.io/) and
  1135. [`virtualenv`](https://virtualenv.pypa.io/en/stable/) by often causing things
  1136. that relied on them to fall back to the global system versions of ruby and
  1137. python.
  1138. In the face of two perfectly valid, and used alternatives, we decided that the
  1139. second case was much more surprising for users, and that we should err on the
  1140. side of doing what those users expect. Anna put some hard work in and managed to
  1141. put together a patch that changes npm's behavior such that we no longer prepend
  1142. the node executable's path *by default*, and adds a new option,
  1143. `--scripts-prepend-node-path`, to allow users who rely on this behavior to have
  1144. it add the node path for them.
  1145. This patch also makes it so this feature is discoverable by people who might run
  1146. into the first case above, by warning if the node executable is either missing
  1147. or shadowed by another one in `PATH`. This warning can also be disabled with the
  1148. `--scripts-prepend-node-path` option as needed.
  1149. * [`3fb1eb3`](https://github.com/npm/npm/commit/3fb1eb3e00b5daf37f14e437d2818e9b65a43392) [`6a7d375`](https://github.com/npm/npm/commit/6a7d375d779ba5416fd5df154c6da673dd745d9d) [`378ae08`](https://github.com/npm/npm/commit/378ae08851882d6d2bc9b631b16b8c875d0b9704)
  1150. [#13409](https://github.com/npm/npm/pull/13409)
  1151. Add a `--scripts-prepend-node-path` option to configure whether npm prepends
  1152. the current node executable's path to `PATH`.
  1153. ([@addaleax](https://github.com/addaleax))
  1154. * [`70b352c`](https://github.com/npm/npm/commit/70b352c6db41533b9a4bfaa9d91f7a2a1178f74e)
  1155. [#13409](https://github.com/npm/npm/pull/13409)
  1156. Change the default behaviour of npm to never prepending the current node
  1157. executable’s directory to `PATH` but printing a warning in the cases in which
  1158. it previously did.
  1159. ([@addaleax](https://github.com/addaleax))
  1160. #### REMOVE `npat` (**BREAKING**)
  1161. Let's be real here -- almost no one knows this feature ever existed, and it's a
  1162. vestigial feature of the days when the ideal for npm was to distribute full
  1163. packages that could be directly developed on, even from the registry.
  1164. It turns out the npm community decided to go a different way: primarily
  1165. publishing packages in a production-ready format, with no tests, build tools,
  1166. etc. And so, we say goodbye to `npat`.
  1167. * [`e16c14a`](https://github.com/npm/npm/commit/e16c14afb6f52cb8b7adf60b2b26427f76773f2e)
  1168. [#14329](https://github.com/npm/npm/pull/14329)
  1169. Remove the npat feature.
  1170. ([@iarna](https://github.com/iarna))
  1171. #### NEW `prepare` SCRIPT. `prepublish` DEPRECATED (**BREAKING**)
  1172. If there's anything that really seemed to confuse users, it's that the
  1173. `prepublish` script ran when invoking `npm install` without any arguments.
  1174. Turns out many, many people really expected that it would only run on `npm
  1175. publish`, even if it actually did what most people expected: prepare the package
  1176. for publishing on the registry.
  1177. And so, we've added a `prepare` command that runs in the exact same cases where
  1178. `prepublish` ran, and we've begun a deprecation cycle for `prepublish` itself
  1179. **only when run by `npm install`**, which will now include a warning any time
  1180. you use it that way.
  1181. We've also added a `prepublishOnly` script which will execute **only** when `npm
  1182. publish` is invoked. Eventually, `prepublish` will stop executing on `npm
  1183. install`, and `prepublishOnly` will be removed, leaving `prepare` and
  1184. `prepublish` as two distinct lifecycles.
  1185. * [`9b4a227`](https://github.com/npm/npm/commit/9b4a2278cee0a410a107c8ea4d11614731e0a943) [`bc32078`](https://github.com/npm/npm/commit/bc32078fa798acef0e036414cb448645f135b570)
  1186. [#14290](https://github.com/npm/npm/pull/14290)
  1187. Add `prepare` and `prepublishOnly` lifecyle events.
  1188. ([@othiym23](https://github.com/othiym23))
  1189. * [`52fdefd`](https://github.com/npm/npm/commit/52fdefddb48f0c39c6e8eb4c118eb306c9436117)
  1190. [#14290](https://github.com/npm/npm/pull/14290)
  1191. Warn when running `prepublish` on `npm pack`.
  1192. ([@othiym23](https://github.com/othiym23))
  1193. * [`4c2a948`](https://github.com/npm/npm/commit/4c2a9481b564cae3df3f4643766db4b987018a7b) [`a55bd65`](https://github.com/npm/npm/commit/a55bd651284552b93f7d972a2e944f65c1aa6c35)
  1194. [#14290](https://github.com/npm/npm/pull/14290)
  1195. Added `prepublish` warnings to `npm install`.
  1196. ([@zkat](https://github.com/zkat))
  1197. * [`c27412b`](https://github.com/npm/npm/commit/c27412bb9fc7b09f7707c7d9ad23128959ae1abc)
  1198. [#14290](https://github.com/npm/npm/pull/14290)
  1199. Replace `prepublish` with `prepare` in `npm help package.json` documentation.
  1200. ([@zkat](https://github.com/zkat))
  1201. #### NO MORE PARTIAL SHRINKWRAPS (**BREAKING**)
  1202. That's right. No more partial shrinkwraps. That means that if you have an
  1203. `npm-shrinkwrap.json` in your project, npm will no longer install anything that
  1204. isn't explicitly listed there, unless it's a `devDependency`. This will open
  1205. doors to some nice optimizations and make use of `npm shrinkwrap` just generally
  1206. smoother by removing some awful corner cases. We will also skip `devDependency`
  1207. installation from `package.json` if you added `devDependencies` to your
  1208. shrinkwrap by using `npm shrinkwrap --dev`.
  1209. * [`b7dfae8`](https://github.com/npm/npm/commit/b7dfae8fd4dc0456605f7a921d20a829afd50864)
  1210. [#14327](https://github.com/npm/npm/pull/14327)
  1211. Use `readShrinkwrap` to read top level shrinkwrap. There's no reason for npm
  1212. to be doing its own bespoke heirloom-grade artisanal thing here.
  1213. ([@iarna](https://github.com/iarna))
  1214. * [`0ae1f4b`](https://github.com/npm/npm/commit/0ae1f4b9d83af2d093974beb33f26d77fcc95bb9) [`4a54997`](https://github.com/npm/npm/commit/4a549970dc818d78b6de97728af08a1edb5ae7f0) [`f22a1ae`](https://github.com/npm/npm/commit/f22a1ae54b5d47f1a056a6e70868013ebaf66b79) [`3f61189`](https://github.com/npm/npm/commit/3f61189cb3843fee9f54288fefa95ade9cace066)
  1215. [#14327](https://github.com/npm/npm/pull/14327)
  1216. Treat shrinkwrap as canonical. That is, don't try to fill in for partial
  1217. shrinkwraps. Partial shrinkwraps should produce partial installs. If your
  1218. shrinkwrap contains NO `devDependencies` then we'll still try to install them
  1219. from your `package.json` instead of assuming you NEVER want `devDependencies`.
  1220. ([@iarna](https://github.com/iarna))
  1221. #### `npm tag` REMOVED (**BREAKING**)
  1222. * [`94255da`](https://github.com/npm/npm/commit/94255da8ffc2d9ed6a0434001a643c1ad82fa483)
  1223. [#14328](https://github.com/npm/npm/pull/14328)
  1224. Remove deprecated tag command. Folks must use the `dist-tag` command from now
  1225. on.
  1226. ([@iarna](https://github.com/iarna))
  1227. #### NON-ZERO EXIT CODE ON OUTDATED DEPENDENCIES (**BREAKING**)
  1228. * [`40a04d8`](https://github.com/npm/npm/commit/40a04d888d10a5952d5ca4080f2f5d2339d2038a) [`e2fa18d`](https://github.com/npm/npm/commit/e2fa18d9f7904eb048db7280b40787cb2cdf87b3) [`3ee3948`](https://github.com/npm/npm/commit/3ee39488b74c7d35fbb5c14295e33b5a77578104) [`3fa25d0`](https://github.com/npm/npm/commit/3fa25d02a8ff07c42c595f84ae4821bc9ee908df)
  1229. [#14013](https://github.com/npm/npm/pull/14013)
  1230. Do `exit 1` if any outdated dependencies are found by `npm outdated`.
  1231. ([@watilde](https://github.com/watilde))
  1232. * [`c81838a`](https://github.com/npm/npm/commit/c81838ae96b253f4b1ac66af619317a3a9da418e)
  1233. [#14013](https://github.com/npm/npm/pull/14013)
  1234. Log non-zero exit codes at `verbose` level -- this isn't something command
  1235. line tools tend to do. It's generally the shell's job to display, if at all.
  1236. ([@zkat](https://github.com/zkat))
  1237. #### SEND EXTRA HEADERS TO REGISTRY
  1238. For the purposes of supporting shiny new registry features, we've started
  1239. sending `Npm-Scope` and `Npm-In-CI` headers in outgoing requests.
  1240. * [`846f61c`](https://github.com/npm/npm/commit/846f61c1dd4a033f77aa736ab01c27ae6724fe1c)
  1241. [npm/npm-registry-client#145](https://github.com/npm/npm-registry-client/pull/145)
  1242. [npm/npm-registry-client#147](https://github.com/npm/npm-registry-client/pull/147)
  1243. `npm-registry-client@7.3.0`:
  1244. * Allow npm to add headers to outgoing requests.
  1245. * Add `Npm-In-CI` header that reports whether we're running in CI.
  1246. ([@iarna](https://github.com/iarna))
  1247. * [`6b6bb08`](https://github.com/npm/npm/commit/6b6bb08af661221224a81df8adb0b72019ca3e11)
  1248. [#14129](https://github.com/npm/npm/pull/14129)
  1249. Send `Npm-Scope` header along with requests to registry. `Npm-Scope` is set to
  1250. the `@scope` of the current top level project. This will allow registries to
  1251. implement user/scope-aware features and services.
  1252. ([@iarna](https://github.com/iarna))
  1253. * [`506de80`](https://github.com/npm/npm/commit/506de80dc0a0576ec2aab0ed8dc3eef3c1dabc23)
  1254. [#14129](https://github.com/npm/npm/pull/14129)
  1255. Add test to ensure `Npm-In-CI` header is being sent when CI is set in env.
  1256. ([@iarna](https://github.com/iarna))
  1257. #### BUGFIXES
  1258. * [`bc84012`](https://github.com/npm/npm/commit/bc84012c2c615024b08868acbd8df53a7ca8d146)
  1259. [#14117](https://github.com/npm/npm/pull/14117)
  1260. Fixes a bug where installing a shrinkwrapped package would fail if the
  1261. platform failed to install an optional dependency included in the shrinkwrap.
  1262. ([@watilde](https://github.com/watilde))
  1263. * [`a40b32d`](https://github.com/npm/npm/commit/a40b32dc7fe18f007a672219a12d6fecef800f9d)
  1264. [#13519](https://github.com/npm/npm/pull/13519)
  1265. If a package has malformed metadata, `node.requiredBy` is sometimes missing.
  1266. Stop crashing when that happens.
  1267. ([@creationix](https://github.com/creationix))
  1268. #### OTHER PATCHES
  1269. * [`643dae2`](https://github.com/npm/npm/commit/643dae2197c56f1c725ecc6539786bf82962d0fe)
  1270. [#14244](https://github.com/npm/npm/pull/14244)
  1271. Remove some ancient aliases that we'd rather not have around.
  1272. ([@zkat](https://github.com/zkat))
  1273. * [`bdeac3e`](https://github.com/npm/npm/commit/bdeac3e0fb226e4777d4be5cd3c3bec8231c8044)
  1274. [#14230](https://github.com/npm/npm/pull/14230)
  1275. Detect unsupported Node.js versions and warn about it. Also error on really
  1276. old versions where we know we can't work.
  1277. ([@iarna](https://github.com/iarna))
  1278. #### DOC UPDATES
  1279. * [`9ca18ad`](https://github.com/npm/npm/commit/9ca18ada7cc1c10b2d32bbb59d5a99dd1c743109)
  1280. [#13746](https://github.com/npm/npm/pull/13746)
  1281. Updated docs for `npm search` options.
  1282. ([@zkat](https://github.com/zkat))
  1283. * [`e02a47f`](https://github.com/npm/npm/commit/e02a47f9698ff082488dc2b1738afabb0912793e)
  1284. Move the `npm@3` changelog into the archived changelogs directory.
  1285. ([@zkat](https://github.com/zkat))
  1286. * [`c12bbf8`](https://github.com/npm/npm/commit/c12bbf8c5a5dff24a191b66ac638f552bfb76601)
  1287. [#14290](https://github.com/npm/npm/pull/14290)
  1288. Document prepublish-on-install deprecation.
  1289. ([@othiym23](https://github.com/othiym23))
  1290. * [`c246a75`](https://github.com/npm/npm/commit/c246a75ac8697f4ca11d316b7e7db5f24af7972b)
  1291. [#14129](https://github.com/npm/npm/pull/14129)
  1292. Document headers added by npm to outgoing registry requests.
  1293. ([@iarna](https://github.com/iarna))
  1294. #### DEPENDENCIES
  1295. * [`cb20c73`](https://github.com/npm/npm/commit/cb20c7373a32daaccba2c1ad32d0b7e1fc01a681)
  1296. [#13953](https://github.com/npm/npm/pull/13953)
  1297. `signal-exit@3.0.1`
  1298. ([@benjamincoe](https://github.com/benjamincoe))