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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるOliver Hookins氏の情報を追加するものです。これらのファイルは、プロジェクトに貢献した個人や組織を記録するために使用されます。

コミット

commit ad78f69f07cc6e94c3c612033d8525a4824bbfed
Author: Andrew Gerrand <adg@golang.org>
Date:   Fri Jul 5 12:53:01 2013 +1000

    A+C: Oliver Hookins (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/10868046

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

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

元コミット内容

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Oliver Hookins氏の情報を追加するものです。コミットメッセージには「A+C: Oliver Hookins (individual CLA)」とあり、これはOliver Hookins氏が個人としてContributor License Agreement (CLA) に署名したことを示しています。また、「Generated by addca.」とあることから、addcaというツールによって自動生成されたコミットであることがわかります。

変更の背景

オープンソースプロジェクトにおいて、貢献者がコードを提出する際には、プロジェクトのライセンスに従うことに同意する必要があります。多くの大規模なオープンソースプロジェクト、特にGoogleが関与するプロジェクトでは、Contributor License Agreement (CLA) の署名を義務付けています。CLAは、貢献者が提出したコードの著作権をプロジェクトが適切に管理し、再配布できるようにするための法的な合意です。

このコミットは、Oliver Hookins氏がGoプロジェクトへの貢献を開始するにあたり、個人CLAに署名したことを受けて行われました。CLAに署名した貢献者の名前は、プロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに追加されます。これにより、プロジェクトの透明性が保たれ、誰がプロジェクトに貢献しているかが明確になります。

前提知識の解説

AUTHORSファイルとCONTRIBUTORSファイル

オープンソースプロジェクトでは、プロジェクトに貢献した人々を認識し、感謝するために、通常AUTHORSCONTRIBUTORSといったファイルがリポジトリのルートに配置されます。

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人・団体をリストアップします。歴史的な経緯や法的な側面が強い場合があります。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップします。コードの提出だけでなく、ドキュメントの改善、バグ報告、テストの作成、コミュニティサポートなど、様々な貢献が含まれることがあります。

これらのファイルは、プロジェクトの透明性を高め、コミュニティの努力を可視化する役割を果たします。

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにコードやその他のコンテンツを貢献する個人または法人と、プロジェクトの所有者(または管理団体)との間で締結される法的な契約です。CLAの主な目的は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者は自身の著作権を保持しつつ、プロジェクトに対してそのコードをプロジェクトのライセンスの下で利用、変更、再配布する永続的かつ取り消し不能な権利を付与します。一部のCLAでは、著作権をプロジェクト所有者に譲渡する場合もあります。
  2. ライセンスの整合性: プロジェクト全体が単一のライセンスの下で配布されることを保証し、将来的なライセンス変更や再ライセンスの際に問題が生じないようにします。
  3. 法的保護: プロジェクトが、貢献されたコードに関する著作権侵害の申し立てやその他の法的紛争から保護されるようにします。

CLAは、特に企業が関与する大規模なオープンソースプロジェクトでよく採用されます。GoプロジェクトもGoogleが主導しているため、CLAの署名が義務付けられています。

addcaツール

コミットメッセージに「Generated by addca.」とあることから、この変更がaddcaというツールによって自動的に行われたことが示唆されます。addcaは「Add Contributor Agreement」のような意味合いを持つ内部ツールであると推測され、CLAが署名された際に、自動的にAUTHORSおよびCONTRIBUTORSファイルに該当する貢献者の情報を追加する役割を担っていると考えられます。これにより、手作業によるミスを防ぎ、プロセスを効率化しています。

技術的詳細

このコミット自体は、Go言語のランタイムや標準ライブラリのコードに直接的な変更を加えるものではありません。単にテキストファイルであるAUTHORSCONTRIBUTORSに新しい行を追加する、非常に単純なファイル操作です。

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

  • AUTHORSファイル: Oliver Hookins <ohookins@gmail.com>
  • CONTRIBUTORSファイル: Oliver Hookins <ohookins@gmail.com>

この変更は、git diffコマンドの出力からも明らかなように、既存のファイルの特定の行の後に新しい行を挿入する形で行われています。ファイルのインデックス(index 8728255287..99135886ccなど)が変更されているのは、ファイルの内容が変更されたため、Gitが新しいハッシュ値を計算した結果です。100644はファイルのパーミッションを示しており、通常のテキストファイルであることを意味します。

この種の変更は、CI/CDパイプラインの一部として、CLA署名プロセスと連携して自動的に実行されることが一般的です。

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

diff --git a/AUTHORS b/AUTHORS
index 8728255287..99135886cc 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -226,6 +226,7 @@ Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
 Nicolas Owens <mischief@offblast.org>
 Nigel Kerr <nigel.kerr@gmail.com>
 Oling Cat <olingcat@gmail.com>
+Oliver Hookins <ohookins@gmail.com>
 Olivier Antoine <olivier.antoine@gmail.com>
 Olivier Duperray <duperray.olivier@gmail.com>
 Olivier Saingre <osaingre@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 275be608d1..f436fcbbd9 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -328,6 +328,7 @@ Nicolas Owens <mischief@offblast.org>
 Nigel Kerr <nigel.kerr@gmail.com>
 Nigel Tao <nigeltao@golang.org>
 Oling Cat <olingcat@gmail.com>
+Oliver Hookins <ohookins@gmail.com>
 Olivier Antoine <olivier.antoine@gmail.com>
 Olivier Duperray <duperray.duperray@gmail.com>
 Olivier Saingre <osaingre@gmail.com>

コアとなるコードの解説

上記の差分は、AUTHORSファイルとCONTRIBUTORSファイルに対する変更を示しています。

  • AUTHORSファイル:

    • @@ -226,6 +226,7 @@ は、変更が元のファイルの226行目から6行に影響し、変更後のファイルでは226行目から7行になることを示しています。
    • +Oliver Hookins <ohookins@gmail.com> の行が追加されています。これは、Oling Cat <olingcat@gmail.com> の行の直後に挿入されています。
  • CONTRIBUTORSファイル:

    • @@ -328,6 +328,7 @@ は、変更が元のファイルの328行目から6行に影響し、変更後のファイルでは328行目から7行になることを示しています。
    • +Oliver Hookins <ohookins@gmail.com> の行が追加されています。これも、Oling Cat <olingcat@gmail.com> の行の直後に挿入されています。

この変更は、Oliver Hookins氏の名前とメールアドレスを、それぞれのファイルの適切なアルファベット順の位置に追加するものです。これにより、Goプロジェクトへの彼の貢献が公式に認識されることになります。

関連リンク

参考にした情報源リンク