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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるMarc Weistroff氏を追加するものです。これは、彼がGoプロジェクトへの貢献を開始するにあたり、個人のContributor License Agreement (CLA) を提出したことを示す記録的な変更です。

コミット

commit 7e2e384890af235e1d0f67d62931b221ad80306d
Author: Andrew Gerrand <adg@golang.org>
Date:   Thu Feb 13 15:29:10 2014 +1100

    A+C: Marc Weistroff (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/62870043

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

https://github.com/golang/go/commit/7e2e384890af235e1d0f67d62931b221ad80306d

元コミット内容

このコミットの主な内容は、Goプロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに、Marc Weistroff氏の名前とメールアドレスを追加することです。コミットメッセージの "A+C: Marc Weistroff (individual CLA)" は、彼が個人としてのContributor License Agreement (CLA) を提出したことを示しており、"Generated by addca." は、この変更がaddcaというツールによって自動生成されたものであることを意味します。

変更の背景

オープンソースプロジェクト、特にGoogleが関与するプロジェクトでは、知的財産権の管理と貢献者の権利保護のためにContributor License Agreement (CLA) の提出を求めることが一般的です。CLAは、貢献者が自身のコードをプロジェクトに提供する際に、プロジェクトがそのコードを自由に利用、配布、変更できることを許可する法的な合意書です。これにより、プロジェクトは将来的なライセンス問題や著作権紛争のリスクを軽減できます。

Marc Weistroff氏がGoプロジェクトに貢献を開始するにあたり、個人のCLAを提出したため、その事実をプロジェクトの公式記録に反映させる必要がありました。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した人々を記録するためのものであり、CLAの提出は貢献者として正式に認められるための重要なステップです。このコミットは、その管理プロセスの一環として行われました。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトへの貢献者が、自身の貢献物(コード、ドキュメントなど)の著作権をプロジェクトの所有者(または指定された団体)に譲渡するか、あるいは特定のライセンスの下で利用することを許可する法的な文書です。Googleが主導する多くのプロジェクト(Goを含む)では、貢献の前にCLAの提出が義務付けられています。これにより、プロジェクトは貢献されたコードを安心して利用し、再配布することができます。CLAには、個人用CLAと企業用CLAの2種類があり、このコミットでは「individual CLA」が提出されたことが明記されています。

AUTHORSファイルとCONTRIBUTORSファイル

  • AUTHORSファイル: このファイルは、プロジェクトの主要な作者や、著作権を保持する個人または団体をリストアップするために使用されます。Goプロジェクトの場合、初期の作者や主要な開発者がここに記載されます。
  • CONTRIBUTORSファイル: このファイルは、プロジェクトにコードやその他の形で貢献したすべての個人をリストアップするために使用されます。CLAを提出し、実際に貢献を行った人々がここに追記されていきます。

これらのファイルは、プロジェクトの歴史と貢献者を記録するだけでなく、法的な透明性を確保する上でも重要な役割を果たします。

addcaツール

addcaは "add contributor agreement" の略であり、Goプロジェクト内でCLAを提出した貢献者をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加するために使用される内部ツールです。このツールは、手動での編集ミスを防ぎ、CLA提出から貢献者リストへの反映までのプロセスを効率化するために開発されました。コミットメッセージに "Generated by addca." とあることから、この変更が手動ではなく、自動化されたプロセスによって行われたことがわかります。

技術的詳細

このコミット自体は、Go言語のコードベースに対する機能的な変更やバグ修正ではありません。これは、プロジェクトのメタデータ、具体的には貢献者リストを更新する管理上のコミットです。

Goプロジェクトでは、貢献者がCLAを提出すると、その情報が内部システムに登録されます。その後、addcaツールが実行され、CLAが提出された新しい貢献者の情報(名前とメールアドレス)が、AUTHORSファイルとCONTRIBUTORSファイルに自動的に追加されます。このプロセスは、プロジェクトの整合性を保ちつつ、貢献者の管理を効率的に行うために設計されています。

コミットメッセージの R=gobotCC=golang-codereviews は、Goプロジェクトのコードレビュープロセスにおける慣習を示しています。

  • R=gobot: gobotはGoプロジェクトの自動化されたシステムやボットを指すことが多く、この場合はCLAの処理やファイル更新の承認に関わる自動システムがレビュー担当者として指定されていることを示唆しています。
  • CC=golang-codereviews: この変更がgolang-codereviewsというメーリングリストまたはグループに通知され、レビュー対象として共有されたことを意味します。これは、プロジェクトの変更が適切に記録され、関係者によって確認されるための標準的な手順です。
  • https://golang.org/cl/62870043: これはGoプロジェクトのGerritベースのコードレビューシステムにおける変更リスト(Change List, CL)へのリンクです。このリンクを辿ることで、このコミットに至るまでのレビューの経緯や議論、関連するパッチセットなどを確認できます。

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

diff --git a/AUTHORS b/AUTHORS
index 97e7e733e9..3c12fcec3a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -233,6 +233,7 @@ Luca Greco <luca.greco@alcacoop.it>
 Lucio De Re <lucio.dere@gmail.com>
 Luit van Drongelen <luitvd@gmail.com>
 Luke Curley <qpingu@gmail.com>
+Marc Weistroff <marc@weistroff.net>
 Marco Hennings <marco.hennings@freiheit.com>
 Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
 Marko Tiikkaja <marko@joh.to>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 62f1a227b3..c9aee3c284 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -334,6 +334,7 @@ Luit van Drongelen <luitvd@gmail.com>\n Luke Curley <qpingu@gmail.com>\n Luuk van Dijk <lvd@golang.org> <lvd@google.com>\n Manu Garg <manugarg@google.com>\n+Marc Weistroff <marc@weistroff.net>\n Marcel van Lohuizen <mpvl@golang.org>\n Marco Hennings <marco.hennings@freiheit.com>\n Mark Zavislak <zavislak@google.com>\n```

## コアとなるコードの解説

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

*   **`AUTHORS`ファイルへの変更**:
    *   `+Marc Weistroff <marc@weistroff.net>`: この行が追加されたことを示しています。`AUTHORS`ファイルはアルファベット順にソートされているため、`Luke Curley`の後に`Marc Weistroff`が挿入されています。これは、Marc Weistroff氏がGoプロジェクトの正式な作者の一人として、または主要な貢献者として認識されたことを意味します。

*   **`CONTRIBUTORS`ファイルへの変更**:
    *   `+Marc Weistroff <marc@weistroff.net>`: 同様に、この行が`CONTRIBUTORS`ファイルに追加されたことを示しています。このファイルもアルファベット順にソートされており、`Manu Garg`の後に`Marc Weistroff`が挿入されています。これは、Marc Weistroff氏がGoプロジェクトに貢献した個人として正式にリストアップされたことを意味します。

両ファイルへの追加は、Marc Weistroff氏がGoプロジェクトへの貢献を開始するための法的な要件(CLAの提出)を満たし、その貢献がプロジェクトによって正式に認識されたことを明確に示しています。

## 関連リンク

*   Goプロジェクトへの貢献方法: [https://go.dev/doc/contribute](https://go.dev/doc/contribute)
*   GoogleのCLAに関する情報 (Goプロジェクトに直接関連するものではないが、一般的な情報): [https://cla.developers.google.com/](https://cla.developers.google.com/)

## 参考にした情報源リンク

*   [https://github.com/golang/go/commit/7e2e384890af235e1d0f67d62931b221ad80306d](https://github.com/golang/go/commit/7e2e384890af235e1d0f67d62931b221ad80306d)
*   Goプロジェクトの公式ドキュメント (貢献ガイドラインなど)
*   一般的なオープンソースプロジェクトにおけるCLAの概念に関する情報