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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるAlexander Reece氏を追加するものです。これは、彼が個別の貢献者ライセンス契約(CLA)を締結したことを示すものです。

コミット

commit 288dacd016e549a9524b776e9a56cbab3a50fb3a
Author: Russ Cox <rsc@golang.org>
Date:   Mon Oct 31 13:59:04 2011 -0400

    A+C: Alexander Reece (individual CLA)
    
    R=golang-dev, r
    CC=golang-dev
    https://golang.org/cl/5297072

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

https://github.com/golang/go/commit/288dacd016e549a9524b776e9a56cbab3a50fb3a

元コミット内容

A+C: Alexander Reece (individual CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5297072

変更の背景

オープンソースプロジェクト、特に大規模なものや企業が関与しているプロジェクトでは、貢献者ライセンス契約(CLA: Contributor License Agreement)の締結が求められることがよくあります。CLAは、貢献者が自身のコードの著作権をプロジェクトの所有者(この場合はGoogle/Goプロジェクト)に譲渡するか、またはプロジェクトがそのコードを使用、配布、変更する権利を付与することを保証するための法的な合意です。

このコミットの背景には、Alexander Reece氏がGoプロジェクトに貢献するにあたり、個別のCLAを締結したという事実があります。CLAが締結されると、その貢献者の名前がプロジェクトの公式な貢献者リスト(AUTHORSCONTRIBUTORSファイルなど)に追加されます。これにより、プロジェクトのコードベースに対する法的な明確性が保たれ、将来的なライセンス問題を防ぐことができます。

この変更は、Goプロジェクトが新しい貢献者を受け入れ、その貢献を正式に認識するプロセスの一部です。

前提知識の解説

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するために、AUTHORSファイルやCONTRIBUTORSファイルが使用されます。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、コードベースに大きな影響を与えた人々をリストアップします。著作権表示に関連付けられることもあります。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての人々(コードの提出、バグ報告、ドキュメントの改善、翻訳など)をより包括的にリストアップします。

これらのファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを保証する役割を果たします。

貢献者ライセンス契約 (CLA: Contributor License Agreement)

CLAは、オープンソースプロジェクトへの貢献者が、その貢献物に対する著作権をプロジェクトの所有者(または特定の団体)に譲渡するか、あるいはプロジェクトがその貢献物を特定のライセンスの下で使用、配布、変更する権利を付与することを法的に約束する文書です。

CLAが必要とされる主な理由は以下の通りです。

  1. 著作権の明確化: プロジェクトのコードベース全体の著作権所有者を明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: 貢献されたコードがプロジェクト全体のライセンスと矛盾しないことを保証し、プロジェクトのライセンスモデルを維持します。
  3. 再ライセンスの可能性: プロジェクトの所有者が将来的にプロジェクトのライセンスを変更する必要が生じた場合、CLAによってその変更が容易になります。

CLAには「個人CLA」と「企業CLA」の2種類があります。

  • 個人CLA: 個人が自身の名義で貢献する場合に締結します。
  • 企業CLA: 企業に雇用されている開発者が、業務の一環として貢献する場合に、その企業が締結します。これにより、貢献されたコードが企業の知的財産であることを明確にし、企業がそのコードをプロジェクトに提供することを許可します。

GoプロジェクトはGoogleによって管理されており、Googleは多くのオープンソースプロジェクトでCLAの締結を求めています。

技術的詳細

このコミットは、Goプロジェクトのリポジトリ内の2つのプレーンテキストファイル、AUTHORSCONTRIBUTORSに、Alexander Reece氏の名前とメールアドレスを追加する非常にシンプルな変更です。

具体的には、以下の情報が追加されています。

  • Alexander Reece <awreece@gmail.com>

この変更は、Gitの差分(diff)として表現されており、各ファイルの該当行に新しい行が追加されたことを示しています。ファイルの変更は、既存のアルファベット順のリストに新しいエントリを挿入する形で行われています。

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

diff --git a/AUTHORS b/AUTHORS
index cec9f02cb6..8b543b40af 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -14,6 +14,7 @@ Albert Strasheim <fullung@gmail.com>
 Aleksandar Dezelin <dezelin@gmail.com>
 Alex Brainman <alex.brainman@gmail.com>
 Alexander Orlov <alexander.orlov@loxal.net>
+Alexander Reece <awreece@gmail.com>
 Alexey Borzenkov <snaury@gmail.com>
 Amrut Joshi <amrut.joshi@gmail.com>
 Andrei Vieru <euvieru@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index f7b317140f..64a7f24567 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -38,6 +38,7 @@ Albert Strasheim <fullung@gmail.com>
 Aleksandar Dezelin <dezelin@gmail.com>
 Alex Brainman <alex.brainman@gmail.com>
 Alexander Orlov <alexander.orlov@loxal.net>
+Alexander Reece <awreece@gmail.com>
 Alexey Borzenkov <snaury@gmail.com>
 Amrut Joshi <amrut.josh@gmail.com>
 Andrei Vieru <euvieru@gmail.com>

コアとなるコードの解説

上記の差分は、Gitの標準的なフォーマットで表示されています。

  • --- a/AUTHORS+++ b/AUTHORS は、それぞれ変更前のAUTHORSファイルと変更後のAUTHORSファイルを示しています。CONTRIBUTORSファイルについても同様です。
  • @@ -14,6 +14,7 @@ のような行は、変更が加えられたファイルのチャンク(塊)を示します。-14,6 は元のファイルで14行目から6行が対象であることを意味し、+14,7 は変更後のファイルで14行目から7行が対象であることを意味します。これは、1行が追加されたことを示しています。
  • 行の先頭に+が付いている行は、新しく追加された行を示します。

このコミットでは、以下の2行がそれぞれのファイルに追加されています。

  • +Alexander Reece <awreece@gmail.com>

これは、Alexander Reece氏の名前とメールアドレスが、それぞれのファイルの適切な位置(アルファベット順)に挿入されたことを意味します。この変更自体はコードの機能に影響を与えるものではなく、プロジェクトの管理と法的な側面に関連するものです。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのCLAに関する公式ドキュメント
  • Goプロジェクトの貢献ガイドライン
  • Google Developers Contributor License Agreements ウェブサイト