Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 19068] ファイルの概要

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しいコントリビューターであるCarl Chatfield氏の名前とメールアドレスを追加するものです。これは、彼がGoプロジェクトへの貢献を開始するにあたり、必要なContributor License Agreement (CLA)に署名したことを反映しています。

コミット

commit 89e128dd76f0c4c3effdca086835ab76b58f6dd9
Author: Russ Cox <rsc@golang.org>
Date:   Tue Apr 8 22:35:15 2014 -0400

    A+C: Carl Chatfield (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/85820043
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 6979876c7c..6ec8e117e9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -72,6 +72,7 @@ Brian Gitonga Marete <marete@toshnix.com>
 Brian Ketelsen <bketelsen@gmail.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
+Carl Chatfield <carlchatfield@gmail.com>
 Carlos Castillo <cookieo9@gmail.com>
 Case Nelson <case.nelson@gmail.com>
 Casey Marshall <casey.marshall@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 472a254e00..686b517c9e 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -116,6 +116,7 @@ Brian Ketelsen <bketelsen@gmail.com>
 Brian Slesinsky <skybrian@google.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
+Carl Chatfield <carlchatfield@gmail.com>
 Carl Mastrangelo <notcarl@google.com>
 Carl Shapiro <cshapiro@google.com> <cshapiro@golang.org>
 Carlos Castillo <cookieo9@gmail.com>

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/89e128dd76f0c4c3effdca086835ab76b58f6dd9

元コミット内容

A+C: Carl Chatfield (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/85820043

変更の背景

このコミットは、Goプロジェクトへの貢献者がContributor License Agreement (CLA)に署名した後に実行される、典型的な管理上の変更です。オープンソースプロジェクト、特にGoogleのような大企業が主導するプロジェクトでは、知的財産権の管理とライセンスの明確化のためにCLAの署名を義務付けることが一般的です。

Carl Chatfield氏がGoプロジェクトに貢献を開始するにあたり、個人のCLAに署名したため、その記録として彼の名前がプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに追加されました。これは、彼がプロジェクトの正式な貢献者として認識されたことを意味します。

歴史的背景の注意点: 現在のGoプロジェクトでは、AUTHORSファイルやCONTRIBUTORSファイルはもはや主要な貢献者リストとして維持されていません。貢献者の正式な記録は、Gitのコミット履歴そのものに依拠しています。しかし、このコミットが作成された2014年時点では、これらのファイルが貢献者を追跡する役割の一部を担っていました。したがって、このコミットは当時のGoプロジェクトの運用慣行を反映していると言えます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、オープンソースプロジェクトにコードを貢献する個人または団体と、プロジェクトの所有者(この場合はGoogle)との間で締結される法的な契約です。その主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するか、そしてプロジェクトの所有者がそのコードをどのように利用、配布、サブライセンスできるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減し、プロジェクトのライセンス(例: BSDライセンス)の下でコードを自由に配布できる法的根拠を確立します。
  2. ライセンスの一貫性: プロジェクト全体で一貫したライセンスモデルを維持するために、すべての貢献が同じライセンス条件の下で行われることを保証します。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを将来的に異なるライセンスで再配布したり、商業的に利用したりする柔軟性を持つことを可能にします。

Goプロジェクトでは、個人CLAと企業CLAの2種類があります。個人CLAは、貢献者が自身の著作権を所有している場合に署名し、企業CLAは、雇用主が貢献コードの著作権を所有している場合に、雇用主の代表者が署名します。Goプロジェクトへの貢献には、いずれかのCLAの署名が必須です。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、AUTHORSCONTRIBUTORSといったテキストファイルをリポジトリ内に含めることがあります。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、プロジェクトの初期段階から深く関わっている人々をリストアップするために使用されます。
  • CONTRIBUTORSファイル: より広範な貢献者、つまりコードの変更、バグ修正、ドキュメントの改善、テストの追加など、様々な形でプロジェクトに貢献した人々をリストアップするために使用されます。

このコミットが作成された2014年当時、Goプロジェクトではこれらのファイルが貢献者の記録の一部として機能していました。しかし、前述の通り、現在はGitのコミット履歴が主要な情報源となっています。

addcaツール

コミットメッセージに「Generated by addca.」と記載されていますが、公開されているGoプロジェクトのツールとしてaddcaという名前のものは見当たりません。これは、Goチームが内部的に使用していたスクリプトやエイリアス、あるいは特定の管理タスクを自動化するためのツールであった可能性が高いです。この文脈では、CLAに署名した貢献者の情報をAUTHORSファイルやCONTRIBUTORSファイルに自動的に追加する役割を担っていたと推測されます。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラ、標準ライブラリといったコアな技術的側面に直接的な変更を加えるものではありません。その技術的詳細は、ファイルの変更内容そのものよりも、それが意味するプロセスと、当時のGoプロジェクトの運用体制にあります。

具体的には、Carl Chatfield氏がGoプロジェクトのCLAに署名したという事実が、このコミットのトリガーとなっています。CLAの署名は、法的な手続きであり、その完了をもって、彼はGoプロジェクトにコードを貢献する法的権利を得ます。このコミットは、その法的プロセスの完了をプロジェクトのメタデータ(AUTHORSCONTRIBUTORSファイル)に反映させるためのものです。

変更は、単にテキストファイルに新しい行を追加するだけです。これは、Gitの差分(diff)を見れば明らかです。技術的な複雑性はなく、ファイルシステム上のテキストファイルを編集するのと同等です。しかし、その背後には、オープンソースプロジェクトにおける知的財産管理の重要性と、貢献者がプロジェクトに安全に貢献できる環境を整えるための仕組みが存在します。

また、addcaというツールによって生成されたという記述は、このような管理タスクが手動ではなく、ある程度自動化されていたことを示唆しています。これは、大規模なオープンソースプロジェクトにおいて、管理オーバーヘッドを削減し、効率的な運用を維持するための一般的なアプローチです。

コアとなるコードの変更箇所

このコミットによって変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、Carl Chatfield氏の名前とメールアドレスが1行ずつ追加されています。

diff --git a/AUTHORS b/AUTHORS
index 6979876c7c..6ec8e117e9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -72,6 +72,7 @@ Brian Gitonga Marete <marete@toshnix.com>
 Brian Ketelsen <bketelsen@gmail.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
+Carl Chatfield <carlchatfield@gmail.com>
 Carlos Castillo <cookieo9@gmail.com>
 Case Nelson <case.nelson@gmail.com>
 Casey Marshall <casey.marshall@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 472a254e00..686b517c9e 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -116,6 +116,7 @@ Brian Ketelsen <bketelsen@gmail.com>
 Brian Slesinsky <skybrian@google.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
+Carl Chatfield <carlchatfield@gmail.com>
 Carl Mastrangelo <notcarl@google.com>
 Carl Shapiro <cshapiro@google.com> <cshapiro@golang.org>
 Carlos Castillo <cookieo9@gmail.com>

コアとなるコードの解説

変更されたのは、プレーンテキストファイルであるAUTHORSCONTRIBUTORSです。

  • AUTHORSファイルでは、Caleb Spare <cespare@gmail.com>の行の直後に、Carl Chatfield <carlchatfield@gmail.com>という新しい行が追加されています。
  • CONTRIBUTORSファイルでも同様に、Caleb Spare <cespare@gmail.com>の行の直後に、Carl Chatfield <carlchatfield@gmail.com>という新しい行が追加されています。

これらの変更は、Carl Chatfield氏がGoプロジェクトの正式な貢献者として認識され、彼の名前がプロジェクトの記録に追加されたことを示しています。コードの機能的な変更は一切なく、プロジェクトのメタデータが更新されたに過ぎません。

関連リンク

参考にした情報源リンク