[インデックス 13751] ファイルの概要
このコミットは、Go言語プロジェクトのコントリビューターリストに新しいエントリを追加するものです。具体的には、AUTHORS
ファイルと CONTRIBUTORS
ファイルに Oling Cat <olingcat@gmail.com>
というエントリが追加されています。これは、Oling Cat氏がGoプロジェクトに貢献するための個人コントリビューターライセンス契約 (CLA) を締結したことを示しています。
コミット
96f740c8c48d334759090d9f134d3ccb47a63cb1
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/96f740c8c48d334759090d9f134d3ccb47a63cb1
元コミット内容
A+C: Oling Cat (individual CLA)
R=dsymonds
CC=golang-dev
https://golang.org/cl/6503070
変更の背景
このコミットの背景には、オープンソースプロジェクトにおける貢献の法的な側面と、プロジェクトの透明性および管理体制があります。
多くの大規模なオープンソースプロジェクト、特にGoogleが関与するプロジェクト(Go言語もその一つ)では、コントリビューターライセンス契約(CLA: Contributor License Agreement)の締結を義務付けています。CLAは、貢献者が自身のコードの著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、またはプロジェクトがそのコードを特定のライセンス(Go言語の場合はBSDライセンスなど)の下で利用することを許可する法的な合意です。
このコミットメッセージにある「A+C: Oling Cat (individual CLA)」は、Oling Cat氏がGoプロジェクトへの貢献を開始するにあたり、個人としてのCLAを締結したことを示しています。CLAが締結されると、その貢献者の名前がプロジェクトの公式な貢献者リストに追加されます。これにより、プロジェクト側は貢献されたコードを安心して利用・配布できるようになり、将来的なライセンス問題のリスクを軽減できます。
したがって、この変更は、Oling Cat氏がGoプロジェクトにコードを貢献するための前提条件を満たしたことを記録し、プロジェクトの法的な健全性を維持するための標準的な手続きの一環として行われました。
前提知識の解説
1. オープンソースプロジェクトにおけるAUTHORS
とCONTRIBUTORS
ファイル
多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、AUTHORS
やCONTRIBUTORS
といったテキストファイルをリポジトリのルートに配置しています。
AUTHORS
ファイル: 主にプロジェクトの主要な作者や、著作権を保持する個人・団体をリストアップするために使用されます。歴史的な経緯や、プロジェクトの初期からの貢献者が記載されることが多いです。CONTRIBUTORS
ファイル: プロジェクトにコード、ドキュメント、バグ報告、テストなど、何らかの形で貢献したすべての個人や団体をリストアップするために使用されます。こちらはより広範な貢献者を含みます。
これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示すとともに、誰がプロジェクトにどのような形で関わっているかを明確にする役割を果たします。また、法的な観点からも、著作権の帰属やライセンスの適用範囲を明確にする上で重要な意味を持つことがあります。
2. コントリビューターライセンス契約 (CLA: Contributor License Agreement)
CLAは、オープンソースプロジェクトにコードやその他のコンテンツを貢献する個人または団体と、プロジェクトの所有者(または管理団体)との間で締結される法的な契約です。CLAの主な目的は以下の通りです。
- 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。これにより、プロジェクトの所有者は、貢献されたコードをプロジェクトのライセンス(例: MIT, Apache, BSDなど)の下で再配布する権利を確実に得ることができます。
- ライセンスの統一性: プロジェクト全体でコードのライセンスが統一されていることを保証し、将来的なライセンスの変更や、異なるライセンスのコードが混在することによる問題を回避します。
- 法的な保護: プロジェクトの所有者が、貢献されたコードに関する著作権侵害の訴訟などから保護されるための法的根拠を提供します。
- プロジェクトの持続可能性: プロジェクトが将来的に商業利用されたり、別の団体に引き継がれたりする場合でも、コードベースの法的な健全性を維持し、プロジェクトの持続可能性を確保します。
CLAには大きく分けて2種類あります。
- Individual CLA (ICLA): 個人がプロジェクトに貢献する際に締結する契約。
- Corporate CLA (CCLA): 企業が従業員を通じてプロジェクトに貢献する際に締結する契約。企業が貢献するコードの著作権を保持しつつ、プロジェクトに利用を許可する形になります。
Go言語プロジェクトでは、Googleがプロジェクトの管理を行っており、貢献者にはCLAの締結を求めています。これにより、Go言語のコードベース全体の法的な整合性が保たれています。
技術的詳細
このコミットは、Gitの差分(diff)として示されているように、既存のテキストファイルであるAUTHORS
とCONTRIBUTORS
に新しい行を追加する非常にシンプルな変更です。
Gitの差分表示では、--- a/ファイル名
が変更前のファイル、+++ b/ファイル名
が変更後のファイルを示します。行頭の+
は追加された行を示します。
具体的には、以下の行がそれぞれのファイルに追加されています。
AUTHORS
ファイルに+Oling Cat <olingcat@gmail.com>
CONTRIBUTORS
ファイルに+Oling Cat <olingcat@gmail.com>
これらのファイルは通常、アルファベット順にソートされており、新しいエントリも既存のリストの適切な位置に挿入されます。このコミットでは、Nigel Kerr <nigel.kerr@gmail.com>
の後にOling Cat <olingcat@gmail.com>
が追加されています。これは、アルファベット順でO
がN
の後に来るため、正しい挿入位置です。
この変更自体はコードの機能に影響を与えるものではなく、プロジェクトのメタデータの一部を更新するものです。しかし、前述の通り、CLAの締結という法的なプロセスが完了したことを示す重要な記録となります。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index c5c6a9c6a4..f2a840aedd 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -171,6 +171,7 @@ Môshe van der Sterre <moshevds@gmail.com>
ngmoco, LLC
Nicholas Waples <nwaples@gmail.com>
Nigel Kerr <nigel.kerr@gmail.com>
+Oling Cat <olingcat@gmail.com>
Olivier Antoine <olivier.antoine@gmail.com>
Olivier Duperray <duperray.olivier@gmail.com>
Padraig Kitterick <padraigkitterick@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d01b17f85b..cce07584de 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -249,6 +249,7 @@ Môshe van der Sterre <moshevds@gmail.com>
Nicholas Waples <nwaples@gmail.com>
Nigel Kerr <nigel.kerr@gmail.com>
Nigel Tao <nigeltao@golang.org>
+Oling Cat <olingcat@gmail.com>
Olivier Antoine <olivier.Antoine@gmail.com>
Olivier Duperray <duperray.olivier@gmail.com>
Padraig Kitterick <padraigkitterick@gmail.com>
コアとなるコードの解説
上記の差分は、AUTHORS
ファイルとCONTRIBUTORS
ファイルに対する変更を示しています。
-
AUTHORS
ファイルへの変更:@@ -171,6 +171,7 @@
は、変更が元のファイルの171行目から6行に影響し、変更後のファイルでは171行目から7行になることを示しています。+Oling Cat <olingcat@gmail.com>
の行が追加されています。これは、Oling Cat氏がGoプロジェクトの作者の一人として、または主要な貢献者として認識されたことを示唆しています。
-
CONTRIBUTORS
ファイルへの変更:@@ -249,6 +249,7 @@
は、変更が元のファイルの249行目から6行に影響し、変更後のファイルでは249行目から7行になることを示しています。+Oling Cat <olingcat@gmail.com>
の行が追加されています。これは、Oling Cat氏がGoプロジェクトに貢献した個人としてリストに追加されたことを示しています。
両ファイルに同じエントリが追加されているのは、Oling Cat氏がCLAを締結し、Goプロジェクトへの貢献が正式に認められたことを記録するためです。AUTHORS
ファイルはより厳選されたリストである場合が多いですが、このケースでは、CLA締結と同時に両方のリストに追加される運用になっていると考えられます。
関連リンク
- Go言語のGitHubリポジトリ: https://github.com/golang/go
- Go言語のコントリビューションガイドライン (CLAに関する情報が含まれる可能性があります): https://go.dev/doc/contribute (現在のURLであり、コミット当時のURLとは異なる可能性があります)
- GoogleのCLAに関する情報: https://cla.developers.google.com/
参考にした情報源リンク
- Contributor License Agreement (CLA) の説明:
- Gitの差分表示に関する情報:
- Go言語の公式ドキュメント (貢献に関するセクション):
- GitHubのコミット履歴:
- コミットメッセージ内の
golang.org/cl/6503070
は、GoプロジェクトのコードレビューシステムであるGerritのチェンジリストへのリンクです。これは通常、コミットがマージされる前にレビューされた内容を示します。- https://go-review.googlesource.com/c/6503070 (このリンクはコミット当時のものであり、現在のGoプロジェクトのGerritインスタンスのURL形式に変換しています)