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

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

このコミットは、Goプロジェクトの貢献者リストに新しいエントリを追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにPaul Hammond氏の名前とメールアドレスが追加されています。これは、Paul Hammond氏がGoプロジェクトへの貢献を開始するにあたり、個人貢献者ライセンス契約(Individual CLA)を締結したことを示すものです。

コミット

commit e452c44b365ff545986112aabeeed6cd547cbb21
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Sun Feb 2 13:01:10 2014 +0100

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

diff --git a/AUTHORS b/AUTHORS
index a30fa742fa..f9d36f7f2d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -287,6 +287,7 @@ Patrick Gavlin <pgavlin@gmail.com>
 Patrick Higgins <patrick.allen.higgins@gmail.com>
 Patrick Mylund Nielsen <patrick@patrickmn.com>
 Patrick Smith <pat42smith@gmail.com>
+Paul Hammond <paul@paulhammond.org>
 Paul Lalonde <paul.a.lalonde@gmail.com>
 Paul Sbarra <Sbarra.Paul@gmail.com>
 Paul van Brouwershaven <paul@vanbrouwershaven.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 12ae517a98..d6db9bfb69 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -406,6 +406,7 @@ Patrick Mylund Nielsen <patrick@patrickmn.com>
 Patrick Smith <pat42smith@gmail.com>
 Paul Borman <borman@google.com>
 Paul Chang <paulchang@google.com>
+Paul Hammond <paul@paulhammond.org>
 Paul Lalonde <paul.a.lalonde@gmail.com>
 Paul Sbarra <Sbarra.Paul@gmail.com>
 Paul van Brouwershaven <paul@vanbrouwershaven.com>

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

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

元コミット内容

このコミットの目的は、Paul Hammond氏をGoプロジェクトの貢献者として正式に登録することです。コミットメッセージの「A+C: Paul Hammond (individual CLA)」は、「Add to AUTHORS and CONTRIBUTORS: Paul Hammond (個人貢献者ライセンス契約)」を意味します。これは、Paul Hammond氏がGoプロジェクトにコードを貢献するための法的な手続きを完了したことを示しています。

コミットはaddcaというツールによって生成されたと明記されており、これは貢献者ライセンス契約の管理と、それに関連するファイル(AUTHORSCONTRIBUTORSなど)の更新を自動化するための内部ツールであると推測されます。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、知的財産権の管理と保護が非常に重要です。このため、プロジェクトにコードを貢献するすべての個人または企業は、通常、貢献者ライセンス契約(Contributor License Agreement, CLA)に署名することが求められます。

CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトのライセンス(Goの場合はBSDライセンス)の下でその貢献を使用、複製、変更、配布する権利をプロジェクトの所有者(この場合はGoogle)に付与する法的な合意です。これにより、プロジェクトの所有者は、将来的にライセンスに関する紛争が発生するリスクを最小限に抑え、プロジェクトのコードベースの健全性を維持することができます。

このコミットは、Paul Hammond氏がGoプロジェクトへの貢献を開始する準備が整い、必要なCLAを締結したという背景に基づいています。

前提知識の解説

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

CLAは、オープンソースプロジェクトにおいて、貢献者が自身のコードに対する著作権をプロジェクトに譲渡するか、またはプロジェクトがそのコードを特定のライセンスの下で使用する権利を付与する法的な文書です。主な目的は以下の通りです。

  1. 知的財産権の明確化: 誰がコードの著作権を所有し、誰がそれを使用する権利を持つかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの柔軟性: プロジェクトの所有者が、将来的にプロジェクトのライセンスを変更する際に、すべての貢献者の同意を得る必要がなくなります。これは、プロジェクトの長期的な持続可能性にとって重要です。
  3. プロジェクトの保護: 悪意のある貢献や、著作権を侵害するコードの混入を防ぐための法的基盤を提供します。

CLAには、個人が署名する「個人CLA (Individual CLA)」と、企業が署名する「企業CLA (Corporate CLA)」の2種類があります。このコミットでは、Paul Hammond氏が「individual CLA」を締結したことが示されています。

