Here’s another patch release, soon after the other!
This particular release includes a slew of fixes to npm’s git support, which was causing some issues for a chunk of people, specially those who were using self-hosted/Enterprise repos. All of those should be back in working condition now.
There’s another shiny thing you might wanna know about: npm has a Canary release now! The npm5 experiment we did during our beta proved to be incredibly successful: users were able to have a tight feedback loop between reports and getting the bugfixes they needed, and the CLI team was able to roll out experimental patches and have the community try them out right away. So we want to keep doing that.
From now on, you’ll be able to install the ‘npm canary’ with npm i -g npmc. This release will be a separate binary (npmc. Because canary. Get it?), which will update independently of the main CLI. Most of the time, this will track release-next or something close to it. We might occasionally toss experimental branches in there to see if our more adventurous users run into anything interesting with it. For example, the current canary (firstname.lastname@example.org) includes an experimental multiproc branch that parallelizes tarball extraction across multiple processes.
If you find any issues while running the canary version, please report them and let us know it came from npmc! It would be tremendously helpful, and finding things early is a huge reason to have it there. Happy hacking!
A NOTE ABOUT THE ISSUE TRACKER
Just a heads up: We’re preparing to do a massive cleanup of the issue tracker. It’s been a long time since it was something we could really keep up with, and we didn’t have a process for dealing with it that could actually be sustainable.
We’re still sussing the details out, and we’ll talk about it more when we’re about to do it, but the plan is essentially to close old, abandoned issues and start over. We will also add some automation around issue management so that things that we can’t keep up with don’t just stay around forever.
COOL NEW OUTPUT
- 1f26e9567 email@example.com: Fixes installing committishes that look like semver, even though they’re not using the required #semver: syntax. (@zkat)
- 85ea1e0b9 firstname.lastname@example.org: This includes the npa git-parsing patch to make it so non-hosted SCP-style identifiers are correctly handled. Previously, npa would mangle them (even though hosted-git-info is doing the right thing for them). (@zkat)
The new summary output has been really well received! One downside that reared its head as more people used it, though, is that it doesn’t really tell you anything about the toplevel versions it installed. So, if you did npm i -g foo, it would just say “added 1 package”. This patch by @rmg keeps things concise while still telling you what you got! So now, you’ll see something like this:
$ npm i -g foo bar + email@example.com + firstname.lastname@example.org added 234 packages in .005ms
- 362f9fd5b #16899 For every package that is given as an argument to install, print the name and version that was actually installed. (@rmg)
- a47593a98 #16835 Fix a crash while installing with --no-shrinkwrap. (@jacknagel)
- 89e0cb816 #16818 Fixes a spelling error in the docs. Because the CLI team has trouble spelling “package”, I guess. (@ankon)
- c01fbc46e #16895 Remove --save from npm init instructions, since it’s now the default. (@jhwohlgemuth)
- 80c42d218 Guard against cycles when inflating bundles, as symlinks are bundles now. (@iarna)
- 7fe7f8665 #16674 Write the builtin config for npmc, not just npm. This is hardcoded for npm self-installations and is needed for Canary to work right. (@zkat)
- 63df4fcdd #16894 email@example.com: Fixes an issue parsing SDK versions on Windows, among other things. (@refack)
- 5bb15c3c4 firstname.lastname@example.org: Fixes some racyness while reading the tree. (@iarna)
- a6f7a52e7 email@example.com: Remove nested function declaration for speed up (@mikesherov)