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

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

このコミットは、Go言語プロジェクトの貢献者リストに新しい個人貢献者「Eric Milliken」を追加するものです。具体的には、AUTHORS ファイルと CONTRIBUTORS ファイルに彼の名前とメールアドレスが追記されています。これは、彼がGoプロジェクトへの貢献を開始するにあたり、個人貢献者ライセンス同意書(Individual Contributor License Agreement, ICLA)を提出したことを示しています。

コミット

commit a9d82423110dc39ede4503ea120db1d739119a8f
Author: Adam Langley <agl@golang.org>
Date:   Tue Dec 18 11:28:40 2012 -0500

    A+C: Eric Milliken (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/6945079

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

https://github.com/golang/go/commit/a9d82423110dc39ede4503ea120db1d739119a8f

元コミット内容

このコミットは、Goプロジェクトの公式リポジトリにおいて、以下の変更を行っています。

  • AUTHORS ファイルに Eric Milliken <emilliken@gmail.com> を追加。
  • CONTRIBUTORS ファイルに Eric Milliken <emilliken@gmail.com> を追加。

コミットメッセージには「A+C: Eric Milliken (individual CLA)」とあり、これは「Add Contributor: Eric Milliken (individual CLA)」の略であると推測されます。また、「Generated by addca.」とあることから、addca というツールによって自動生成されたコミットであることが示唆されています。R=gobot はレビュー担当者が gobot であることを、CC=golang-devgolang-dev メーリングリストに通知されたことを示しています。https://golang.org/cl/6945079 は、この変更に対応するGerritの変更リスト(Change-ID)へのリンクです。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模プロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際、そのコードがプロジェクトのライセンスの下で適切に利用されることを保証するために、貢献者ライセンス同意書(CLA)の提出を求めることが一般的です。

このコミットは、Eric Milliken氏がGoプロジェクトに貢献を開始するにあたり、必要な個人CLAを提出したことを受けて行われました。CLAが承認されると、その貢献者の名前がプロジェクトの公式な貢献者リストに追加されます。これにより、プロジェクト側は、将来的にその貢献者のコードを安心して利用・配布できるようになります。

AUTHORS および CONTRIBUTORS ファイルは、プロジェクトに貢献した人々を記録するためのものです。AUTHORS は主にプロジェクトの主要な作者や初期の貢献者を指し、CONTRIBUTORS はより広範な貢献者(コード、ドキュメント、バグ報告など)を網羅する傾向があります。これらのファイルを更新することは、プロジェクトの透明性と、貢献者への適切なクレジット付与のために不可欠です。

前提知識の解説

貢献者ライセンス同意書 (Contributor License Agreement, CLA)

CLAは、オープンソースプロジェクトにコードやその他の著作物を提供する個人または法人と、プロジェクトの所有者(または管理団体)との間で締結される法的な合意です。CLAの主な目的は以下の通りです。

  1. ライセンスの明確化: 貢献されたコードがプロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)の下で配布されることを、貢献者が明確に許可します。これにより、プロジェクト側は、貢献されたコードを将来にわたって自由に利用、変更、再配布できる法的権利を確保できます。
  2. 知的財産権の保護: 貢献されたコードの知的財産権が、貢献者からプロジェクトの所有者へ適切に譲渡またはライセンスされることを保証します。これにより、将来的な著作権侵害の訴訟リスクを軽減し、プロジェクトの法的健全性を維持します。
  3. プロジェクトの安定性: プロジェクトが複数の貢献者からのコードを統合する際に、すべてのコードが同じ法的基盤の上に成り立っていることを保証し、プロジェクトの長期的な安定性を支えます。

Goプロジェクトでは、GoogleがCLAを管理しており、貢献者はコードを提出する前にCLAに同意する必要があります。

AUTHORS および CONTRIBUTORS ファイル

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

  • AUTHORS: このファイルは通常、プロジェクトの主要な開発者、創始者、または特に重要な貢献をした人々のリストを含みます。歴史的な記録としての意味合いが強いことが多いです。
  • CONTRIBUTORS: このファイルは、コードのコミット、バグ報告、ドキュメントの改善、テストの作成など、様々な形でプロジェクトに貢献したすべての個人のリストを網羅します。より広範な貢献者を対象とし、プロジェクトのコミュニティ全体を反映する役割を果たします。

これらのファイルは、プロジェクトの透明性を高め、貢献者に対して適切な認識と感謝を示すために重要です。また、CLAの提出が完了したことを示す公式な記録の一部としても機能します。

addca ツール (推測)

