[インデックス 14905] ファイルの概要
このコミットは、GoプロジェクトのCONTRIBUTORS
ファイルに、Carl Shapiro氏を新たな貢献者として追加するものです。これは、彼がGoogleのContributor License Agreement (CLA)に同意したことを示しています。
コミット
commit 07dfd8b131937854cb7558d44635ea00fb281f78
Author: David Symonds <dsymonds@golang.org>
Date: Fri Jan 18 10:25:23 2013 +1100
C: add Carl Shapiro (Google CLA).
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7132049
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/07dfd8b131937854cb7558d44635ea00fb281f78
元コミット内容
C: add Carl Shapiro (Google CLA).
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7132049
変更の背景
オープンソースプロジェクトにおいて、コードやドキュメントなどの貢献を受け入れる際には、法的な側面を明確にすることが重要です。特に大規模なプロジェクトでは、貢献者が知的財産権をプロジェクトに適切にライセンス供与していることを確認するために、Contributor License Agreement (CLA)の署名を求めることが一般的です。
このコミットは、Carl Shapiro氏がGoプロジェクトに貢献するにあたり、GoogleのCLAに同意したことを受けて行われました。CONTRIBUTORS
ファイルは、プロジェクトに貢献した個人のリストを保持する役割があり、これにより貢献が正式に認められ、プロジェクトの歴史的な記録としても機能します。
前提知識の解説
Contributor License Agreement (CLA)
Contributor License Agreement (CLA)は、オープンソースプロジェクトに貢献する個人または企業と、プロジェクトの所有者(この場合はGoogle)との間で締結される法的な合意書です。CLAの主な目的は以下の通りです。
- 知的財産権の明確化: 貢献されたコードやドキュメントの知的財産権がどのように扱われるかを明確にします。通常、貢献者は自身の著作権を保持しつつ、プロジェクトの所有者に対して、貢献物をプロジェクト内で使用、配布、派生作品の作成などを行うための永続的、世界的、非独占的、無償のライセンスを付与します。
- ライセンスの整合性: プロジェクト全体のライセンス(例: Apache License, MIT Licenseなど)の下で、すべての貢献物が適切に配布されることを保証します。これにより、将来的なライセンスに関する問題や紛争を防ぎます。
- プロジェクトの安定性: プロジェクトの所有者が、貢献されたコードを安心して利用し、将来的にプロジェクトのライセンスを変更するなどの決定を下せるようにします。
GoogleのCLAには、個人向けの「Individual CLA」と、企業向けの「Corporate CLA (CCLA)」の2種類があります。このコミットでは、Carl Shapiro氏がGoogle CLAに同意したことが明記されており、Goプロジェクトのような大規模なオープンソースプロジェクトでは、このような法的手続きが不可欠です。
CONTRIBUTORS ファイル
CONTRIBUTORS
ファイルは、多くのオープンソースプロジェクトで見られる慣習的なファイルであり、プロジェクトに何らかの形で貢献した個人の名前と連絡先(通常はメールアドレス)をリストアップする目的で使用されます。その主な役割は以下の通りです。
- 貢献の承認: プロジェクトへの貢献を公式に認め、貢献者に敬意を表します。
- 履歴の記録: プロジェクトの進化に誰が関わってきたかの歴史的な記録として機能します。
- 法的追跡: 一部のオープンソースライセンスでは、著作権表示や貢献者のリストを保持することが求められる場合があり、このファイルがその要件を満たすのに役立つことがあります。
- コミュニティの可視化: プロジェクトが多くの人々の協力によって成り立っていることを示し、コミュニティの健全性をアピールします。
このファイルは通常、プロジェクトのルートディレクトリに配置され、テキスト形式で管理されます。
技術的詳細
このコミットの技術的な変更は非常にシンプルで、GoプロジェクトのルートディレクトリにあるCONTRIBUTORS
というテキストファイルに新しい行を追加するだけです。Gitの差分(diff)を見ると、既存の貢献者リストの途中に新しいエントリが挿入されていることがわかります。
具体的には、Carl Mastrangelo <notcarl@google.com>
のエントリの直後に、Carl Shapiro <cshapiro@google.com>
という行が追加されています。これは、ファイルの特定の位置に新しい情報を挿入する一般的なテキスト編集操作であり、Gitはこれを1行の追加として認識します。
ファイルのインデックス(index f7756ec08a..a30e6b2e9a
)とモード(100644
)は、ファイルの内容が変更されたことと、それが通常のテキストファイルであることを示しています。
コアとなるコードの変更箇所
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index f7756ec08a..a30e6b2e9a 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -90,6 +90,7 @@ Brian Slesinsky <skybrian@google.com>
Caine Tighe <arctanofyourface@gmail.com>
Caleb Spare <cespare@gmail.com>
Carl Mastrangelo <notcarl@google.com>
+Carl Shapiro <cshapiro@google.com>
Carlos Castillo <cookieo9@gmail.com>
Cary Hull <chull@google.com>
Casey Marshall <casey.marshall@gmail.com>
コアとなるコードの解説
上記の差分は、CONTRIBUTORS
ファイルに対する変更を示しています。
--- a/CONTRIBUTORS
と+++ b/CONTRIBUTORS
は、変更前のファイル(a)と変更後のファイル(b)を示しています。@@ -90,6 +90,7 @@
は、変更がファイルの90行目から始まり、変更前は6行、変更後は7行になったことを示しています。これは、1行が追加されたことを意味します。-
で始まる行は削除された行、+
で始まる行は追加された行を示します。このコミットでは、+Carl Shapiro <cshapiro@google.com>
という行が追加されています。- それ以外の行は、変更されていないコンテキスト行です。
この変更により、CONTRIBUTORS
ファイルにCarl Shapiro氏の名前とメールアドレスが追加され、彼がGoプロジェクトの正式な貢献者として認識されるようになりました。
関連リンク
- Go CL (Change List) 7132049: https://golang.org/cl/7132049
参考にした情報源リンク
- Google Open Source - Contributor License Agreements (CLAs): https://opensource.google/docs/cla/
- Google Open Source - Individual Contributor License Agreement: https://cla.developers.google.com/
- HashiCorp - Why a CLA?: https://www.hashicorp.com/blog/why-a-cla
- Android Open Source Project - Contributor License Agreement: https://source.android.com/setup/contribute/cla
- Stack Overflow - What is the purpose of a CONTRIBUTORS file?: https://stackoverflow.com/questions/1000000/what-is-the-purpose-of-a-contributors-file