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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Arne Hormann氏の情報を追加するものです。これは、彼がGoプロジェクトへの貢献を可能にするためのIndividual CLA(Contributor License Agreement)を提出したことを示しています。

コミット

commit fbfb6e8a2a13805b516596725924373751c80ea4
Author: Andrew Gerrand <adg@golang.org>
Date:   Wed Dec 18 08:17:17 2013 +1100

    A+C: Arne Hormann (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/43600043
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 693b2ba2ec..ef603b8f08 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -46,6 +46,7 @@ Anthony Martin <ality@pbrane.org>
 Anthony Starks <ajstarks@gmail.com>
 Aram Hăvărneanu <aram@mgk.ro>
 Arnaud Ysmal <arnaud.ysmal@gmail.com>
+Arne Hormann <arnehormann@gmail.com>
 Aron Nopanen <aron.nopanen@gmail.com>
 Arvindh Rajesh Tamilmani <art@a-30.net>
 Ato Araki <ato.araki@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3ca5e90db3..93d7e02ec4 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -78,6 +78,7 @@ Anthony Martin <ality@pbrane.org>
 Anthony Starks <ajstarks@gmail.com>
 Aram Hăvărneanu <aram@mgk.ro>
 Arnaud Ysmal <arnaud.ysmal@gmail.com>
+Arne Hormann <arnehormann@gmail.com>
 Aron Nopanen <aron.nopanen@gmail.com>
 Arvindh Rajesh Tamilmani <art@a-30.net>
 Asim Shankar <asimshankar@gmail.com>

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

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

元コミット内容

A+C: Arne Hormann (individual CLA)

Generated by addca.

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

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者ライセンス契約(CLA)の重要性があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、プロジェクトの知的財産権を保護し、将来的なライセンス変更や訴訟リスクを管理するために、貢献者からCLAの締結を求めることが一般的です。

Arne Hormann氏がGoプロジェクトにコードを貢献するにあたり、Individual CLAを提出したため、その記録として彼の名前とメールアドレスがAUTHORSおよびCONTRIBUTORSファイルに追加されました。これにより、彼の貢献が正式にプロジェクトの一部として認識され、法的な側面がクリアになります。

コミットメッセージにある「Generated by addca」は、この変更がaddcaというツールによって自動生成されたものであることを示唆しています。addcaは、CLAの提出が確認された際に、関連するファイルを自動的に更新するための内部ツールであると考えられます。

前提知識の解説

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

CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(この場合はGoogle)と貢献者の間で締結される法的な合意です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者はプロジェクト所有者に著作権を譲渡するか、またはプロジェクト所有者が貢献されたコードを自由に利用、再ライセンス、配布できる広範なライセンスを付与します。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスモデルを維持することを可能にします。これにより、将来的にプロジェクトのライセンスを変更する際にも、すべての貢献者からの同意を得る必要がなくなります。
  3. 訴訟リスクの軽減: 貢献されたコードが第三者の著作権を侵害していないことを貢献者が保証することで、プロジェクト所有者が将来的に著作権侵害で訴えられるリスクを軽減します。

Goプロジェクトでは、Googleがプロジェクトの所有者であり、貢献者にはIndividual CLAまたはCorporate CLAのいずれかの締結を求めています。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORS: 通常、プロジェクトの主要な作者や初期の貢献者、または特に重要な貢献をした人々がリストされます。
  • CONTRIBUTORS: より広範な貢献者、つまりコードの修正、バグ報告、ドキュメントの改善など、様々な形でプロジェクトに貢献した人々がリストされます。

これらのファイルは、プロジェクトの歴史とコミュニティを可視化する役割も果たします。

Gerrit と Change-ID

コミットメッセージにあるhttps://golang.org/cl/43600043は、Goプロジェクトがコードレビューに利用しているGerritシステムへのリンクです。Gerritは、Gitリポジトリ上でコードレビューを行うためのウェブベースのツールです。

  • Change-ID: Gerritでは、各変更セット(コミット)に一意のChange-IDが割り当てられます。これにより、コミットハッシュが変わっても、同じ論理的な変更セットを追跡することができます。43600043はこのChange-IDの一部です。
  • R=gobot: これは、Gerritにおけるレビュー担当者(Reviewer)の指定です。gobotはGoプロジェクトの自動化されたボットであり、特定のタスク(この場合はCLAの確認とファイル更新)を自動的に処理することを示しています。
  • CC=golang-dev: これは、この変更に関する通知がgolang-devメーリングリストに送られることを示しています。golang-devはGo開発者コミュニティの主要なコミュニケーションチャネルの一つです。

技術的詳細

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

具体的には、AUTHORSファイルとCONTRIBUTORSファイルへの行追加が行われています。これらのファイルはプレーンテキスト形式であり、各行に貢献者の名前とメールアドレスが記述されています。

  • AUTHORSファイルは、Goプロジェクトの初期からの主要な貢献者や、特に重要な役割を果たした人々を列挙しています。
  • CONTRIBUTORSファイルは、より広範な貢献者、つまりコードの修正、バグ報告、ドキュメントの改善など、様々な形でプロジェクトに貢献した人々を列挙しています。

この変更は、addcaというツールによって自動的に行われたとされています。これは、CLAの提出プロセスと密接に連携しており、CLAが承認されると、このツールが自動的にこれらのファイルを更新し、関連するコミットを生成するワークフローが存在することを示唆しています。このような自動化は、大規模なオープンソースプロジェクトにおいて、管理オーバーヘッドを削減し、ヒューマンエラーを防ぐ上で非常に重要です。

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

このコミットで変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、Arne Hormann氏の名前とメールアドレスが1行ずつ追加されています。

diff --git a/AUTHORS b/AUTHORS
index 693b2ba2ec..ef603b8f08 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -46,6 +46,7 @@ Anthony Martin <ality@pbrane.org>
 Anthony Starks <ajstarks@gmail.com>
 Aram Hăvărneanu <aram@mgk.ro>
 Arnaud Ysmal <arnaud.ysmal@gmail.com>
+Arne Hormann <arnehormann@gmail.com>
 Aron Nopanen <aron.nopanen@gmail.com>
 Arvindh Rajesh Tamilmani <art@a-30.net>\
 Ato Araki <ato.araki@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3ca5e90db3..93d7e02ec4 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -78,6 +78,7 @@ Anthony Martin <ality@pbrane.org>
 Anthony Starks <ajstarks@gmail.com>
 Aram Hăvărneanu <aram@mgk.ro>
 Arnaud Ysmal <arnaud.ysmal@gmail.com>
+Arne Hormann <arnehormann@gmail.com>
 Aron Nopanen <aron.nopanen@gmail.com>
 Arvindh Rajesh Tamilmani <art@a-30.net>
 Asim Shankar <asimshankar@gmail.com>

コアとなるコードの解説

変更されたのは、単なるテキストファイルであり、プログラミング言語のコードではありません。追加された行は以下の通りです。

Arne Hormann <arnehormann@gmail.com>

この行は、貢献者の氏名と、彼がCLAを提出した際に登録したメールアドレスを示しています。この情報は、プロジェクトの公式な貢献者リストにArne Hormann氏が追加されたことを意味します。

これらのファイルは、Goプロジェクトのソースコードリポジトリのルートディレクトリに配置されており、プロジェクトのビルドプロセスやランタイムの動作には直接影響を与えません。しかし、プロジェクトのガバナンス、法務、そしてコミュニティの透明性という側面において重要な役割を果たします。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Gerrit Code Reviewの概念に関する一般的な情報
  • オープンソースプロジェクトにおけるCLAの一般的な慣行に関する情報
  • コミットメッセージ内の情報(R=gobot, CC=golang-dev, https://golang.org/cl/43600043
  • addcaツールに関する推測(Goプロジェクトの内部ツールである可能性が高い)
  • AUTHORSおよびCONTRIBUTORSファイルの一般的な役割