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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者「David Barnett」の名前を追加するものです。これは、Goプロジェクトへの貢献者がContributor License Agreement (CLA) に署名したことを記録するための、管理上の変更であり、Goランタイムの機能的なコード変更ではありません。

コミット

commit e673fd9344047630790890c5928e8223a8410847
Author: David Symonds <dsymonds@golang.org>
Date:   Wed Mar 26 13:51:00 2014 +1100

    C: add David Barnett (Google CLA).
    
    LGTM=adg
    R=adg
    CC=golang-codereviews
    https://golang.org/cl/80310043

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

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

元コミット内容

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

+David Barnett <dbarnett@google.com>

これは、Goプロジェクトに貢献するDavid Barnett氏がGoogleのContributor License Agreement (CLA) に署名したことを示す記録です。

変更の背景

オープンソースプロジェクト、特にGoogleが管理するGoのような大規模なプロジェクトでは、貢献者からのコードを受け入れる前に、法的な明確性を確保することが非常に重要です。この目的のために、多くのプロジェクトではContributor License Agreement (CLA) の署名を義務付けています。

CONTRIBUTORSファイルは、プロジェクトに貢献した個人や団体をリストアップするためのものです。新しい貢献者がCLAに署名し、その貢献がプロジェクトに受け入れられる準備ができた際に、このファイルにその名前が追加されます。このコミットは、David Barnett氏がGoプロジェクトへの貢献を開始するにあたり、必要なCLA手続きを完了したことを示すものです。これにより、彼の将来の貢献がプロジェクトのライセンスと知的財産権の枠組みの中で適切に扱われることが保証されます。

前提知識の解説

Contributor License Agreement (CLA)

Contributor License Agreement (CLA) は、オープンソースプロジェクトにコードやその他の著作物(ドキュメント、デザインなど)を貢献する個人または団体と、プロジェクトの管理者(この場合はGoogle)との間で締結される法的文書です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの知的財産権が誰に帰属するかを明確にします。通常、貢献者は自身の著作権を保持しつつ、プロジェクト管理者に対して、貢献されたコードをプロジェクトのライセンス(Goの場合はBSDライセンスなど)の下で利用、配布、サブライセンスする広範な権利を付与します。
  2. ライセンスの整合性: プロジェクト全体のライセンスモデルを維持し、将来的なライセンス変更や再ライセンスの可能性に対応できるようにします。これにより、プロジェクトが法的な問題なく進化し続けることができます。
  3. 法的保護: プロジェクト管理者やユーザーが、貢献されたコードの使用に関して、将来的に著作権侵害やその他の法的紛争に巻き込まれるリスクを軽減します。
  4. プロジェクトの持続可能性: 企業がプロジェクトに貢献する場合、従業員が作成したコードの著作権は企業に帰属することが多いため、企業CLA(Corporate CLA)が必要となる場合があります。これにより、企業からの貢献もスムーズに受け入れられます。

GoプロジェクトのCLAは、Apache Software Foundationが使用しているCLAをベースにしており、個人用CLAと企業用CLAの2種類があります。貢献者は一度CLAに署名すれば、Googleが管理する他のオープンソースプロジェクトへの貢献にも適用されます。

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、オープンソースプロジェクトにおいて、そのプロジェクトに何らかの形で貢献した人々を一覧表示するための慣習的なファイルです。このファイルは通常、プロジェクトのルートディレクトリに配置され、貢献者の名前と、場合によっては連絡先情報(メールアドレスなど)が含まれます。

このファイルの目的は、貢献者への感謝を示すとともに、プロジェクトの歴史とコミュニティの成長を記録することにあります。法的な拘束力を持つCLAとは異なり、CONTRIBUTORSファイルは主に情報提供と認識のためのものです。

技術的詳細

このコミットは、Go言語のランタイムやコンパイラ、標準ライブラリといったコア部分のコードに技術的な変更を加えるものではありません。これは、プロジェクトのメタデータファイルであるCONTRIBUTORSファイルへの単純なテキスト追加です。

具体的には、CONTRIBUTORSファイルはプレーンテキストファイルであり、各行が1人の貢献者を表す形式で記述されています。このコミットでは、既存のリストの適切な位置に新しい行が挿入されています。ファイルの内容は、バージョン管理システム(Git)によって追跡されており、この変更も通常のコミットとして記録されます。

この種の変更は、ソフトウェア開発における「コード」の変更というよりも、「プロジェクト管理」や「ガバナンス」に関連する変更と見なされます。技術的な複雑性はなく、ファイルの読み書き操作とテキストの挿入に限定されます。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a98da8012b..a73f6056fd 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -162,6 +162,7 @@ Dave Cheney <dave@cheney.net>
 Dave Day <djd@golang.org>
 Dave Grijalva <dgrijalva@ngmoco.com>
 David Anderson <danderson@google.com>
+David Barnett <dbarnett@google.com>
 David Bürgin <676c7473@gmail.com>
 David Covert <davidhcovert@gmail.com>
 David Crawshaw <david.crawshaw@zentus.com> <crawshaw@google.com>

コアとなるコードの解説

上記の差分が示すように、変更はCONTRIBUTORSファイル内の特定の行に新しいエントリを追加するものです。

  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS は、それぞれ変更前のファイルと変更後のファイルを示しています。
  • @@ -162,6 +162,7 @@ は、変更がファイルの162行目から始まり、変更前は6行、変更後は7行になることを示しています。
  • +David Barnett <dbarnett@google.com> の行が追加された唯一の変更点です。これは、David Barnett氏の名前とGoogleのメールアドレスをCONTRIBUTORSリストに加えるものです。

この変更は、Goプロジェクトの機能や動作に一切影響を与えません。純粋に、プロジェクトの貢献者リストを最新の状態に保つための記録的な更新です。

関連リンク

参考にした情報源リンク