コミットメッセージにある「Generated by addca.」という記述から、addca はGoプロジェクト内部で使用される自動化ツールであると推測されます。このツールは、CLAの承認プロセスが完了した後に、新しい貢献者の情報を自動的にAUTHORSおよびCONTRIBUTORSファイルに追加するために設計されていると考えられます。このような自動化は、大規模なプロジェクトにおいて、手作業によるエラーを防ぎ、効率的に貢献者リストを管理するために不可欠です。

技術的詳細

このコミットは、Goプロジェクトの貢献者管理ワークフローの一部として実行されました。その技術的な流れは以下のようになります。

  1. CLAの提出と承認: Eric Milliken氏がGoプロジェクトへの貢献を希望し、Googleが提供する個人CLAに同意し提出します。Googleの法務チームまたはCLA管理システムがこれをレビューし、承認します。
  2. addca ツールの実行: CLAが承認されると、内部ツールである addca が実行されます。このツールは、承認されたCLAの情報(貢献者の名前とメールアドレス)を基に、Goリポジトリ内の AUTHORS および CONTRIBUTORS ファイルを更新します。
  3. ファイルの変更とコミットの生成: addca ツールは、AUTHORSCONTRIBUTORS ファイルにEric Milliken氏のエントリを追加する変更を生成します。この変更は、自動的にGitコミットとしてパッケージ化されます。コミットメッセージには、変更の目的(A+C: Eric Milliken (individual CLA))、自動生成されたことの明記(Generated by addca.)、そして関連するGerritの変更リストへのリンクが含まれます。
  4. レビューとマージ: 生成されたコミットは、Goプロジェクトのコードレビューシステム(Gerrit)に提出されます。このコミットの場合、R=gobot とあるように、自動化されたレビューボット(gobot)によってレビューされた可能性があります。最終的に、このコミットはGoリポジトリの master ブランチ(またはそれに相当するブランチ)にマージされ、変更が公式に反映されます。

このプロセスは、Goプロジェクトが多数の貢献者からのコードを効率的かつ法的に安全に受け入れるための、堅牢なインフラストラクチャの一部を示しています。手動でのファイル編集ではなくツールによる自動化を行うことで、ヒューマンエラーのリスクを最小限に抑え、一貫性を保ち、管理コストを削減しています。

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

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

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに対して、以下の行が追加されています。

diff --git a/AUTHORS b/AUTHORS
index e3f14c3934..febafdb538 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -88,6 +88,7 @@ Eivind Uggedal <eivind@uggedal.com>
 Emil Hessman <c.emil.hessman@gmail.com>
 Eoghan Sherry <ejsherry@gmail.com>
 Eric Clark <zerohp@gmail.com>
+Eric Milliken <emilliken@gmail.com>
 Eric Roshan-Eisner <eric.d.eisner@gmail.com>
 Esko Luontola <esko.luontola@gmail.com>
 Evan Shaw <chickencha@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d666da9d78..f4f843827c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -141,6 +141,7 @@ Eivind Uggedal <eivind@uggedal.com>
 Emil Hessman <c.emil.hessman@gmail.com>
 Eoghan Sherry <ejsherry@gmail.com>
 Eric Clark <zerohp@gmail.com>
+Eric Milliken <emilliken@gmail.com>
 Eric Roshan-Eisner <eric.d.eisner@gmail.com>
 Esko Luontola <esko.luontola@gmail.com>
 Evan Martin <evan.martin@gmail.com>

コアとなるコードの解説

上記のdiff出力は、AUTHORSファイルとCONTRIBUTORSファイルの両方に、新しい行Eric Milliken <emilliken@gmail.com>が追加されたことを明確に示しています。

  • --- a/AUTHORS+++ b/AUTHORS は、AUTHORSファイルの変更前と変更後を示します。
  • @@ -88,6 +88,7 @@ は、変更がファイルの88行目から始まり、変更前は6行、変更後は7行になることを示しています。これは、既存の行に1行追加されたことを意味します。
  • +Eric Milliken <emilliken@gmail.com> の行頭の+記号は、この行が新しく追加されたことを示します。

同様の変更がCONTRIBUTORSファイルにも適用されています。

この変更は、Goプロジェクトの貢献者リストにEric Milliken氏が正式に加わったことを、リポジトリの履歴として永続的に記録するものです。これはコードの機能的な変更ではなく、プロジェクトの管理と法的な側面に関連するメタデータ的な変更です。しかし、オープンソースプロジェクトの健全な運営と成長には不可欠なプロセスの一部です。

関連リンク

参考にした情報源リンク