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

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

このコミットは、Goプロジェクトへの新たな貢献者であるJohn Shahid氏が、個人の貢献者ライセンス契約(Individual CLA)を締結したことを記録するものです。具体的には、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルにJohn Shahid氏の名前とメールアドレスが追加されています。これは、Goプロジェクトへのコード貢献を行うための法的な前提条件を満たしたことを示しています。

コミット

commit 9fae8658baeb251d6ac2bfd245a6de21a204e4a9
Author: Adam Langley <agl@golang.org>
Date:   Wed May 29 11:18:05 2013 -0400

    A+C: John Shahid (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/9798049
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index c4a4cbc753..fd6e471d14 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -158,6 +158,7 @@ Joe Poirier <jdpoirier@gmail.com>
 John Asmuth <jasmuth@gmail.com>
 John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
 John Howard Palevich <jack.palevich@gmail.com>
+John Shahid <jvshahid@gmail.com>
 Jonathan Gold <jgold.bg@gmail.com>
 Jonathan Mark <jhmark@xenops.com>
 Jonathan Rudenberg <jonathan@titanous.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a9714b1bef..20ed3bf21d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -233,6 +233,7 @@ John Beisley <huin@google.com>
 John DeNero <denero@google.com>
 John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
 John Howard Palevich <jack.palevich@gmail.com>
+John Shahid <jvshahid@gmail.com>
 Jonathan Allie <jonallie@google.com>
 Jonathan Feinberg <feinberg@google.com>
 Jonathan Gold <jgold.bg@gmail.com>

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

https://github.com/golang/go/commit/9fae8658baeb251d6ac2bfd245a6de21a204e4a9

元コミット内容

このコミットの目的は、John Shahid氏がGoプロジェクトの貢献者ライセンス契約(CLA)に署名したことを記録することです。コミットメッセージのA+C: John Shahid (individual CLA)は、AUTHORSファイルとCONTRIBUTORSファイルにJohn Shahid氏が追加されたことを示し、彼が個人としてのCLAを締結したことを明記しています。Generated by addca.という記述は、この変更がaddcaという内部ツールによって自動生成されたものであることを示唆しています。R=gobotCC=golang-devは、それぞれレビュー担当者とCCリストを示しています。https://golang.org/cl/9798049は、この変更に対応するGerritのチェンジリストへのリンクです。

変更の背景

Goプロジェクトを含む多くのオープンソースプロジェクトでは、貢献者からのコードを受け入れる前に、貢献者ライセンス契約(CLA)の締結を義務付けています。これは、プロジェクトの知的財産権を保護し、将来的なライセンス問題を防ぐための法的な取り決めです。CLAに署名することで、貢献者は自身のコードをプロジェクトのライセンスの下で利用することを許可し、プロジェクト側は安心してそのコードを統合・配布できるようになります。

このコミットは、John Shahid氏がGoプロジェクトに貢献するための前提条件であるCLAをクリアしたことを示すものです。CLAが締結されると、通常、その貢献者の名前がプロジェクトのAUTHORSCONTRIBUTORSといったファイルに追加され、公式に貢献者として認識されるようになります。addcaというツールは、このCLA締結とファイル更新のプロセスを自動化するために使用されたと考えられます。

前提知識の解説

貢献者ライセンス契約 (Contributor License Agreement, CLA)

CLAは、個人または企業がオープンソースプロジェクトに貢献する際に、プロジェクトの所有者(この場合はGoogle)に対して、その貢献されたコードを使用、複製、変更、配布する権利を付与するための法的な文書です。CLAは、貢献者が自身の著作権を保持しつつ、プロジェクトがそのコードを自由に利用できるようにすることを目的としています。

CLAには主に以下の2種類があります。

  • 個人CLA (Individual CLA): 貢献者が自身の著作権を持つ場合に署名します。オンラインで完了できることが多いです。
  • 企業CLA (Corporate CLA): 貢献が企業によって行われ、企業が著作権を持つ場合に署名します。企業内の権限を持つ人物による署名が必要となり、処理に時間がかかることがあります。

Goプロジェクトでは、貢献者は最初の変更を提出する前にCLAに署名する必要があります。これにより、Googleは貢献されたコードを使用するための必要な法的権利を確保し、貢献者は自身のコードの所有権を保持できます。CLAは一度署名すれば、すべてのGoogleオープンソースプロジェクトに適用されます。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイルは、プロジェクトの主要な作者や初期の貢献者をリストアップすることが多いです。
  • CONTRIBUTORSファイルは、より広範な貢献者、例えばバグ修正、ドキュメントの改善、新機能の追加など、様々な形でプロジェクトに貢献した人々をリストアップします。

これらのファイルは、プロジェクトの歴史と貢献者を可視化し、彼らの努力を認識するためのものです。CLAを締結した新しい貢献者が追加される際、これらのファイルが更新されるのは一般的な慣行です。

addcaツール (推測)

コミットメッセージにあるGenerated by addca.という記述は、addcaがCLAの締結プロセスに関連する内部ツールであることを強く示唆しています。Goプロジェクトのような大規模なオープンソースプロジェクトでは、多数の貢献者が存在するため、CLAの管理と関連ファイルの更新を自動化するツールが存在することは理にかなっています。addcaは「add Contributor Agreement」のような意味合いで、CLAに署名した貢献者の情報を自動的にAUTHORSCONTRIBUTORSファイルに追加するスクリプトまたはプログラムであると推測されます。

技術的詳細

このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのプレーンテキストファイル、AUTHORSCONTRIBUTORSを修正しています。これらのファイルは、プロジェクトに貢献した人々の名前と連絡先情報を記録するために使用されます。

変更内容は非常にシンプルで、両方のファイルに以下の1行が追加されています。

+John Shahid <jvshahid@gmail.com>

これは、John Shahid氏がjvshahid@gmail.comというメールアドレスでGoプロジェクトの貢献者として正式に登録されたことを意味します。この追加は、彼がGoプロジェクトへの貢献を開始するための法的な要件(CLAの締結)を満たした後に、自動化されたプロセス(addcaツール)によって行われたと考えられます。

ファイルの変更は、Gitのdiffコマンドによって示されるように、既存のリストに新しいエントリを挿入する形で行われています。index c4a4cbc753..fd6e471d14 100644index a9714b1bef..20ed3bf21d 100644といった行は、Gitがファイルの変更を追跡するために使用する内部的なハッシュ値とファイルモードを示しています。

このコミット自体はGo言語のコードベースに直接的な機能変更をもたらすものではなく、プロジェクトの管理と法務に関連するメタデータ更新です。しかし、このような管理上のコミットは、オープンソースプロジェクトの健全な運営と、貢献者コミュニティの成長を支える上で不可欠な要素です。

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

diff --git a/AUTHORS b/AUTHORS
index c4a4cbc753..fd6e471d14 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -158,6 +158,7 @@ Joe Poirier <jdpoirier@gmail.com>
 John Asmuth <jasmuth@gmail.com>
 John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
 John Howard Palevich <jack.palevich@gmail.com>
+John Shahid <jvshahid@gmail.com>
 Jonathan Gold <jgold.bg@gmail.com>
 Jonathan Mark <jhmark@xenops.com>
 Jonathan Rudenberg <jonathan@titanous.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a9714b1bef..20ed3bf21d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -233,6 +233,7 @@ John Beisley <huin@google.com>
 John DeNero <denero@google.com>
 John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
 John Howard Palevich <jack.palevich@gmail.com>
+John Shahid <jvshahid@gmail.com>
 Jonathan Allie <jonallie@google.com>
 Jonathan Feinberg <feinberg@google.com>
 Jonathan Gold <jgold.bg@gmail.com>

コアとなるコードの解説

上記のdiff出力は、AUTHORSファイルとCONTRIBUTORSファイルに対する変更を示しています。

  • AUTHORSファイルへの変更:

    • @@ -158,6 +158,7 @@ は、変更が元のファイルの158行目から始まり、6行が変更され、結果として7行になることを示しています(つまり1行追加)。
    • +John Shahid <jvshahid@gmail.com> の行が追加されています。これは、既存の貢献者リストの中に、John Shahid氏の名前とメールアドレスが挿入されたことを意味します。
  • CONTRIBUTORSファイルへの変更:

    • @@ -233,6 +233,7 @@ は、変更が元のファイルの233行目から始まり、6行が変更され、結果として7行になることを示しています(つまり1行追加)。
    • 同様に、+John Shahid <jvshahid@gmail.com> の行が追加されています。

これらの変更は、John Shahid氏がGoプロジェクトの公式な貢献者リストに登録されたことを明確に示しており、彼がGoプロジェクトにコードを貢献するための法的な手続きを完了したことを裏付けています。

関連リンク

参考にした情報源リンク