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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者であるFolke Behrens氏を追加するものです。これは、Goプロジェクトへの貢献を開始する際に、Google Contributor License Agreement (CLA) に同意したことを示すための典型的な手続きの一部です。

コミット

commit 226e1eac031c304c6fe271f46e21804c00794e57
Author: Andrew Gerrand <adg@golang.org>
Date:   Thu Aug 1 10:28:37 2013 +1000

    C: add Folke Behrens (Google CLA)
    
    R=golang-dev, dsymonds
    CC=golang-dev
    https://golang.org/cl/12208043

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

https://github.com/golang/go/commit/226e1eac031c304c6fe271f46e21804c00794e57

元コミット内容

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 111aaa1cb8..d6cec12eed 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -179,6 +179,7 @@ Fazlul Shahriar <fshahriar@gmail.com>
 Firmansyah Adiputra <frm.adiputra@gmail.com>
 Florian Uekermann <florian@uekermann-online.de> <f1@uekermann-online.de>
 Florian Weimer <fw@deneb.enyo.de>
+Folke Behrens <folke@google.com>
 Francesc Campoy <campoy@golang.org>
 Francisco Souza <franciscossouza@gmail.com>
 Frederick Kelly Mayle III <frederickmayle@gmail.com>

変更の背景

このコミットの背景には、オープンソースプロジェクト、特にGoogleが主導するGoのような大規模プロジェクトにおける貢献の管理と法的な側面があります。

  1. 貢献者の追跡: CONTRIBUTORSファイルは、プロジェクトにコード、ドキュメント、その他の形で貢献した個人や組織を記録するためのものです。これは、プロジェクトの歴史と貢献者を透明にする役割を果たします。
  2. Contributor License Agreement (CLA) の遵守: コミットメッセージにある「Google CLA」は、Google Contributor License Agreement (貢献者ライセンス同意書) を指します。GoプロジェクトのようなGoogleが管理するオープンソースプロジェクトでは、貢献者がコードを提出する前にCLAに署名することが求められます。CLAは、貢献されたコードの著作権がプロジェクトの所有者(この場合はGoogle)に適切に譲渡されるか、またはプロジェクトがそのコードを使用、配布、変更するための永続的で取り消し不能なライセンスを付与されることを保証するための法的な文書です。これにより、プロジェクトは将来的な著作権侵害の訴訟リスクから保護され、コードベースのライセンスの一貫性を維持できます。
  3. 貢献プロセスの標準化: 新しい貢献者がCLAに同意すると、その名前がCONTRIBUTORSファイルに追加されるのが一般的な慣行です。これは、貢献者が正式にプロジェクトの貢献者コミュニティの一員として認識されたことを示します。

したがって、このコミットは、Folke Behrens氏がGoプロジェクトへの貢献を開始するために必要な法的要件(CLAへの同意)を満たし、その結果として貢献者リストに名前が追加されたことを示しています。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、オープンソースプロジェクトにおいて、貢献者がそのプロジェクトに提出するコードやその他の著作物に関する権利をプロジェクトの所有者(または特定の財団)に付与するための法的な合意書です。

CLAの主な目的と重要性:

  • 著作権の明確化: 貢献されたコードの著作権が誰に帰属するのか、またはプロジェクトがそのコードをどのように利用できるのかを明確にします。これにより、将来的な著作権に関する紛争を防ぎます。
  • ライセンスの一貫性: プロジェクト全体のコードベースが単一のライセンス(例: Apache License, MIT License)の下で配布されることを保証します。個々の貢献者が異なるライセンスでコードを提出することを防ぎ、プロジェクトのライセンスモデルをシンプルに保ちます。
  • 訴訟リスクの軽減: 貢献されたコードが第三者の著作権を侵害していた場合でも、CLAによってプロジェクトの所有者がそのコードを使用する権利を法的に保護されていることを示し、訴訟リスクを軽減します。
  • 再ライセンスの可能性: 一部のCLA(特に著作権譲渡型)では、プロジェクトの所有者が将来的にプロジェクトのライセンスを変更する権利を持つことがあります。これは、プロジェクトの長期的な持続可能性や戦略的な変更に柔軟性をもたらします。

