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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい個人コントリビューターであるJosh Holland氏の情報を追加するものです。これは、オープンソースプロジェクトにおける一般的な管理タスクであり、新しい貢献者がプロジェクトにコードを提出する前に、Contributor License Agreement (CLA) に同意したことを記録するプロセスの一部です。

コミット

commit 063b074407185223ccdb2f5986243e027ff8cf8e
Author: Rob Pike <r@golang.org>
Date:   Thu Sep 27 15:47:18 2012 +1000

    CLA: Josh Holland <jrh@joshh.co.uk> individual contributor
    
    R=golang-dev, dsymonds
    CC=golang-dev
    https://golang.org/cl/6568059
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index a1043506d5..6764ac3dd5 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -129,6 +129,7 @@ Jonathan Wills <runningwild@gmail.com>
 Jongmin Kim <atomaths@gmail.com>
 Jose Luis Vázquez González <josvazg@gmail.com>
 Josh Goebel <dreamer3@gmail.com>
+Josh Holland <jrh@joshh.co.uk>
 Jukka-Pekka Kekkonen <karatepekka@gmail.com>
 Julian Phillips <julian@quantumfyre.co.uk>
 Julien Schmidt <google@julienschmidt.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d0696aac1c..ac2d3f77d5 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -197,6 +197,7 @@ Jongmin Kim <atomaths@gmail.com>
 Jos Visser <josv@google.com>
 Jose Luis Vázquez González <josvazg@gmail.com>
 Josh Goebel <dreamer3@gmail.com>
+Josh Holland <jrh@joshh.co.uk>
 Jukka-Pekka Kekkonen <karatepekka@gmail.com>
 Julian Phillips <julian@quantumfyre.co.uk>
 Julien Schmidt <google@julienschmidt.com>

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

https://github.com/golang/go/commit/063b074407185223ccdb2f5986243e027ff8cf8e

元コミット内容

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Josh Holland氏を個人コントリビューターとして追加するものです。コミットメッセージには「CLA: Josh Holland jrh@joshh.co.uk individual contributor」と明記されており、これは彼がContributor License Agreement (CLA) に署名したことを示しています。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。プロジェクトにコードを貢献する開発者は、通常、Contributor License Agreement (CLA) に署名することが求められます。CLAは、貢献されたコードの著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、またはプロジェクトがそのコードを特定のライセンスの下で使用、配布、変更する権利を付与することを保証する法的な合意です。

このコミットの背景には、Josh Holland氏がGoプロジェクトに何らかの貢献を行う準備が整い、その前提としてCLAに同意したという事実があります。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した人々を公式に認識し、記録するためのものです。CLAに同意した個人をこれらのファイルに追加することは、プロジェクトの法務要件を満たし、将来的なライセンス問題を防ぐための標準的な手続きです。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、貢献者がその貢献物(コード、ドキュメントなど)の著作権をプロジェクトの所有者(通常は企業や財団)に譲渡するか、またはプロジェクトがその貢献物を特定のライセンスの下で利用することを許可する法的な文書です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 誰がコードの著作権を所有しているかを明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスを適用できるようにします。これにより、プロジェクトの利用者がライセンスについて混乱することなく、安心してコードを利用できます。
  3. 再ライセンスの可能性: プロジェクトの所有者が将来的にプロジェクトのライセンスを変更する際に、貢献されたコードを新しいライセンスの下で再ライセンスする権利を確保します。これは、プロジェクトの長期的な持続可能性にとって重要です。

CLAは、Apache Software Foundation (ASF) やGoogleなどの大規模なオープンソースプロジェクトで広く採用されています。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や初期の貢献者、または特に重要な貢献をした人々をリストアップします。
  • CONTRIBUTORSファイル: より広範な貢献者、例えばバグ修正、ドキュメントの改善、小さな機能追加など、あらゆる種類の貢献をした人々をリストアップします。

これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの歴史とコミュニティの成長を記録する役割も果たします。Goプロジェクトでは、これら二つのファイルが併用されており、CLAに同意した個人が両方に記載されることで、その貢献が公式に認められることになります。

技術的詳細

このコミット自体は、Go言語のコードベースに対する機能的な変更ではなく、プロジェクトのメタデータ管理に関するものです。技術的な詳細としては、以下の点が挙げられます。

  1. テキストファイルの編集: AUTHORSCONTRIBUTORSはプレーンテキストファイルであり、新しい行を追加することで更新されます。Gitの差分(diff)を見ればわかるように、単に新しい名前とメールアドレスの行が既存のリストに挿入されています。
  2. Gitの追跡: これらのファイルはGitリポジトリによって追跡されており、変更は通常のコミットプロセスを通じて記録されます。これにより、誰がいつ貢献者リストに追加されたかの履歴が保持されます。
  3. コミットメッセージの慣習: コミットメッセージの冒頭に「CLA:」というプレフィックスが付いているのは、Goプロジェクトにおける特定のコミットメッセージの慣習に従ったものです。これは、このコミットがCLA関連の管理タスクであることを明確に示しています。また、「R=golang-dev, dsymonds」や「CC=golang-dev」は、コードレビューの担当者やCCリストを示しており、Goプロジェクトのレビュープロセスの一部です。
  4. Gerrit Change-ID: コミットメッセージの末尾にある「https://golang.org/cl/6568059」は、Goプロジェクトがコードレビューに利用しているGerritシステムにおけるチェンジリスト(Change-ID)へのリンクです。これにより、このコミットがどのようなレビュープロセスを経て承認されたかを追跡できます。

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

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

具体的には、以下の2つのファイルが変更されています。

  1. AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -129,6 +129,7 @@ Jonathan Wills <runningwild@gmail.com>
     Jongmin Kim <atomaths@gmail.com>
     Jose Luis Vázquez González <josvazg@gmail.com>
     Josh Goebel <dreamer3@gmail.com>
    +Josh Holland <jrh@joshh.co.uk>
     Jukka-Pekka Kekkonen <karatepekka@gmail.com>
     Julian Phillips <julian@quantumfyre.co.uk>
     Julien Schmidt <google@julienschmidt.com>
    

    この差分は、Josh Holland <jrh@joshh.co.uk>という行が追加されたことを示しています。

  2. CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -197,6 +197,7 @@ Jongmin Kim <atomaths@gmail.com>
     Jos Visser <josv@google.com>
     Jose Luis Vázquez González <josvazg@gmail.com>
     Josh Goebel <dreamer3@gmail.com>
    +Josh Holland <jrh@joshh.co.uk>
     Jukka-Pekka Kekkonen <karatepekka@gmail.com>
     Julian Phillips <julian@quantumfyre.co.uk>
     Julien Schmidt <google@julienschmidt.com>
    

    こちらも同様に、Josh Holland <jrh@joshh.co.uk>という行が追加されています。

コアとなるコードの解説

変更されたのは、単なるテキストファイルへの行追加です。

  • AUTHORSファイルとCONTRIBUTORSファイルは、それぞれプロジェクトの作者と貢献者の名前およびメールアドレスをアルファベット順にリストアップしています。
  • このコミットでは、既存のリストの適切な位置(Josh Goebelの後)に、新しい貢献者であるJosh Holland <jrh@joshh.co.uk>の情報を挿入しています。
  • この変更は、Josh Holland氏がGoプロジェクトのCLAに同意し、正式に貢献者として認められたことをプロジェクトの公式記録に反映させるためのものです。これにより、彼が今後Goプロジェクトに提出するコードは、CLAの条件の下で適切にライセンスされることが保証されます。

この種のコミットは、プロジェクトの健全な運営と法的なコンプライアンスを維持するために不可欠な、定期的に行われる管理作業の一部です。

関連リンク

参考にした情報源リンク