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

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

このコミットは、Go言語プロジェクトへの新たな貢献者であるJeremy Jackins氏を、プロジェクトの貢献者リストに追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルに彼の名前とメールアドレスが追記されています。これは、彼がIndividual Contributor License Agreement (CLA)に署名したことを示す「C+A」というプレフィックスがコミットメッセージに付与されていることから、CLAの要件を満たした上での追加であることがわかります。

コミット

commit 0d92614c73b9aaa392a174d218342dce1af183a7
Author: Robert Griesemer <gri@golang.org>
Date:   Fri Mar 9 11:19:10 2012 -0800

    C+A: added Jeremy Jackins (Individual CLA)
    
    R=golang-dev, bradfitz
    CC=golang-dev
    https://golang.org/cl/5783063

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

https://github.com/golang/go/commit/0d92614c73b9aaa392a174d218342dce1af183a7

元コミット内容

C+A: added Jeremy Jackins (Individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5783063

変更の背景

このコミットの背景には、Go言語プロジェクトへの新たな貢献者が現れ、その貢献者がプロジェクトの定める貢献者ライセンス契約(CLA: Contributor License Agreement)に署名したという事実があります。オープンソースプロジェクト、特にGoogleが主導するGoのような大規模プロジェクトでは、知的財産権の管理と将来的なライセンス問題の回避のために、貢献者に対してCLAへの署名を求めることが一般的です。Jeremy Jackins氏がCLAに署名したことで、彼の貢献がプロジェクトに正式に受け入れられる準備が整い、その記録として彼の情報がAUTHORSおよびCONTRIBUTORSファイルに追加されました。

前提知識の解説

コントリビューター・ライセンス・アグリーメント (CLA)

コントリビューター・ライセンス・アグリーメント(CLA)は、個人または企業がオープンソースプロジェクトにコード、ドキュメント、その他のコンテンツを貢献する際に、プロジェクトの所有者(またはその代表者)と貢献者の間で締結される法的文書です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードやコンテンツの著作権が誰に帰属するかを明確にします。多くの場合、貢献者はプロジェクト所有者に対して、貢献されたコンテンツを使用、複製、変更、配布する非独占的、永続的、取り消し不能なライセンスを付与します。これにより、プロジェクト所有者は将来的にライセンスに関する紛争に巻き込まれるリスクを低減できます。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスモデルを維持するために役立ちます。例えば、プロジェクトが特定のオープンソースライセンス(例: Apache License 2.0, MIT License)の下でリリースされている場合、CLAは貢献されたコードもそのライセンスの下で配布されることを保証します。
  3. 訴訟リスクの軽減: 貢献されたコードが第三者の著作権を侵害していた場合のリスクを軽減します。CLAには、貢献者が自身の貢献がオリジナルであり、第三者の権利を侵害していないことを保証する条項が含まれることがよくあります。

Go言語プロジェクトのようなGoogleが関与するプロジェクトでは、通常、GoogleがCLAの受領者となります。これにより、GoogleはGoプロジェクトのコードベース全体に対する明確な権利を確保し、将来的なライセンス変更や商用利用の可能性を担保します。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権表示の対象となる人々をリストアップするために使用されます。このファイルは、プロジェクトの著作権表示の一部として機能することがあります。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての人々(コードのコミット、バグ報告、ドキュメントの改善、翻訳など)をリストアップするために使用されます。AUTHORSファイルよりも広範な貢献者を含むことが一般的です。

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割も果たします。

技術的詳細

このコミットは、GoプロジェクトにおけるCLAの運用プロセスの一部を示しています。

  1. CLA署名の確認: Jeremy Jackins氏がIndividual CLAに署名したことが確認された後、このコミットが作成されました。CLAの署名プロセスは通常、オンラインフォームや電子署名サービスを通じて行われ、法務チームによって管理されます。
  2. 貢献者情報の追加: CLAが有効になった後、プロジェクトのメンテナ(この場合はRobert Griesemer氏)が、該当する貢献者の情報をAUTHORSファイルとCONTRIBUTORSファイルに追加します。これは、プロジェクトの公式な記録として機能します。
  3. コミットメッセージの慣習: コミットメッセージの冒頭にある「C+A:」は、Goプロジェクトにおける特定のコミットメッセージの慣習です。これは「Contributor + Agreement」を意味し、このコミットがCLAに関連する貢献者の追加であることを示唆しています。このようなプレフィックスは、コミット履歴を検索する際に、特定の種類の変更を素早く識別するのに役立ちます。
  4. コードレビューと承認: コミットメッセージのR=golang-dev, bradfitzCC=golang-devは、この変更がgolang-devメーリングリストとbradfitz氏によってレビューされ、承認されたことを示しています。これは、Goプロジェクトにおける通常のコードレビュープロセスに従っていることを意味します。
  5. Gerritへのリンク: https://golang.org/cl/5783063は、Goプロジェクトがコードレビューに利用しているGerritシステムへのリンクです。このリンクから、この変更がどのように提案され、レビューされたかの詳細な履歴を確認できます。

この一連のプロセスは、オープンソースプロジェクトが法的要件を満たしつつ、多数の貢献者からの協力を円滑に受け入れるための、確立されたワークフローを反映しています。

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

このコミットでは、以下の2つのファイルが変更されています。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、Jeremy Jackins氏の情報が1行ずつ追加されています。

diff --git a/AUTHORS b/AUTHORS
index 07acf71f22..403ed76d46 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -101,6 +101,7 @@ Jani Monoses <jani.monoses@ubuntu.com>
 Jaroslavas Počepko <jp@webmaster.ms>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org>
+Jeremy Jackins <jeremyjackins@gmail.com>
 Jim McGrath <jimmc2@gmail.com>
 Joe Poirier <jdpoirier@gmail.com>
 John Asmuth <jasmuth@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index b843e791b2..7c5ea0a33f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -149,6 +149,7 @@ Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
 Jaroslavas Počepko <jp@webmaster.ms>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>
+Jeremy Jackins <jeremyjackins@gmail.com>
 Jim McGrath <jimmc2@gmail.com>
 Joe Poirier <jdpoirier@gmail.com>
 Joel Sing <jsing@google.com>

コアとなるコードの解説

変更は非常にシンプルで、既存のリストに新しいエントリを追加するものです。

  • AUTHORSファイル:
    • +Jeremy Jackins <jeremyjackins@gmail.com> の行が追加されています。これは、Jeremy Jackins氏がGoプロジェクトの作者の一人として、または著作権表示の対象となる貢献者として認識されたことを示します。
  • CONTRIBUTORSファイル:
    • 同様に +Jeremy Jackins <jeremyjackins@gmail.com> の行が追加されています。これは、彼がGoプロジェクトに貢献した人物の一人として公式に記録されたことを意味します。

これらの変更は、Goプロジェクトのガバナンスと知的財産管理のプロセスにおいて、新しい貢献者を正式に認識し、記録するための標準的な手順です。これにより、プロジェクトの透明性が保たれ、将来的な法的問題が回避されます。

関連リンク

参考にした情報源リンク