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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者であるBurcu Dogan氏を追加するものです。これは、Goプロジェクトへの貢献者がContributor License Agreement (CLA)に署名したことを記録するための、管理上の変更であり、Goランタイムの機能やパフォーマンスに直接的な技術的変更を加えるものではありません。

コミット

commit d021d982daa3f12701722bcb5420675fd2295d6a
Author: Andrew Gerrand <adg@golang.org>
Date:   Mon May 19 10:04:34 2014 +1000

    C: add Burcu Dogan (Google CLA)
    
    LGTM=bradfitz
    R=golang-codereviews, bradfitz
    CC=golang-codereviews
    https://golang.org/cl/94610043

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

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

元コミット内容

C: add Burcu Dogan (Google CLA)

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/94610043

変更の背景

オープンソースプロジェクトにおいて、多くのプロジェクトは貢献者からのコードを受け入れる際に、Contributor License Agreement (CLA)の署名を要求します。CLAは、貢献されたコードの著作権やライセンスに関する明確な法的枠組みを確立するために使用されます。これにより、プロジェクトの所有者(この場合はGoogle)は、貢献されたコードをプロジェクトのライセンス(Goの場合はBSDライセンス)の下で配布し、将来的にライセンスを変更する権利を確保できます。

このコミットは、Burcu Dogan氏がGoプロジェクトへの貢献を開始するにあたり、GoogleのCLAに署名したことを示すものです。CONTRIBUTORSファイルは、プロジェクトに貢献し、CLAに署名した個人のリストを管理するために存在します。この変更は、Goプロジェクトの管理プロセスの一部であり、新しい貢献者が正式にプロジェクトに迎え入れられたことを示しています。

前提知識の解説

Contributor License Agreement (CLA)

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

CLAが使用される主な理由は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くのCLAでは、貢献者は自身の著作権を保持しつつ、プロジェクト所有者に広範なライセンスを付与します。
  2. ライセンスの柔軟性: プロジェクト所有者が将来的にプロジェクトのライセンスを変更する際に、すべての貢献者からの同意を個別に得る必要がなくなります。CLAによって、プロジェクト所有者は貢献されたコードを新しいライセンスの下で再ライセンスする権利を得ることができます。
  3. 訴訟リスクの軽減: 貢献されたコードが第三者の著作権を侵害している場合のリスクを軽減します。CLAには通常、貢献されたコードが貢献者自身のオリジナルであり、第三者の権利を侵害していないことを保証する条項が含まれます。
  4. プロジェクトの持続可能性: 大規模なオープンソースプロジェクト、特に企業が主導するプロジェクトでは、法的リスクを管理し、プロジェクトの長期的な持続可能性を確保するためにCLAが不可欠とされています。

Googleが主導するGoプロジェクトでは、貢献者に対してGoogle CLAへの署名を求めています。これは、GoogleがGoプロジェクトのコードベースに対する明確な権利を保持し、プロジェクトの法的健全性を維持するためです。

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、オープンソースプロジェクトにおいて、そのプロジェクトに貢献した個人や組織のリストを記録するためのテキストファイルです。このファイルは通常、プロジェクトのルートディレクトリに配置されます。

CONTRIBUTORSファイルの目的は以下の通りです。

  • 貢献者の認識: プロジェクトの成功に貢献した人々を公に認識し、感謝の意を示すため。
  • 透明性: プロジェクトのコードベースが誰によって構築されたかという透明性を提供するため。
  • 法的記録: 特にCLAが関連する場合、CLAに署名し、プロジェクトに貢献する法的権利を持つ個人の記録として機能することがあります。

このファイルは、プロジェクトの歴史とコミュニティの成長を示す重要なドキュメントの一部となります。

技術的詳細

このコミット自体は、Goランタイムの内部動作やアルゴリズム、データ構造に影響を与えるような技術的な変更を含んでいません。変更は、プロジェクトの管理ファイルであるCONTRIBUTORSファイルへの単純なテキスト行の追加です。

CONTRIBUTORSファイルは、通常、各貢献者の名前と、場合によってはメールアドレスや所属を1行に記述する形式で構成されています。このコミットでは、Burcu Dogan <jbd@google.com>という形式で新しいエントリが追加されています。

この変更は、Gitの差分(diff)として非常にシンプルに表現されます。1行が追加され、既存のファイルのインデックスが更新されるだけです。これは、ソフトウェア開発におけるバージョン管理システムが、コードだけでなく、プロジェクトに関連するドキュメントや設定ファイルなどの変更も追跡する能力を示す典型的な例です。

GoプロジェクトにおけるCLAのプロセスは、通常、以下のステップを含みます。

  1. 貢献の提案: 貢献者がコード変更を提案(例: Gerritへの変更リストのアップロード)。
  2. CLAの確認: システムが貢献者のCLA署名状況を確認。未署名の場合、署名を促す。
  3. CLAの署名: 貢献者がGoogle CLAにオンラインで署名。
  4. CONTRIBUTORSファイルの更新: CLA署名が確認された後、プロジェクトのメンテナがCONTRIBUTORSファイルに貢献者の名前を追加するコミットを作成。
  5. コードレビューとマージ: その後、提案されたコード変更がレビューされ、承認されればマージされる。

このコミットは、上記のステップ4に該当するものです。

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

変更はCONTRIBUTORSファイルのみです。

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d672b07cc5..41ce3988be 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -116,6 +116,7 @@ Brian G. Merrell <bgmerrell@gmail.com>
 Brian Gitonga Marete <marete@toshnix.com>
 Brian Ketelsen <bketelsen@gmail.com>
 Brian Slesinsky <skybrian@google.com>
+Burcu Dogan <jbd@google.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
 Carl Chatfield <carlchatfield@gmail.com>

コアとなるコードの解説

上記の差分が示すように、CONTRIBUTORSファイルに新しい行が1行追加されています。

具体的には、Brian Slesinsky <skybrian@google.com>の行の直後に、Burcu Dogan <jbd@google.com>という行が挿入されています。

  • +Burcu Dogan <jbd@google.com>: これは、Goプロジェクトに新しく貢献者として加わったBurcu Dogan氏の名前とメールアドレスをCONTRIBUTORSファイルに追加したことを示します。この追加は、彼女がGoogleのCLAに署名し、Goプロジェクトへの貢献を開始する準備が整ったことを公式に記録するものです。

この変更は、Goのソースコードやビルドプロセス、ランタイムの動作には一切影響を与えません。純粋にプロジェクトの管理と貢献者の追跡のためのものです。

関連リンク

  • Goプロジェクトの貢献ガイドライン: Goプロジェクトへの貢献方法に関する公式ドキュメント。CLAへの署名プロセスについても言及されている可能性があります。
  • Google Contributor License Agreement (CLA): Googleがオープンソースプロジェクトで使用しているCLAの一般的な情報。

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ (CONTRIBUTORSファイルの内容とコミット履歴)
  • Google Contributor License Agreement (CLA)に関する一般的な情報源 (例: Wikipedia, オープンソース関連のブログ記事など)
  • Gitの差分表示に関するドキュメント