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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルにMichael Lewis氏を追加するものです。これは、Michael Lewis氏がGoプロジェクトへの貢献を開始するにあたり、個人貢献者ライセンス契約(Individual CLA)を締結したことを示しています。

コミット

commit 49397fe14557af2fc9e5becf03b543009a5b73a2
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Tue Apr 3 13:38:57 2012 -0700

    A+C: add Michael Lewis (Individual CLA)
    
    R=golang-dev, rsc
    CC=golang-dev
    https://golang.org/cl/5970077

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

https://github.com/golang/go/commit/49397fe14557af2fc9e5becf03b543009a5b73a2

元コミット内容

このコミットの元の内容は、Michael Lewis氏をGoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに追加することです。コミットメッセージには「A+C: add Michael Lewis (Individual CLA)」とあり、これは「AUTHORSとCONTRIBUTORSにMichael Lewisを追加する(個人CLA)」という意味です。

変更の背景

オープンソースプロジェクトにおいて、貢献者がコードを提出する際には、プロジェクトがそのコードを合法的に利用・配布できることを保証するために、ライセンス契約を締結することが一般的です。特に大規模なプロジェクトや企業が主導するプロジェクトでは、貢献者ライセンス契約(CLA: Contributor License Agreement)の締結が求められることがあります。

このコミットは、Michael Lewis氏がGoプロジェクトに貢献する準備が整い、その一環として個人CLAを締結したことを示しています。CLAの締結後、その貢献者の名前がプロジェクトの公式な貢献者リストに追加されるのが一般的な流れです。これにより、プロジェクトはMichael Lewis氏の将来の貢献を法的に受け入れる準備ができたことになります。

前提知識の解説

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人・団体をリストアップするために使用されます。プロジェクトのライセンス表示の一部として機能することもあります。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップするために使用されます。これには、コードの寄稿者だけでなく、ドキュメントの作成者、バグ報告者、テスター、翻訳者なども含まれる場合があります。

これらのファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを付与する役割を果たします。

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

CLAは、オープンソースプロジェクトにおいて、貢献者がその貢献物(コード、ドキュメントなど)の著作権をプロジェクトの所有者(または特定の団体)に譲渡するか、またはプロジェクトのライセンスの下で利用することを許可する法的な合意書です。

CLAを導入する主な理由は以下の通りです。

  1. ライセンスの明確化: 貢献されたコードがどのライセンスの下で配布されるかを明確にし、将来的なライセンス問題を防ぎます。
  2. 知的財産権の管理: プロジェクトの所有者が、すべての貢献物の知的財産権を一元的に管理できるようにします。これにより、プロジェクト全体のライセンス変更や、将来的な訴訟リスクの軽減が可能になります。
  3. 企業からの貢献: 企業が従業員にオープンソースプロジェクトへの貢献を許可する際に、企業がその貢献物の権利を放棄しないようにするために、企業CLA(Corporate CLA)が使用されることもあります。

Goプロジェクトのような大規模なオープンソースプロジェクトでは、法的な問題を避けるためにCLAの締結が必須とされています。

技術的詳細

このコミット自体は、Go言語のコードベースに対する技術的な変更を含むものではありません。これはプロジェクトのガバナンスと法務に関する変更であり、具体的には以下のファイルが修正されています。

  • AUTHORS
  • CONTRIBUTORS

これらのファイルはプレーンテキストファイルであり、貢献者の名前とメールアドレスがリスト形式で記述されています。コミットは、Michael Lewis氏の名前とメールアドレスをこれらのファイルの適切な位置に追加しています。

コミットメッセージの R=golang-dev, rscCC=golang-dev は、コードレビューのプロセスを示しています。

  • R= はレビュー担当者(Reviewer)を示し、golang-dev(Go開発者メーリングリスト)とrsc(Russ Cox氏、Goプロジェクトの主要開発者の一人)がレビューを行ったことを意味します。
  • CC= はカーボンコピー(Carbon Copy)を示し、golang-devに通知が送られたことを意味します。
  • https://golang.org/cl/5970077 は、この変更がGoプロジェクトのコードレビューシステム(Gerritベース)における変更リスト(Change List)のURLであることを示しています。

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

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

diff --git a/AUTHORS b/AUTHORS
index cc95a7d52a..027fd5232a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -136,6 +136,7 @@ Matthew Horsnell <matthew.horsnell@gmail.com>
 Micah Stetson <micah.stetson@gmail.com>
 Michael Elkins <michael.elkins@gmail.com>
 Michael Hoisie <hoisie@gmail.com>
+Michael Lewis <mikelikespie@gmail.com>
 Michał Derkacz <ziutek@lnet.pl>
 Miek Gieben <miek@miek.nl>
 Mikael Tillenius <mikti42@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 71b8dd0a32..586856cb62 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -203,6 +203,7 @@ Maxim Ushakov <ushakov@google.com>
 Micah Stetson <micah.stetson@gmail.com>
 Michael Elkins <michael.elkins@gmail.com>
 Michael Hoisie <hoisie@gmail.com>
+Michael Lewis <mikelikespie@gmail.com>
 Michael Shields <mshields@google.com>
 Michael T. Jones <mtj@google.com> <michael.jones@gmail.com>
 Michał Derkacz <ziutek@lnet.pl>

コアとなるコードの解説

上記のdiffを見ると、AUTHORSファイルとCONTRIBUTORSファイルの両方に、以下の行が追加されていることがわかります。

+Michael Lewis <mikelikespie@gmail.com>

これは、Michael Lewis氏の名前とメールアドレスが、既存の貢献者リストのアルファベット順に挿入されたことを示しています。この変更により、Michael Lewis氏は正式にGoプロジェクトの貢献者として認識され、将来の貢献がスムーズに受け入れられるようになります。

関連リンク

  • Goプロジェクトの公式ウェブサイト: https://golang.org/
  • Goプロジェクトの貢献ガイドライン(CLAに関する情報が含まれることが多い): Goプロジェクトの公式ドキュメントやGitHubリポジトリ内で「contributing」や「CLA」で検索すると見つかる可能性があります。

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • 一般的なオープンソースプロジェクトにおけるCLAの概念に関する情報源(例: Wikipedia, 各プロジェクトの貢献ガイドライン)