2016-03-25

NPM Dispute Resolutionのテキトー翻訳

誤訳御免。

とりあえず力尽きたので、公開されたメールのやりとり

https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d#.9ae37wmf1

とか、NPMの説明

http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm

を読む際の判断材料になれば。

紛争の解決

このドキュメントでは他のnpmを公開している人とのモジュール名の紛争について取るべきステップ記述している。

このドキュメントは"npm行動規範(Code of Conduct)"で説明されている容認可能な行為明確化であり、このドキュメント記載されている内容はnpm行動規範のいかなる側面に対しても矛盾する解釈を与えるものではない。

tl;dr
  1. "npm owner ls <pkgname>"コマンドで作者のメールアドレスを調べる
  2. 作者にメールする。その際"support@npmjs.com"にもCcする
  3. 数週間すぎても解決しない場合、われわれが解決に乗り出す

パッケージ名を不法占拠してはならない。コードを公開するか、さもなくば去るように。

説明

あるユーザモジュールを公開していて、その後、他のユーザがその名前を使いたいと思うケースがしばしばある。ここではよくある例を記述する(個々の例は実際の出来事に基づいている)。

  1. アリスがnodeに特化したわけではない"foo"というJavaScriptモジュールを書いていた。アリスはnodeを使っていなかった。ユースフは"foo"という名前をnodeで使おうと思い、それをnpmモジュールとして作成した。しばらくしてからアリスはnodeを使い始め、彼女プログラム管理権を守ろうとした。
  2. ユースフは"foo"というnpmモジュールを書いて公開した。おそらくだいぶ時間がたった後、アリスが"foo"にバグを見つけて修正した。彼女はユースフにプルリクを送ったがユースフはそれに時間を割く暇がなかった。なぜなら彼は新しい仕事と新しい子供を得、新しいErlangプロジェクトに集中しておりもはやnodeには関与していなかったからだ。アリスは新しい"foo"を公開したかったがその名前はすでに使われているためそれができない。
  3. ユースフ10行のフロー制御ライブラリを書き"foo"という名前でnpmで公開した。単純で小さなものなので、それはまったく更新する必要のないものであった。アリスは非常に高評価世界中販売されている"foo"という名前JavaScriptツールキットフレームワークメーカーであるFoo社で働いている。彼女らはそれをnpmで"foojs"として公開したが、"npm install foo"してナンカチガウと混乱する人が定期的に発生している。
  4. ユースフ業務上必要に迫られよく知られている"foo"というファイル形式のパーサを書いた。そして彼は新しい職を得てその試作品更新していない。アリスがより完璧な"foo"パーサを書いたがユースフの"foo"が邪魔をしてそれを公開できない。

それぞれの状況下でのアリスからクレーム議論されるであろう。しかしそれらのケースでアリスが取るべき適切な段取り共通している。

  1. "npm owner ls foo"する。これによりアリスは所有者(ユースフ)のemailアドレスを知ることができる
  2. アリスはユースフメールして状況を『最大限丁寧に』説明し、モジュール名についてどうしたいのか伝える。彼女はそのメールCCにnpmサポートスタッフ(support@npmjs.com)を加える。またそのメールに"npm owner add alice foo"することにより、アリスを"foo"パッケージの所有者に加えることができることをユースフに伝える。
  3. 十分な時間の経過後、ユースフが返事をしなかったりユースフアリスの間で解決に至らなかった場合サポート(support@npmjs.com)にメールすれば我々が解決に乗り出す(「十分な」とは通常少なくとも4週間だ)。
根拠

これまでのほとんど全てのケースでは、巻き込まれ当事者は重大な介入を要さずに妥当な解決へと到達することができた。多くの人々は本当に合理的になることを望み、おそらく彼らがあなた邪魔をしていることに気付いてすらいない。

モジュールエコシステムはそれらが可能な限り自律的である限り最も活気づいて力強くなる。もし管理者がある日あなたが取り組んでいたものを削除したら、それは理由のいかんにかかわらず多くの人を怒り心頭にさせつつあるのだ。人々が自分らの問題相手との敬意を持った会話により解決すれば、その交流にたいして皆が良い気持ちで終わりを迎えるチャンスを得るだろう。

例外

幾つかの事柄は許されておらず、npmの管理者注意喚起された時点で議論なく削除されるだろう。例えば:

  1. マルウェアインストールした機材の脆弱性を突いたり壊したりするために作られたパッケージ
  2. 著作権ライセンス違反(例えば、MITライセンスプログラムコピーして著作権及びライセンス記述を削除あるいは改変する)
  3. 違法コンテンツ
  4. 将来使おうとしているパッケージ名を「不法占拠」し実際には使わない。申し訳ないがその名前がいかに素晴らしいか、あるいはそれがいつの日か起こるであろう物事完璧フィットしているかどうかは関係ない。もし誰かがそれを今日使いたいと望み、あなたがそのスペースを空のtarball占領していたら、あなたは退去させられるだろう。
  5. パッケージレジストリに置く。パッケージはなんらかの機能を持たなければならない。それは馬鹿げたものであっても構わないが、無であってはならない(不法占拠を参照)
  6. レジストリ個人的アプリケーションデータベースとして使ったり、パッケージ的ではないものを置くなどの変な行為
  7. 下品言葉ポルノハラスメントなどのnpm行動規範で禁じられた行為

もしそうした悪い振る舞いを見たらすぐにabuse@npmjs.comに連絡ください。あなた自身でそうした悪い振る舞いを解決しようとする必要はない。われわれはここにいます

変更

これは生きた文書であり時間とともに更新される。変更点を確認したければ、git履歴(https://github.com/npm/policies/commits/master/disputes.md)を参照

ライセンス

Copyright (C) npm, Inc., All rights reserved

ドキュメントは"Creative Commons Attribution-ShareAlike License."(https://creativecommons.org/licenses/by-sa/4.0/)の元で再利用可能。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん