programming/netfx/tips/nuget_package_id_prefix_reservation/index.wiki.txt

current previous
1,151 0,0
+
%smdncms%(set-metadata,title,NuGetパッケージIDプレフィックスの予約)
+
%smdncms%(set-metadata,keywords,NuGet)
+

         
+
[[NuGet Gallery (nuget.org):https://www.nuget.org/]]にてパッケージIDプレフィックスを予約する方法と、実際に予約を申請した際の記録。
+

         
+
$relevantdocs(ドキュメント)
+

         
+
- [[ID プレフィックスの予約 | Microsoft Docs:https://docs.microsoft.com/ja-jp/nuget/nuget-org/id-prefix-reservation]]
+
- [[ID Prefix Reservation | Microsoft Docs:https://docs.microsoft.com/en-us/nuget/nuget-org/id-prefix-reservation]]
+

         
+
$relevantdocs$
+

         
+
*NuGetパッケージIDのプレフィックス予約
+
NuGet Gallery (nuget.org)では、パッケージIDのプレフィックスを''予約''することができる。 プレフィックスの予約を行うと、パッケージの所有者(owner)が''特定のプレフィックスを専有''することができる。
+

         
+
例えば``Microsoft.*``というプレフィックスはMicrosoftにより予約(専有)されている。 これにより、Microsoftのみが``Microsoft.``で始まるIDのパッケージを公開することができる一方で、Microsoft以外の所有者がそういったIDのパッケージを公開することはできなくなる。
+

         
+
一般に、特定のプレフィックスからはそのパッケージを公開する個人や組織、ソフトウェアスイートなどについての情報が想起され、また同一のプレフィックスを持つパッケージは同一の個人・組織によって公開されたものと期待される。 プレフィックスの予約により、他の所有者が本来の所有者を騙ってパッケージを公開するといった行為を抑止することができる。
+

         
+
なお、プレフィックスの予約が行われているパッケージでは、以下のように✅チェックマークとともに予約されている旨が表示される。
+

         
+
#image(width=70%,title=プレフィックスが予約されているパッケージの表示,source1=nugetgallery-Microsoft.CSharp.png,title1=Microsoft.CSharp,source2=nugetgallery-NUnit.png,title2=NUnit)
+

         
+

         
+

         
+
*プレフィックス予約の申請方法と条件
+
プレフィックス予約を行う方法は、[[ID プレフィックスの予約 | Microsoft Docs:https://docs.microsoft.com/ja-jp/nuget/nuget-org/id-prefix-reservation]]の「予約の申請プロセス」に記載されている。 予約したいプレフィックスと、所有者のnuget.orgアカウントの情報を添えてメールを送ることで申請できる。
+

         
+
また、[[予約時の条件:https://docs.microsoft.com/ja-jp/nuget/nuget-org/id-prefix-reservation#id-prefix-reservation-criteria]]として、2段階認証(2FA)が有効になっていることと、予約しようとしているプレフィックスと所有者の関係が妥当であること、などが挙げられている。 (詳細は[[#request_for_prefix_reservation]]で後述)
+

         
+
はっきりと明記はされていないものの、予約の妥当性については、本来の所有者を騙るものではないかのほかに、プレフィックスの予約により他者の商標権が侵害されるなど、法的問題や争議が起こらないことの確認あるいは表明を要件として求めていると思われる。
+

         
+
*プレフィックスの予約申請 [#request_for_prefix_reservation]
+
以下は実際にプレフィックスの予約申請を行った際の記録。 ここでは、所有者を[[smdn:https://www.nuget.org/profiles/smdn]]、予約するプレフィックスを``Smdn.*``として申請した。
+

         
+
申請に際して入力フォームやテンプレート等は用意されていなかったため、必要事項に加えて次の内容を記載した。
+

         
+
**予約申請に記載した内容
+
申請にあたり、プレフィックス``Smdn.*``を予約することが妥当な理由として、[[予約の条件:https://docs.microsoft.com/ja-jp/nuget/nuget-org/id-prefix-reservation#id-prefix-reservation-criteria]]に記載されている質問に対する回答を記載した。 記載内容は以下のとおり。
+

         
+

         
+

         
+
> パッケージ ID プレフィックスでは、適切かつ明確に予約の所有者が示されていますか?
+
> Does the package ID prefix properly and clearly identify the reservation owner?
+

         
+
+ 現在公開しているパッケージは、GitHubアカウント``smdn``のリポジトリでホストされている、アカウントは2010年から保有している
+
+ 現在公開しているパッケージは、ドメイン``smdn.jp``にリンクしている、同ドメインは2010年から保有している
+
+ 現在公開しているパッケージは、``Smdn.*``で始まるIDを使用している、同名のパッケージは2008年から公開している
+
+ 現在公開しているパッケージと、GitHubリポジトリ、ドメインは相互にリンクさせてある
+
+ 上記より、プレフィックス``Smdn.*``は、その所有者を明確に表している
+

         
+
> そのパッケージ ID プレフィックスには個人所有者または組織に属すべきではない何らかの一般性がありますか?
+
> Is the package ID prefix something common that should not belong to any individual owner or organization?
+

         
+
+ 過去12年間、``smdn``という名前により商標権やその他の問題が起こったことはない
+
+ NuGet Galleryでパッケージを公開する前の2008年から、プレフィックス``Smdn.*``を持つライブラリを公開している (そしてその名前で問題が起こったことはない)
+
+ 上記より、プレフィックス``Smdn.*``は、他の個人や組織と競合せず、法的問題の原因にならないと考えられる
+

         
+
> そのパッケージ ID プレフィックスを予約しても、コミュニティに対してあいまいさ、混乱、その他の害が発生することは "ありませんか"?
+
> Would not reserving the package ID prefix cause ambiguity, confusion, or other harm to the community?
+

         
+
+ Nuget Galleryで検索する限り、プレフィックス``Smdn.*``を使用しているパッケージは見つからない
+
+ GitHubで検索する限り、プレフィックス``Smdn.*``を使用している.NETプロジェクトは見つからない
+
+ 過去12年間、プレフィックス``Smdn.*``を持つライブラリを公開していて、(その名前の使用で)問題が起こったことはない
+
+ 上記より、``Smdn.*``の予約は、コミュニティに対する曖昧さ・混乱・有害性を及ぼすことはない
+

         
+

         
+

         
+
上記の回答を含む、実際に送信した申請内容は以下の通り。
+

         
+
$remarks
+
以下の申請内容はプレフィックス``Smdn.*``の申請に固有な内容となっているため、これをテンプレートとして使用することは推奨しません。 あくまで参考としてください。
+
$remarks$
+

         
+
#preformatted{{
+
(前略)
+

         
+
The ID prefix I want to reserve is as follows.
+

         
+
  Prefix: "Smdn.*"
+
  NuGet account: "smdn" <smdn@smdn.jp>
+

         
+
The following is a my answer and explanation for the ID prefix reservation criteria.
+

         
+
[1] "Does the package ID prefix properly and clearly identify the reservation owner?"
+
Yes.
+

         
+
(1) The source code of the packages are hosted on GitHub, with account "smdn". (https://github.com/smdn)
+
    I have owned and used the GitHub account "smdn" since 2010.
+

         
+
(2) The project websites for some of the packages link to my website "smdn.jp". (https://smdn.jp/)
+
    I have owned the domain "smdn.jp" and the website since 2010.
+

         
+
(3) The packages I have released since 2008 have been prefixed with "Smdn.*".
+

         
+
(4) Each package, the GitHub repository, and my website are cross-linked by URL.
+

         
+
From the above, I believe that reserving the prefix "Smdn.*" clarifies and identify the ownership of the packages.
+

         
+

         
+
[2] "Has the owner enabled 2FA for their NuGet.org account?"
+
Yes.
+

         
+

         
+
[3] "Is the package ID prefix something common that should not belong to any individual owner or organization?"
+
I have never had any trademark or other problems with the name "smdn" in the past 12 years.
+

         
+
Before I released first package on NuGet, I had been releasing the libraries prefixed with "Smdn.*" since 2008.
+
(Please see this release note: https://smdn.jp/works/libs/Smdn.Net.Imap4.Client/releases/ )
+

         
+
So my reservation of prefix "Smdn.*" is not considered to be in conflict with any other individuals or organizations, or cause of legal issues.
+

         
+

         
+
[4]. "Would not reserving the package ID prefix cause ambiguity, confusion, or other harm to the community?"
+
Yes.
+

         
+
(1) No packages with the prefix "Smdn.*" and which I do not own were not found as long as I searched Nuget Gallery with the criteria "Smdn".
+

         
+
(2) No .NET projects with the prefix "Smdn.*" were not found as long as I searched GitHub with the criteria "Smdn in:name".
+

         
+
(3) I have not had any trouble with the library name "Smdn.*" in the past 12 years.
+

         
+
From the above, I believe that there is no ambiguity, harm, or confusion to the community in reserving prefix "Smdn.*".
+
}}
+

         
+
** 予約申請の経過
+
最終的には申請どおりに予約が行われたものの、メールでの申請では何らかのトラブル(不達?)により返答がなかった。 そのため、サポートの[[コンタクトフォーム:https://www.nuget.org/policies/Contact]](要ログイン)よりメールへの返答がなかった旨を添えて申請を送信したところ、3日ほどで予約が行われた。 予約が行われるまでの間に、申請内容以外に追加で何か問われるといったことはなかった。
+

         
+
時系列での経過は次の通り。
+

         
+
:2021-12-29|メールにて申請を送信。
+
:2022-01-31|返答がなく、予約が行われた様子も見られないため、申請を再送信。
+
:2022-02-07|返答がなく、予約が行われた様子も見られないため、サポートにて状況を問い合わせると同時に、申請を送信。
+
:2022-02-10|サポート(nuget.org admin名義)から返答、申請のとおり予約を行ったとの回答が来る。 NuGet Galleryにて実際に予約されていることを確認。
+
:2022-02-24|先に送信したメールに対してnuget.org adminから返答、(すでに予約済みにも関わらず)申請のとおり予約を行ったとの回答が来る。
+
メールとサポートで申請を行ったため、何らかの行き違いが生じた?
+

         
+
** 予約された結果
+
プレフィックス``Smdn.*``を持つすべてのパッケージに✅Prefix Reservedのチェックが表示されるようになった。
+

         
+
#image(width=70%,title=NuGet GalleryでのSmdn.Net.Imap4.Clientの表示,source=nugetgallery-Smdn.Net.Imap4.Client.png)
+

         
+

         
+

         
+
今回の申請では、この他に``Smdn``というパッケージの扱いについても問い合わせた。 ``Smdn.*``ではなく``Smdn``というプレフィックスで予約した場合に``SmdnX``, ``Smdn3``といったIDまで予約されてしまうのは過剰と考え、パッケージ``Smdn``の予約は行いたいがプレフィックス``Smdn``で予約した場合どうなるのか、仮に``SmdnX``, ``Smdn3``まで含まれるようなら予約しなくてもよい、という内容を申請に書き添えた。
+

         
+
具体的にどうなるかの回答はなかったものの、最終的には''プレフィックス``Smdn.*``を予約した''という回答とともに、''``Smdn``も予約された状態になる''という結果になった。
+

         
+
#image(width=70%,title=NuGet GalleryでのSmdnの表示,source=nugetgallery-Smdn.png)
+

         
+
パッケージ``Smdn``がどのような扱いで予約済みとなっているのか、詳細は不明。 また、パッケージ``SmdnX``を公開しようとした場合に拒否されるのかどうかも未検証。