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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Dustin Sallings氏の情報を追加するものです。これは、彼がGoプロジェクトへの貢献を始めるにあたり、個人のContributor License Agreement (CLA) に署名したことを示す管理上の変更です。

コミット

commit 715bcf9af7dd1e275c9ca7d7c539696f4236f540
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Tue Aug 6 12:00:46 2013 -0700

    A+C: Dustin Sallings (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/12557043

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

https://github.com/golang/go/commit/715bcf9af7dd1e275c9ca7d7c539696f4236f540

元コミット内容

このコミットの元々の内容は、Dustin Sallings氏が個人のContributor License Agreement (CLA) に署名したことを記録し、その情報をAUTHORSファイルとCONTRIBUTORSファイルに追加することです。コミットメッセージにある "A+C" は "Authors and Contributors" を意味し、"Generated by addca." は、この変更がaddcaというツールによって自動生成されたものであることを示しています。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するプロジェクト(Goを含む)では、外部からのコード貢献を受け入れる際にContributor License Agreement (CLA) の署名を求めることが一般的です。CLAは、貢献者が自身のコードに対する著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、または非独占的なライセンスを付与することを法的に保証するものです。

このコミットは、Dustin Sallings氏がGoプロジェクトにコードを貢献する準備が整ったことを示しています。CLAに署名することで、プロジェクトは貢献されたコードを安心して利用、配布、変更できるようになり、将来的な著作権に関する紛争のリスクを軽減できます。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、外部の貢献者からコードを受け入れる際に使用される法的な合意書です。主な目的は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するか、またはプロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的に著作権侵害の訴訟やライセンスに関する問題が発生するリスクを低減します。
  2. ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンス(例: BSDライセンス、MITライセンスなど)の下で配布されることを保証します。貢献者が異なるライセンスのコードを持ち込むことを防ぎ、プロジェクトのライセンスモデルを維持します。
  3. プロジェクトの持続性: プロジェクトの所有者(企業や財団など)が、貢献されたコードを自由に利用、再ライセンス、配布できる権利を持つことで、プロジェクトの長期的な維持と発展を保証します。

CLAには大きく分けて「個人CLA」と「法人CLA」があります。このコミットでは「個人CLA」が言及されており、Dustin Sallings氏個人が合意したことを意味します。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORS: 通常、プロジェクトの主要な作者や初期の貢献者、または著作権を保持する個人や団体がリストされます。
  • CONTRIBUTORS: プロジェクトにコード、ドキュメント、翻訳などで貢献したすべての個人がリストされます。CLAに署名した貢献者は、通常このファイルに追加されます。

これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの透明性と法的なトレーサビリティを確保する役割も果たします。

addcaツール

コミットメッセージに「Generated by addca.」とあるように、この変更はaddcaというツールによって自動生成されたものです。これは、CLAの署名が完了した際に、関連するファイルを自動的に更新するための内部ツールであると推測されます。このような自動化は、大規模なオープンソースプロジェクトにおいて、管理作業の効率化とヒューマンエラーの削減に貢献します。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラ、標準ライブラリといったコアな技術要素に直接的な変更を加えるものではありません。純粋にプロジェクトの管理ファイルであるAUTHORSCONTRIBUTORSに対するテキストの追加です。

技術的な観点から見ると、この変更は以下の特徴を持ちます。

  • ファイル操作: 既存のテキストファイル(AUTHORSCONTRIBUTORS)に対して、新しい行を追加する操作です。
  • バージョン管理: Gitの差分(diff)を見るとわかるように、特定の行が追加されたことが明確に記録されています。
  • 自動化されたプロセス: addcaツールによる自動生成は、CLA管理ワークフローの一部であり、手動でのファイル編集に伴うミスを防ぎます。

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

このコミットにおける「コアとなるコード」は、Go言語のソースコードではなく、プロジェクトの管理ファイルです。変更箇所は以下の2つのファイルです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、Dustin Sallings <dsallings@gmail.com>という行が追加されています。

diff --git a/AUTHORS b/AUTHORS
index 0e62240c55..754e0e05dc 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -101,6 +101,7 @@ Dmitry Chestnykh <dchest@gmail.com>
 Dominik Honnef <dominik.honnef@gmail.com>
 Donovan Hide <donovanhide@gmail.com>
 Duncan Holm <mail@frou.org>
+Dustin Sallings <dsallings@gmail.com>
 Dustin Shields-Cloues <dcloues@gmail.com>
 Eden Li <eden.li@gmail.com>
 Egon Elbre <egonelbre@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 7f5a8809ea..7860958b1e 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -160,6 +160,7 @@ Dominik Honnef <dominik.honnef@gmail.com>
 Donovan Hide <donovanhide@gmail.com>
 Drew Hintz <adhintz@google.com>
 Duncan Holm <mail@frou.org>
+Dustin Sallings <dsallings@gmail.com>
 Dustin Shields-Cloues <dcloues@gmail.com>
 Eden Li <eden.li@gmail.com>
 Egon Elbre <egonelbre@gmail.com>

コアとなるコードの解説

変更されたコード(テキスト)は、単に貢献者の名前とメールアドレスをリストに追加するものです。

  • AUTHORSファイルでは、アルファベット順にDustin Sallings <dsallings@gmail.com>が挿入されています。
  • CONTRIBUTORSファイルでも同様に、アルファベット順にDustin Sallings <dsallings@gmail.com>が挿入されています。

この変更自体に複雑なロジックやアルゴリズムは含まれていません。これは、Goプロジェクトの管理プロセスの一部として、新しい貢献者が正式にプロジェクトに参加したことを記録するための、シンプルかつ重要なデータ更新です。

関連リンク

参考にした情報源リンク