CLAの種類:

  • 著作権譲渡型 (Copyright Assignment): 貢献者がコードの著作権をプロジェクトの所有者(例: Google, Apache Software Foundation)に完全に譲渡します。これにより、所有者はコードに対して最も広範な権利を持ちます。
  • ライセンス付与型 (License Grant): 貢献者は著作権を保持したまま、プロジェクトの所有者に対して、コードを使用、配布、変更、サブライセンスする永続的で取り消し不能な広範なライセンスを付与します。GoプロジェクトでGoogleが採用しているCLAは、このライセンス付与型に近い形式であると考えられます。

CONTRIBUTORSファイル

CONTRIBUTORSファイル(またはAUTHORSファイルなど、類似の名称のファイル)は、多くのオープンソースプロジェクトで見られるテキストファイルです。このファイルには、プロジェクトに何らかの形で貢献した個人や組織の名前がリストアップされます。

CONTRIBUTORSファイルの役割:

  • 貢献者の認識: プロジェクトの成功に貢献した人々を公に認識し、感謝の意を示す場となります。
  • 透明性: プロジェクトの貢献者ベースを透明にし、誰がプロジェクトに関わっているのかをコミュニティに示します。
  • 歴史的記録: プロジェクトの進化とともに、貢献者のリストも更新され、プロジェクトの歴史の一部として機能します。
  • 法的な補助: CLAと組み合わせて、特定の貢献が誰によって行われたのかを追跡するのに役立つ場合があります。

GoプロジェクトのCONTRIBUTORSファイルは、通常、貢献者の名前と、場合によってはメールアドレスや所属が記載されています。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな技術要素に直接的な変更を加えるものではありません。技術的な詳細としては、以下の点が挙げられます。

  1. ファイル形式: CONTRIBUTORSファイルは、単純なプレーンテキストファイルであり、各行に貢献者の情報が記述されています。このコミットでは、既存のアルファベット順のリストに新しいエントリが追加されています。
  2. 差分 (Diff): diff --git a/CONTRIBUTORS b/CONTRIBUTORS の出力は、Gitがファイルの変更をどのように記録するかを示しています。
    • index 111aaa1cb8..d6cec12eed 100644: これは、変更前と変更後のファイルのGitオブジェクトのハッシュと、ファイルのパーミッション(100644は通常のファイルを示します)を示しています。
    • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS: それぞれ変更前のファイルと変更後のファイルを示します。
    • @@ -179,6 +179,7 @@: これは「hunk header」と呼ばれ、変更がファイルのどこで行われたかを示します。-179,6は元のファイルで179行目から6行が対象であることを意味し、+179,7は変更後のファイルで179行目から7行が対象であることを意味します。つまり、この範囲で1行が追加されたことを示唆しています。
    • +Folke Behrens <folke@google.com>: 行の先頭の+は、この行が新しく追加されたことを示します。

この変更は、Goプロジェクトのビルドシステムやテストスイートに影響を与えるものではなく、純粋にプロジェクトのメタデータに関する更新です。このような変更は、通常、プロジェクトの管理者が手動で、または貢献プロセスを自動化するツールによって行われます。

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

変更はCONTRIBUTORSファイルの一箇所のみです。

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -179,6 +179,7 @@ Fazlul Shahriar <fshahriar@gmail.com>
 Firmansyah Adiputra <frm.adiputra@gmail.com>
 Florian Uekermann <florian@uekermann-online.de> <f1@uekermann-online.de>
 Florian Weimer <fw@deneb.enyo.de>
+Folke Behrens <folke@google.com>
 Francesc Campoy <campoy@golang.org>
 Francisco Souza <franciscossouza@gmail.com>
 Frederick Kelly Mayle III <frederickmayle@gmail.com>

具体的には、CONTRIBUTORSファイルの179行目付近に、以下の行が追加されました。

Folke Behrens <folke@google.com>

コアとなるコードの解説

追加された行 Folke Behrens <folke@google.com> は、Goプロジェクトに新しく貢献者として加わったFolke Behrens氏の名前とメールアドレスを示しています。これは、彼がGoogle CLAに同意し、Goプロジェクトへの貢献を開始する準備が整ったことをプロジェクトの公式な記録として残すものです。

この行自体は実行可能なコードではなく、プロジェクトのドキュメントまたはメタデータの一部と見なされます。その存在は、プロジェクトのガバナンスと法的な枠組みが適切に機能していることを示唆しています。

関連リンク

参考にした情報源リンク