| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | .TH "DISPUTES" "7" "August 2021" "" "".SH "NAME"\fBdisputes\fR \- Handling Module Name Disputes.PThis document describes the steps that you should take to resolve module namedisputes with other npm publishers\. It also describes special steps you shouldtake about names you think infringe your trademarks\..PThis document is a clarification of the acceptable behavior outlined in thenpm Code of Conduct \fIhttps://www\.npmjs\.com/policies/conduct\fR, and nothing inthis document should be interpreted to contradict any aspect of the npm Code ofConduct\..SS TL;DR.RS 0.IP 1. 3Get the author email with \fBnpm owner ls <pkgname>\fP.IP 2. 3Email the author, CC support@npmjs\.com.IP 3. 3After a few weeks, if there's no resolution, we'll sort it out\..RE.PDon't squat on package names\.  Publish code or move out of the way\..SS Description.PThere sometimes arise cases where a user publishes a module, and then later,some other user wants to use that name\. Here are some common ways that happens(each of these is based on actual events\.).RS 0.IP 1. 3Alice writes a JavaScript module \fBfoo\fP, which is not node\-specific\. Alicedoesn't use node at all\. Yusuf wants to use \fBfoo\fP in node, so he wraps it inan npm module\. Some time later, Alice starts using node, and wants to takeover management of her program\..IP 2. 3Yusuf writes an npm module \fBfoo\fP, and publishes it\. Perhaps much later, Alicefinds a bug in \fBfoo\fP, and fixes it\. She sends a pull request to Yusuf, butYusuf doesn't have the time to deal with it, because he has a new job and anew baby and is focused on his new Erlang project, and kind of not involvedwith node any more\. Alice would like to publish a new \fBfoo\fP, but can't,because the name is taken\..IP 3. 3Yusuf writes a 10\-line flow\-control library, and calls it \fBfoo\fP, andpublishes it to the npm registry\. Being a simple little thing, it neverreally has to be updated\. Alice works for Foo Inc, the makers of thecritically acclaimed and widely\-marketed \fBfoo\fP JavaScript toolkit framework\.They publish it to npm as \fBfoojs\fP, but people are routinely confused when\fBnpm install foo\fP is some different thing\..IP 4. 3Yusuf writes a parser for the widely\-known \fBfoo\fP file format, because heneeds it for work\. Then, he gets a new job, and never updates the prototype\.Later on, Alice writes a much more complete \fBfoo\fP parser, but can't publish,because Yusuf's \fBfoo\fP is in the way\..IP 5. 3\fBnpm owner ls foo\fP\|\. This will tell Alice the email address of the owner(Yusuf)\..IP 6. 3Alice emails Yusuf, explaining the situation \fBas respectfully as possible\fR,and what she would like to do with the module name\. She adds the npm supportstaff support@npmjs\.com to the CC list of the email\. Mention in the emailthat Yusuf can run npm owner \fBadd alice foo\fP to add Alice as an owner of thefoo package\..IP 7. 3After a reasonable amount of time, if Yusuf has not responded, or if Yusufand Alice can't come to any sort of resolution, email supportsupport@npmjs\.com and we'll sort it out\. ("Reasonable" is usually at least4 weeks\.).RE.SS Reasoning.PIn almost every case so far, the parties involved have been able to reach anamicable resolution without any major intervention\. Most people really do wantto be reasonable, and are probably not even aware that they're in your way\..PModule ecosystems are most vibrant and powerful when they are as self\-directedas possible\. If an admin one day deletes something you had worked on, then thatis going to make most people quite upset, regardless of the justification\. Whenhumans solve their problems by talking to other humans with respect, everyonehas the chance to end up feeling good about the interaction\..SS Exceptions.PSome things are not allowed, and will be removed without discussion if they arebrought to the attention of the npm registry admins, including but not limitedto:.RS 0.IP 1. 3Malware (that is, a package designed to exploit or harm the machine on whichit is installed)\..IP 2. 3Violations of copyright or licenses (for example, cloning an MIT\-licensedprogram, and then removing or changing the copyright and license statement)\..IP 3. 3Illegal content\..IP 4. 3"Squatting" on a package name that you plan to use, but aren't actuallyusing\. Sorry, I don't care how great the name is, or how perfect a fit it isfor the thing that someday might happen\. If someone wants to use it today,and you're just taking up space with an empty tarball, you're going to beevicted\..IP 5. 3Putting empty packages in the registry\. Packages must have SOMEfunctionality\. It can be silly, but it can't be nothing\. (See also:squatting\.).IP 6. 3Doing weird things with the registry, like using it as your own personalapplication database or otherwise putting non\-packagey things into it\..IP 7. 3Other things forbidden by the npmCode of Conduct \fIhttps://www\.npmjs\.com/policies/conduct\fR such as hatefullanguage, pornographic content, or harassment\..RE.PIf you see bad behavior like this, please report it to abuse@npmjs\.com rightaway\. \fBYou are never expected to resolve abusive behavior on your own\. We arehere to help\.\fR.SS Trademarks.PIf you think another npm publisher is infringing your trademark, such as byusing a confusingly similar package name, email abuse@npmjs\.com with a link tothe package or user account on https://www\.npmjs\.com/ \fIhttps://www\.npmjs\.com/\fR\|\.Attach a copy of your trademark registration certificate\..PIf we see that the package's publisher is intentionally misleading others bymisusing your registered mark without permission, we will transfer the packagename to you\. Otherwise, we will contact the package publisher and ask them toclear up any confusion with changes to their package's \fBREADME\fP file ormetadata\..SS Changes.PThis is a living document and may be updated from time to time\. Please refer tothe git history for this document \fIhttps://github\.com/npm/cli/commits/latest/doc/misc/npm\-disputes\.md\fRto view the changes\..SS License.PCopyright (C) npm, Inc\., All rights reserved.PThis document may be reused under a Creative Commons Attribution\-ShareAlikeLicense\..SS See also.RS 0.IP \(bu 2npm help registry.IP \(bu 2npm help owner.RE
 |