AUTHORS および CONTRIBUTORS ファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した個人や組織の名前を記録するためのテキストファイルが慣習的に存在します。

  • AUTHORS: 通常、プロジェクトの主要な作者や初期の貢献者をリストアップします。
  • CONTRIBUTORS: プロジェクトに何らかの形で貢献したすべての個人や組織をリストアップします。これには、コードの貢献だけでなく、ドキュメントの作成、バグ報告、テスト、デザインなど、幅広い貢献が含まれることがあります。

これらのファイルは、プロジェクトの歴史とコミュニティを可視化する役割も果たします。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな技術的変更を含むものではありません。むしろ、プロジェクトの管理とガバナンスに関連する変更です。

コミットメッセージにあるGenerated by addca.という記述は、この変更が手動で行われたのではなく、addcaという自動化ツールによって行われたことを示唆しています。addcaは「Add Contributor Agreement」のような意味合いを持つ内部スクリプトまたはツールであると推測されます。このようなツールは、CLAの署名が確認された後に、自動的に関連するファイル(AUTHORS, CONTRIBUTORSなど)を更新し、対応するコミットメッセージを生成するために使用されます。これにより、手作業によるミスを防ぎ、プロセスを効率化できます。

また、コミットメッセージには以下の情報が含まれています。

  • TBR=iant: 「To Be Reviewed by iant」の略で、Ian Lance Taylor氏によるレビューを要求していることを示します。
  • R=gobot: 「Reviewed by gobot」の略で、自動レビューボットであるgobotによるレビューが完了したことを示します。
  • CC=golang-codereviews: この変更がgolang-codereviewsメーリングリストにCCされていることを示します。これは、Goプロジェクトのコードレビュープロセスの一部です。
  • https://golang.org/cl/59450044: このコミットに対応するGerrit Code Reviewのチェンジリスト(CL)へのリンクです。Goプロジェクトでは、GitHubにプッシュされる前にGerritでコードレビューが行われます。

これらの情報は、Goプロジェクトの厳格なコードレビューと貢献管理プロセスの一部を示しています。

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

このコミットにおける「コアとなるコード」は、Go言語のソースコードそのものではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSです。

変更は以下の2つのファイルに対して行われています。

  1. AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -287,6 +287,7 @@ Patrick Gavlin <pgavlin@gmail.com>
     Patrick Higgins <patrick.allen.higgins@gmail.com>
     Patrick Mylund Nielsen <patrick@patrickmn.com>
     Patrick Smith <pat42smith@gmail.com>
    +Paul Hammond <paul@paulhammond.org>
     Paul Lalonde <paul.a.lalonde@gmail.com>
     Paul Sbarra <Sbarra.Paul@gmail.com>
     Paul van Brouwershaven <paul@vanbrouwershaven.com>
    

    このファイルにPaul Hammond <paul@paulhammond.org>という行が追加されています。

  2. CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -406,6 +406,7 @@ Patrick Mylund Nielsen <patrick@patrickmn.com>
     Patrick Smith <pat42smith@gmail.com>
     Paul Borman <borman@google.com>
     Paul Chang <paulchang@google.com>
    +Paul Hammond <paul@paulhammond.org>
     Paul Lalonde <paul.a.lalonde@gmail.com>
     Paul Sbarra <Sbarra.Paul@gmail.com>
     Paul van Brouwershaven <paul@vanbrouwershaven.com>
    

    このファイルにもPaul Hammond <paul@paulhammond.org>という行が追加されています。

コアとなるコードの解説

変更されたのは、単なるテキストファイルであり、Go言語のコードではありません。これらのファイルは、プロジェクトの歴史と貢献者を記録するためのものです。

  • AUTHORSファイルとCONTRIBUTORSファイルは、それぞれプロジェクトの作者と貢献者の名前とメールアドレスをアルファベット順にリストアップしています。
  • 追加された行は、Paul Hammond氏の名前と連絡先情報であり、彼がGoプロジェクトの正式な貢献者リストに加わったことを示しています。
  • これらのファイルへの追加は、Paul Hammond氏がGoプロジェクトにコードを提出する法的権利を得たことを意味し、今後の彼の貢献がプロジェクトのコードベースに統合される道を開きます。

関連リンク

参考にした情報源リンク

  • Goプロジェクトの公式ドキュメント(CLAに関する情報が含まれている可能性が高い)
  • 一般的なオープンソースプロジェクトにおけるCLAの概念に関する情報源
  • Gitのコミットメッセージの慣習に関する情報源