Simple email application for Android. Original source code: https://framagit.org/dystopia-project/simple-email
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
10 KiB

  1. <!doctype html>
  2. <html>
  3. <title>npm-disputes</title>
  4. <meta charset="utf-8">
  5. <link rel="stylesheet" type="text/css" href="../../static/style.css">
  6. <link rel="canonical" href="https://www.npmjs.org/doc/misc/npm-disputes.html">
  7. <script async=true src="../../static/toc.js"></script>
  8. <body>
  9. <div id="wrapper">
  10. <h1><a href="../misc/npm-disputes.html">npm-disputes</a></h1> <p>Handling Module Name Disputes</p>
  11. <p>This document describes the steps that you should take to resolve module name
  12. disputes with other npm publishers. It also describes special steps you should
  13. take about names you think infringe your trademarks.</p>
  14. <p>This document is a clarification of the acceptable behavior outlined in the
  15. <a href="https://www.npmjs.com/policies/conduct">npm Code of Conduct</a>, and nothing in
  16. this document should be interpreted to contradict any aspect of the npm Code of
  17. Conduct.</p>
  18. <h2 id="tl-dr">TL;DR</h2>
  19. <ol>
  20. <li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
  21. <li>Email the author, CC <a href="mailto:&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;</a></li>
  22. <li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
  23. </ol>
  24. <p>Don&#39;t squat on package names. Publish code or move out of the way.</p>
  25. <h2 id="description">DESCRIPTION</h2>
  26. <p>There sometimes arise cases where a user publishes a module, and then later,
  27. some other user wants to use that name. Here are some common ways that happens
  28. (each of these is based on actual events.)</p>
  29. <ol>
  30. <li><p>Alice writes a JavaScript module <code>foo</code>, which is not node-specific. Alice
  31. doesn&#39;t use node at all. Yusuf wants to use <code>foo</code> in node, so he wraps it in
  32. an npm module. Some time later, Alice starts using node, and wants to take
  33. over management of her program.</p>
  34. </li>
  35. <li><p>Yusuf writes an npm module <code>foo</code>, and publishes it. Perhaps much later, Alice
  36. finds a bug in <code>foo</code>, and fixes it. She sends a pull request to Yusuf, but
  37. Yusuf doesn&#39;t have the time to deal with it, because he has a new job and a
  38. new baby and is focused on his new Erlang project, and kind of not involved
  39. with node any more. Alice would like to publish a new <code>foo</code>, but can&#39;t,
  40. because the name is taken.</p>
  41. </li>
  42. <li><p>Yusuf writes a 10-line flow-control library, and calls it <code>foo</code>, and
  43. publishes it to the npm registry. Being a simple little thing, it never
  44. really has to be updated. Alice works for Foo Inc, the makers of the
  45. critically acclaimed and widely-marketed <code>foo</code> JavaScript toolkit framework.
  46. They publish it to npm as <code>foojs</code>, but people are routinely confused when
  47. <code>npm install foo</code> is some different thing.</p>
  48. </li>
  49. <li><p>Yusuf writes a parser for the widely-known <code>foo</code> file format, because he
  50. needs it for work. Then, he gets a new job, and never updates the prototype.
  51. Later on, Alice writes a much more complete <code>foo</code> parser, but can&#39;t publish,
  52. because Yusuf&#39;s <code>foo</code> is in the way.</p>
  53. </li>
  54. <li><p><code>npm owner ls foo</code>. This will tell Alice the email address of the owner
  55. (Yusuf).</p>
  56. </li>
  57. <li><p>Alice emails Yusuf, explaining the situation <strong>as respectfully as possible</strong>,
  58. and what she would like to do with the module name. She adds the npm support
  59. staff <a href="mailto:&#x73;&#x75;&#x70;&#112;&#x6f;&#x72;&#116;&#64;&#110;&#112;&#x6d;&#106;&#115;&#x2e;&#99;&#x6f;&#109;">&#x73;&#x75;&#x70;&#112;&#x6f;&#x72;&#116;&#64;&#110;&#112;&#x6d;&#106;&#115;&#x2e;&#99;&#x6f;&#109;</a> to the CC list of the email. Mention in the email
  60. that Yusuf can run npm owner <code>add alice foo</code> to add Alice as an owner of the
  61. foo package.</p>
  62. </li>
  63. <li><p>After a reasonable amount of time, if Yusuf has not responded, or if Yusuf
  64. and Alice can&#39;t come to any sort of resolution, email support
  65. <a href="mailto:&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#x6e;&#112;&#109;&#x6a;&#115;&#x2e;&#99;&#x6f;&#109;">&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#x6e;&#112;&#109;&#x6a;&#115;&#x2e;&#99;&#x6f;&#109;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is usually at least
  66. 4 weeks.)</p>
  67. </li>
  68. </ol>
  69. <h2 id="reasoning">REASONING</h2>
  70. <p>In almost every case so far, the parties involved have been able to reach an
  71. amicable resolution without any major intervention. Most people really do want
  72. to be reasonable, and are probably not even aware that they&#39;re in your way.</p>
  73. <p>Module ecosystems are most vibrant and powerful when they are as self-directed
  74. as possible. If an admin one day deletes something you had worked on, then that
  75. is going to make most people quite upset, regardless of the justification. When
  76. humans solve their problems by talking to other humans with respect, everyone
  77. has the chance to end up feeling good about the interaction.</p>
  78. <h2 id="exceptions">EXCEPTIONS</h2>
  79. <p>Some things are not allowed, and will be removed without discussion if they are
  80. brought to the attention of the npm registry admins, including but not limited
  81. to:</p>
  82. <ol>
  83. <li>Malware (that is, a package designed to exploit or harm the machine on which
  84. it is installed).</li>
  85. <li>Violations of copyright or licenses (for example, cloning an MIT-licensed
  86. program, and then removing or changing the copyright and license statement).</li>
  87. <li>Illegal content.</li>
  88. <li>&quot;Squatting&quot; on a package name that you plan to use, but aren&#39;t actually
  89. using. Sorry, I don&#39;t care how great the name is, or how perfect a fit it is
  90. for the thing that someday might happen. If someone wants to use it today,
  91. and you&#39;re just taking up space with an empty tarball, you&#39;re going to be
  92. evicted.</li>
  93. <li>Putting empty packages in the registry. Packages must have SOME
  94. functionality. It can be silly, but it can&#39;t be nothing. (See also:
  95. squatting.)</li>
  96. <li>Doing weird things with the registry, like using it as your own personal
  97. application database or otherwise putting non-packagey things into it.</li>
  98. <li>Other things forbidden by the npm
  99. <a href="https://www.npmjs.com/policies/conduct">Code of Conduct</a> such as hateful
  100. language, pornographic content, or harassment.</li>
  101. </ol>
  102. <p>If you see bad behavior like this, please report it to <a href="mailto:&#97;&#98;&#x75;&#115;&#x65;&#64;&#x6e;&#112;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#109;">&#97;&#98;&#x75;&#115;&#x65;&#64;&#x6e;&#112;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#109;</a> right
  103. away. <strong>You are never expected to resolve abusive behavior on your own. We are
  104. here to help.</strong></p>
  105. <h2 id="trademarks">TRADEMARKS</h2>
  106. <p>If you think another npm publisher is infringing your trademark, such as by
  107. using a confusingly similar package name, email <a href="mailto:&#x61;&#98;&#x75;&#115;&#101;&#x40;&#110;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#x6f;&#109;">&#x61;&#98;&#x75;&#115;&#101;&#x40;&#110;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#x6f;&#109;</a> with a link to
  108. the package or user account on <a href="https://www.npmjs.com/">https://www.npmjs.com/</a>.
  109. Attach a copy of your trademark registration certificate.</p>
  110. <p>If we see that the package&#39;s publisher is intentionally misleading others by
  111. misusing your registered mark without permission, we will transfer the package
  112. name to you. Otherwise, we will contact the package publisher and ask them to
  113. clear up any confusion with changes to their package&#39;s <code><a href="../../doc/README.html">README</a></code> file or
  114. metadata.</p>
  115. <h2 id="changes">CHANGES</h2>
  116. <p>This is a living document and may be updated from time to time. Please refer to
  117. the <a href="https://github.com/npm/cli/commits/latest/doc/misc/npm-disputes.md">git history for this document</a>
  118. to view the changes.</p>
  119. <h2 id="license">LICENSE</h2>
  120. <p>Copyright (C) npm, Inc., All rights reserved</p>
  121. <p>This document may be reused under a Creative Commons Attribution-ShareAlike
  122. License.</p>
  123. <h2 id="see-also">SEE ALSO</h2>
  124. <ul>
  125. <li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
  126. <li><a href="../cli/npm-owner.html">npm-owner(1)</a></li>
  127. </ul>
  128. </div>
  129. <table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
  130. <tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
  131. <tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
  132. <tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
  133. <tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
  134. <tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
  135. <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
  136. <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
  137. </table>
  138. <p id="footer">npm-disputes &mdash; npm@6.4.1</p>