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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるGraham King氏の名前を追加するものです。これは、Graham King氏がGoプロジェクトへの貢献を可能にするために、個人貢献者ライセンス契約(Individual CLA)に署名したことを示すものです。コミットメッセージにあるaddcaは、このプロセスを自動化するためのツールであると推測されます。

コミット

commit 79b2832dd9ee49d933b1b0bbeb7e368c308d08c8
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Thu Feb 27 09:35:06 2014 -0800

    A+C: Graham King (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/68930047
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 80d552b0a8..54af7a411b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -155,6 +155,7 @@ Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
 Giles Lean <giles.lean@pobox.com>
 Google Inc.
 Gordon Klaus <gordon.klaus@gmail.com>
+Graham King <graham4king@gmail.com>
 Graham Miller <graham.miller@gmail.com>
 Greg Ward <greg@gerg.ca>
 Gustav Paul <gustav.paul@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index efce0cadfc..bc268762ff 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -221,6 +221,7 @@ Gerasimos Dimitriadis <gedimitr@gmail.com>
 Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
 Giles Lean <giles.lean@pobox.com>
 Gordon Klaus <gordon.klaus@gmail.com>
+Graham King <graham4king@gmail.com>
 Graham Miller <graham.miller@gmail.com>
 Greg Ward <greg@gerg.ca>
 Gustav Paul <gustav.paul@gmail.com>

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

https://github.com/golang/go/commit/79b2832dd9ee49d933b1b0bbeb7e368c308d08c8

元コミット内容

このコミットは、Goプロジェクトのソースコードリポジトリ内のAUTHORSファイルとCONTRIBUTORSファイルに、Graham King <graham4king@gmail.com>という行を追加するものです。これは、新しい貢献者がプロジェクトに加わる際に、その貢献者の名前を公式に記録するための標準的な手順です。

変更の背景

この変更の背景には、オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトにおける「貢献者ライセンス契約(Contributor License Agreement, CLA)」の重要性があります。

多くのオープンソースプロジェクトでは、外部からのコード貢献を受け入れる際に、貢献者に対してCLAへの署名を求めます。CLAは、貢献されたコードの著作権に関する明確な法的枠組みを提供し、プロジェクトの所有者(この場合はGoogle)がそのコードをプロジェクトのライセンス(Goの場合はBSDライセンス)の下で配布し、将来的に必要に応じてライセンスを変更する権利を持つことを保証します。

このコミットは、Graham King氏がGoプロジェクトの個人CLAに署名し、その結果として彼の名前が正式な貢献者リストに追加されたことを示しています。コミットメッセージにあるGenerated by addca.は、この追加がaddcaというツールによって自動的に行われたことを示唆しており、これはCLA署名プロセスの一部として、貢献者リストの更新が自動化されていることを意味します。これにより、手作業によるミスを防ぎ、効率的に貢献者情報を管理できます。

前提知識の解説

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

CLAは、個人または企業がオープンソースプロジェクトにコード、ドキュメント、またはその他のコンテンツを貢献する際に署名する法的文書です。CLAの主な目的は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、CLAは貢献者がその貢献の著作権をプロジェクトの所有者(または特定の財団)に譲渡するか、またはプロジェクトの所有者がその貢献を使用、変更、配布、サブライセンスする永続的で取り消し不能な権利を付与することを定めます。
  2. ライセンスの柔軟性: プロジェクトの所有者が、将来的にプロジェクトのライセンスを変更する際に、すべての貢献されたコードに対してその新しいライセンスを適用できることを保証します。これは、プロジェクトが成長し、進化するにつれて、より適切なライセンスモデルに移行する必要が生じた場合に非常に重要です。
  3. 特許の保護: 一部のCLAには、貢献者が自身の貢献に含まれる特許をプロジェクトの所有者やユーザーに対して行使しないことを約束する条項が含まれています。これにより、プロジェクトのユーザーが特許侵害の訴訟に巻き込まれるリスクを軽減します。
  4. 法的リスクの軽減: プロジェクトの所有者は、貢献されたコードに関する法的紛争(例えば、著作権侵害の主張)から保護されます。CLAは、貢献されたコードが貢献者自身のオリジナル作品であること、または貢献者がそのコードを貢献する権利を持っていることを保証するものです。

Goプロジェクトのような大規模で重要なオープンソースプロジェクトでは、法的リスクを最小限に抑え、プロジェクトの長期的な健全性を確保するためにCLAが採用されています。

AUTHORSファイルとCONTRIBUTORSファイル

オープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、慣習的にAUTHORSCONTRIBUTORSといったテキストファイルがリポジトリのルートに置かれることがあります。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、著作権を保持する個人や団体がリストされます。このファイルは、プロジェクトの著作権表示と密接に関連していることが多いです。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人がリストされます。これには、コードの貢献者だけでなく、ドキュメントの作成者、バグ報告者、テスター、翻訳者なども含まれる場合があります。このファイルは、プロジェクトへの貢献を認識し、感謝を示すためのものです。

これらのファイルは、プロジェクトの透明性を高め、コミュニティの努力を可視化する役割も果たします。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな技術的側面には直接的な変更を加えていません。その代わりに、プロジェクトの管理と法的な側面に関連するメタデータファイルを更新しています。

AUTHORSファイルとCONTRIBUTORSファイルは、単なるプレーンテキストファイルであり、特定のフォーマット規則に従って貢献者の名前と連絡先情報(通常はメールアドレス)が記述されています。このコミットでは、これらのファイルに新しい行を追加することで、Graham King氏がGoプロジェクトの正式な貢献者として認識されたことを記録しています。

コミットメッセージのGenerated by addca.という記述は、この変更が手動ではなく、addcaというツールによって自動生成されたことを示しています。このようなツールは、CLA署名プロセスと連携し、署名が完了した貢献者の情報を自動的にこれらのファイルに反映させることで、管理の手間を省き、ヒューマンエラーを防ぐ役割を担っています。これは、大規模なオープンソースプロジェクトにおいて、多数の貢献者を効率的に管理するための一般的なプラクティスです。

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

diff --git a/AUTHORS b/AUTHORS
index 80d552b0a8..54af7a411b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -155,6 +155,7 @@ Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
 Giles Lean <giles.lean@pobox.com>
 Google Inc.
 Gordon Klaus <gordon.klaus@gmail.com>
+Graham King <graham4king@gmail.com>
 Graham Miller <graham.miller@gmail.com>
 Greg Ward <greg@gerg.ca>
 Gustav Paul <gustav.paul@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index efce0cadfc..bc268762ff 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -221,6 +221,7 @@ Gerasimos Dimitriadis <gedimitr@gmail.com>
 Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
 Giles Lean <giles.lean@pobox.com>
 Gordon Klaus <gordon.klaus@gmail.com>
+Graham King <graham4king@gmail.com>
 Graham Miller <graham.miller@gmail.com>
 Greg Ward <greg@gerg.ca>
 Gustav Paul <gustav.paul@gmail.com>

コアとなるコードの解説

上記の差分が示すように、このコミットによる変更は非常に単純です。

  1. AUTHORSファイルへの追加: AUTHORSファイルにおいて、Gordon Klaus <gordon.klaus@gmail.com>の行の直後に、+Graham King <graham4king@gmail.com>という新しい行が追加されています。これは、Graham King氏がGoプロジェクトの正式な作者の一人として認識されたことを示します。
  2. CONTRIBUTORSファイルへの追加: 同様に、CONTRIBUTORSファイルにおいても、Gordon Klaus <gordon.klaus@gmail.com>の行の直後に、+Graham King <graham4king@gmail.com>という新しい行が追加されています。これは、Graham King氏がGoプロジェクトに貢献した人々の一員として記録されたことを意味します。

これらの変更は、Goのコードベース自体に機能的な影響を与えるものではなく、プロジェクトの管理と法的なコンプライアンスを目的としたメタデータの更新です。新しい貢献者がCLAに署名し、その情報がシステムに登録された結果として、自動的に生成された変更であると理解できます。

関連リンク

参考にした情報源リンク