JavaScriptのパッケージ管理ツール/サービスであるnpmで使われてないアカウントを解放してもらって、Scoped moduleとして使えるようにしてもらいました。

以前GitHubで使われてないアカウントを解放してもらった | Web Scratchという記事を書いていますが、これのnpm版です。

GitHubにはName Squatting Policyという名前だけ取ったようなアカウントは依頼があれば解放するポリシーがあります。

npmにはDispute Resolutionというルールがあり、その中で名前だけ取ったようなUser namesを解放するように申し立てする手順が書かれています。


User names

To dispute a user name, follow these steps:

  1. Visit the user page at https://www.npmjs.com/~foo. Their email address is listed on this page.
  2. Send a message to that address and CC [email protected]. Politely and respectfully explain your request and your desired outcome.
  3. After 4 weeks, if the owner has not responded, support will address your request. The ultimate outcome is at their discretion and judgement.

きっかけ

jser というnpmアカウント/OrganizationをJSer.infoで使うモジュールのScoped moduleのために使いたかったのですが、既にjserというアカウントが存在していました。 しかし、そのアカウントは2011年ぐらいから使われてなさそうで、またarpackageという中身が空のパッケージを公開しているだけでした。 (恐らくアカウントを作ってそのまま放置されたSquattingなアカウントだったのだと思います)

以前もGitHubでjserというGitHubアカウントをName Squatting Policyに元に解放してもらったことがあったので、npmでも同じような手続きができるかを調べてみたらDispute Resolutionというルールがあるのを知り試してみることにしました。

Dispute Resolutionの手続き

Dispute Resolutionにかいてあるステップどおりに進めました。

[email protected]へ次のような内容で jser という使われてないアカウントを解放してもらうことができるかというメールをだしました。

Hello, My name is azu.
My npm account is https://www.npmjs.com/~azu

I want to get "jser" for organizations account.
I'd like to use the account for https://github.com/jser/
Currently, I've used `jser-*` prefix for each packages.
I've tried to move these pacakges to @jser scoped name, but @jser user name[1] is already token.

https://www.npmjs.com/~jser publish a single package[2], but this pacakge is no content.
Also, https://www.npmjs.com/~jser is inactive account.

I want to request that remove the @jser account or transfer the ownership.

Note: I've seen "Dispute Resolution" guideline[3] and I sent this mail.

Thanks.

[1]: https://www.npmjs.com/~jser
[2]: https://www.npmjs.com/package/arpackage
[3]: https://www.npmjs.com/policies/disputes

サポートの方から返信があり、手続きに則り元々のjserアカウントの持ち主にCCでアカウントのOwnershipについての連絡が行われていました。

Hello Azu and @jser,

Azu: Thanks for starting this conversation and CC'ing npm support. I'll keep an eye on this discussion and if there isn't any progress in a few weeks, I'll respond directly.

@jser: We would really appreciate if you would be willing to discuss this with Azu regarding taking ownership of the jser user account name.

If either of you have questions about this process, please let me know, I'll be here to help! Thank you.

そしてしらばらく返事がなかったのでDispute Resolutionに則り、最初の連絡から4週間(April 30までに)返事がなければ、アカウントを開放するという通知がされていました。

Hello,

@jser: We're guessing you're busy, with hopefully all good things, to focus on such requests. Since we've not heard back from you, we'd like to proceed with Azu's request to use the jser scope name. Please let us know by April 30, 2018 if this is a concern.

Azu: Please let me know if you've heard back from @jser. If we've gotten no response by April 30, 2018, I'll transfer ownership of the @post scope to you. We appreciate your patience.

Thanks so much.

そのまま、元のjserアカウント持ち主からの返事はなかったため、npmのjserアカウントを開放してもらえることになりました。

アカウントの解放からOrganizationの作成

パスワードリセット

アカウントが解放手続きが取られると、 サポートの方がjserアカウントをメールアドレスを自分のメールアドレスに設定して、パスワードをリセットしてくれます。

そのため、次の手順でアカウントを取得できます。

  1. パスワードリセットのメールが送られてくる
  2. リセットして新しいパスワードを設定してログイン

password reset

これを行うとアカウントのOwnershipが更新され、jserアカウントを取得完了です。

UserアカウントをOrganizationへ変換

元々@jser/statのようにScoped moduleとして利用するのが目的です。

そのためnpmのアカウントをOrganizationに変換する必要があります。 変換の手順はMigrating a User Account · npm Orgs Documentationにかかれています。

  1. Create a New Organizationを開く
  1. Convert @jser into an orgから変換する
  • 適当なユーザー名を作る必要があるので jser-userで作成

create org

これでhttps://www.npmjs.com/org/jserの作成が完了です。

まとめ

npmはDispute Resolutionというルールがあり、一定の条件を満たせば使われてないアカウントを解放してもらえる。 手続きには最低でも4週間の返事待ちの期間があるので1ヶ月ほどかかる。

今回取得した@jserというnpmアカウントは、JSer.infoのデータセットを取得するAPIクライアントや統計処理ライブラリなどパッケージに利用しています。

@jser/data-fetcher@jser/stat@jser/post-parserなどに利用しています。