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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに新しい貢献者ChaiShushanを追加するものです。これは、彼が個別のContributor License Agreement (CLA)に署名したことを示すものであり、addcaツールによって自動生成されたコミットです。

コミット

commit 96c3e44d8d2fd73aed366b472b2ed5a6813bb784
Author: Andrew Gerrand <adg@golang.org>
Date:   Mon Jun 24 13:27:39 2013 +1000

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

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

https://github.com/golang/go/commit/96c3e44d8d2fd73aed366b472b2ed5a6813bb784

元コミット内容

このコミットは、AUTHORSファイルとCONTRIBUTORSファイルにChaiShushan <chaishushan@gmail.com>というエントリを追加しています。

具体的には、以下の変更が行われています。

diff --git a/AUTHORS b/AUTHORS
index eddaccbb7c..55c82ebebb 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -57,6 +57,7 @@ Caine Tighe <arctanofyourface@gmail.com>
 Caleb Spare <cespare@gmail.com>
 Carlos Castillo <cookieo9@gmail.com>
 Casey Marshall <casey.marshall@gmail.com>
+ChaiShushan <chaishushan@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>
 Chris Dollin <ehog.hedge@gmail.com>
 Chris Farmiloe <chrisfarms@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 7d199c2d83..ab4d86d3de 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -101,6 +101,7 @@ Carl Shapiro <cshapiro@google.com> <cshapiro@golang.org>
 Carlos Castillo <cookieo9@gmail.com>
 Cary Hull <chull@google.com>
 Casey Marshall <casey.marshall@gmail.com>
+ChaiShushan <chaishushan@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>
 Chris Dollin <ehog.hedge@gmail.com>
 Chris Farmiloe <chrisfarms@gmail.com>

変更の背景

このコミットの背景は、Goプロジェクトへの新しい貢献者であるChaiShushanが、プロジェクトにコードを貢献するための前提条件であるContributor License Agreement (CLA)に署名したことです。オープンソースプロジェクト、特にGoogleが主導するような大規模なプロジェクトでは、知的財産権の管理とライセンスの明確化のためにCLAの署名を求めることが一般的です。

CLAは、貢献者が自身の貢献物に対する著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、またはプロジェクトのライセンス(Goの場合はBSDライセンス)の下で利用することを許可することを保証する法的な合意です。これにより、プロジェクトの所有者は、将来的なライセンス変更や、貢献されたコードに関する法的な紛争が発生した場合に、そのコードを自由に利用・配布できることを保証されます。

このコミットメッセージにあるaddcaは、おそらくCLAの署名が確認された後に、自動的にAUTHORSおよびCONTRIBUTORSファイルを更新するための内部ツールであると考えられます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者(コントリビューター)が自身の作成したコードやドキュメントなどの貢献物に対する著作権を、プロジェクトの所有者や特定の団体に譲渡または許諾するための法的な契約です。

CLAの主な目的:

  1. 知的財産権の明確化: 誰がどのコードの著作権を保有しているかを明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンス(例: Apache License, MIT License, BSD Licenseなど)の下で配布されることを保証します。これにより、プロジェクトの利用者は、異なるライセンスのコードが混在することによる複雑さを回避できます。
  3. ライセンス変更の柔軟性: プロジェクトの所有者が将来的にライセンスを変更する際に、すべての貢献物に対してその変更を適用できる権利を確保します。CLAがない場合、ライセンス変更には過去のすべての貢献者からの個別の同意が必要となり、非常に困難になる可能性があります。
  4. 法的な保護: プロジェクトが第三者から著作権侵害で訴えられた場合、CLAはプロジェクトの所有者が貢献されたコードを合法的に使用していることを証明する助けとなります。

CLAの種類:

  • Individual CLA (ICLA): 個人がプロジェクトに貢献する際に署名するものです。このコミットのindividual CLAがこれに該当します。
  • Corporate CLA (CCLA): 企業が従業員を通じてプロジェクトに貢献する際に署名するものです。企業は、従業員の貢献物が企業の知的財産であり、その貢献物をプロジェクトに提供することを許可することを表明します。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や初期の貢献者、または特に重要な貢献をした人々をリストアップするために使用されます。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人や団体をリストアップするために使用されます。これには、コードのコミットだけでなく、バグ報告、ドキュメントの改善、テストの作成、翻訳など、幅広い貢献が含まれることがあります。

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

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな技術的側面に直接的な変更を加えるものではありません。これは、プロジェクトの管理と法務に関連する変更です。

AUTHORSファイルとCONTRIBUTORSファイルは、プレーンテキストファイルであり、通常は手動で、またはaddcaのような自動化されたスクリプトによって更新されます。これらのファイルは、Gitリポジトリの一部としてバージョン管理されており、プロジェクトの歴史とともに変更が追跡されます。

このコミットでは、既存のファイルに新しい行が追加される形で変更が加えられています。Gitのdiff出力からもわかるように、特定の行の間に新しい行が挿入されています。これは、ファイルの構造を維持しつつ、新しいエントリを追加する標準的な方法です。

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

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

  • AUTHORSファイル: 1行追加
  • CONTRIBUTORSファイル: 1行追加

追加された内容はどちらのファイルも同じで、ChaiShushan <chaishushan@gmail.com>です。

コアとなるコードの解説

このコミットには、Go言語のランタイムやライブラリの機能に影響を与えるような「コアとなるコード」の変更は含まれていません。変更されたファイルは、プロジェクトの管理情報の一部であり、Goプログラムの動作には直接関係しません。

AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトの歴史と貢献者を記録するためのものであり、Goコンパイラによって解釈されたり、Goプログラムの実行時にロードされたりすることはありません。これらは、人間がプロジェクトの貢献者を確認するために存在します。

したがって、このコミットに関する技術的なコード解説は、ファイルの変更内容が非常に単純であるため、これ以上の詳細な説明は不要です。

関連リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Go Contributor License Agreement (CLA)に関する情報(一般的な情報源、Goプロジェクト固有のCLAへのリンクは変更されている可能性があります):

参考にした情報源リンク

  • Goプロジェクトのコミット履歴
  • オープンソースプロジェクトにおけるCLAの一般的な概念に関する知識
  • Gitのdiff出力の解釈
  • GitHubのコミットページ