[インデックス 13095] ファイルの概要
このコミットは、GoプロジェクトのAUTHORS
ファイルとCONTRIBUTORS
ファイルに、James Gray氏を個人貢献者ライセンス契約(Individual CLA)に基づいて追加するものです。これは、Goプロジェクトへの貢献者がコードを提出する前に満たすべき法的な要件の一部です。
コミット
commit 434625d1be0d028f30f269344d9c5783e84c4c74
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date: Fri May 18 10:32:54 2012 -0700
A+C: add James Gray (Individual CLA)
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6213055
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/434625d1be0d028f30f269344d9c5783e84c4c74
元コミット内容
A+C: add James Gray (Individual CLA)
このコミットメッセージは、「AUTHORS」と「CONTRIBUTORS」ファイルにJames Gray氏を、個人貢献者ライセンス契約(Individual CLA)に基づいて追加したことを簡潔に示しています。
変更の背景
オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、貢献者からのコードがプロジェクトに統合される前に、法的な合意を確立することが一般的です。この合意は通常、貢献者ライセンス契約(Contributor License Agreement, CLA)の形で取られます。
このコミットの背景には、James Gray氏がGoプロジェクトに貢献する意向があり、その貢献を受け入れるために必要な法的手続きが完了したという事実があります。CLAに署名することで、プロジェクトは貢献されたコードを使用、複製、変更、配布するための明確な権利を得ることができ、将来的な著作権に関する紛争を防ぐことができます。
AUTHORS
ファイルとCONTRIBUTORS
ファイルは、プロジェクトに貢献した個人を記録するためのものです。CLAに署名した貢献者がこれらのファイルに追加されることで、その貢献が正式に認められ、プロジェクトの歴史の一部となります。
前提知識の解説
貢献者ライセンス契約 (Contributor License Agreement, CLA)
貢献者ライセンス契約(CLA)は、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献されたコードの著作権に関する権利をプロジェクトの管理者(この場合はGoogle)に付与するための法的な文書です。CLAは、プロジェクトが貢献されたコードを自由に利用、配布、変更できるようにするために不可欠です。
GoプロジェクトにおけるCLAの主な特徴は以下の通りです。
- 貢献の要件: Goプロジェクトに最初の変更を提出する前に、CLAを完了する必要があります。
- CLAの種類:
- 個人CLA (Individual CLA): 貢献者が著作権を保持している場合に署名します。このコミットでJames Gray氏が署名したのがこれにあたります。
- 企業CLA (Corporate CLA): 貢献者の所属組織が著作権を保持している場合に、組織が署名します。
- Google CLA: GoプロジェクトのCLAはGoogle貢献者ライセンス契約であり、一度署名すると、すべてのGoogleオープンソースプロジェクトへの貢献をカバーします。
- 目的: CLAは、Goプロジェクトの管理者であるGoogleが、貢献されたコードを使用および配布するために必要な法的権利を確保しつつ、貢献者が自身のコードの所有権を保持することを保証します。
- 貢献プロセス: CLAへの署名は、Go貢献者になるための初期ステップの一つです。これには、Go Gitリポジトリの認証設定や、Goチームが使用するコードレビューツールであるGerritへの登録も含まれます。
- GitHubとの統合: GitHub経由で貢献する場合、GopherbotというボットがプルリクエストをGerritに同期し、必要なCLAが署名されているかどうかのCLAチェックが自動的に実行されます。
CLAは、プロジェクトの法的健全性を維持し、将来的なライセンスの変更や再ライセンスの可能性に備えるためにも重要です。
AUTHORS
ファイルとCONTRIBUTORS
ファイル
多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために特定のファイルを使用します。Goプロジェクトでは、AUTHORS
とCONTRIBUTORS
という2つのファイルがその役割を担っています。
AUTHORS
: このファイルは、プロジェクトの主要な作者や、特に重要な貢献をした人々をリストアップするために使用されることが多いです。通常、著作権表示に関連する情報が含まれることもあります。CONTRIBUTORS
: このファイルは、プロジェクトに何らかの形で貢献したすべての個人をリストアップするために使用されます。これには、コードの貢献者だけでなく、ドキュメントの作成者、バグ報告者、テスターなど、幅広い貢献者が含まれることがあります。
これらのファイルは、プロジェクトの透明性を高め、貢献者の努力を認識し、コミュニティの構築に役立ちます。
技術的詳細
このコミットは、GoプロジェクトのルートディレクトリにあるAUTHORS
ファイルとCONTRIBUTORS
ファイルという2つのテキストファイルを変更しています。これらのファイルは、プロジェクトに貢献した人々の名前と連絡先情報を記録するために使用されます。
変更内容は非常にシンプルで、両方のファイルにJames Gray氏の名前とメールアドレス(James Gray <james@james4k.com>
)を新しい行として追加しています。これは、彼がGoプロジェクトへの貢献を開始するための法的な要件(Individual CLAの署名)を満たしたことを反映しています。
ファイルの変更は、既存のリストに新しいエントリを追加する形で行われており、ファイルの構造や既存のコンテンツには影響を与えません。これは、プロジェクトの貢献者リストを最新の状態に保つための定期的なメンテナンス作業の一部です。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index 0a028d5b70..10c5562482 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -97,6 +97,7 @@ Icarus Sparry <golang@icarus.freeuk.com>
Ingo Oeser <nightlyone@googlemail.com>
Isaac Wagner <ibw@isaacwagner.me>
James Fysh <james.fysh@gmail.com>
+James Gray <james@james4k.com>
James Meneghello <rawrz0r@gmail.com>
James P. Cooper <jamespcooper@gmail.com>
James Toy <nil@opensesame.st>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ac3e570a19..54dbd4abf8 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -147,6 +147,7 @@ Ivan Krasin <krasin@golang.org>
Jacob Baskin <jbaskin@google.com>
James Aguilar <jaguilar@google.com>
James Fysh <james.fysh@gmail.com>
+James Gray <james@james4k.com>
James Meneghello <rawrz0r@gmail.com>
James P. Cooper <jamespcooper@gmail.com>
James Toy <nil@opensesame.st>
コアとなるコードの解説
上記の差分は、AUTHORS
ファイルとCONTRIBUTORS
ファイルに対する変更を示しています。
diff --git a/AUTHORS b/AUTHORS
およびdiff --git a/CONTRIBUTORS b/CONTRIBUTORS
は、それぞれAUTHORS
ファイルとCONTRIBUTORS
ファイルに対する変更であることを示しています。index 0a028d5b70..10c5562482 100644
およびindex ac3e570a19..54dbd4abf8 100644
は、変更前後のファイルのGitオブジェクトハッシュとファイルモードを示しています。--- a/AUTHORS
と+++ b/AUTHORS
、--- a/CONTRIBUTORS
と+++ b/CONTRIBUTORS
は、それぞれ変更前のファイルと変更後のファイルを示しています。@@ -97,6 +97,7 @@
と@@ -147,6 +147,7 @@
は、変更が行われたファイルの行番号と行数を示しています。例えば、AUTHORS
ファイルでは、元の97行目から6行が変更され、新しいファイルでは97行目から7行に変更されたことを意味します。これは、1行が追加されたことを示唆しています。+James Gray <james@james4k.com>
の行が、両方のファイルに追加されています。これは、James Gray氏の名前とメールアドレスが、それぞれのファイルの適切な位置に挿入されたことを示しています。
この変更は、Goプロジェクトの貢献者リストを更新し、James Gray氏が正式にプロジェクトの貢献者として認識されたことを記録するものです。これは、彼がGoプロジェクトにコードを貢献するための前提条件であるIndividual CLAに署名した結果として行われました。
関連リンク
- GoプロジェクトのGerritコードレビューシステムにおける変更リスト: https://golang.org/cl/6213055
参考にした情報源リンク
- Goプロジェクトへの貢献に関する公式ドキュメント: https://go.dev/doc/contribute
- GoogleオープンソースのCLAに関する情報: https://opensource.google/docs/cla/
- Wikipedia: Contributor License Agreement: https://en.wikipedia.org/wiki/Contributor_License_Agreement
- GoCDプロジェクトのCLAに関する情報 (参考): https://www.gocd.org/cla/