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

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

このコミットは、Goプロジェクトへの新しい貢献者であるErik St. Martin氏を公式に承認し、その情報をプロジェクトの貢献者リストに追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにErik St. Martin氏の名前とメールアドレスが追記されています。

コミット

commit 90a85dbefcc7047eaa0a4466a344a6457b856b74
Author: Russ Cox <rsc@golang.org>
Date:   Sat Dec 22 11:13:25 2012 -0500

    A+C: Erik St. Martin (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/7007051

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

https://github.com/golang/go/commit/90a85dbefcc7047eaa0a4466a344a6457b856b74

元コミット内容

A+C: Erik St. Martin (individual CLA)

Generated by addca.

R=gobot
CC=golang-dev
https://golang.org/cl/7007051

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と、知的財産権の明確化という重要な側面があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、多くの開発者がコードを貢献します。これらの貢献がプロジェクトに組み込まれる前に、プロジェクトの所有者(この場合はGoogle)は、貢献されたコードを合法的に使用、配布、ライセンス供与する権利を確保する必要があります。

この目的のために、「Contributor License Agreement (CLA)」が導入されています。CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトの所有者に対して、その貢献をプロジェクトのライセンスの下で利用する永続的で取り消し不能な権利を付与する法的な合意です。

このコミットは、Erik St. Martin氏がGoプロジェクトに貢献するために必要な「Individual CLA」(個人貢献者ライセンス契約)に署名したことを示しています。addcaというツール(おそらく「add Contributor Agreement」の略)がこのプロセスを自動化し、CLAに署名した貢献者の情報をプロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに自動的に追加しています。これにより、GoプロジェクトはErik St. Martin氏の将来の貢献を法的に問題なく受け入れる準備が整ったことになります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス契約)は、オープンソースプロジェクトにおいて、貢献者が自身のコードをプロジェクトに提供する際に署名する法的な文書です。その主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するか、そしてプロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体でコードのライセンスが統一されていることを保証します。貢献者が異なるライセンスでコードを提供した場合、プロジェクト全体のライセンスが複雑になる可能性がありますが、CLAによってこれを防ぎます。
  3. プロジェクトの持続可能性: プロジェクトの所有者(企業や財団など)が、貢献されたコードを自由に利用、再ライセンス、配布できる権利を持つことで、プロジェクトの長期的な維持と発展を保証します。

Goプロジェクトの場合、Googleがプロジェクトの所有者であり、貢献者はGoogleのCLAに署名する必要があります。CLAには「Individual CLA」(個人貢献者向け)と「Corporate CLA」(企業貢献者向け)の2種類があり、個人として貢献する場合はIndividual CLAに署名します。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するためのテキストファイルが慣習的に存在します。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、特に重要な貢献をした人々をリストアップします。著作権表示に関連して使用されることもあります。
  • CONTRIBUTORSファイル: プロジェクトに貢献したすべての個人や組織をより包括的にリストアップします。これには、コードの貢献だけでなく、ドキュメントの作成、バグ報告、テスト、翻訳など、様々な形の貢献が含まれることがあります。

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割も果たします。

addcaツール

コミットメッセージにあるGenerated by addca.という記述から、addcaはGoプロジェクト内部で使用される自動化ツールであることが推測されます。このツールは、新しい貢献者がCLAに署名した際に、その情報を自動的にAUTHORSファイルとCONTRIBUTORSファイルに追記する役割を担っていると考えられます。これにより、手作業によるミスを防ぎ、貢献者追加のプロセスを効率化しています。addcaは「add Contributor Agreement」の略である可能性が高いです。

技術的詳細

このコミットは、Goプロジェクトのソースコード自体に機能的な変更を加えるものではなく、プロジェクトのメタデータ、具体的には貢献者リストを更新するものです。

変更のプロセスは以下のようになります。

  1. CLA署名: Erik St. Martin氏がGoogleのIndividual CLAにオンラインで署名します。
  2. addcaツールの実行: CLA署名が確認されると、Goプロジェクトのメンテナまたは自動化されたシステムがaddcaツールを実行します。
  3. ファイル更新: addcaツールは、Erik St. Martin氏の名前とメールアドレスをAUTHORSファイルとCONTRIBUTORSファイルの適切な位置に追記します。このコミットでは、アルファベット順に既存のエントリの間に挿入されています。
  4. コミット生成: addcaツールは、この変更を含むGitコミットを自動的に生成します。コミットメッセージには、誰が追加されたか、どのCLAに署名したか、そしてaddcaによって生成されたことが明記されます。

この自動化されたプロセスは、大規模なプロジェクトにおいて貢献者管理の正確性と効率性を保証するために不可欠です。手動でこれらのファイルを更新すると、ヒューマンエラーが発生しやすくなり、また、貢献者の追加が遅れる可能性があります。

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

diff --git a/AUTHORS b/AUTHORS
index febafdb538..2e31a67cc9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -90,6 +90,7 @@ Eoghan Sherry <ejsherry@gmail.com>
 Eric Clark <zerohp@gmail.com>
 Eric Milliken <emilliken@gmail.com>
 Eric Roshan-Eisner <eric.d.eisner@gmail.com>
+Erik St. Martin <alakriti@gmail.com>
 Esko Luontola <esko.luontola@gmail.com>
 Evan Shaw <chickencha@gmail.com>
 Fan Hongjian <fan.howard@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 668e1bbaf5..43310fc8fa 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -143,6 +143,7 @@ Eoghan Sherry <ejsherry@gmail.com>
 Eric Clark <zerohp@gmail.com>
 Eric Milliken <emilliken@gmail.com>
 Eric Roshan-Eisner <eric.d.eisner@gmail.com>
+Erik St. Martin <alakriti@gmail.com>
 Esko Luontola <esko.luontola@gmail.com>
 Evan Martin <evan.martin@gmail.com>
 Evan Shaw <chickencha@gmail.com>

コアとなるコードの解説

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

  • AUTHORSファイル:

    • @@ -90,6 +90,7 @@ は、変更がファイルの90行目から始まり、元の6行が変更後7行になったことを示します。
    • +Erik St. Martin <alakriti@gmail.com> の行が追加されています。これは、Erik St. Martin氏の名前とメールアドレスがAUTHORSリストに新しいエントリとして追加されたことを意味します。既存のEric Roshan-EisnerEsko Luontolaの間に挿入されており、リストがアルファベット順に維持されていることがわかります。
  • CONTRIBUTORSファイル:

    • @@ -143,6 +143,7 @@ は、変更がファイルの143行目から始まり、元の6行が変更後7行になったことを示します。
    • 同様に、+Erik St. Martin <alakriti@gmail.com> の行が追加されています。こちらもAUTHORSファイルと同様に、アルファベット順に挿入されています。

これらの変更は、Erik St. Martin氏がGoプロジェクトの公式な貢献者として認識され、その情報がプロジェクトの記録に永続的に追加されたことを明確に示しています。

関連リンク

参考にした情報源リンク