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

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

このコミットは、Goプロジェクトの貢献者リストに新しい個人を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルに「Christoffer Buchholz」氏の名前とメールアドレスが追加されています。これは、同氏がGoプロジェクトへの貢献を始めるにあたり、個人Contributor License Agreement (CLA) に署名したことを示すものです。

コミット

  • コミットハッシュ: 348b75d78a6dca08b7b8d32abac16d254a2dca8e
  • Author: Brad Fitzpatrick bradfitz@golang.org
  • Date: Sun Feb 2 12:52:54 2014 +0100
  • Subject: A+C: Christoffer Buchholz (individual CLA)

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

https://github.com/golang/go/commit/348b75d78a6dca08b7b8d32abac16d254a2dca8e

元コミット内容

commit 348b75d78a6dca08b7b8d32abac16d254a2dca8e
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Sun Feb 2 12:52:54 2014 +0100

    A+C: Christoffer Buchholz (individual CLA)
    
    Generated by addca.
    
    TBR=iant
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/56730044
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index f0f36a7f3c..79a0a63b24 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -80,6 +80,7 @@ Chris Jones <chris@cjones.org>
 Chris Lennert <calennert@gmail.com>
 Christian Himpel <chressie@googlemail.com>
 Christine Hansmann <chhansmann@gmail.com>
+Christoffer Buchholz <christoffer.buchholz@gmail.com>
 Christoph Hack <christoph@tux21b.org>
 Christopher Cahoon <chris.cahoon@gmail.com>
 Christopher Nielsen <m4dh4tt3r@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 72b9a062e2..7b4c0cfefc 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -129,6 +129,7 @@ Chris Lennert <calennert@gmail.com>
 Chris Manghane <cmang@golang.org>
 Christian Himpel <chressie@googlemail.com> <chressie@gmail.com>
 Christine Hansmann <chhansmann@gmail.com>
+Christoffer Buchholz <christoffer.buchholz@gmail.com>
 Christoph Hack <christoph@tux21b.org>
 Christopher Cahoon <chris.cahoon@gmail.com>
 Christopher Nielsen <m4dh4tt3r@gmail.com>

変更の背景

このコミットの背景には、オープンソースプロジェクト、特にGoogleが管理するGoのような大規模プロジェクトにおける貢献の法的な側面と管理プロセスがあります。

Goプロジェクトにコードを貢献する個人や組織は、通常、Contributor License Agreement (CLA) に署名する必要があります。CLAは、貢献されたコードをプロジェクトが使用、配布、およびライセンスするための法的権利をGoogleに付与するものです。これにより、将来的な知的財産権に関する紛争を防ぎ、プロジェクトの健全な発展を保証します。

Christoffer Buchholz氏がGoプロジェクトに貢献する意思を示し、必要な個人CLAに署名したため、その貢献を正式に認識し、プロジェクトの公式な貢献者リストに名前を追加する必要が生じました。このコミットは、その管理プロセスの一環として行われたものです。コミットメッセージにある「Generated by addca」という記述は、この追加がaddcaという内部ツールによって自動的に生成されたものであることを示唆しており、Goプロジェクトが貢献者管理プロセスを効率化していることが伺えます。

前提知識の解説

Goプロジェクトへの貢献プロセス

Goプロジェクトのような大規模なオープンソースプロジェクトへの貢献は、単にコードを書くだけでなく、いくつかのステップを踏む必要があります。

  1. コードの作成とテスト: 貢献したい機能やバグ修正のコードを書き、テストを作成します。
  2. コードレビュー: 変更を提案する前に、Goのコードレビュープロセスに従い、変更をレビューしてもらいます。Goでは通常、Gerritというコードレビューシステムが使用されます。
  3. Contributor License Agreement (CLA) の署名: 最も重要なステップの一つがCLAの署名です。これは、貢献されたコードの知的財産権に関する法的合意です。

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、貢献者がその貢献に対する著作権を保持しつつ、プロジェクトの所有者(この場合はGoogle)にその貢献を使用、複製、変更、配布、サブライセンスする広範な権利を付与する法的な文書です。Goプロジェクトでは、以下の2種類のCLAがあります。

  • 個人CLA (Individual CLA): 個人が自身の著作物として貢献する場合に署名します。通常、オンラインで簡単に完了できます。
  • 法人CLA (Corporate CLA): 企業や組織が従業員の業務として貢献する場合に署名します。組織の代表者が署名する必要があり、処理に数日かかる場合があります。

