[インデックス 12914] ファイルの概要
このコミットは、Goプロジェクトの貢献者リストに新しい個人を追加するものです。具体的には、AUTHORS
ファイルとCONTRIBUTORS
ファイルにMichael Chaten氏のエントリが追加されました。これは、彼がGoプロジェクトへの貢献を始めるにあたり、個人貢献者ライセンス契約(Individual CLA)を締結したことを示しています。
コミット
- コミットハッシュ:
3af088dbafd57bfd8167652899c3ef838bdefae4
- 作者: Brad Fitzpatrick bradfitz@golang.org
- コミット日時: 2012年4月19日 木曜日 09:18:49 -0700
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/3af088dbafd57bfd8167652899c3ef838bdefae4
元コミット内容
A+C: Add Michael Chaten (Individual CLA)
R=golang-dev, kevlar
CC=golang-dev
https://golang.org/cl/6075044
変更の背景
このコミットの背景には、オープンソースプロジェクト、特にGoのような大規模なプロジェクトにおける貢献の管理と法的な側面があります。Goプロジェクトでは、外部からのコード貢献を受け入れる際に、貢献者がそのコードの著作権をGoプロジェクト(またはその背後にあるGoogle)に適切にライセンス供与することを保証するために、貢献者ライセンス契約(CLA: Contributor License Agreement)の締結を求めています。
Michael Chaten氏がGoプロジェクトに貢献を開始するにあたり、個人としてのCLAを締結したため、その事実をプロジェクトの公式な記録であるAUTHORS
ファイルとCONTRIBUTORS
ファイルに反映させる必要がありました。これにより、彼の将来の貢献が法的に保護され、プロジェクトがそのコードを自由に利用・配布できることが保証されます。
前提知識の解説
AUTHORSファイルとCONTRIBUTORSファイル
多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、AUTHORS
やCONTRIBUTORS
といったファイルが使用されます。
AUTHORS
ファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人・団体をリストアップするために使用されます。法的な意味合いが強い場合があります。CONTRIBUTORS
ファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップするために使用されます。コードの貢献だけでなく、ドキュメントの作成、バグ報告、テスト、デザインなど、幅広い貢献が含まれることがあります。
Goプロジェクトの場合、これらのファイルは、プロジェクトにコードを貢献する際にCLAを締結した個人の記録として機能します。
貢献者ライセンス契約 (CLA: Contributor License Agreement)
CLAは、個人または企業がオープンソースプロジェクトにコードやその他の著作物を貢献する際に、その著作物のライセンスに関する権利をプロジェクトの所有者(または指定された団体)に付与するための法的な合意書です。
CLAを導入する主な理由は以下の通りです。
- 著作権の明確化: 貢献されたコードの著作権がどこに帰属し、どのように利用されるかを明確にします。これにより、将来的な著作権に関する紛争を防ぎます。
- ライセンスの統一性: プロジェクト全体でコードのライセンスを統一し、プロジェクトのライセンス(例: BSDライセンス、Apacheライセンスなど)の下で配布できるようにします。
- 法的保護: プロジェクトが第三者からの著作権侵害の訴訟に直面した場合に、貢献者からの適切なライセンス供与があることで、プロジェクトを保護する盾となります。
- 再ライセンスの可能性: プロジェクトが将来的にライセンスを変更する必要が生じた場合(例: より寛容なライセンスへの移行)、CLAによってその変更が容易になります。
GoプロジェクトはGoogleによって開始され、管理されているため、貢献者はGoogleに対してCLAを締結することが求められます。これにより、GoogleはGoプロジェクトのコードベースを管理し、そのライセンスを維持する上で必要な権利を確保します。
Gerrit (golang.org/cl/)
https://golang.org/cl/6075044
というリンクは、Goプロジェクトがコードレビューに利用しているGerritというシステムへのリンクです。Gerritは、Gitリポジトリ上で変更をレビューし、承認するためのウェブベースのコードレビューツールです。Goプロジェクトでは、GitHubのプルリクエストではなく、Gerritを通じてすべてのコード変更が提案され、レビューされ、最終的にマージされます。CL
は「Change List」の略で、Gerritにおける個々の変更セットを指します。
技術的詳細
このコミットは、Goプロジェクトのソースコード管理におけるメタデータファイルへの単純なテキスト追加です。具体的には、AUTHORS
ファイルとCONTRIBUTORS
ファイルの両方に、Michael Chaten氏の名前とメールアドレスが新しい行として追加されています。
変更は以下の通りです。
AUTHORS
ファイル:Micah Stetson <micah.stetson@gmail.com>
の行の直後に、Michael Chaten <mchaten@gmail.com>
の行が追加されました。
CONTRIBUTORS
ファイル:Micah Stetson <micah.stetson@gmail.com>
の行の直後に、Michael Chaten <mchaten@gmail.com>
の行が追加されました。
これらのファイルは、プロジェクトの歴史的な記録として、また法的な要件を満たすために手動で更新されます。コードの機能的な変更は一切含まれていません。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index 66be681ec3..4b9ea30f86 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -135,6 +135,7 @@ Mateusz Czapliński <czapkofan@gmail.com>
Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
Matthew Horsnell <matthew.horsnell@gmail.com>
Micah Stetson <micah.stetson@gmail.com>
+Michael Chaten <mchaten@gmail.com>
Michael Elkins <michael.elkins@gmail.com>
Michael Hoisie <hoisie@gmail.com>
Michael Lewis <mikelikespie@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 17c2aead32..d8420aebac 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -203,6 +203,7 @@ Matthew Horsnell <matthew.horsnell@gmail.com>
Maxim Pimenov <mpimenov@google.com>
Maxim Ushakov <ushakov@google.com>
Micah Stetson <micah.stetson@gmail.com>
+Michael Chaten <mchaten@gmail.com>
Michael Elkins <michael.elkins@gmail.com>
Michael Hoisie <hoisie@gmail.com>
Michael Lewis <mikelikespie@gmail.com>
コアとなるコードの解説
上記のdiff
出力は、Gitが検出した変更を示しています。
--- a/AUTHORS
と+++ b/AUTHORS
は、AUTHORS
ファイルの変更前と変更後を示します。@@ -135,6 +135,7 @@
は、AUTHORS
ファイルにおいて、元のファイルでは135行目から6行が対象であったのに対し、変更後では135行目から7行が対象となったことを示します。これは1行が追加されたことを意味します。+Michael Chaten <mchaten@gmail.com>
の行頭の+
記号は、この行が新しく追加されたことを示しています。
同様に、CONTRIBUTORS
ファイルに対しても同じ形式の変更が適用されています。
この変更は、Goプロジェクトの貢献者リストを最新の状態に保つためのルーティンワークの一部であり、Michael Chaten氏がGoプロジェクトの公式な貢献者として認識されたことを意味します。
関連リンク
- Gerrit Change List: https://golang.org/cl/6075044
参考にした情報源リンク
- Goプロジェクトの貢献ガイドライン: Goプロジェクトへの貢献に関する公式ドキュメントは、CLAの要件や貢献プロセスについて詳細に説明しています。
- https://go.dev/doc/contribute (現在の公式ドキュメント)
- Contributor License Agreement (CLA) の一般的な情報: