[インデックス 11848] ファイルの概要
このコミットは、Goプロジェクトへの貢献者であるDarren Elwood氏が、個人貢献者ライセンス契約(Individual CLA)を締結したことを記録するものです。具体的には、プロジェクトのAUTHORS
ファイルとCONTRIBUTORS
ファイルに彼の名前とメールアドレスが追加されています。これは、彼がGoプロジェクトにコードを貢献する法的資格を得たことを公式に認めるプロセスの一部です。
コミット
commit 0ae43126370bcf0fcced69b9bbf9787a50e0e420
Author: Russ Cox <rsc@golang.org>
Date: Mon Feb 13 13:58:05 2012 -0500
A+C: Darren Elwood (individual CLA)
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/5650077
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/0ae43126370bcf0fcced69b9bbf9787a50e0e420
元コミット内容
A+C: Darren Elwood (individual CLA)
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/5650077
変更の背景
このコミットの背景には、オープンソースプロジェクト、特にGoogleが管理するプロジェクトにおける貢献者ライセンス契約(CLA)の重要性があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、外部からのコード貢献を受け入れる際に、法的な明確性を確保する必要があります。
「A+C」は「Add + CLA」を意味し、新しい貢献者がプロジェクトに加わり、かつCLAを締結したことを示します。Darren Elwood氏がGoプロジェクトに貢献するにあたり、まず個人貢献者ライセンス契約を締結しました。この契約により、Googleは彼の貢献物を使用、複製、変更、配布する権利を得る一方で、Darren Elwood氏自身は自身の著作権を保持します。このコミットは、そのCLA締結が完了し、彼が正式な貢献者として認められたことをプロジェクトの記録(AUTHORS
およびCONTRIBUTORS
ファイル)に反映させるためのものです。
これにより、プロジェクトは将来的な著作権に関する紛争を避け、貢献されたコードを安心してプロジェクトに統合できるようになります。
前提知識の解説
貢献者ライセンス契約 (Contributor License Agreement, CLA)
CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの管理者(この場合はGoogle)と貢献者の間で締結される法的な契約です。CLAの主な目的は以下の通りです。
- 著作権の明確化: 貢献されたコードの著作権が誰に帰属するか、プロジェクト側がそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを低減します。
- ライセンスの再配布: プロジェクトが自身のライセンス(例: Goプロジェクトの場合はBSDライセンス)の下で貢献されたコードを再配布する権利を確保します。
- プロジェクトの持続性: プロジェクトが所有権やライセンスに関する問題なく、長期的にコードベースを管理・発展させることを可能にします。
CLAには主に以下の2種類があります。
- 個人CLA (Individual CLA): 貢献者が自身の著作権を保持し、個人としてプロジェクトに貢献する場合に締結します。今回のDarren Elwood氏のケースがこれに該当します。
- 企業CLA (Corporate CLA): 貢献者が企業に雇用されており、その企業の業務として貢献を行う場合に締結します。この場合、著作権は企業に帰属するため、企業がCLAを締結します。
Goプロジェクトへの貢献プロセスでは、CLAの締結は必須のステップです。CLAを締結した後、貢献者はGoのコードレビューツールであるGerritへの登録や、git-codereview
ツールのインストールなど、いくつかの追加設定を行う必要があります。
AUTHORS
ファイルとCONTRIBUTORS
ファイル
多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために特定のファイルを使用します。
AUTHORS
ファイル: 通常、プロジェクトの主要な作者や、プロジェクトの初期段階から深く関わっている人々をリストアップします。著作権表示の目的で利用されることもあります。CONTRIBUTORS
ファイル: プロジェクトにコード、ドキュメント、バグ報告、アイデアなどで貢献したすべての個人や組織をリストアップします。これは、コミュニティの努力を認識し、感謝を示すためのものです。
これらのファイルは、プロジェクトの透明性とコミュニティへの敬意を示す重要な役割を果たします。
技術的詳細
このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのテキストファイル、AUTHORS
とCONTRIBUTORS
にDarren Elwood氏の情報を追加するものです。これらのファイルは、プロジェクトの歴史と貢献者を記録するためのものであり、コードの機能には直接影響しませんが、プロジェクトの管理と法的な側面において重要です。
変更は、既存のリストに新しいエントリを挿入する形で行われています。これは、Gitの差分表示(diff)で明確に示されており、特定の行に新しい情報が追加されたことを意味します。ファイルの変更モード(100644
)は、通常のテキストファイルであり、実行可能ファイルではないことを示しています。
コミットメッセージのR=golang-dev, gri
とCC=golang-dev
は、この変更がGo開発チーム(golang-dev)と特定のレビュアー(gri、おそらくIan Lance Taylor氏)によってレビューされたことを示しています。https://golang.org/cl/5650077
は、この変更がGoプロジェクトのコードレビューシステムであるGerrit上の変更リスト(Change-ID)に対応していることを示しています。Goプロジェクトでは、GitHubのプルリクエストとGerritの変更リストが同期される仕組みが導入されています。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index ff1cc126d2..9a3de973ad 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -52,6 +52,7 @@ Damian Gryski <dgryski@gmail.com>
Dan Sinclair <dan.sinclair@gmail.com>
Daniel Fleischman <danielfleischman@gmail.com>
Daniel Theophanes <kardianos@gmail.com>
+Darren Elwood <darren@textnode.com>
Dave Cheney <dave@cheney.net>
David Forsythe <dforsythe@gmail.com>
David G. Andersen <dave.andersen@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 9ed348f08f..16133eadd0 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -89,6 +89,7 @@ Dan Sinclair <dan.sinclair@gmail.com>
Daniel Fleischman <danielfleischman@gmail.com>
Daniel Nadasi <dnadasi@google.com>
Daniel Theophanes <kardianos@gmail.com>
+Darren Elwood <darren@textnode.com>
Dave Cheney <dave@cheney.net>
Dave Grijalva <dgrijalva@ngmoco.com>
David Anderson <danderson@google.com>
コアとなるコードの解説
上記の差分は、AUTHORS
ファイルとCONTRIBUTORS
ファイルに対する変更を示しています。
-
AUTHORS
ファイル:@@ -52,6 +52,7 @@
は、変更が元のファイルの52行目から6行(変更前)が、変更後には52行目から7行(変更後)になったことを示します。+Darren Elwood <darren@textnode.com>
の行が追加されています。これは、Darren Elwood氏の名前とメールアドレスがAUTHORS
ファイルに新しいエントリとして挿入されたことを意味します。既存の貢献者リストの中に、アルファベット順に挿入されていることがわかります。
-
CONTRIBUTORS
ファイル:@@ -89,6 +89,7 @@
は、変更が元のファイルの89行目から6行(変更前)が、変更後には89行目から7行(変更後)になったことを示します。+Darren Elwood <darren@textnode.com>
の行が追加されています。同様に、Darren Elwood氏の名前とメールアドレスがCONTRIBUTORS
ファイルに新しいエントリとして挿入されています。
これらの変更は、Darren Elwood氏がGoプロジェクトの公式な貢献者として認識され、彼の情報がプロジェクトの記録に永続的に追加されたことを示しています。
関連リンク
- GoプロジェクトのGerrit変更リスト: https://golang.org/cl/5650077
参考にした情報源リンク
- Google Open Source - Contributor License Agreements (CLAs): https://opensource.google/docs/cla/
- Goプロジェクトへの貢献方法: https://go.dev/doc/contribute
- Google Developers - Contributor License Agreement (CLA) FAQ: https://developers.google.com/open-source/cla/individual