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

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

コミット

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Felix Geisendörfer氏の情報を追加するものです。これは、彼がGoプロジェクトに貢献するための個人貢献者ライセンス契約(CLA: Contributor License Agreement)に署名したことを示すものです。コミットメッセージにあるA+C: Felix Geisendörfer (individual CLA)は、この追加がCLAの承認に基づいていることを明確に示しています。

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

https://github.com/golang/go/commit/1d08fc44e90a395422dad2947a3d4dd2e751b87a

元コミット内容

A+C: Felix Geisendörfer (individual CLA)

Generated by addca.

R=gobot
CC=golang-dev
https://golang.org/cl/40870048

変更の背景

このコミットの背景には、オープンソースプロジェクト、特にGoogleが関与するプロジェクトにおける貢献者ライセンス契約(CLA)の要件があります。CLAは、貢献者がその貢献に対する著作権をプロジェクトの所有者(この場合はGoogle)に付与することを保証するための法的な合意です。これにより、プロジェクトの所有者は、将来的にコードのライセンスを変更したり、特許関連の問題に対処したりする際に、すべての貢献者からの許可を個別に得る必要がなくなります。

Felix Geisendörfer氏がGoプロジェクトにコードを貢献する意向を示したため、その貢献を受け入れる前に、彼が個人CLAに署名する必要がありました。このコミットは、そのCLAが承認され、彼が正式な貢献者として認識されたことを記録するためのものです。

コミットメッセージにあるGenerated by addca.は、この変更がaddcaというツールによって自動生成されたものであることを示唆しています。addcaは"add contributor agreement"の略であると推測され、CLAが承認された際に、関連するファイル(AUTHORSCONTRIBUTORSなど)を自動的に更新するための内部ツールであると考えられます。

前提知識の解説

貢献者ライセンス契約 (CLA: Contributor License Agreement)

CLAは、オープンソースプロジェクトにおいて、貢献者がそのコードに対する著作権をプロジェクトの所有者(企業や財団など)に譲渡または許諾するための法的な文書です。これにより、プロジェクトの所有者は、貢献されたコードをプロジェクトのライセンスの下で自由に配布し、将来的にライセンスを変更する権利を確保できます。

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

  • 著作権の明確化: 誰がコードの著作権を保有しているかを明確にし、将来的な法的な紛争を防ぎます。
  • ライセンスの柔軟性: プロジェクトのライセンスを将来的に変更する必要が生じた場合でも、すべての貢献者から個別に許可を得る必要がなくなります。
  • 特許の保護: 貢献されたコードに含まれる特許に関する権利を明確にし、プロジェクトのユーザーが特許侵害で訴えられるリスクを軽減します。

Googleが関与する多くのオープンソースプロジェクト(Go、Kubernetes、Angularなど)では、貢献を受け入れる前にCLAへの署名を義務付けています。

AUTHORSファイルと CONTRIBUTORSファイル

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

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

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割を果たします。また、法的な観点からも、誰がプロジェクトに貢献したかを記録する重要な文書となります。

Gerrit (golang.org/cl)

コミットメッセージにあるhttps://golang.org/cl/40870048は、GoプロジェクトがコードレビューにGerritを使用していることを示しています。Gerritは、Gitリポジトリ上でコードレビューを行うためのウェブベースのツールです。Goプロジェクトでは、GitHubのプルリクエストではなく、Gerritを通じてすべてのコード変更が提案され、レビューされ、承認されます。CLは"Change List"の略で、Gerritにおける個々の変更セットを指します。

技術的詳細

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

具体的には、以下の2つのファイルが変更されています。

  1. AUTHORS: このファイルは、Goプロジェクトの主要な作者や、特に重要な貢献者の一覧を保持しています。Felix Geisendörfer氏がこのファイルに追加されたということは、彼がGoプロジェクトにとって重要な貢献者として認識されたことを意味します。
  2. CONTRIBUTORS: このファイルは、Goプロジェクトに貢献したすべての個人をリストアップしています。Felix Geisendörfer氏がこのファイルに追加されたことは、彼がGoプロジェクトへの貢献を開始する準備が整ったことを示します。

変更は非常にシンプルで、両方のファイルにFelix Geisendörfer <haimuiba@gmail.com>という行が追加されています。これは、CLAが承認された後に、addcaツールがこれらのファイルを自動的に更新した結果です。

この変更は、Goプロジェクトのガバナンスと、オープンソースプロジェクトにおける貢献の受け入れプロセスの一部を反映しています。CLAへの署名と、それに続くAUTHORSおよびCONTRIBUTORSファイルへの追加は、貢献者がプロジェクトの法的な要件を満たし、その貢献が正式に認められたことを示す標準的な手順です。

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

このコミットは、Go言語のソースコード自体ではなく、プロジェクトのメタデータファイルを変更しています。

diff --git a/AUTHORS b/AUTHORS
index a274c22026..0146339e0b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -127,6 +127,7 @@ Evan Shaw <chickencha@gmail.com>
 Ewan Chou <coocood@gmail.com>
 Fan Hongjian <fan.howard@gmail.com>
 Fazlul Shahriar <fshahriar@gmail.com>
+Felix Geisendörfer <haimuiba@gmail.com>
 Firmansyah Adiputra <frm.adiputra@gmail.com>
 Florian Uekermann <florian@uekermann-online.de>
 Florian Weimer <fw@deneb.enyo.de>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index bcfeddb0d1..a734dfdfc2 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -190,6 +190,7 @@ Evan Shaw <chickencha@gmail.com>
 Ewan Chou <coocood@gmail.com>
 Fan Hongjian <fan.howard@gmail.com>
 Fazlul Shahriar <fshahriar@gmail.com>
+Felix Geisendörfer <haimuiba@gmail.com>
 Firmansyah Adiputra <frm.adiputra@gmail.com>
 Florian Uekermann <florian@uekermann-online.de> <f1@uekermann-online.de>
 Florian Weimer <fw@deneb.enyo.de>

コアとなるコードの解説

変更されたのは、AUTHORSファイルとCONTRIBUTORSファイルです。

  • AUTHORSファイル: 127行目のFazlul Shahriar <fshahriar@gmail.com>の後に、Felix Geisendörfer <haimuiba@gmail.com>という行が追加されています。
  • CONTRIBUTORSファイル: 190行目のFazlul Shahriar <fshahriar@gmail.com>の後に、Felix Geisendörfer <haimuiba@gmail.com>という行が追加されています。

これらの変更は、単にテキストファイルに新しい行を追加するものであり、Go言語の機能や動作に直接的な影響を与えるものではありません。これは、Goプロジェクトの貢献者リストを更新するための管理上の変更です。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • GoプロジェクトのGerritインスタンス: https://go.googlesource.com/go/+/refs/heads/master (GerritのCLへのリンクは、通常https://go.googlesource.com/go/+/refs/changes/<change_id>/<patchset_number>のような形式になりますが、コミットメッセージのリンクは簡略化されています。)
  • 一般的なオープンソースプロジェクトにおけるCLAの概念に関する知識。
  • AUTHORSおよびCONTRIBUTORSファイルの一般的な慣習に関する知識。
  • addcaのようなツールが、CLAプロセスを自動化するために使用されるという推測。
  • GoプロジェクトがGerritを使用しているという一般的な知識。