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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに対する変更です。CONTRIBUTORSファイルは、プロジェクトに貢献した個人のリストを保持するテキストファイルであり、通常、法的な目的(例えば、貢献ライセンス契約の遵守)や、貢献者への謝意を示すために使用されます。

コミット

このコミットは、Shawn Ledbetter氏をGoプロジェクトのCONTRIBUTORSファイルに追加するものです。特筆すべきは、彼の貢献がGoogleのCorporate Contributor License Agreement (CLA) の下で行われたことが明記されている点です。

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

https://github.com/golang/go/commit/9b5358af2d805336e103a743697eb6fad1ecf1c4

元コミット内容

commit 9b5358af2d805336e103a743697eb6fad1ecf1c4
Author: Adam Langley <agl@golang.org>
Date:   Mon Dec 10 12:38:20 2012 -0500

    CONTRIBUTORS: add sledbetter (Google Corporate CLA).
    
    R=golang-dev, bradfitz
    CC=golang-dev
    https://golang.org/cl/6912062
---
 CONTRIBUTORS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 592df8f0d5..601b60882f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -327,6 +327,7 @@ Sergei Skorobogatov <skorobo@rambler.ru>
 Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
 Sergio Luis O. B. Correia <sergio@correia.cc>
 Shane Hansen <shanemhansen@gmail.com>
+Shawn Ledbetter <sledbetter@google.com>
 Shawn Smith <shawn.p.smith@gmail.com>
 Shenghou Ma <minux.ma@gmail.com>
 Shivakumar GN <shivakumar.gn@gmail.com>

変更の背景

オープンソースプロジェクトにおいて、貢献者リスト(CONTRIBUTORSファイルなど)を管理する背景には、主に以下の理由があります。

  1. 法的な要件: 多くのオープンソースプロジェクト、特に企業が関与するプロジェクトでは、貢献者ライセンス契約(CLA)の締結を義務付けています。CLAは、貢献されたコードの著作権がプロジェクトの所有者(この場合はGoogle)に適切に帰属し、プロジェクトがそのコードを自由に利用、配布、変更できることを保証するためのものです。CONTRIBUTORSファイルに名前を追加することは、CLAが適切に処理されたことの記録の一部となります。
  2. 貢献の認識: プロジェクトに貢献した人々を公式に認識し、感謝の意を示すためです。これはコミュニティの健全性を維持し、将来の貢献を奨励する上で重要です。
  3. 透明性: 誰がプロジェクトに貢献しているかを明確にすることで、プロジェクトの透明性を高めます。

この特定のコミットでは、Shawn Ledbetter氏がGoプロジェクトに貢献し、その貢献がGoogleのCorporate CLAの下で承認されたため、彼の名前がCONTRIBUTORSファイルに追加されました。

前提知識の解説

Gitのコミット

Gitにおけるコミットとは、プロジェクトの変更履歴における「スナップショット」です。各コミットは、特定の時点でのプロジェクトのファイルの状態を記録し、誰が、いつ、どのような変更を行ったかという情報(コミットメッセージ、作者、日付など)を含みます。このコミットは、9b5358af2d805336e103a743697eb6fad1ecf1c4という一意のハッシュ値で識別されます。

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、オープンソースプロジェクトで一般的に見られるテキストファイルで、そのプロジェクトにコード、ドキュメント、その他の形で貢献した個人の名前と連絡先情報(通常はメールアドレス)をリストアップします。このファイルは、プロジェクトのライセンスや貢献ガイドラインと密接に関連していることが多いです。

CLA (Contributor License Agreement)

CLA(貢献者ライセンス契約)は、個人または企業がオープンソースプロジェクトに貢献する際に、プロジェクトの所有者(または管理団体)との間で締結する法的な合意です。CLAの主な目的は、貢献されたコードの著作権がプロジェクトの所有者に適切にライセンスされることを保証し、プロジェクトがそのコードを将来にわたって自由に利用、配布、変更できる法的権利を確保することです。

  • Individual CLA (ICLA): 個人がプロジェクトに貢献する際に締結します。
  • Corporate CLA (CCLA): 企業が従業員を通じてプロジェクトに貢献する際に締結します。企業は、従業員が行った貢献が企業の知的財産ポリシーに準拠しており、プロジェクトに適切にライセンスされることを保証します。このコミットの「Google Corporate CLA」は、Shawn Ledbetter氏がGoogleの従業員としてGoプロジェクトに貢献し、その貢献がGoogleのCCLAの下でカバーされていることを意味します。

CLAは、プロジェクトが将来的にライセンスを変更したり、コードを再ライセンスしたりする際に、すべての貢献者からの許可を個別に得る必要がないようにするために特に重要です。

技術的詳細

このコミットは、Gitの差分(diff)形式で表示されています。

  • diff --git a/CONTRIBUTORS b/CONTRIBUTORS: CONTRIBUTORSファイルが変更されたことを示します。a/は変更前のファイル、b/は変更後のファイルを表します。
  • index 592df8f0d5..601b60882f 100644: これはGitの内部的なインデックス情報です。
    • 592df8f0d5は変更前のファイルのハッシュ(BLOB ID)です。
    • 601b60882fは変更後のファイルのハッシュです。
    • 100644はファイルのパーミッションモードを示し、通常のファイル(実行可能ではない)であることを意味します。
  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS: 変更前と変更後のファイルパスを示します。
  • @@ -327,6 +327,7 @@: これは「hunk header」と呼ばれ、変更がファイルのどこで行われたかを示します。
    • -327,6: 変更前のファイルでは、327行目から6行が表示されています。
    • +327,7: 変更後のファイルでは、327行目から7行が表示されています。
    • これは、元の6行に1行が追加されたことを意味します。
  • 行の先頭の記号:
    • スペース: 変更されていない行。
    • +: 追加された行。
    • -: 削除された行。

このコミットでは、+Shawn Ledbetter <sledbetter@google.com>という行が追加されていることが明確に示されています。

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

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -327,6 +327,7 @@ Sergei Skorobogatov <skorobo@rambler.ru>
 Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
 Sergio Luis O. B. Correia <sergio@correia.cc>
 Shane Hansen <shanemhansen@gmail.com>
+Shawn Ledbetter <sledbetter@google.com>
 Shawn Smith <shawn.p.smith@gmail.com>
 Shenghou Ma <minux.ma@gmail.com>
 Shivakumar GN <shivakumar.gn@gmail.com>

コアとなるコードの解説

変更は非常にシンプルで、CONTRIBUTORSファイルに新しい行が1行追加されただけです。

追加された行: Shawn Ledbetter <sledbetter@google.com>

この行は、Shawn Ledbetter氏がGoプロジェクトの貢献者であり、彼の連絡先メールアドレスがsledbetter@google.comであることを示しています。この追加は、彼がGoプロジェクトに何らかの形で貢献し、その貢献がプロジェクトの貢献ガイドラインとCLAの要件を満たした結果として行われました。

関連リンク

参考にした情報源リンク

  • Git公式ドキュメント: https://git-scm.com/doc
  • Contributor License Agreement (CLA) の概念に関する一般的な情報源 (例: Wikipedia, Apache Software FoundationのCLA説明など)
  • Goプロジェクトの公式ウェブサイト: https://go.dev/
  • GitHubのコミット表示に関する情報