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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新たな貢献者であるJohnathan Pittman氏を追加するものです。これは、彼がGoプロジェクトに貢献し、Google CLA(Contributor License Agreement)に署名したことを公式に記録するための変更です。

コミット

commit 8ba9191264f881a3ac5f11ff4a26ef1b359d776e
Author: Adam Langley <agl@golang.org>
Date:   Sun Jan 15 19:52:45 2012 -0500

    CONTRIBUTORS: add Johnathan Pittman
    
    (Google CLA)
    
    R=rsc, bradfitz
    CC=golang-dev
    https://golang.org/cl/5544072

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

https://github.com/golang/go/commit/8ba9191264f881a3ac5f11ff4a26ef1b359d776e

元コミット内容

CONTRIBUTORS: add Johnathan Pittman

(Google CLA)

R=rsc, bradfitz
CC=golang-dev
https://golang.org/cl/5544072

変更の背景

オープンソースプロジェクトにおいて、貢献者(コントリビューター)のリストを管理することは一般的です。これは、プロジェクトに貢献した個人を公式に認識し、感謝を示すため、また法的な観点から、誰がどのコードを貢献したかを明確にするために行われます。

このコミットの背景には、Johnathan Pittman氏がGoプロジェクトに対して何らかの貢献を行い、その貢献が受け入れられたという事実があります。そして、その貢献を正式なものとするために、Googleが要求するCLA(Contributor License Agreement)に署名したことが示されています。CLAへの署名が完了したことで、彼の名前をCONTRIBUTORSファイルに追加する準備が整い、このコミットが作成されました。

前提知識の解説

CONTRIBUTORSファイル

多くのオープンソースプロジェクト、特に大規模なプロジェクトでは、CONTRIBUTORS(またはAUTHORSCREDITSなど)という名前のテキストファイルが存在します。このファイルは、プロジェクトのコード、ドキュメント、デザインなどに貢献したすべての個人の名前と、場合によっては連絡先情報(メールアドレスなど)を一覧表示するために使用されます。

このファイルの主な目的は以下の通りです。

  • 貢献者の認識と感謝: プロジェクトの成功に貢献した人々を公に称賛します。
  • 透明性: 誰がプロジェクトに貢献しているかを明確にします。
  • 法的記録: 特定のコードやコンテンツが誰によって提供されたかを示す、非公式ながらも重要な記録となります。特に、著作権やライセンスに関する問題が発生した場合に参照されることがあります。

CLA (Contributor License Agreement)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者がその貢献物(コード、ドキュメントなど)の著作権をプロジェクトの所有者(企業や財団など)に譲渡するか、または特定のライセンスの下で使用することを許可する法的な合意書です。

Goプロジェクトの場合、Googleがプロジェクトを主導しているため、GoogleのCLAが適用されます。CLAを要求する主な理由は以下の通りです。

  • ライセンスの明確化: 貢献されたコードがプロジェクト全体のライセンス(例: BSDライセンス)と矛盾しないことを保証します。
  • 知的財産権の管理: プロジェクトの所有者が、貢献されたコードを再ライセンスしたり、商用利用したりする権利を確保します。これにより、将来的なライセンス変更や、プロジェクトの法的健全性を維持する上で柔軟性が生まれます。
  • 訴訟リスクの軽減: 貢献されたコードに関する著作権侵害の申し立てがあった場合、プロジェクトの所有者がそのコードを防御する権利を持つことを保証します。

CLAは、特に企業が関与する大規模なオープンソースプロジェクトでよく見られます。これにより、プロジェクトの長期的な持続可能性と法的安定性が確保されます。

Goプロジェクトの貢献プロセス

Goプロジェクトへの貢献は、通常、以下のステップで行われます。

  1. 変更の作成: 貢献者はコードの変更やドキュメントの更新などを行います。
  2. CLAへの署名: 初めての貢献の場合、Google CLAに署名する必要があります。これは通常、オンラインで行われます。
  3. 変更リスト (Change List: CL) の作成: 変更はGitリポジトリに直接プッシュされるのではなく、Gerritなどのコードレビューシステムを通じて「変更リスト(CL)」として提出されます。
  4. コードレビュー: 提出されたCLは、Goチームのメンバーや他の貢献者によってレビューされます。このプロセスでは、コードの品質、設計、パフォーマンス、Goの慣習への準拠などが確認されます。
  5. 承認とマージ: レビューが承認されると、CLはGoリポジトリのメインブランチにマージされます。

このコミットは、上記のプロセスを経て、Johnathan Pittman氏の貢献が承認され、CLAへの署名も完了した結果として行われたものです。

技術的詳細

このコミットの技術的詳細は非常にシンプルです。CONTRIBUTORSというプレーンテキストファイルに、新しい行を追加するだけです。

ファイルの変更は、Gitの差分(diff)として表現されます。差分は、元のファイル(--- a/CONTRIBUTORS)と変更後のファイル(+++ b/CONTRIBUTORS)の間の違いを示します。行頭の+は追加された行を意味します。

この種の変更は、特別なツールや複雑なロジックを必要とせず、テキストエディタで直接行を挿入し、Gitでコミットするだけで完了します。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 7c8874be39..027e6b735c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -146,6 +146,7 @@ John Beisley <huin@google.com>
 John DeNero <denero@google.com>
 Jonathan Allie <jonallie@google.com>
 Jonathan Mark <jhmark@xenops.com> <jhmark000@gmail.com>
+Jonathan Pittman <jmpittman@google.com> <jonathan.mark.pittman@gmail.com>
 Jonathan Wills <runningwild@gmail.com>
 Jongmin Kim <atomaths@gmail.com>
 Jos Visser <josv@google.com>

コアとなるコードの解説

上記の差分は、CONTRIBUTORSファイルに対する唯一の変更を示しています。

  • @@ -146,6 +146,7 @@: これは、変更がファイルの146行目から始まり、元のファイルでは6行が、変更後のファイルでは7行が影響を受けることを示しています。これは、1行が追加されたことを意味します。
  • +Jonathan Pittman <jmpittman@google.com> <jonathan.mark.pittman@gmail.com>: この行がCONTRIBUTORSファイルに追加されました。Johnathan Pittman氏の名前と、彼に関連付けられた2つのメールアドレス(Googleのメールアドレスと個人のメールアドレス)が含まれています。この形式は、既存の貢献者のエントリと一貫しています。

この変更により、Johnathan Pittman氏がGoプロジェクトの公式な貢献者リストに加わったことが記録されました。

関連リンク

参考にした情報源リンク