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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに新しい貢献者であるTravis Cline氏を追加するものです。

コミット

commit f7697227b73d8f22d6ac6bb61b8b00096385cbfc
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Sun Feb 2 13:02:37 2014 +0100

    A+C: Travis Cline (individual CLA)
    
    Generated by addca.
    
    TBR=iant
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/59410044

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

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

元コミット内容

このコミットは、Goプロジェクトの貢献者リストにTravis Cline氏を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにTravis Cline氏の名前とメールアドレスが追記されています。コミットメッセージには「A+C: Travis Cline (individual CLA)」とあり、これは「Add to AUTHORS and CONTRIBUTORS」の略で、Travis Cline氏が個人としてのContributor License Agreement (CLA) を提出したことを示唆しています。また、「Generated by addca」という記述から、この変更が自動化されたツールによって行われたことがわかります。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、貢献者がコードを提出する前にContributor License Agreement (CLA) に署名することが一般的です。CLAは、貢献されたコードの著作権がプロジェクトの所有者(この場合はGoogle)に適切に帰属し、プロジェクトがそのコードを自由に利用、配布、ライセンスすることを保証するための法的な合意です。

このコミットの背景には、Travis Cline氏がGoプロジェクトに貢献を開始し、そのために必要なCLAを提出したという事実があります。CLAが承認されると、その貢献者の情報がプロジェクトの公式な貢献者リスト(AUTHORSおよびCONTRIBUTORSファイル)に追加されます。これにより、プロジェクトの透明性が保たれ、誰がどのような貢献をしているかが明確になります。

「Generated by addca」という記述は、このプロセスが手動ではなく、addcaというツールによって自動化されていることを示しています。これは、多数の貢献者を効率的に管理するための一般的なプラクティスです。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、貢献者がその貢献物(コード、ドキュメントなど)の著作権をプロジェクトの所有者(または特定の団体)に譲渡するか、あるいは非独占的な利用権を許諾するための法的な文書です。これにより、プロジェクトの所有者は、貢献されたコードを将来にわたって自由に利用、変更、再配布、ライセンス供与する権利を確保できます。これは、特に企業が主導するプロジェクトや、将来的なライセンス変更の可能性を考慮するプロジェクトで重要となります。CLAがない場合、個々の貢献者から著作権の許諾を得る必要があり、プロジェクトの管理が複雑になる可能性があります。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するためのファイルが存在します。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、著作権表示の対象となる人々をリストアップします。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての人々(コードの提出者、バグ報告者、ドキュメント作成者など)をより包括的にリストアップします。

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

addcaツール

コミットメッセージにある「Generated by addca」は、この変更がaddcaというツールによって生成されたことを示しています。これはおそらく「Add Contributor Agreement」のような意味合いを持つ内部ツールであり、CLAが承認された貢献者の情報を自動的にAUTHORSおよびCONTRIBUTORSファイルに追加するスクリプトまたはプログラムであると推測されます。このような自動化ツールは、大規模なオープンソースプロジェクトにおいて、手作業によるエラーを防ぎ、管理コストを削減するために不可欠です。

技術的詳細

このコミット自体は、Go言語のコードベースに対する機能的な変更ではなく、プロジェクトのメタデータに関する変更です。技術的な詳細としては、以下の点が挙げられます。

  1. ファイル変更の特定: diff --git a/AUTHORS b/AUTHORS および diff --git a/CONTRIBUTORS b/CONTRIBUTORS は、Gitの差分表示コマンドの出力であり、AUTHORSCONTRIBUTORSという2つのファイルが変更されたことを示しています。
  2. インデックスとモード: index f9d36f7f2d..bede12e021 100644index d6db9bfb69..12a1a75bf9 100644 は、変更前後のファイルのGitオブジェクトのハッシュと、ファイルのパーミッション(100644は通常のファイルを示し、実行権限がないことを意味します)を示しています。
  3. 行の追加: @@ -356,6 +356,7 @@@@ -496,6 +496,7 @@ は、変更が加えられたファイルの行番号と行数を示しています。例えば、AUTHORSファイルでは356行目から6行が変更され、結果として7行になったことを意味します(つまり1行追加)。
  4. 追加された内容: +Travis Cline <travis.cline@gmail.com> は、それぞれのファイルに新しく追加された行を示しています。これは、Travis Cline氏の名前とメールアドレスです。

