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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者であるManu Garg氏を追加するものです。これは、Goプロジェクトへの貢献者がGoogle Contributor License Agreement (CLA) に署名したことを示す一般的なプロセスの一部です。

コミット

  • コミットハッシュ: ef05d8688f1ea1952d87cdea37d0848629dcb13b
  • 作者: Andrew Gerrand adg@golang.org
  • 日付: 2012年9月6日 木曜日 15:02:42 +1000
  • コミットメッセージ:
    C: add Manu Garg (Google CLA)
    
    R=golang-dev, iant
    CC=golang-dev
    https://golang.org/cl/6493087
    

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

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

元コミット内容

このコミットの目的は、Goプロジェクトの貢献者リストにManu Garg氏を追加することです。コミットメッセージの「(Google CLA)」という記述は、Manu Garg氏がGoogle Contributor License Agreement (CLA) に署名したことを示唆しており、これによりGoプロジェクトへの貢献が正式に認められたことを意味します。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、貢献者がコードを提出する前にContributor License Agreement (CLA) に署名することが一般的です。CLAは、プロジェクトの所有者(この場合はGoogle)が貢献されたコードを使用、配布、変更するための法的権利を確保するために存在します。Manu Garg氏がGoプロジェクトに貢献する準備が整い、必要なCLAに署名したため、その貢献を正式に認識し、プロジェクトのCONTRIBUTORSファイルに名前を追加する必要がありました。これは、プロジェクトの透明性を保ち、誰がプロジェクトに貢献しているかを明確にするための標準的な手続きです。

前提知識の解説

GoプロジェクトのCONTRIBUTORSファイル

CONTRIBUTORSファイルは、多くのオープンソースプロジェクトで見られる慣習的なファイルです。Goプロジェクトにおいても、このファイルはプロジェクトに貢献したすべての個人をリストアップする目的で存在します。その主な役割は以下の通りです。

  • 貢献者の認識: プロジェクトに時間と労力を費やした人々を公に認め、感謝の意を示す。
  • 法的・ライセンス上の目的: 特定のオープンソースライセンスでは、貢献者の帰属表示が求められる場合があります。このファイルは、ライセンス要件を満たす一助となることがあります。
  • コミュニティの構築: 貢献者間の連帯感を醸成し、プロジェクトへの参加を促す。
  • 履歴の記録: プロジェクトの進化に誰が関わってきたかの歴史的な記録となる。

このファイルは通常、プレーンテキスト形式で、貢献者の名前と連絡先情報(多くの場合、メールアドレス)が一覧で記載されています。

Google Contributor License Agreement (CLA)

Google Contributor License Agreement (CLA) は、Googleがホストするオープンソースプロジェクトにコードを貢献する際に、貢献者とGoogleの間で締結される法的な合意です。その目的と重要性は以下の通りです。

  • 目的: Googleが貢献されたコードを、そのオープンソースプロジェクト内で使用、配布、変更、サブライセンスする権利を確保することです。これにより、Googleはプロジェクトのコードベースを自由に管理し、将来的なライセンス変更や再配布の際に法的問題が発生しないようにします。
  • 必要性: 多くの企業が主導するオープンソースプロジェクトでは、知的財産権の明確化のためにCLAが必須とされています。CLAがない場合、貢献されたコードの著作権が不明確になり、将来的にプロジェクトのライセンスや配布に支障をきたす可能性があります。
  • 種類:
    • 個人CLA (Individual CLA): 個人が自身の名義で貢献する場合に署名します。
    • 企業CLA (Corporate CLA): 企業や組織が従業員を通じて貢献する場合に署名します。この場合、組織の代表者がCLAに署名し、その後、組織は貢献を許可する従業員を指名します。
  • プロセス: 通常、オンラインで署名が行われます。Googleアカウントが必要であり、企業CLAの場合は、組織内で貢献を許可するGoogleグループの設定なども含まれます。

CLAに署名することは、貢献者が自身の著作権を放棄することを意味するものではなく、Googleに対して非独占的で永続的なライセンスを付与することを意味します。これにより、貢献者は自身のコードの所有権を保持しつつ、Googleがそのコードをプロジェクトに組み込むことを許可します。

技術的詳細

このコミットは、CONTRIBUTORSファイルへの単一の行追加です。Gitの差分(diff)形式で表現されており、ファイルの内容がどのように変更されたかを示しています。

  • diff --git a/CONTRIBUTORS b/CONTRIBUTORS: CONTRIBUTORSファイルが変更されたことを示します。a/は変更前のファイル、b/は変更後のファイルを表します。
  • index cce07584de..0245194c99 100644: Gitの内部的なインデックス情報です。ファイルのハッシュ値とパーミッションモードを示します。
  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS: 変更前と変更後のファイルパスを示します。
  • @@ -213,6 +213,7 @@ Luca Greco <luca.greco@alcacoop.it>: これは「hunk header」と呼ばれ、変更がファイルのどの部分で行われたかを示します。
    • -213,6: 変更前のファイルでは、213行目から6行が対象であることを意味します。
    • +213,7: 変更後のファイルでは、213行目から7行が対象であることを意味します。
    • この場合、1行が追加されたため、行数が6から7に増えています。
    • Luca Greco <luca.greco@alcacoop.it> は、この変更が行われた箇所のコンテキストを示す行です。

追加された行は、行頭に+が付いていることで示されます。

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

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -213,6 +213,7 @@ Luca Greco <luca.greco@alcacoop.it>
 Lucio De Re <lucio.dere@gmail.com>
 Luit van Drongelen <luitvd@gmail.com>
 Luuk van Dijk <lvd@golang.org> <lvd@google.com>
+Manu Garg <manugarg@google.com>
 Marcel van Lohuizen <mpvl@golang.org>
 Mark Zavislak <zavislak@google.com>
 Markus Duft <markus.duft@salomon.at>

コアとなるコードの解説

このコミットのコアとなる変更は、CONTRIBUTORSファイルに以下の1行を追加することです。

+Manu Garg <manugarg@google.com>

これは、貢献者リストに「Manu Garg」という名前と、そのメールアドレス「manugarg@google.com」を追加しています。この行は、既存の貢献者リストのアルファベット順に挿入されており、Luuk van Dijk氏とMarcel van Lohuizen氏の間に位置しています。

この変更自体は非常にシンプルで、テキストファイルへの行追加に過ぎません。しかし、その背後には、Goプロジェクトへの貢献プロセスにおける重要なステップ、すなわちGoogle CLAへの署名と、それによって貢献が正式に認められたという事実が隠されています。

関連リンク

参考にした情報源リンク