CLAの目的は、プロジェクトのコードベースの法的健全性を確保し、将来的に著作権侵害の訴訟や知的財産権に関する紛争が発生するリスクを最小限に抑えることです。一度署名すれば、その後のすべての貢献に適用されます。

AUTHORS および CONTRIBUTORS ファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するためのファイルが存在します。Goプロジェクトでは、AUTHORSCONTRIBUTORSというファイルがその役割を担っています。

  • AUTHORS: 主にプロジェクトの主要な作者や初期の貢献者をリストアップする傾向があります。
  • CONTRIBUTORS: より広範な貢献者、つまりコード、ドキュメント、テスト、レビューなど、様々な形でプロジェクトに貢献した人々をリストアップします。

これらのファイルは、プロジェクトの歴史とコミュニティを可視化し、貢献者への感謝を示す役割も果たします。

addca ツール

コミットメッセージの「Generated by addca.」という記述から、addcaはGoプロジェクトの内部ツールであると推測されます。このツールの主な機能は、CLAに署名した新しい貢献者の情報を自動的にAUTHORSおよびCONTRIBUTORSファイルに追加することであると考えられます。このような自動化ツールは、大規模なオープンソースプロジェクトにおいて、手作業によるエラーを減らし、管理プロセスを効率化するために不可欠です。

技術的詳細

このコミット自体は、Go言語のランタイムやライブラリの機能的な変更を含むものではありません。純粋にプロジェクトのメタデータ、具体的には貢献者リストの更新です。

変更は、AUTHORSファイルとCONTRIBUTORSファイルという2つのプレーンテキストファイルに対して行われています。これらのファイルは、プロジェクトのルートディレクトリに存在し、各行に貢献者の名前とメールアドレスが記述されています。

コミットの差分を見ると、既存のリストの途中に新しい行が1行ずつ追加されていることがわかります。これは、おそらくアルファベット順などの特定の順序でリストが管理されているためと考えられます。

addcaツールがこのコミットを生成したという事実は、Goプロジェクトが貢献者の追加プロセスを高度に自動化していることを示しています。CLAの署名が確認されると、このツールが実行され、関連するファイルが更新され、その後、この変更がコミットされるというワークフローが確立されていると推測できます。これにより、手動でのファイル編集に伴うヒューマンエラーのリスクが低減され、貢献者の追加プロセスが迅速かつ一貫して行われます。

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

diff --git a/AUTHORS b/AUTHORS
index f0f36a7f3c..79a0a63b24 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -80,6 +80,7 @@ Chris Jones <chris@cjones.org>
 Chris Lennert <calennert@gmail.com>
 Christian Himpel <chressie@googlemail.com>
 Christine Hansmann <chhansmann@gmail.com>
+Christoffer Buchholz <christoffer.buchholz@gmail.com>
 Christoph Hack <christoph@tux21b.org>
 Christopher Cahoon <chris.cahoon@gmail.com>
 Christopher Nielsen <m4dh4tt3r@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 72b9a062e2..7b4c0cfefc 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -129,6 +129,7 @@ Chris Lennert <calennert@gmail.com>
 Chris Manghane <cmang@golang.org>
 Christian Himpel <chressie@googlemail.com> <chressie@gmail.com>
 Christine Hansmann <chhansmann@gmail.com>
+Christoffer Buchholz <christoffer.buchholz@gmail.com>
 Christoph Hack <christoph@tux21b.org>
 Christopher Cahoon <chris.cahoon@gmail.com>
 Christopher Nielsen <m4dh4tt3r@gmail.com>

コアとなるコードの解説

上記の差分が示すように、変更は非常にシンプルです。

  1. AUTHORS ファイル:

    • Chris Jones <chris@cjones.org> の行から Christoph Hack <christoph@tux21b.org> の行の間に、新しい行 +Christoffer Buchholz <christoffer.buchholz@gmail.com> が追加されています。これは、既存の貢献者リストのアルファベット順に沿って挿入されたものと見られます。
  2. CONTRIBUTORS ファイル:

    • 同様に、Chris Lennert <calennert@gmail.com> の行から Christoph Hack <christoph@tux21b.org> の行の間に、新しい行 +Christoffer Buchholz <christoffer.buchholz@gmail.com> が追加されています。

これらの変更は、Goプロジェクトの貢献者リストにChristoffer Buchholz氏が正式に追加されたことを記録するものです。コードの機能に直接影響を与えるものではなく、プロジェクトの管理と透明性に関わる変更です。

関連リンク

参考にした情報源リンク