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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるAndrew Szeto氏の情報を追加するものです。これは、通常、個人がプロジェクトにコードを貢献する際に、Contributor License Agreement (CLA) に署名した後に実行される管理上の変更です。

コミット

commit eb00dfbe64da19dffdfd63b1b312fcf47b86128e
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Mon Apr 14 13:00:41 2014 -0700

    A+C: Andrew Szeto (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/86960046

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

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

元コミット内容

A+C: Andrew Szeto (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/86960046

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と法的な側面があります。Goのような大規模なオープンソースプロジェクトでは、外部からのコード貢献を受け入れる際に、プロジェクトのライセンスと知的財産権を保護するためにContributor License Agreement (CLA) の署名を求めることが一般的です。

Andrew Szeto氏がGoプロジェクトに貢献するために個人のCLAに署名したため、その貢献が正式に認められたことを示すために、彼の名前と連絡先情報がプロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに追加されました。コミットメッセージにあるGenerated by addca.は、この追加が自動化されたツール(おそらくaddcaというスクリプト)によって行われたことを示唆しています。これにより、手作業によるミスを防ぎ、プロセスを効率化しています。

前提知識の解説

AUTHORSファイルとCONTRIBUTORSファイル

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

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

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

Contributor License Agreement (CLA)

Contributor License Agreement (CLA) は、個人または企業がオープンソースプロジェクトに貢献する際に署名する法的文書です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者はプロジェクトの所有者(この場合はGoogle)に、貢献されたコードを使用、変更、配布する永続的で取り消し不能な権利を付与します。これにより、プロジェクトの所有者は、将来的にライセンスに関する問題が発生するのを防ぐことができます。
  2. ライセンスの統一性: プロジェクト全体でコードのライセンスが統一されていることを保証します。これにより、プロジェクトの利用者が、異なるライセンスのコードが混在することによる複雑さを回避できます。
  3. 法的保護: プロジェクトの所有者や利用者が、貢献されたコードに起因する潜在的な法的紛争から保護されることを助けます。

GoプロジェクトはGoogleによって管理されており、Googleは多くのオープンソースプロジェクトでCLAの署名を求めています。これにより、Go言語のコードベース全体の法的健全性が保たれています。

技術的詳細

このコミット自体は、非常に単純なテキストファイルの変更です。具体的には、AUTHORSファイルとCONTRIBUTORSファイルという2つのプレーンテキストファイルに、新しい行を追加しています。

変更内容は以下の通りです。

  • AUTHORSファイルにAndrew Szeto <andrew@jabagawee.com>という行が追加されました。
  • CONTRIBUTORSファイルにも同様にAndrew Szeto <andrew@jabagawee.com>という行が追加されました。

この種の変更は、通常、手動で行われることは少なく、CLAの署名プロセスと連携した自動化されたスクリプト(この場合はaddca)によって処理されます。これにより、人為的なエラーを最小限に抑え、貢献者の追加プロセスを効率化しています。

ファイルの内容は単なるテキストリストであり、特別なフォーマットや構造を持つものではありません。各行が貢献者の一人を示し、通常は名前とメールアドレスが含まれます。

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

diff --git a/AUTHORS b/AUTHORS
index 90f4038203..08c107833b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -39,6 +39,7 @@ Andrew Lutomirski <andy@luto.us>
 Andrew Pritchard <awpritchard@gmail.com>
 Andrew Radev <andrey.radev@gmail.com>
 Andrew Skiba <skibaa@gmail.com>
+Andrew Szeto <andrew@jabagawee.com>
 Andrew Wilkins <axwalk@gmail.com>
 Andrey Mirtchovski <mirtchovski@gmail.com>
 Andriy Lytvynov <lytvynov.a.v@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 5b2eb9ba26..9c22cb5808 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -71,6 +71,7 @@ Andrew Lutomirski <andy@luto.us>
 Andrew Pritchard <awpritchard@gmail.com>
 Andrew Radev <andrey.radev@gmail.com>
 Andrew Skiba <skibaa@gmail.com>
+Andrew Szeto <andrew@jabagawee.com>
 Andrew Wilkins <axwalk@gmail.com>
 Andrey Mirtchovski <mirtchovski@gmail.com>
 Andriy Lytvynov <lytvynov.a.v@gmail.com>

コアとなるコードの解説

上記の差分が示すように、このコミットはAUTHORSファイルとCONTRIBUTORSファイルにそれぞれ1行ずつ追加を行っています。

  • --- a/AUTHORS+++ b/AUTHORS は、AUTHORSファイルの変更前と変更後を示しています。
  • @@ -39,6 +39,7 @@ は、変更がファイルの39行目から始まり、変更前は6行、変更後は7行になることを示しています。
  • +Andrew Szeto <andrew@jabagawee.com> の行が、Andrew Szeto氏の名前とメールアドレスをリストに追加している部分です。

同様に、CONTRIBUTORSファイルにも同じ行が追加されています。この変更は、既存のリストに新しいエントリを挿入する形で行われており、ファイルの他の内容は一切変更されていません。これは、新しい貢献者がプロジェクトに加わったことを記録するための、標準的かつ最小限の変更です。

関連リンク

参考にした情報源リンク

  • Contributor License Agreement (CLA) に関する一般的な情報 (例: Wikipedia, 各オープンソースプロジェクトのCLAドキュメント)
  • Gitの差分表示 (diff) に関する一般的な情報