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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるHong Ruiqi氏の情報を追加するものです。具体的には、両ファイルにHong Ruiqi氏の名前とメールアドレスが1行ずつ追記されています。これは、Goプロジェクトへの貢献が認められ、個人としてのContributor License Agreement (CLA) が締結されたことを示しています。

コミット

  • コミットハッシュ: 3760213e6e29fd16ab07b41e94276e05ecd86aba
  • Author: Hong Ruiqi hongruiqi@gmail.com
  • Date: Sun Feb 12 23:42:34 2012 -0500

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

https://github.com/golang/go/commit/3760213e6e29fd16ab07b41e94276e05ecd86aba

元コミット内容

A+C: Hong Ruiqi (individual CLA)

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5652078

変更の背景

この変更の背景には、Goプロジェクトへの新たな貢献者が加わったことがあります。オープンソースプロジェクト、特に大規模なプロジェクトでは、コードの貢献を受け入れる際に、貢献者ライセンス契約(CLA)の締結を求めることが一般的です。これは、プロジェクトの知的財産権を保護し、将来的なライセンス変更や法的な問題が発生した場合に備えるための重要な手続きです。

Hong Ruiqi氏がGoプロジェクトにコードを貢献するにあたり、個人としてのCLAを締結したため、その貢献者としての情報がプロジェクトの公式な記録であるAUTHORSおよびCONTRIBUTORSファイルに追加されることになりました。これにより、プロジェクトの歴史と貢献者のリストが正確に保たれます。

前提知識の解説

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人・団体をリストアップするために使用されます。このファイルは、プロジェクトの著作権表示やライセンス情報と密接に関連していることが多いです。
  • CONTRIBUTORSファイル: プロジェクトにコード、ドキュメント、翻訳、バグ報告、テストなど、何らかの形で貢献したすべての個人をリストアップするために使用されます。AUTHORSファイルよりも広範な貢献者を含むことが一般的です。

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

Contributor License Agreement (CLA)

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

CLAを導入する主な理由は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権の帰属を明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの柔軟性: プロジェクトのライセンスを将来的に変更する必要が生じた場合でも、すべての貢献者から事前に許可を得ているため、スムーズに移行できます。これは、各貢献者から個別に許可を得る手間を省きます。
  3. 法的な保護: プロジェクトが第三者から著作権侵害で訴えられた場合、CLAによってプロジェクト側が貢献されたコードを合法的に利用していることを証明できます。

CLAには、個人が署名する「Individual CLA」と、企業が署名する「Corporate CLA」の2種類があります。このコミットでは「individual CLA」と明記されており、Hong Ruiqi氏が個人としてCLAを締結したことを示しています。GoプロジェクトはGoogleによって開始され、GoogleがCLAを管理しています。

技術的詳細

このコミットは、Goプロジェクトのソースコード管理において、新たな貢献者を正式に記録するための標準的な手順の一部です。技術的には、単にテキストファイルであるAUTHORSCONTRIBUTORSに新しい行を追加する操作です。

Gitの差分情報を見ると、以下のようになっています。

  • AUTHORSファイル (a/AUTHORSからb/AUTHORSへの変更):
    • @@ -81,6 +81,7 @@ は、変更がファイルの81行目から始まり、元の6行が変更後の7行になったことを示します。
    • +Hong Ruiqi <hongruiqi@gmail.com> の行が追加されています。これは、既存の貢献者リストのアルファベット順に挿入されたものと推測されます。
  • CONTRIBUTORSファイル (a/CONTRIBUTORSからb/CONTRIBUTORSへの変更):
    • @@ -124,6 +124,7 @@ は、変更がファイルの124行目から始まり、元の6行が変更後の7行になったことを示します。
    • +Hong Ruiqi <hongruiqi@gmail.com> の行が追加されています。こちらも同様に、既存の貢献者リストのアルファベット順に挿入されたものと推測されます。

この変更自体は非常にシンプルですが、その背後にはCLAの締結という重要な法的手続きと、オープンソースプロジェクトにおける貢献者管理のベストプラクティスが存在します。

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

このコミットにおける「コード」とは、Go言語のソースコードではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSを指します。

AUTHORSファイルへの変更:

--- a/AUTHORS
+++ b/AUTHORS
@@ -81,6 +81,7 @@ Gustav Paul <gustav.paul@gmail.com>
 Gustavo Niemeyer <gustavo@niemeyer.net>
 Harley Laue <losinggeneration@gmail.com>
 Hector Chu <hectorchu@gmail.com>
+Hong Ruiqi <hongruiqi@gmail.com>
 Icarus Sparry <golang@icarus.freeuk.com>
 Isaac Wagner <ibw@isaacwagner.me>
 James Fysh <james.fysh@gmail.com>

CONTRIBUTORSファイルへの変更:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -124,6 +124,7 @@ Gustav Paul <gustav.paul@gmail.com>
 Gustavo Niemeyer <gustavo@niemeyer.net> <n13m3y3r@gmail.com>
 Harley Laue <losinggeneration@gmail.com>
 Hector Chu <hectorchu@gmail.com>
+Hong Ruiqi <hongruiqi@gmail.com>
 Ian Lance Taylor <iant@golang.org>
 Icarus Sparry <golang@icarus.freeuk.com>
 Isaac Wagner <ibw@isaacwagner.me>

コアとなるコードの解説

上記の変更箇所は、Goプロジェクトの貢献者リストにHong Ruiqi氏を追加するものです。

  • AUTHORSファイルでは、Goプロジェクトの主要な作者や著作権保持者として、Hong Ruiqi氏の名前とメールアドレスが追加されました。
  • CONTRIBUTORSファイルでは、Goプロジェクトに貢献したすべての個人として、Hong Ruiqi氏の名前とメールアドレスが追加されました。

これらの変更は、Hong Ruiqi氏がGoプロジェクトに貢献する資格を得て、その貢献が正式に認められたことを示す記録となります。コミットメッセージにある「A+C: Hong Ruiqi (individual CLA)」は、この追加が個人としてのContributor License Agreement (CLA) の締結に基づいていることを明確に示しています。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Gitの差分表示に関する一般的な情報
  • オープンソースプロジェクトにおけるAUTHORSおよびCONTRIBUTORSファイルの慣習
  • Contributor License Agreement (CLA) に関する一般的な情報
  • Google検索: "Go project AUTHORS CONTRIBUTORS files", "Go Contributor License Agreement"