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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるHenrik Edwards氏を追加するものです。これは、Goプロジェクトへの貢献が認められた個人を公式に記録するための、定型的な更新プロセスの一部です。

コミット

commit 4dd0f421519dc5898107d31b6b99d35eb1daafd0
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Sun Feb 2 12:54:21 2014 +0100

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

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

https://github.com/golang/go/commit/4dd0f421519dc5898107d31b6b99d35eb1daafd0

元コミット内容

A+C: Henrik Edwards (individual CLA)

Generated by addca.

TBR=iant
R=gobot
CC=golang-codereviews
https://golang.org/cl/59440043

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と、知的財産権の明確化という重要な側面があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、多数の個人がコードベースに貢献します。これらの貢献者がプロジェクトにコードを提出する際、通常はContributor License Agreement (CLA) に署名することが求められます。CLAは、貢献されたコードの著作権がプロジェクト(この場合はGoogle)に適切にライセンスされ、プロジェクトがそのコードを自由に利用、配布、変更できることを保証するための法的な合意です。

このコミットは、Henrik Edwards氏が個人のCLAに署名し、Goプロジェクトへの貢献が認められた結果として行われました。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人を公式に記録するためのものであり、この更新はその記録プロセスの一部です。コミットメッセージにあるGenerated by addca.は、この変更がaddcaというツールによって自動生成されたことを示しており、これはCLAの処理と関連ファイルの更新を自動化するための内部ツールであると考えられます。

前提知識の解説

Contributor License Agreement (CLA)

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

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属し、プロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権に関する紛争を防ぎます。
  2. ライセンスの保証: 貢献者が提出するコードが、プロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)と互換性があることを保証します。
  3. プロジェクトの保護: プロジェクトが貢献されたコードを安心して利用し、再配布、変更、サブライセンスできる法的基盤を提供します。

Goプロジェクトの場合、Googleがプロジェクトをホストしているため、貢献者は通常、GoogleのCLAに署名します。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトには、プロジェクトに貢献した人々をリストアップするファイルが存在します。Goプロジェクトでは、AUTHORSCONTRIBUTORSという2つのファイルがこれに該当します。

  • AUTHORS: 主にプロジェクトの主要な作者や、重要な貢献をした人々をリストアップするために使用されます。歴史的な経緯や、プロジェクトの初期段階からの貢献者が含まれることが多いです。
  • CONTRIBUTORS: より広範な貢献者、例えばバグ修正、ドキュメントの改善、小さな機能追加など、様々な形でプロジェクトに貢献した人々をリストアップするために使用されます。

これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの透明性とコミュニティの健全性を維持する上で重要な役割を果たします。

addcaツール

コミットメッセージにGenerated by addca.とあることから、addcaはGoプロジェクトの内部ツールであり、CLAの署名が完了した貢献者をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加する役割を担っていると推測されます。このような自動化ツールは、大規模なプロジェクトにおいて、手作業によるエラーを防ぎ、管理プロセスを効率化するために不可欠です。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコア部分の技術的な変更を含むものではありません。純粋にプロジェクトのメタデータ、具体的には貢献者リストの更新に関するものです。

変更の技術的な側面は以下の通りです。

  1. テキストファイルの変更: AUTHORSCONTRIBUTORSはプレーンテキストファイルであり、新しい貢献者の名前とメールアドレスが既存のリストに追記されます。
  2. 差分 (diff): コミットに含まれる差分情報(diff --git a/AUTHORS b/AUTHORS および diff --git a/CONTRIBUTORS b/CONTRIBUTORS)は、Gitがファイルの変更を追跡するために生成する標準的な形式です。index行は、変更前後のファイルのハッシュ(SHA-1)を示し、--- a/AUTHORS+++ b/AUTHORSは、それぞれ変更前のファイルと変更後のファイルを示します。
  3. 行の追加: 差分表示において、+記号で始まる行は、ファイルに追加された新しい行を示します。このコミットでは、Henrik Edwards <henrik.edwards@gmail.com>という行が両方のファイルに追加されています。
  4. コミットメタデータ:
    • Author: コミットを作成したユーザー(この場合はBrad Fitzpatrick氏)。
    • Date: コミットが作成された日時。
    • TBR (To Be Reviewed by): コードレビューを依頼する相手(iant氏)。
    • R (Reviewer): コードレビューを行った相手(gobot、おそらく自動レビューボット)。
    • CC (Carbon Copy): 通知を送るメーリングリストやグループ(golang-codereviews)。
    • https://golang.org/cl/59440043: このコミットに対応するGerrit Code Reviewのチェンジリストへのリンク。Goプロジェクトでは、GitHubにプッシュされる前にGerritでコードレビューが行われるのが一般的です。

このコミットは、Goプロジェクトのガバナンスと貢献者管理のプロセスがどのように機能しているかを示す良い例です。法的な合意(CLA)から始まり、自動化ツール(addca)を通じて、プロジェクトの公式記録(AUTHORS/CONTRIBUTORSファイル)が更新されるという一連の流れが見て取れます。

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

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

変更箇所は以下の通りです。

AUTHORSファイル:

--- a/AUTHORS
+++ b/AUTHORS
@@ -156,6 +156,7 @@ Gustavo Niemeyer <gustavo@niemeyer.net>
 Gwenael Treguier <gwenn.kahz@gmail.com>
 Harley Laue <losinggeneration@gmail.com>
 Hector Chu <hectorchu@gmail.com>
+Henrik Edwards <henrik.edwards@gmail.com>
 Herbert Georg Fischer <herbert.fischer@gmail.com>
 Hong Ruiqi <hongruiqi@gmail.com>
 Icarus Sparry <golang@icarus.freeuk.com>

CONTRIBUTORSファイル:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -224,6 +224,7 @@ Gwenael Treguier <gwenn.kahz@gmail.com>
 Han-Wen Nienhuys <hanwen@google.com>
 Harley Laue <losinggeneration@gmail.com>
 Hector Chu <hectorchu@gmail.com>
+Henrik Edwards <henrik.edwards@gmail.com>
 Herbert Georg Fischer <herbert.fischer@gmail.com>
 Hong Ruiqi <hongruiqi@gmail.com>
 Hossein Sheikh Attar <hattar@google.com>

コアとなるコードの解説

上記の変更箇所は、それぞれAUTHORSファイルとCONTRIBUTORSファイルに、新しい行Henrik Edwards <henrik.edwards@gmail.com>を追加していることを示しています。

  • AUTHORSファイルでは、既存の貢献者リストのアルファベット順に、Hector Chuの後にHenrik Edwardsが追加されています。
  • CONTRIBUTORSファイルでも同様に、既存の貢献者リストのアルファベット順に、Hector Chuの後にHenrik Edwardsが追加されています。

この変更は、Goプロジェクトの公式な貢献者リストにHenrik Edwards氏の名前とメールアドレスを記録することを目的としています。これにより、彼のGoプロジェクトへの貢献が正式に認められ、記録されることになります。これは、オープンソースプロジェクトにおける貢献者の認識と、プロジェクトの透明性を保つための標準的な運用手順です。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ内のAUTHORSファイルとCONTRIBUTORSファイルの内容
  • Gitの差分表示に関する一般的な知識
  • オープンソースプロジェクトにおけるCLAの役割に関する一般的な知識
  • Gerrit Code Reviewに関する一般的な知識
  • コミットメッセージの慣習に関する一般的な知識