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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに新しい貢献者であるAlex Jin氏を追加するものです。これは、Goプロジェクトへの貢献者がContributor License Agreement (CLA)に署名したことを記録するための、典型的な管理上の変更です。

コミット

commit beb6efa0fb4f2389d677cf8d3e650dff0b74cfd9
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Mon Jun 17 16:42:15 2013 -0700

    A+C: Alex Jin (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/10286045

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

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

元コミット内容

diff --git a/AUTHORS b/AUTHORS
index b0d3113b6b..0785ba51d3 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -16,6 +16,7 @@ Albert Strasheim <fullung@gmail.com>
 Alberto García Hierro <alberto@garciahierro.com> <alberto.garcia.hierro@gmail.com>
 Aleksandar Dezelin <dezelin@gmail.com>
 Alex Brainman <alex.brainman@gmail.com>
+Alex Jin <toalexjin@gmail.com>
 Alexander Orlov <alexander.orlov@loxal.net>
 Alexander Reece <awreece@gmail.com>
 Alexander Surma <surma@surmair.de>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index eff198dff9..83a9f5f71c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -43,6 +43,7 @@ Alberto García Hierro <alberto@garciahierro.com> <alberto.garcia.hierro@gmail.c
 Aleksandar Dezelin <dezelin@gmail.com>
 Alex Brainman <alex.brainman@gmail.com>
 Alex Bramley <abramley@google.com>
+Alex Jin <toalexjin@gmail.com>
 Alexander Orlov <alexander.orlov@loxal.net>
 Alexander Reece <awreece@gmail.com>
 Alexander Surma <surma@surmair.de>

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける知的財産権の管理と貢献者の権利の明確化があります。Goのような大規模なオープンソースプロジェクトでは、多くの個人や企業がコードベースに貢献します。これらの貢献がプロジェクトのライセンスの下で適切に利用されることを保証するため、多くのプロジェクトでは「Contributor License Agreement (CLA)」の署名を求めています。

Alex Jin氏がGoプロジェクトに貢献するにあたり、個人のCLAに署名したため、その事実をプロジェクトの公式な記録であるAUTHORSファイルとCONTRIBUTORSファイルに追記する必要がありました。これは、将来的なライセンス問題を防ぎ、プロジェクトの健全性を保つための標準的な手続きです。コミットメッセージにあるGenerated by addca.は、CLAの追加を自動化するツールによってこの変更が生成されたことを示唆しています。

前提知識の解説

Contributor License Agreement (CLA)

Contributor License Agreement (CLA)は、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献の著作権をプロジェクトの所有者(または指定された団体)に譲渡するか、または特定のライセンスの下で利用することを許可する法的な合意書です。

CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するのか、あるいはどのような条件で利用が許可されるのかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの一貫性: プロジェクト全体が単一のライセンス(例: Apache License, MIT Licenseなど)の下で配布されることを保証します。もしCLAがなければ、個々の貢献が異なるライセンスを持つ可能性があり、ライセンスの複雑性が増し、利用者がプロジェクトを利用しにくくなる可能性があります。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを再ライセンスしたり、商用利用したりする柔軟性を持つことを可能にします。これは、プロジェクトの資金調達や商業的な展開において重要となる場合があります。

Goプロジェクトの場合、Googleがプロジェクトを所有しており、貢献者は個人のCLAに署名することで、その貢献がGoプロジェクトのライセンス(通常はBSDライセンス)の下で利用されることを許可します。

AUTHORSファイルと CONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、AUTHORSCONTRIBUTORSといったテキストファイルをリポジトリ内に保持しています。

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を保持する個人や団体をリストアップするために使用されます。
  • CONTRIBUTORSファイル: プロジェクトにコード、ドキュメント、バグ報告、テストなど、何らかの形で貢献したすべての個人をリストアップするために使用されます。

これらのファイルは、プロジェクトの歴史と貢献者を可視化し、コミュニティの努力を認識する役割も果たします。新しい貢献者がCLAに署名し、その貢献が受け入れられると、通常これらのファイルに名前が追加されます。

技術的詳細

このコミットは、Go言語のランタイムやコンパイラ、標準ライブラリといったコアな機能に直接的な技術的変更を加えるものではありません。これは、プロジェクトの管理と法的な側面に関わる変更です。具体的には、Goプロジェクトのソースコードリポジトリ内に存在する、貢献者情報を記録する2つのプレーンテキストファイルAUTHORSCONTRIBUTORSに、新しい行を追加しています。

変更内容は非常にシンプルで、既存のリストに新しいエントリをアルファベット順に挿入しているだけです。これは、Gitの差分(diff)を見ても明らかなように、既存のコードのロジックや振る舞いに影響を与えるものではありません。

コミットメッセージのGenerated by addca.という記述は、この変更が手動で行われたのではなく、CLAの署名プロセスと連携した自動化されたスクリプトまたはツール(addcaはおそらく "add Contributor Agreement" の略)によって生成されたことを示唆しています。これは、大規模なプロジェクトで多数の貢献者を効率的に管理するための一般的なプラクティスです。

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

このコミットにおける「コアとなるコード」は、Goプロジェクトの貢献者情報を記録する以下の2つのテキストファイルです。

  1. AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -16,6 +16,7 @@ Albert Strasheim <fullung@gmail.com>
     Alberto García Hierro <alberto@garciahierro.com> <alberto.garcia.hierro@gmail.com>
     Aleksandar Dezelin <dezelin@gmail.com>
     Alex Brainman <alex.brainman@gmail.com>
    +Alex Jin <toalexjin@gmail.com>
     Alexander Orlov <alexander.orlov@loxal.net>
     Alexander Reece <awreece@gmail.com>
     Alexander Surma <surma@surmair.de>
    

    この変更により、16行目の後にAlex Jin <toalexjin@gmail.com>という行が追加されています。

  2. CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -43,6 +43,7 @@ Alberto García Hierro <alberto@garciahierro.com> <alberto.garcia.hierro@gmail.c
     Aleksandar Dezelin <dezelin@gmail.com>
     Alex Brainman <alex.brainman@gmail.com>
     Alex Bramley <abramley@google.com>
    +Alex Jin <toalexjin@gmail.com>
     Alexander Orlov <alexander.orlov@loxal.net>
     Alexander Reece <awreece@gmail.com>
     Alexander Surma <surma@surmair.de>
    

    この変更により、43行目の後にAlex Jin <toalexjin@gmail.com>という行が追加されています。

コアとなるコードの解説

これらのファイルは、Goプロジェクトへの貢献者の名前と連絡先(メールアドレス)を記録するためのものです。

  • AUTHORSファイルは、プロジェクトの主要な作者や、著作権の帰属に関する情報を含んでいます。
  • CONTRIBUTORSファイルは、コード、ドキュメント、バグ報告など、何らかの形でプロジェクトに貢献したすべての個人を網羅的にリストアップしています。

これらのファイルに名前が追加されることは、その個人がGoプロジェクトのContributor License Agreement (CLA)に同意し、その貢献がプロジェクトのライセンスの下で適切に利用されることを許可したことを公式に記録する意味合いがあります。これにより、プロジェクトの法的な健全性が保たれ、将来的なライセンス関連の問題を未然に防ぐことができます。

このコミット自体は、Go言語の機能やパフォーマンスに直接的な影響を与えるものではなく、プロジェクトの管理とガバナンスの側面を強化するためのものです。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Contributor License Agreement (CLA)に関する一般的な情報 (Wikipediaなど):
  • コミットメッセージと差分情報 (./commit_data/16589.txtの内容)
  • Goプロジェクトの公式ドキュメント (貢献ガイドラインなど)
  • Google検索による「Go Contributor License Agreement」関連情報