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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるMartin Olsson氏の情報を追加するものです。これは、彼が個人の貢献者ライセンス契約(Individual Contributor License Agreement, ICLA)に署名したことを示しています。

コミット

commit 3980aad49d1219a385d70925053208031eb44ee3
Author: Ian Lance Taylor <iant@golang.org>
Date:   Fri Dec 27 08:53:34 2013 -0800

    A+C: Martin Olsson (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/46040043

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

https://github.com/golang/go/commit/3980aad49d1219a385d70925053208031eb44ee3

元コミット内容

このコミットは、AUTHORSファイルとCONTRIBUTORSファイルに以下の行を追加しています。

diff --git a/AUTHORS b/AUTHORS
index c5c79758dc..677cb8dbac 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -223,6 +223,7 @@ Marko Tiikkaja <marko@joh.to>
 Markus Duft <markus.duft@salomon.at>
 Markus Sonderegger <marraison@gmail.com>
 Martin Neubauer <m.ne@gmx.net>
+Martin Olsson <martin@minimum.se>
 Mateusz Czapliński <czapkofan@gmail.com>
 Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
 Mats Lidell <mats.lidell@cag.se>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ed6ec7f6c6..913b87e6e2 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -327,6 +327,7 @@ Marko Tiikkaja <marko@joh.to>
 Markus Duft <markus.duft@salomon.at>
 Markus Sonderegger <marraison@gmail.com>
 Martin Neubauer <m.ne@gmx.net>
+Martin Olsson <martin@minimum.se>
 Mateusz Czapliński <czapkofan@gmail.com>
 Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
 Mats Lidell <mats.lidell@cag.se> <mats.lidell@gmail.com>

具体的には、AUTHORSCONTRIBUTORSの両ファイルにMartin Olsson <martin@minimum.se>という行が追加されています。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。貢献者ライセンス契約(CLA)は、貢献者が自身のコードに対する著作権をプロジェクトに付与し、プロジェクトがそのコードを自由に利用、配布、変更できるようにするための法的な合意です。これにより、プロジェクトは将来的なライセンス問題や著作権侵害の訴訟リスクから保護されます。

このコミットは、Martin Olsson氏がGoプロジェクトへの貢献を開始するにあたり、必要なCLAに署名したことを記録するためのものです。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した人々を公式に認識し、その貢献を追跡するためのものです。

前提知識の解説

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

CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、その貢献の著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、またはプロジェクトがその貢献を特定のライセンス(例: BSDライセンス、MITライセンスなど)の下で利用することを許可する法的な文書です。

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

  1. 知的財産権の明確化: 誰がコードの著作権を所有しているかを明確にし、将来的な法的な紛争を防ぎます。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスを維持し、異なるライセンスのコードが混在することによる問題を回避します。
  3. 再ライセンスの可能性: プロジェクトが将来的にライセンスを変更する必要が生じた場合でも、すべての貢献者から許可を得ることなく、スムーズに再ライセンスできるようにします。

GoプロジェクトのようなGoogleが主導するプロジェクトでは、通常、貢献者は個人のCLA(ICLA)または企業のCLA(CCLA)に署名する必要があります。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、著作権を保持している個人や団体をリストアップします。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップします。これには、コードの寄稿者だけでなく、ドキュメントの作成者、バグ報告者、テスターなども含まれる場合があります。

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

addcaツール

コミットメッセージに「Generated by addca.」と記載されていることから、この変更がaddcaというツールによって自動生成されたものであることがわかります。addcaは、Google内部で使用されるツールで、CLAに署名した貢献者の情報をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加するために設計されています。これにより、手動での編集ミスを防ぎ、プロセスを効率化します。

技術的詳細

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

変更は、単にテキストファイルであるAUTHORSCONTRIBUTORSに新しい行を追加するものです。Gitの差分(diff)を見ると、それぞれのファイルの特定の行にMartin Olsson <martin@minimum.se>というエントリが挿入されていることがわかります。

この種のコミットは、通常、以下のワークフローの一部として行われます。

  1. 新しい貢献者がGoプロジェクトに貢献したいと表明する。
  2. 貢献者がGoプロジェクトのCLA(この場合はICLA)に署名する。
  3. Googleの内部システムがCLAの署名を確認する。
  4. addcaのようなツールが実行され、署名済みの貢献者の情報がAUTHORSおよびCONTRIBUTORSファイルに追加される。
  5. この変更がGoリポジトリにコミットされる。

このプロセスは、プロジェクトの法的な健全性を維持しつつ、新しい貢献者をスムーズに受け入れるために不可欠です。

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

このコミットにおける「コアとなるコードの変更箇所」は、Go言語のソースコードそのものではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSです。

  • AUTHORSファイル: 223行目の後にMartin Olsson <martin@minimum.se>が追加されました。
  • CONTRIBUTORSファイル: 327行目の後にMartin Olsson <martin@minimum.se>が追加されました。

これらのファイルは、プロジェクトのルートディレクトリに存在します。

コアとなるコードの解説

このコミットには、Go言語の機能やロジックを変更するような「コード」は含まれていません。変更されたのは、プロジェクトの管理情報を含むプレーンテキストファイルです。

AUTHORSファイルとCONTRIBUTORSファイルは、それぞれプロジェクトの作者と貢献者のリストを保持しています。これらのファイルは、プロジェクトの歴史と貢献者を記録する上で重要な役割を果たします。新しい貢献者がCLAに署名し、その情報がこれらのファイルに追加されることで、その貢献者がプロジェクトの公式な貢献者として認識されることになります。

この変更は、Goプロジェクトのガバナンスと法務コンプライアンスの一部であり、コードベースの機能には直接影響しませんが、プロジェクトの健全な運営には不可欠なステップです。

関連リンク

  • Goプロジェクトの貢献ガイドライン(CLAに関する情報が含まれることが多い): https://go.dev/doc/contribute (一般的なGoの貢献ガイドラインへのリンク。CLAに関する具体的な情報は、このページからリンクされていることが多い)
  • GoogleのCLAに関する情報: https://cla.developers.google.com/ (Googleが提供するCLAのポータルサイト)

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Gitのコミットと差分に関する一般的な知識
  • オープンソースプロジェクトにおけるCLAの概念に関する一般的な知識
  • コミットメッセージに記載されているgolang.org/cl/46040043は、GoプロジェクトのGerritコードレビューシステムにおける変更リスト(Change-List)のIDです。これは、このコミットがGerritを通じてレビューされ、承認されたことを示しています。
    • Gerrit Change-List 46040043: https://go.dev/cl/46040043 (このリンクは、コミットが作成された時点でのGerritのURL形式に基づいています。現在のGoプロジェクトのGerritはgo.dev/clを使用しています。)