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

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

このコミットは、Goプロジェクトのコントリビューターリストに新しい貢献者「Rowan Worth (sqweek)」を追加するものです。具体的には、AUTHORS ファイルと CONTRIBUTORS ファイルに彼の名前とメールアドレスが追記されています。これは、彼がGoプロジェクトへの貢献を開始するにあたり、個人コントリビューターライセンス契約 (Individual CLA) を締結したことを示しています。

コミット

  • コミットハッシュ: d1ba298ad21626e48d4ab8ac2a05af0c50bc87f5
  • Author: Ian Lance Taylor iant@golang.org
  • Date: Thu Jan 9 09:33:35 2014 -0800

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

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

元コミット内容

A+C: sqweek (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/49940043

変更の背景

オープンソースプロジェクト、特にGoogleが管理するGoのような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。コントリビューターがコードを寄稿する際、プロジェクト側は寄稿されたコードを自由に利用、変更、配布できる法的権利を確保する必要があります。この権利を明確にするために、多くのプロジェクトでは「コントリビューターライセンス契約 (CLA: Contributor License Agreement)」の締結を義務付けています。

このコミットは、Rowan Worth氏がGoプロジェクトに貢献するために必要なIndividual CLAを締結したことを示しています。CLAが締結されると、プロジェクトのツール(この場合はaddca)によって、そのコントリビューターの名前がプロジェクトの公式な貢献者リスト(AUTHORSおよびCONTRIBUTORSファイル)に追加されます。これにより、彼の将来の貢献が法的に保護され、プロジェクトにスムーズに統合される基盤が整います。

前提知識の解説

コントリビューターライセンス契約 (CLA: Contributor License Agreement)

CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(この場合はGoogle)に対して、その貢献物を使用、複製、変更、配布する権利を付与するための法的な合意書です。

CLAの主な目的:

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、プロジェクトがそれをどのように利用できるかを明確にします。これにより、将来的な著作権紛争のリスクを軽減します。
  2. プロジェクトのライセンスの維持: プロジェクト全体のライセンス(例: BSDライセンス)の下で、すべての貢献物が適切に配布されることを保証します。これにより、プロジェクトのライセンスを変更する必要が生じた場合でも、すべての貢献者からの許可を得る手間を省くことができます。
  3. 法的な保護: プロジェクトが第三者からの訴訟に直面した場合に、貢献されたコードの利用に関する法的根拠を提供します。

GoプロジェクトにおけるCLA:

Goプロジェクトでは、Googleが管理する他の多くのオープンソースプロジェクトと同様に、貢献者はCLAへの署名が必須です。CLAには以下の2種類があります。

  • Individual CLA: 個人の貢献者が自身の著作権を持つ作品を寄稿する場合に署名します。
  • Corporate CLA: 企業が著作権を持つ作品を従業員が寄稿する場合に、企業が署名します。

CLAへの署名は通常、オンラインで行われ、一度署名すれば、その後のGoogleのオープンソースプロジェクトへのすべての貢献に適用されます。

AUTHORS および CONTRIBUTORS ファイル

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

  • AUTHORS: 主にプロジェクトの主要な作者や、著作権を持つ個人をリストアップするために使われます。
  • CONTRIBUTORS: より広範な意味で、コードの寄稿者、バグ報告者、ドキュメント作成者など、プロジェクトに何らかの形で貢献したすべての人々をリストアップするために使われます。

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

addca ツール

コミットメッセージにある「Generated by addca.」は、この変更がaddcaというツールによって自動生成されたことを示唆しています。addcaは「add contributor agreement」の略であると推測され、Goプロジェクトの内部ツールとして、新しいコントリビューターがCLAを締結した際に、自動的にAUTHORSおよびCONTRIBUTORSファイルにその情報を追加する役割を担っていると考えられます。これにより、手作業によるミスを防ぎ、貢献者管理のプロセスを効率化しています。

技術的詳細

このコミットは、Goプロジェクトのソースコードリポジトリにおけるメタデータファイルの更新です。具体的なコードの機能変更やバグ修正ではなく、プロジェクトの管理プロセスの一環として行われたものです。

AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトのルートディレクトリに配置されており、テキスト形式で貢献者の名前と連絡先(通常はメールアドレス)が1行に1人ずつ記載されています。これらのファイルは、プロジェクトの歴史と貢献者の記録として非常に重要です。

addcaツールは、CLAの締結が確認された後、これらのファイルに新しいエントリを追加します。このプロセスは、Goプロジェクトの貢献ワークフローに組み込まれており、新しい貢献者がプロジェクトに加わる際の標準的な手順となっています。

コミットメッセージのR=gobotCC=golang-codereviewsは、それぞれコードレビューの承認者と通知先を示しています。gobotはGoプロジェクトの自動化されたボットであり、このような定型的な変更のレビューを自動的に承認する役割を担っている可能性があります。golang-codereviewsは、Goプロジェクトのコードレビューメーリングリストであり、関連する変更が通知されるようになっています。

https://golang.org/cl/49940043は、このコミットに対応するGerritのチェンジリスト(Change-ID)へのリンクです。GerritはGoプロジェクトがコードレビューに利用しているシステムであり、すべての変更はGerrit上でレビューされ、承認されてからGitリポジトリにマージされます。

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

diff --git a/AUTHORS b/AUTHORS
index 59274a6e30..7b8b886dd6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -325,6 +325,7 @@ Shenghou Ma <minux.ma@gmail.com>
 Shivakumar GN <shivakumar.gn@gmail.com>
 Sokolov Yura <funny.falcon@gmail.com>
 Spring Mc <heresy.mc@gmail.com>
+Rowan Worth <sqweek@gmail.com>
 Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
 Stéphane Travostino <stephane.travostino@gmail.com>
 Stephen McQuay <stephen@mcquay.me>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a319e6baac..1f25ec7e3a 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -459,6 +459,7 @@ Shenghou Ma <minux.ma@gmail.com>
 Shivakumar GN <shivakumar.gn@gmail.com>
 Sokolov Yura <funny.falcon@gmail.com>
 Spring Mc <heresy.mc@gmail.com>
+Rowan Worth <sqweek@gmail.com>
 Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
 Stéphane Travostino <stephane.travostino@gmail.com>
 Stephen Ma <stephenm@golang.org>

コアとなるコードの解説

上記のdiff出力は、AUTHORSファイルとCONTRIBUTORSファイルに対する変更を示しています。

  • AUTHORSファイルへの変更:

    • +Rowan Worth <sqweek@gmail.com> という行が追加されています。これは、Rowan Worth氏がGoプロジェクトの正式な作者の一員として認識されたことを意味します。
  • CONTRIBUTORSファイルへの変更:

    • 同様に、+Rowan Worth <sqweek@gmail.com> という行が追加されています。これは、Rowan Worth氏がGoプロジェクトへの貢献者の一員としてリストアップされたことを意味します。

これらの変更は、新しい貢献者がGoプロジェクトのコミュニティに加わったことを公式に記録するものであり、彼がCLAを締結し、プロジェクトへの貢献を開始する準備が整ったことを示しています。

関連リンク

参考にした情報源リンク