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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに対する変更です。具体的には、Michael Kelly氏を貢献者リストに追加しています。このファイルは、Goプロジェクトにコードやドキュメントなどで貢献した個人の名前と連絡先(通常はメールアドレス)を記録するために使用されます。

コミット

このコミットは、Goプロジェクトの貢献者リストに新しいエントリを追加するものです。これは、新しい貢献者がプロジェクトに加わった際に行われる典型的な更新であり、その貢献者がGoogleのContributor License Agreement (CLA) に同意したことを示唆しています。

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

https://github.com/golang/go/commit/6430a6d90e0be5703c5b5263a55ca831bd2ab8a0

元コミット内容

commit 6430a6d90e0be5703c5b5263a55ca831bd2ab8a0
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Tue Jan 14 12:53:06 2014 -0800

    C: add Michael Kelly (Google CLA)
    
    R=golang-codereviews, iant, mjk
    CC=golang-codereviews
    https://golang.org/cl/52220043
---
 CONTRIBUTORS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e64714be70..8d1eae1c8e 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -348,6 +348,7 @@ Michael Elkins <michael.elkins@gmail.com>
 Michael Gehring <mg@ebfe.org> <gnirheg.leahcim@gmail.com>
 Michael Hoisie <hoisie@gmail.com>
 Michael Hudson-Doyle <michael.hudson@linaro.org>
+Michael Kelly <mjk@google.com>
 Michael Lewis <mikelikespie@gmail.com>
 Michael Matloob <matloob@google.com>
 Michael Piatek <piatek@google.com>

変更の背景

この変更の背景には、オープンソースプロジェクトにおける貢献の管理と、知的財産権の保護という二つの側面があります。

  1. 新しい貢献者の追加: Michael Kelly氏がGoプロジェクトに何らかの貢献(コード、ドキュメント、バグ報告など)を行ったため、その貢献を公式に認識し、記録するためにCONTRIBUTORSファイルに追加されました。
  2. Contributor License Agreement (CLA) の遵守: コミットメッセージに「Google CLA」と明記されていることから、Michael Kelly氏がGoogleのContributor License Agreementに署名した後にこの追加が行われたことがわかります。CLAは、貢献されたコードの著作権がプロジェクトの所有者(この場合はGoogle)に適切に帰属することを保証するための法的な合意です。これにより、プロジェクトのライセンスの明確性が保たれ、将来的な法的な問題を防ぐことができます。

前提知識の解説

オープンソースプロジェクトにおける貢献者リスト (CONTRIBUTORSファイル)

多くの大規模なオープンソースプロジェクトでは、プロジェクトに貢献した人々をリストアップするためにCONTRIBUTORSAUTHORSといったファイルがリポジトリのルートに置かれています。このファイルの主な目的は以下の通りです。

  • 貢献の認識: プロジェクトの成功に貢献した個人を公に認識し、感謝を示すため。
  • 透明性: 誰がプロジェクトに貢献しているかを明確にするため。
  • 連絡先情報: 必要に応じて貢献者に連絡を取るための情報源となる場合もあります(ただし、通常は公開されているメールアドレスやGitHubのユーザー名が使われます)。

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトに貢献する個人または企業と、プロジェクトの所有者(または管理団体)との間で締結される法的な契約です。CLAの主な目的は以下の通りです。

  • 著作権の明確化: 貢献されたコードの著作権が、プロジェクトの所有者に譲渡されるか、またはプロジェクトのライセンスに基づいて使用する許可が与えられることを明確にします。これにより、プロジェクトの所有者は、貢献されたコードを自由に利用、配布、再ライセンスできるようになります。
  • ライセンスの保護: プロジェクト全体のライセンスの一貫性を保ち、将来的なライセンス違反や著作権侵害のリスクを軽減します。特に、企業が関与する大規模なプロジェクトでは、法的なリスクを最小限に抑えるためにCLAが不可欠とされています。
  • 貢献者の保護: 貢献者自身も、自身の貢献がプロジェクトのライセンスの下で適切に利用されることを保証されます。

Googleは、多くのオープンソースプロジェクト(Go、Kubernetes、TensorFlowなど)でCLAを要求しています。これは、Googleがこれらのプロジェクトの知的財産権を管理し、法的な問題を回避するための標準的なプラクティスです。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな部分のコード変更ではなく、プロジェクトのメタデータに関する変更です。技術的な観点から見ると、これは非常に単純なテキストファイルの編集です。

  • ファイルパス: CONTRIBUTORS
  • 変更の種類: 1行の追加 (1 insertion(+))
  • 変更内容: Michael Kelly <mjk@google.com>という行が、既存の貢献者リストのアルファベット順に挿入されています。

diff --git a/CONTRIBUTORS b/CONTRIBUTORS の出力は、Gitがファイルの変更をどのように認識しているかを示しています。

  • index e64714be70..8d1eae1c8e 100644: これは、変更前と変更後のファイルのGitオブジェクトのハッシュ値を示しています。100644は、ファイルが通常のファイルであり、実行可能ではないことを示すパーミッションモードです。
  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS: それぞれ変更前のファイルと変更後のファイルを示します。
  • @@ -348,6 +348,7 @@: これは「hunk header」と呼ばれ、変更がファイルのどこで行われたかを示します。-348,6は変更前のファイルで348行目から6行が対象であることを意味し、+348,7は変更後のファイルで348行目から7行が対象であることを意味します。これは1行追加されたため、行数が増えています。
  • +Michael Kelly <mjk@google.com>: この行の先頭にある+記号は、この行が新しく追加されたことを示します。

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

このコミットにおける「コアとなるコード」は、Go言語のランタイムや標準ライブラリではなく、プロジェクトの管理ファイルであるCONTRIBUTORSファイルです。変更箇所は以下の1行です。

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -348,6 +348,7 @@ Michael Elkins <michael.elkins@gmail.com>
 Michael Gehring <mg@ebfe.org> <gnirheg.leahcim@gmail.com>
 Michael Hoisie <hoisie@gmail.com>
 Michael Hudson-Doyle <michael.hudson@linaro.org>
+Michael Kelly <mjk@google.com>
 Michael Lewis <mikelikespie@gmail.com>
 Michael Matloob <matloob@google.com>
 Michael Piatek <piatek@google.com>

コアとなるコードの解説

追加された行 Michael Kelly <mjk@google.com> は、Goプロジェクトへの貢献者としてMichael Kelly氏を登録しています。<mjk@google.com> は彼のメールアドレスであり、通常、貢献者の識別子として使用されます。この行がCONTRIBUTORSファイルに追加されることで、Michael Kelly氏がGoプロジェクトの公式な貢献者の一員として認められたことを意味します。

この変更は、Goプロジェクトのガバナンスと貢献者管理プロセスの一部であり、プロジェクトの健全な運営に不可欠な要素です。

関連リンク

参考にした情報源リンク

  • Gitのdiff出力に関するドキュメント
  • オープンソースプロジェクトにおけるCLAの役割に関する一般的な情報源
  • GoプロジェクトのGitHubリポジトリ
  • Google DevelopersのCLAに関する公式ページ