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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに新しいエントリを追加するものです。具体的には、Case Nelson氏が個人のContributor License Agreement (CLA) に署名したことを記録するために、これらのファイルに氏名とメールアドレスが追加されました。これは、Goプロジェクトへの貢献を開始する前に必要な管理上の手続きの一環です。

コミット

commit 3d4fc8d1594d8d8a2bce109d1cdf911cf11e27ea
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Sun Feb 2 12:51:22 2014 +0100

    A+C: Case Nelson (individual CLA)
    
    Generated by addca.
    
    TBR=iant
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/59430043

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

https://github.com/golang/go/commit/3d4fc8d1594d8d8a2bce109d1cdf911cf11e27ea

元コミット内容

A+C: Case Nelson (individual CLA)

Generated by addca.

TBR=iant
R=gobot
CC=golang-codereviews
https://golang.org/cl/59430043

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける知的財産権の管理と貢献者の法的保護という重要な側面があります。Goのような大規模なオープンソースプロジェクトでは、多数の個人や企業がコードベースに貢献します。これらの貢献が将来的にプロジェクトのライセンスや利用に問題を引き起こさないようにするため、プロジェクトはContributor License Agreement (CLA) を採用することが一般的です。

CLAは、貢献者が自身の貢献に対する著作権をプロジェクトの所有者(この場合はGoogle)に付与するか、または特定のライセンスの下で利用を許可することを法的に約束するものです。これにより、プロジェクトの所有者は、貢献されたコードを安心して利用、配布、再ライセンスできるようになり、将来的な著作権侵害の訴訟リスクを軽減できます。

Case Nelson氏がGoプロジェクトに貢献するにあたり、個人のCLAに署名したため、その事実をプロジェクトの公式記録であるAUTHORSおよびCONTRIBUTORSファイルに反映させる必要がありました。このコミットは、その管理上の手続きを自動化ツール(addca)によって実行した結果です。

前提知識の解説

Contributor License Agreement (CLA)

Contributor License Agreement (CLA) は、オープンソースプロジェクトにおいて、貢献者(コントリビューター)が自身のコード貢献に対する著作権をプロジェクトの所有者(または特定の団体)に譲渡するか、あるいは特定のライセンスの下で利用を許可することを約束する法的な合意書です。

CLAの主な目的と重要性:

  1. 知的財産権の明確化: プロジェクトに貢献されたすべてのコードの著作権がどこに帰属するかを明確にします。これにより、将来的にコードの利用や配布に関する法的紛争が発生するリスクを低減します。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスモデルを維持するために不可欠です。貢献されたコードが異なるライセンスで提供されることを防ぎ、プロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)の下で全てのコードが利用可能であることを保証します。
  3. 再ライセンスの可能性: プロジェクトの所有者が将来的にプロジェクトのライセンスを変更する必要が生じた場合、CLAによって貢献されたコードを新しいライセンスの下で再ライセンスする権限を持つことができます。これは、プロジェクトの長期的な持続可能性と柔軟性を確保するために重要です。
  4. 法的保護: プロジェクトの所有者と貢献者の双方を保護します。貢献者は自身の貢献がプロジェクトの意図する目的のために利用されることを保証され、プロジェクトの所有者は貢献されたコードに関する法的リスクから保護されます。

CLAには、個人が署名する「Individual CLA」と、企業がその従業員の貢献をカバーするために署名する「Corporate CLA」の2種類が一般的です。Goプロジェクトでは、Googleがプロジェクトの所有者であり、貢献者はGoogleのCLAに署名する必要があります。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために特定のファイルを使用します。GoプロジェクトにおけるAUTHORSCONTRIBUTORSファイルもその一例です。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、特に重要な貢献をした人々をリストアップするために使用されます。このファイルは、プロジェクトの歴史と主要な開発者を追跡するのに役立ちます。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップするために使用されます。これには、コードのコミットだけでなく、ドキュメントの改善、バグ報告、テストの作成、デザインの提案など、幅広い貢献が含まれる場合があります。このファイルは、コミュニティの努力を認識し、感謝を示すためのものです。