このコミットは、Goプロジェクトのガバナンスと貢献者管理のプロセスの一部を反映しています。CLAの提出と承認という法的なステップを経て、貢献者の情報が公式にプロジェクトの記録に追加されるというワークフローが読み取れます。

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

このコミットにおける「コアとなるコードの変更箇所」は、Go言語のランタイムやライブラリのコードではなく、プロジェクトの管理ファイルであるAUTHORSCONTRIBUTORSファイルです。

AUTHORSファイルへの変更

--- a/AUTHORS
+++ b/AUTHORS
@@ -356,6 +356,7 @@ Thomas Kappler <tkappler@gmail.com>
 Timo Savola <timo.savola@gmail.com>
 Tobias Columbus <tobias.columbus@gmail.com>
 Tor Andersson <tor.andersson@gmail.com>
+Travis Cline <travis.cline@gmail.com>
 Tw <tw19881113@gmail.com>
 Tyler Bunnell <tylerbunnell@gmail.com>
 Ugorji Nwoke <ugorji@gmail.com>

CONTRIBUTORSファイルへの変更

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -496,6 +496,7 @@ Tobias Columbus <tobias.columbus@gmail.com> <tobias.columbus@googlemail.com>
 Todd Wang <toddwang@gmail.com>
 Tom Szymanski <tgs@google.com>
 Tor Andersson <tor.andersson@gmail.com>
+Travis Cline <travis.cline@gmail.com>
 Trevor Strohman <trevor.strohman@gmail.com>
 Tw <tw19881113@gmail.com>
 Tyler Bunnell <tylerbunnell@gmail.com>

コアとなるコードの解説

上記の変更箇所は、それぞれAUTHORSファイルとCONTRIBUTORSファイルにTravis Cline <travis.cline@gmail.com>という行を追加しています。

  • AUTHORSファイル: このファイルは、Goプロジェクトの主要な作者や、著作権表示の対象となる人々をリストアップしています。Travis Cline氏がこのファイルに追加されたということは、彼がGoプロジェクトに対して重要な貢献を行い、その著作権表示に値すると認められたことを意味します。
  • CONTRIBUTORSファイル: このファイルは、Goプロジェクトに何らかの形で貢献したすべての人々をリストアップしています。Travis Cline氏がこのファイルに追加されたことは、彼がGoプロジェクトに貢献した事実を公式に記録するものです。

これらのファイルへの追加は、Goプロジェクトの貢献者管理プロセスの一環であり、Travis Cline氏がGoプロジェクトのコミュニティに正式に迎え入れられたことを示しています。これは、オープンソースプロジェクトにおけるコミュニティの成長と、貢献者への適切な認識の重要性を強調しています。

関連リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • GoプロジェクトのContributor License Agreement (CLA) に関する情報 (一般的なCLAの概念): https://cla.developers.google.com/ (これはGoogleのCLAポータルであり、Goプロジェクトもこれを利用している可能性が高いです)

参考にした情報源リンク

  • Gitの差分表示に関する一般的な情報: https://git-scm.com/docs/git-diff
  • オープンソースプロジェクトにおけるCLAの重要性に関する一般的な情報: https://opensource.google/docs/cla/
  • オープンソースプロジェクトにおけるAUTHORSおよびCONTRIBUTORSファイルの役割に関する一般的な情報。
  • コミットメッセージの慣習に関する一般的な情報。
  • addcaのような自動化ツールの存在に関する一般的な知識。