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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるFabrizio Milo氏の名前を追加するものです。これらのファイルは、プロジェクトに貢献した個人を記録し、特にライセンスと著作権の観点から重要です。

コミット

commit fb392867ae9b43e41875fcf42c38859e25ddbe41
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Mon May 12 09:33:48 2014 -0700

    A+C: Fabrizio Milo (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/100390045

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

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

元コミット内容

diff --git a/AUTHORS b/AUTHORS
index cccbadfeda..1d051875bb 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -145,6 +145,7 @@ Erik Westrup <erik.westrup@gmail.com>
 Esko Luontola <esko.luontola@gmail.com>
 Evan Shaw <chickencha@gmail.com>
 Ewan Chou <coocood@gmail.com>
+Fabrizio Milo <mistobaan@gmail.com>
 Fan Hongjian <fan.howard@gmail.com>
 Fazlul Shahriar <fshahriar@gmail.com>
 Felix Geisendörfer <haimuiba@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 90700b5760..6270fbcc2c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -211,6 +211,7 @@ Esko Luontola <esko.luontola@gmail.com>
 Evan Martin <evan.martin@gmail.com>
 Evan Shaw <chickencha@gmail.com>
 Ewan Chou <coocood@gmail.com>
+Fabrizio Milo <mistobaan@gmail.com>
 Fan Hongjian <fan.howard@gmail.com>
 Fazlul Shahriar <fshahriar@gmail.com>
 Felix Geisendörfer <haimuiba@gmail.com>

変更の背景

このコミットは、Fabrizio Milo氏がGoプロジェクトへの貢献を開始するにあたり、必要な手続き(具体的にはIndividual Contributor License Agreement、個人貢献者ライセンス契約)を完了したことを反映しています。オープンソースプロジェクトでは、貢献されたコードの著作権とライセンスの明確化が非常に重要です。CLAに署名することで、プロジェクトは貢献されたコードを安心して利用・配布できるようになり、貢献者の名前が公式な貢献者リストに追加されます。

コミットメッセージにある「Generated by addca.」という記述は、この変更がaddcaという内部ツールによって自動生成されたものであることを示唆しています。これは、CLAの署名プロセスが完了した際に、関連するファイルを自動的に更新する仕組みが存在することを示しています。

前提知識の解説

Contributor License Agreement (CLA)

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

  • 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者は自身の著作権を保持しつつ、プロジェクトの所有者にそのコードを使用、変更、配布、サブライセンスする広範な権利を付与します。
  • ライセンスの統一: プロジェクト全体で一貫したライセンスモデルを維持するために、貢献されたコードがプロジェクトの既存ライセンス(Goの場合はBSDライセンスなど)の下で利用可能であることを保証します。
  • 法的リスクの軽減: プロジェクトが将来的に著作権侵害の訴訟に巻き込まれるリスクを軽減します。CLAがあることで、プロジェクトは貢献されたすべてのコードが正当な権利を持つ個人によって提供されたことを証明できます。

Goプロジェクトでは、コードを貢献する前に個人または企業CLAに署名することが義務付けられています。これにより、Goプロジェクトは貢献されたすべてのコードに対して明確な法的基盤を持つことができます。

AUTHORS および CONTRIBUTORS ファイル

多くのオープンソースプロジェクト、特に歴史の長いプロジェクトでは、プロジェクトに貢献したすべての個人をリストアップするテキストファイル(例: AUTHORS, CONTRIBUTORS, CREDITSなど)を保持しています。

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

これらのファイルは、プロジェクトの透明性を高め、貢献者の努力を認識し、また法的な観点から著作権表示の一部として機能することもあります。

addca ツール (推測)

コミットメッセージの「Generated by addca.」という記述から、addcaはGoプロジェクト内部で使用される自動化ツールであると推測されます。このツールは、貢献者がCLAに署名し、その情報がシステムに登録された際に、自動的にAUTHORSおよびCONTRIBUTORSファイルにその貢献者の名前とメールアドレスを追加する役割を担っていると考えられます。このような自動化は、大規模なオープンソースプロジェクトにおいて、手作業によるエラーを防ぎ、管理プロセスを効率化するために不可欠です。

技術的詳細

このコミット自体は、Go言語のランタイムやライブラリの機能に直接的な変更を加えるものではありません。しかし、オープンソースプロジェクトのガバナンスと法的な健全性を維持する上で極めて重要な意味を持ちます。

  • プロジェクトの健全性: AUTHORSCONTRIBUTORSファイルは、プロジェクトの歴史と貢献者の記録として機能します。これにより、プロジェクトの成長とコミュニティの拡大を視覚的に示すことができます。
  • 知的財産管理: CLAとこれらのファイルは、GoプロジェクトがGoogleによって管理されるオープンソースプロジェクトとして、貢献されたすべてのコードが適切なライセンスの下で利用可能であることを保証する知的財産管理の一部です。これは、Go言語とそのエコシステムが法的な問題なく広く採用されるための基盤となります。
  • 自動化されたワークフロー: addcaのようなツールの存在は、Goプロジェクトが貢献プロセスを効率的かつエラーなく管理するための洗練された自動化ワークフローを持っていることを示しています。これは、多数の貢献者からのプルリクエストを処理する大規模プロジェクトにとって不可欠です。

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

このコミットにおける「コードの変更」は、Go言語のソースコードではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSへのテキストの追加です。

具体的には、以下の2つのファイルに1行ずつ追加されています。

  • AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -145,6 +145,7 @@ Erik Westrup <erik.westrup@gmail.com>
     Esko Luontola <esko.luontola@gmail.com>
     Evan Shaw <chickencha@gmail.com>
     Ewan Chou <coocood@gmail.com>
    +Fabrizio Milo <mistobaan@gmail.com>
     Fan Hongjian <fan.howard@gmail.com>
     Fazlul Shahriar <fshahriar@gmail.com>
     Felix Geisendörfer <haimuiba@gmail.com>
    
  • CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -211,6 +211,7 @@ Esko Luontola <esko.luontola@gmail.com>
     Evan Martin <evan.martin@gmail.com>
     Evan Shaw <chickencha@gmail.com>
     Ewan Chou <coocood@gmail.com>
    +Fabrizio Milo <mistobaan@gmail.com>
     Fan Hongjian <fan.howard@gmail.com>
     Fazlul Shahriar <fshahriar@gmail.com>
     Felix Geisendörfer <haimuiba@gmail.com>
    

コアとなるコードの解説

追加された行の形式は、[氏名] <[メールアドレス]>です。

例: Fabrizio Milo <mistobaan@gmail.com>

これは、貢献者の氏名と、その連絡先となるメールアドレスを記録する標準的な形式です。これらのファイルは通常、アルファベット順にソートされており、新しいエントリは適切な位置に挿入されます。このコミットでは、Fabrizio Milo氏の名前が既存の貢献者リストのアルファベット順に挿入されています。

この変更自体は機能的な影響を及ぼしませんが、Goプロジェクトの公式な貢献者リストを正確に保つために不可欠な更新です。

関連リンク

  • Goプロジェクトの貢献ガイドライン: Goプロジェクトへの貢献方法に関する公式ドキュメントは、CLAの署名プロセスを含む詳細な情報を提供しています。 https://go.dev/doc/contribute
  • GoogleのオープンソースCLA情報: Googleが管理するオープンソースプロジェクトにおけるCLAに関する一般的な情報。 https://opensource.google/docs/cla/

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Goプロジェクトの公式ドキュメント: https://go.dev/
  • Google検索: "Go individual CLA", "Go addca tool" (内部ツールに関する直接的な公開情報は見つからなかったが、CLAの文脈を理解するのに役立った)
  • 一般的なオープンソースプロジェクトにおけるCLAと貢献者ファイルの慣行に関する知識。