これらのファイルは、プロジェクトの透明性を高め、貢献者の努力を公に認める役割を果たします。

技術的詳細

このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのテキストファイル、AUTHORSCONTRIBUTORSに新しい行を追加する非常にシンプルな変更です。

  • AUTHORSファイルには、Case Nelson <case.nelson@gmail.com>という行が追加されました。
  • CONTRIBUTORSファイルにも、同様にCase Nelson <case.nelson@gmail.com>という行が追加されました。

コミットメッセージにあるA+C: Case Nelson (individual CLA)は、「Authors and Contributors: Case Nelson (individual CLA)」の略であり、Case Nelson氏が個人のCLAに署名したことを示しています。

Generated by addca.という記述は、この変更がaddcaというツールによって自動生成されたことを意味します。addcaは、おそらくGoogle内部またはGoプロジェクトで利用される、CLAの署名が完了した貢献者をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加するためのスクリプトまたはツールであると推測されます。これにより、手動での編集ミスを防ぎ、プロセスを効率化しています。

TBR=iantR=gobotCC=golang-codereviewsは、Goプロジェクトのコードレビュープロセスにおける慣習的な表記です。

  • TBR=iant: "To Be Reviewed by iant" の略で、Ian Lance Taylor氏がこの変更の最終承認者であることを示唆しています。
  • R=gobot: "Reviewed by gobot" の略で、自動化されたレビューボット(gobot)がこの変更をレビューしたことを示します。これは、管理上の変更であるため、自動化されたチェックが適用された可能性が高いです。
  • CC=golang-codereviews: この変更がgolang-codereviewsというメーリングリストまたはグループに通知されたことを示します。

https://golang.org/cl/59430043は、このコミットに対応するGerrit Code Reviewシステム上のチェンジリスト(CL)へのリンクです。GoプロジェクトはGerritを使用してコードレビューを行っており、すべてのコミットはGerrit上のCLに対応しています。

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

このコミットによって変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに対して1行ずつ追加が行われています。

diff --git a/AUTHORS b/AUTHORS
index 010251fab2..f0f36a7f3c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -68,6 +68,7 @@ Brian Ketelsen <bketelsen@gmail.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
 Carlos Castillo <cookieo9@gmail.com>
+Case Nelson <case.nelson@gmail.com>
 Casey Marshall <casey.marshall@gmail.com>
 ChaiShushan <chaishushan@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3a5f412c54..72b9a062e2 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -115,6 +115,7 @@ Carl Mastrangelo <notcarl@google.com>
 Carl Shapiro <cshapiro@google.com> <cshapiro@golang.org>
 Carlos Castillo <cookieo9@gmail.com>
 Cary Hull <chull@google.com>
+Case Nelson <case.nelson@gmail.com>
 Casey Marshall <casey.marshall@gmail.com>
 ChaiShushan <chaishushan@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>

コアとなるコードの解説

このコミットは、Goのランタイムや標準ライブラリのコード自体を変更するものではなく、プロジェクトの管理ファイルに対する更新です。

  • AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトのルートディレクトリに配置されているプレーンテキストファイルです。
  • これらのファイルは、プロジェクトの歴史的な記録として機能し、誰がプロジェクトに貢献したかを追跡するために使用されます。
  • 追加された行のフォーマットは、名前 <メールアドレス>という一般的な形式に従っています。これは、他の既存のエントリと一貫しています。

この変更は、Case Nelson氏がGoプロジェクトへの貢献を開始するための前提条件を満たしたことを示すものであり、今後のコード貢献が法的に適切に扱われるための基盤を整えるものです。技術的な複雑さはなく、純粋に管理上の更新として理解されます。

関連リンク

  • GoプロジェクトのCLAに関する情報: Goプロジェクトの公式ドキュメントや貢献ガイドラインには、CLAに関する詳細な情報が記載されているはずです。

参考にした情報源リンク