v2.12.0
REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?
About a million people have filed issues related to having a tough time using npm after they've run npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all those permissions problems ages ago! Use this one weird trick and you'll never have to deal with this again!"
Well, uh, if you run npm with root the first time you run npm on a machine, it turns out that the directory npm uses to store lockfiles ends up being owned by the wrong user (almost always root), and that can, well, it can cause problems sometimes. By which I mean every time you run npm without being root it'll barf with EACCES
errors. Whoops!
This is an obnoxious regression, and to prevent it from recurring, we've made it so that the cache, cached git remotes, and the lockfile directories are all created and maintained using the same utilty module, which not only creates the relevant paths with the correct permissions, but will fix the permissions on those directories (if it can) when it notices that they're broken. An npm install
run as root ought to be sufficient to fix things up (and if that
doesn't work, first tell us about it, and then run sudo chown -R $(whoami) $HOME/.npm
).
Also, I apologize for inadvertently gaslighting any of you by claiming this bug wasn't actually a bug. I do think we've got this permanently dealt with now, but I'll be paying extra-close attention to permissions issues related to the cache for a while.
I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT
That's not literally true. We spent very little time discussing SPDX, @kemitchell is a champ, and I had a lot of fun playing drum & bass to a mostly empty Boogie Barn and only ended up with one moderately severe cold for my pains. Another winner of a NodeConf! (I would probably wear a SPDX T-shirt if somebody gave me one, though.)
A bunch of us did have a spirited discussion of the basics of open-source intellectual property, and the convergence of me, @kemitchell, and @jandrieu in one place allowed us to hammmer out a small but significant issue that had been bedeviling early adopters of the new SPDX expression syntax in package.json
license fields: how to deal with packages that are left without a license on purpose.
Refer to the docs for the specifics, but the short version is that instead of using LicenseRef-LICENSE
for proprietary licenses, you can now use either UNLICENSED
if you want to make it clear that you don't want your software to be licensed (and want npm to stop warning you about this), or SEE LICENSE IN <filename>
if there's a license with custom text you want to use. At some point in the near term, we'll be updating npm to verify that the mentioned file actually exists, but for now you're all on the honor system.
4827fc7
#8557normalize-package-data@2.2.1
: AllowUNLICENSED
andSEE LICENSE IN <filename>
in "license" field ofpackage.json
. (@kemitchell)16a3dd5
#8557 Document the new accepted values for the "license" field.
(@kemitchell)8155311
#8557init-package-json@1.7.0
: Support new "license" field values at init time. (@kemitchell)
SMALLISH BUG FIXES
9d8cac9
#8548 Remove extraneous newline fromnpm view
output, making it easier to use in shell scripts. (@eush77)765fd4b
#8521 When checking for outdated packages, or updating packages, raise an error when the registry is unreachable instead of silently "succeeding". (@ryantemple)
SMALLERISH DOCUMENTATION TWEAKS
5018335
#8365 Add details about which git environment variables are whitelisted by npm. (@nmalaguti)bed9edd
#8554 Fix typo in version docs. (@rainyday)
WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES
7ce2f06
request@2.58.0
: Refactor tunneling logic, and useextend
instead of abusingutil._extend
. (@simov)e6c6195
nock@2.6.0
: Refined interception behavior. (@pgte)9583cc3
fstream-npm@1.0.3
: Ensure thatmain
entry inpackage.json
is always included in the bundled package tarball.
(@coderhaoxin)df89493
fstream@1.0.7
(@isaacs)9744049
dezalgo@1.0.3
:dezalgo
should be usable in the browser, and can be now thatasap
has been upgraded to be browserifiable. (@mvayngrib)