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

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

このコミットは、Goプロジェクトのコントリビューターリストに新しいエントリを追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルの2つのファイルが変更されています。これらのファイルは、Goプロジェクトに貢献した個人および組織を記録するためのものです。

コミット

commit 3ea6c695504bd2d5d4d82d7ae957834ba750e7d2
Author: Ian Lance Taylor <iant@golang.org>
Date:   Wed Jun 26 13:59:15 2013 -0700

    A+C: Charles Lee (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/10639043

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

https://github.com/golang/go/commit/3ea6c695504bd2d5d4d82d7ae957834ba750e7d2

元コミット内容

このコミットの主な内容は、AUTHORSファイルとCONTRIBUTORSファイルにCharles Lee <zombie.fml@gmail.com>というエントリを追加することです。コミットメッセージには「A+C: Charles Lee (individual CLA)」とあり、これはCharles Lee氏が個人としてのContributor License Agreement (CLA) に署名したことを示しています。また、「Generated by addca.」という記述から、この変更がaddcaというツールによって自動生成されたものであることがわかります。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する前に、プロジェクトのライセンスと配布条件に同意することを保証するために、Contributor License Agreement (CLA) の署名が求められます。

このコミットは、Charles Lee氏がGoプロジェクトへの貢献を開始するにあたり、必要な個人CLAに署名したことを反映しています。CLAが署名されると、その貢献者の情報がプロジェクトの公式な貢献者リストに追加されるプロセスが実行されます。このプロセスは通常、手動ではなく自動化されたツールによって行われ、本コミットではaddcaツールがその役割を担っています。これにより、プロジェクトの法的要件が満たされ、将来の貢献がスムーズに統合されるようになります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者がそのコードの著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、または特定のライセンスの下で利用することを許可するための法的な合意書です。GoプロジェクトにおけるCLAの主な目的は以下の通りです。

  • 著作権の明確化: 貢献されたコードの著作権が誰に帰属するのか、あるいは誰がそのコードを利用する権利を持つのかを明確にします。これにより、将来的なライセンス問題や法的な紛争を防ぎます。
  • ライセンスの統一性: プロジェクト全体で一貫したライセンスモデルを維持するために、すべての貢献者が同じ条件でコードを提供することに同意します。Goプロジェクトの場合、通常はBSDライセンスの下で配布されます。
  • プロジェクトの持続性: プロジェクトの所有者が貢献されたコードを自由に利用、修正、配布できる権利を持つことで、プロジェクトの長期的な維持と発展が保証されます。

Goプロジェクトでは、個人貢献者向けの「Individual CLA」と、企業や組織からの貢献者向けの「Corporate CLA」の2種類があります。このコミットでは「individual CLA」と明記されており、Charles Lee氏が個人としてCLAに署名したことを示しています。CLAは通常、一度署名すれば、その後のすべての貢献に適用されます。

AUTHORS および CONTRIBUTORS ファイル

GoプロジェクトのルートディレクトリにあるAUTHORSCONTRIBUTORSファイルは、プロジェクトに貢献した人々の名前と連絡先を記録するためのテキストファイルです。

  • AUTHORS: 主にプロジェクトの主要な作者や、重要な貢献をした人々をリストアップします。
  • CONTRIBUTORS: より広範な貢献者、例えばバグ修正、ドキュメントの改善、テストの追加など、様々な形でプロジェクトに寄与した人々をリストアップします。

これらのファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを付与するために維持されています。新しい貢献者がCLAに署名し、その貢献が承認されると、これらのファイルに名前が追加されるのが一般的な流れです。

addca ツール

コミットメッセージにある「Generated by addca.」という記述は、この変更がaddcaというツールによって自動的に生成されたものであることを示唆しています。addcaは「add Contributor Agreement」の略であると推測され、Googleの内部ツールまたはGoプロジェクトの管理ツールの一部として、CLAの署名が確認された貢献者の情報をAUTHORSCONTRIBUTORSファイルに自動的に追加する役割を担っていると考えられます。このような自動化は、大規模なオープンソースプロジェクトにおいて、手作業によるエラーを防ぎ、管理プロセスを効率化するために不可欠です。

技術的詳細

このコミットは、Goプロジェクトの管理プロセスの一部であり、コードベースそのものに機能的な変更を加えるものではありません。しかし、プロジェクトの健全な運用と法的遵守を保証する上で重要な役割を果たしています。

addcaツールは、おそらく以下のようなワークフローで動作します。

  1. CLA署名の検出: 新しい貢献者がGoogleのCLAシステムを通じてCLAに署名したことを検出します。
  2. 情報取得: 署名されたCLAから、貢献者の名前とメールアドレスなどの情報を取得します。
  3. ファイル更新: 取得した情報に基づいて、AUTHORSおよびCONTRIBUTORSファイルに新しいエントリを追加します。この際、既存のエントリとの重複を避け、アルファベット順などの規則に従って挿入されるように処理されます。
  4. コミット生成: 更新されたファイルをGitリポジトリにコミットします。このコミットは、通常、特定のフォーマット(例: A+C: <Contributor Name> (individual CLA))に従ったコミットメッセージを持ち、addcaツールによって生成されたことを示す記述が含まれます。
  5. コードレビューとマージ: 生成されたコミットは、通常のコード変更と同様に、レビュープロセス(この場合はR=gobot, CC=golang-devが示唆するように、自動化されたボットと開発者メーリングリストによるレビュー)を経て、最終的にメインブランチにマージされます。

このプロセスにより、Goプロジェクトは、貢献者の法的同意を確実に得ながら、貢献者リストを常に最新の状態に保つことができます。

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

diff --git a/AUTHORS b/AUTHORS
index 55c82ebebb..61160d1b4c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -59,6 +59,7 @@ Carlos Castillo <cookieo9@gmail.com>
 Casey Marshall <casey.marshall@gmail.com>
 ChaiShushan <chaishushan@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>
+Charles Lee <zombie.fml@gmail.com>
 Chris Dollin <ehog.hedge@gmail.com>
 Chris Farmiloe <chrisfarms@gmail.com>
 Chris Howey <howeyc@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ab4d86d3de..e48d72fda6 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -103,6 +103,7 @@ Cary Hull <chull@google.com>
 Casey Marshall <casey.marshall@gmail.com>
 ChaiShushan <chaishushan@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>
+Charles Lee <zombie.fml@gmail.com>
 Chris Dollin <ehog.hedge@gmail.com>
 Chris Farmiloe <chrisfarms@gmail.com>
 Chris Howey <howeyc@gmail.com>

コアとなるコードの解説

上記のdiffは、AUTHORSファイルとCONTRIBUTORSファイルの両方に、Charles Lee <zombie.fml@gmail.com>という行が追加されたことを示しています。

  • AUTHORSファイル: 59行目のCharles L. Dorianの後に、アルファベット順でCharles Leeが追加されています。
  • CONTRIBUTORSファイル: 103行目のCharles L. Dorianの後に、同様にCharles Leeが追加されています。

この変更は、Charles Lee氏がGoプロジェクトの正式な貢献者として認識され、その名前がプロジェクトの公式記録に記載されたことを意味します。これは、Goプロジェクトへの貢献を開始するための重要なステップであり、法的要件を満たし、将来のコード貢献がスムーズに受け入れられるための前提条件となります。

関連リンク

参考にした情報源リンク