[インデックス 14329] ファイルの概要
このコミットは、Go言語プロジェクトのCONTRIBUTORS
ファイルに新しい貢献者であるCarl Mastrangelo氏を追加するものです。これは、彼がGoogleの貢献者ライセンス契約(CLA)を完了したことによるものです。
コミット
- コミットハッシュ:
451b91b4d1e37996129368f8de4b7b5335ac8a5f
- Author: Ian Lance Taylor iant@golang.org
- Date: Tue Nov 6 15:58:18 2012 -0800
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/451b91b4d1e37996129368f8de4b7b5335ac8a5f
元コミット内容
CONTRIBUTORS: Add Carl Mastrangelo (Google CLA).
R=golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/6812095
変更の背景
このコミットの背景には、オープンソースプロジェクト、特にGoogleが主導するGo言語のような大規模プロジェクトにおける貢献者ライセンス契約(CLA: Contributor License Agreement)の重要性があります。
Carl Mastrangelo氏がGoプロジェクトに貢献するにあたり、Googleが求めるCLAを完了したため、その貢献が正式に認められる形として、プロジェクトの公式な貢献者リストであるCONTRIBUTORS
ファイルに彼の名前が追加されました。CLAは、貢献されたコードの著作権やライセンスに関する明確な取り決めを確立するために用いられ、プロジェクトの知的財産権を保護し、将来的なライセンス問題を防ぐ役割を果たします。
前提知識の解説
CONTRIBUTORSファイル
CONTRIBUTORS
ファイルは、多くのオープンソースプロジェクトで見られるテキストファイルで、そのプロジェクトにコード、ドキュメント、その他の形で貢献した人々の名前をリストアップしています。このファイルは、プロジェクトの歴史とコミュニティの努力を可視化する役割を果たすと同時に、誰がプロジェクトに貢献したかを明確にするための公式な記録としても機能します。通常、名前とメールアドレスが記載されます。
貢献者ライセンス契約 (CLA: Contributor License Agreement)
CLAは、個人または企業がオープンソースプロジェクトに貢献する際に、プロジェクトの所有者(この場合はGoogle)と締結する法的な契約です。CLAの主な目的は以下の通りです。
- 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者は自身の貢献に対する著作権を保持しつつ、プロジェクトの所有者に対して、その貢献をプロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)の下で利用、配布、変更する永続的かつ取り消し不能な権利を付与します。
- ライセンスの統一性: プロジェクト全体でコードのライセンスが統一されていることを保証します。これにより、将来的にプロジェクトのライセンスを変更する際や、第三者がプロジェクトのコードを利用する際に、法的な不確実性を排除できます。
- 知的財産権の保護: プロジェクトの所有者が、貢献されたコードに関する潜在的な知的財産権の紛争から保護されることを保証します。
Googleのような大企業が主導するオープンソースプロジェクトでは、法務部門がCLAの遵守を厳格に管理しており、貢献者がCLAに署名しない限り、その貢献を受け入れないことが一般的です。これは、プロジェクトの長期的な健全性と法的安定性を確保するために不可欠なプロセスとされています。
技術的詳細
このコミットは、Go言語のリポジトリのルートディレクトリにあるCONTRIBUTORS
というプレーンテキストファイルに対する変更です。技術的には、単にこのファイルに新しい行を追加する操作に過ぎません。
CONTRIBUTORS
ファイルは、各行が1人の貢献者を表すシンプルな構造を持っています。通常、貢献者の氏名と、場合によってはメールアドレスが記載されます。このコミットでは、Carl Mastrangelo <notcarl@google.com>
という形式で新しいエントリが追加されています。これは、Goプロジェクトにおける一般的な貢献者情報の記述形式に則っています。
ファイルの変更は、Gitの差分(diff)として表現されており、既存の行の間に新しい行が挿入されたことを示しています。ファイルのインデックス(index 746c60b900..98c9869706 100644
)が変更されているのは、ファイルの内容が更新されたためです。100644
は、ファイルが通常のファイルであり、読み取り/書き込み権限があることを示します。
コアとなるコードの変更箇所
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 746c60b900..98c9869706 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -86,6 +86,7 @@ Brian Dellisanti <briandellisanti@gmail.com>
Brian Slesinsky <skybrian@google.com>
Brendan O'Dea <bod@golang.org>
Caine Tighe <arctanofyourface@gmail.com>
+Carl Mastrangelo <notcarl@google.com>
Carlos Castillo <cookieo9@gmail.com>
Cary Hull <chull@google.com>
Charles L. Dorian <cldorian@gmail.com>
コアとなるコードの解説
上記の差分は、CONTRIBUTORS
ファイルに対して行われた具体的な変更を示しています。
--- a/CONTRIBUTORS
と+++ b/CONTRIBUTORS
は、それぞれ変更前のファイル(a)と変更後のファイル(b)を示しています。@@ -86,6 +86,7 @@
は、変更がファイルの86行目から始まり、変更前は6行、変更後は7行になったことを示しています。+Carl Mastrangelo <notcarl@google.com>
の行が追加された唯一の変更点です。これは、Carl Mastrangelo氏の名前とメールアドレスが、既存の貢献者リストの適切な位置(アルファベット順)に挿入されたことを意味します。
この変更は、Goプロジェクトの公式な貢献者リストを最新の状態に保つための、定型的なメンテナンス作業の一部です。
関連リンク
- Gerrit Change-ID:
https://golang.org/cl/6812095
(Goプロジェクトでは、GitHubにプッシュされる前にGerritというコードレビューシステムで変更がレビューされます。このリンクはGerrit上の対応する変更を示しています。)
参考にした情報源リンク
- Contributor License Agreement (CLA) の一般的な情報:
- Go言語プロジェクトの貢献ガイドライン:
- https://go.dev/doc/contribute (Goプロジェクトへの貢献方法に関する公式ドキュメント。CLAに関する言及も含まれる。)
- Gitのdiffコマンドに関する一般的な情報: