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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者であるJames Tucker氏を追加するものです。これは、彼がGoogleのContributor License Agreement (CLA)に署名したことを反映しています。

コミット

commit b6f798f35bb441b328ed53f32b865d0cbdf0ad91
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Wed Apr 3 11:12:25 2013 -0700

    C: add James Tucker (Google CLA)
    
    R=golang-dev, gri
    CC=golang-dev
    https://golang.org/cl/8253044

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

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

元コミット内容

C: add James Tucker (Google CLA)

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/8253044

変更の背景

この変更の背景には、オープンソースプロジェクト、特にGoogleのような大企業が支援するプロジェクトにおける貢献者管理の一般的なプラクティスがあります。GoプロジェクトはGoogleによって開発・維持されており、外部からのコード貢献を受け入れる際には、法的な側面を明確にするためにContributor License Agreement (CLA)の署名を要求しています。

James Tucker氏がGoプロジェクトに貢献するにあたり、Google CLAに署名したため、その事実をプロジェクトの公式な貢献者リストであるCONTRIBUTORSファイルに記録する必要がありました。これにより、プロジェクトは貢献されたコードのライセンスに関する権利を適切に管理し、将来的な法的な問題を回避することができます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、個人または法人がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(この場合はGoogle)に対して、その貢献物を使用、複製、変更、配布する権利を付与することを法的に約束する文書です。

CLAの主な目的は以下の通りです。

  1. ライセンスの明確化: 貢献されたコードがプロジェクトのライセンス(例: BSDライセンス)の下で適切に配布されることを保証します。
  2. 著作権の保護: プロジェクトの所有者が貢献されたコードの著作権を管理し、将来的なライセンス変更や訴訟リスクからプロジェクトを保護します。
  3. 法的な確実性: プロジェクトのコードベース全体が、明確なライセンスの下で利用可能であることを保証し、ユーザーや企業が安心してプロジェクトを利用できるようにします。

Googleのような企業が支援するプロジェクトでは、特に知的財産権の管理が厳格であるため、CLAの署名が必須となることが一般的です。

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

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

  1. CLAの署名: 貢献者はまずGoogle CLAに署名します。
  2. Gerritの使用: Goプロジェクトは、コードレビューにGerritというシステムを使用しています。貢献者は変更をGerritにアップロードし、"Change-ID"が付与された"Change List (CL)"を作成します。
  3. コードレビュー: プロジェクトのメンテナや他の貢献者がCLをレビューし、フィードバックを提供します。
  4. 承認とマージ: レビューが承認されると、CLはGoのリポジトリにマージされます。

このコミットメッセージにあるhttps://golang.org/cl/8253044は、Gerrit上の特定のCLへのリンクを示しており、この変更がGerritを通じてレビューされたことを示唆しています。

CONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、CONTRIBUTORSAUTHORS、または類似のファイルが存在し、プロジェクトに貢献した人々の名前や連絡先(オプション)がリストされています。このファイルの目的は、プロジェクトの歴史と貢献者を記録し、彼らの努力を認識することです。法的な意味合いを持つ場合もありますが、主に感謝と透明性のために維持されます。

技術的詳細

このコミットは、GoプロジェクトのルートディレクトリにあるCONTRIBUTORSというテキストファイルに対する非常に単純な変更です。具体的には、このファイルに新しい行が1行追加されています。

変更前後のCONTRIBUTORSファイルの内容を比較すると、James Tucker氏の名前とメールアドレスが既存の貢献者リストの適切な位置(アルファベット順など)に挿入されたことがわかります。これは、Gitの差分(diff)によって明確に示されています。

ファイル自体はプレーンテキストであり、特別なフォーマットや構造を持つものではありません。単に貢献者の名前が羅列されているだけです。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d08e3428c2..19bcaea520 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -198,6 +198,7 @@ James Meneghello <rawrz0r@gmail.com>
 James P. Cooper <jamespcooper@gmail.com>
 James Toy <nil@opensesame.st>
 James Whitehead <jnwhiteh@gmail.com>
+James Tucker <raggi@google.com>
 Jamie Gennis <jgennis@google.com> <jgennis@gmail.com>
 Jan H. Hosang <jan.hosang@gmail.com>
 Jan Mercl <befelemepeseveze@gmail.com>

コアとなるコードの解説

上記の差分は、CONTRIBUTORSファイルに以下の1行が追加されたことを示しています。

+James Tucker <raggi@google.com>

これは、James Tucker氏がGoプロジェクトの貢献者リストに、彼のメールアドレスraggi@google.comと共に正式に追加されたことを意味します。この変更は、彼がGoプロジェクトへの貢献を開始するための前提条件であるGoogle CLAに署名したことを反映しています。

この変更自体はコードの機能に影響を与えるものではなく、プロジェクトのメタデータの一部を更新するものです。しかし、オープンソースプロジェクトのガバナンスと法的な健全性を維持する上で重要なステップです。

関連リンク

  • Gerrit Change List (CL): https://golang.org/cl/8253044
    • このコミットに対応するGerrit上の変更リストです。通常、ここから詳細なレビューコメントや変更履歴を確認できます。

参考にした情報源リンク