If he wanted the ability to prevent who is able to reuse and distributed his code, a proprietary license would have been a more suitable choice.
But you know what also _feels_ wrong? people who had no involvement in this at all having their day get fucked up because of this one dude who _suddenly_, just now realized that npm isn't going to really help him out and did the internet equivalent of taking your ball and going home.
He unpublished leftpad
Someone else republishes leftpad as a new owner
Since npm won't allow you to publish old versions, stuff is still broken since the depended on files have a hard dependency on v0.0.3
npm (the company) forces a republish on v0.0.3 or I guess an ununpublish.
[1] https://github.com/azer/left-pad/blob/master/package.json
Sounds like we could start seeing npm specific releases with different licences to the github repo (or npm specific branches with different licencing)
Obviously npm could re-publish the non npm specific code, but that would be more manual than a simple revert of an unpublish.
The source could still be readily available to anyone to republish as they see fit, but only as a different name / version.
Not condoning it, just thinking that the original author surely has the right to do this if they plan ahead (judging by the npm backlash that has been building over a single entity holding all the keys some may be starting to think this way).
If you want to enforce that other people use different names for their forks, the usual way to do this is with trademarks - this is what e.g. mozilla and redhat do. Npm should respect your trademarks, and if someone else publishes a project under your trademarked name you can make npm take it down... which is exactly what originally happened here.
Here's the WTFPL in it's entirety:
0. You just DO WHAT THE FUCK YOU WANTI think the real issue though here is technical - does npm really allow mutation of published assets like this? That's a shitty situation that can only lead to unreliable builds
Second, you sound just like people when pointed at modern art says "I could have done that" and I believe the correct response is "you didn't."
If those 15 lines are called throughout your codebase, you should do what? Re-write the 15 lines and stuff them into a lib that you maintain? And everyone else should do this, too?
If a library is widely useful, it's widely useful regardless of how many LOC it contains.
Many times it is even faster to write a trivial "module" yourself than even discover it on npm, let alone reading and verifying it. Hell, NPM 3.x is so slow that it's literally faster to write any 1 liner "module" than it is just to install it.
"Reuse" is just a means to an end, it doesn't make sense to do it only for its own sake.