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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるDhiru Kholia氏の名前とメールアドレスを追加するものです。これは、Dhiru Kholia氏がGoプロジェクトへの貢献を開始するにあたり、個人としてのContributor License Agreement (CLA) を締結したことを示す記録となります。

コミット

commit ab47497d4e70fd784f93693362f4759207abc75c
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Mon Mar 10 15:59:38 2014 -0700

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

diff --git a/AUTHORS b/AUTHORS
index fc6fed45b5..40d0fe6a05 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -113,6 +113,7 @@ David Titarenco <david.titarenco@gmail.com>
 Dean Prichard <dean.prichard@gmail.com>
 Denis Brandolini <denis.brandolini@gmail.com>
 Devon H. O'Dell <devon.odell@gmail.com>
+Dhiru Kholia <dhiru.kholia@gmail.com>
 Dimitri Tcaciuc <dtcaciuc@gmail.com>
 Dmitri Shuralyov <shurcooL@gmail.com>
 Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e3fbe7defd..e50eccf526 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -175,6 +175,7 @@ David Titarenco <david.titarenco@gmail.com>
 Dean Prichard <dean.prichard@gmail.com>
 Denis Brandolini <denis.brandolini@gmail.com>
 Devon H. O'Dell <devon.odell@gmail.com>
+Dhiru Kholia <dhiru.kholia@gmail.com>
 Dimitri Tcaciuc <dtcaciuc@gmail.com>
 Dmitri Shuralyov <shurcooL@gmail.com>
 Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>

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

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

元コミット内容

このコミットの目的は、Goプロジェクトの公式な貢献者リストにDhiru Kholia氏を追加することです。これは、彼がGoプロジェクトへの貢献を開始するために必要なContributor License Agreement (CLA) を締結したことを反映しています。コミットメッセージの「A+C」は「AUTHORS and CONTRIBUTORS」を指し、両方のファイルにエントリが追加されたことを示唆しています。また、「Generated by addca」という記述がありますが、これはGoプロジェクトの内部的なCLA管理プロセスの一部である可能性があります。

変更の背景

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

CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトの所有者(この場合はGoogle)に対して、その貢献をプロジェクトのライセンス条件の下で利用、配布、変更する永続的かつ取り消し不能な権利を付与する法的な合意です。これにより、プロジェクトは将来的にライセンスに関する問題が発生するリスクを最小限に抑え、安心してコードベースを成長させることができます。

このコミットは、Dhiru Kholia氏がGoプロジェクトへの貢献を開始する準備が整い、必要なCLAを締結したことを示すものです。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人を公式に認識し、記録するためのものです。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、貢献者からプロジェクトの所有者へ、その貢献物(コード、ドキュメントなど)を使用、複製、変更、配布する権利を付与するための法的な文書です。主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、どのように利用されるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンス(例: BSDライセンス、Apacheライセンスなど)の下で配布されることを保証します。これにより、異なるライセンスのコードが混在することによる複雑さを回避します。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを自由に利用・再ライセンスできる権利を持つことで、プロジェクトの長期的な維持・発展を保証します。

Googleが主導する多くのオープンソースプロジェクトでは、個人または企業向けのCLAの締結が求められます。Goプロジェクトもその例外ではありません。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、特定のファイルを使用します。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や初期の貢献者、あるいは特に重要な貢献をした人々をリストアップします。このファイルは、プロジェクトの歴史と主要な貢献者を公式に認識する役割を果たします。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップします。これには、コードの提出者だけでなく、バグ報告、ドキュメントの改善、テストの作成、翻訳など、様々な形の貢献が含まれることがあります。このファイルは、コミュニティの努力を称え、感謝を示すためのものです。

これらのファイルは、プロジェクトの透明性を高め、貢献文化を促進する上で重要な役割を果たします。

addcaについて

コミットメッセージにある「Generated by addca」という記述は、Goプロジェクトの内部的なツールまたはスクリプトを示唆しています。これは、新しいCLAが締結された際に、自動的にAUTHORSCONTRIBUTORSファイルにエントリを追加するプロセスを自動化するためのものであると考えられます。このような自動化は、大規模なプロジェクトにおいて、手作業によるエラーを防ぎ、効率を向上させるために一般的に採用されています。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな技術的側面には直接関係しません。これは、プロジェクトの管理と法的な側面に関連する変更です。

具体的には、Gitの差分(diff)を見ると、AUTHORSファイルとCONTRIBUTORSファイルの両方に、Dhiru Kholia氏の名前とメールアドレスが1行ずつ追加されていることがわかります。

  • AUTHORSファイルでは、既存の貢献者リストのアルファベット順に「Dhiru Kholia dhiru.kholia@gmail.com」が挿入されています。
  • CONTRIBUTORSファイルでも同様に、アルファベット順にエントリが追加されています。

これらのファイルはプレーンテキスト形式であり、各行が1人の貢献者を表すシンプルな構造になっています。このような変更は、Gitのバージョン管理システムによって容易に追跡され、プロジェクトの履歴の一部として永続的に記録されます。

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

このコミットにおける「コアとなるコード」は、Go言語のソースコードそのものではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSです。

  • AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -113,6 +113,7 @@ David Titarenco <david.titarenco@gmail.com>
     Dean Prichard <dean.prichard@gmail.com>
     Denis Brandolini <denis.brandolini@gmail.com>
     Devon H. O'Dell <devon.odell@gmail.com>
    +Dhiru Kholia <dhiru.kholia@gmail.com>
     Dimitri Tcaciuc <dtcaciuc@gmail.com>
     Dmitri Shuralyov <shurcooL@gmail.com>
     Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>
    
  • CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -175,6 +175,7 @@ David Titarenco <david.titarenco@gmail.com>
     Dean Prichard <dean.prichard@gmail.com>
     Denis Brandolini <denis.brandolini@gmail.com>
     Devon H. O'Dell <devon.odell@gmail.com>
    +Dhiru Kholia <dhiru.kholia@gmail.com>
     Dimitri Tcaciuc <dtcaciuc@gmail.com>
     Dmitri Shuralyov <shurcooL@gmail.com>
     Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>
    

コアとなるコードの解説

変更は非常に単純で、両ファイルに新しい行が追加されただけです。

  • AUTHORSファイルとCONTRIBUTORSファイルは、それぞれプロジェクトの作者と貢献者の名前とメールアドレスをリスト形式で保持しています。
  • 追加された行は「Dhiru Kholia <dhiru.kholia@gmail.com>」であり、これはDhiru Kholia氏の氏名とメールアドレスを示しています。
  • これらのファイルは、プロジェクトのビルドプロセスやランタイムの動作には直接影響を与えませんが、プロジェクトの公式な記録として、またコミュニティの透明性を保つ上で重要な役割を果たします。

このコミットは、Goプロジェクトが新しい貢献者を迎え入れ、その貢献を正式に認識するプロセスの一部を示しています。

関連リンク

参考にした情報源リンク