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