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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに対する変更を記録しています。具体的には、新しい貢献者であるNicholas Katsaros氏の追加と、既存の貢献者であるRowan Worth氏のエントリの移動(実質的には再追加)が行われています。

コミット

commit 2d06e3863feaf2c5790dcea7b5a2a3d9a56bdb27
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Thu Jan 9 09:42:58 2014 -0800

    A+C: Nicholas Katsaros (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/49950043

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

https://github.com/golang/go/commit/2d06e3863feaf2c5790dcea7b5a2a3d9a56bdb27

元コミット内容

A+C: Nicholas Katsaros (individual CLA)

Generated by addca.

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

変更の背景

このコミットの主な背景は、Goプロジェクトへの新しい貢献者であるNicholas Katsaros氏を公式に記録することです。オープンソースプロジェクト、特にGoogleが主導するような大規模なプロジェクトでは、貢献者がコードを提出する前にContributor License Agreement (CLA) に署名することが一般的です。CLAは、貢献されたコードの著作権とライセンスに関する明確な法的枠組みを提供し、プロジェクトが将来的にライセンスを変更したり、コードを再配布したりする際の法的リスクを軽減します。

コミットメッセージにある「A+C」は「AUTHORS and CONTRIBUTORS」を指し、「individual CLA」は個人としてのCLAに署名したことを示唆しています。また、「Generated by addca.」という記述から、この変更がaddcaというツールによって自動生成されたものであることがわかります。addcaは、CLAに署名した貢献者の情報をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加するための内部ツールであると考えられます。

Rowan Worth氏のエントリが一度削除され、その後再追加されているのは、おそらくリストのソート順の調整や、ツールの実行による副作用、あるいは何らかのデータクリーンアップの一環として行われた可能性があります。

前提知識の解説

  • Contributor License Agreement (CLA): 貢献者ライセンス同意書。オープンソースプロジェクトにおいて、貢献者が自身のコードをプロジェクトに提供する際に署名する法的文書。これにより、プロジェクトは貢献されたコードをプロジェクトのライセンスの下で利用、配布、変更する権利を得ます。Googleが関与する多くのオープンソースプロジェクトで採用されています。
  • AUTHORSファイル: プロジェクトに貢献した主要な著者や開発者の名前を列挙するファイル。通常、プロジェクトの歴史的な記録として機能します。
  • CONTRIBUTORSファイル: プロジェクトに貢献したすべての個人の名前を列挙するファイル。AUTHORSファイルよりも広範な貢献者を含みます。
  • Gerrit (golang.org/cl/): Goプロジェクトがコードレビューと変更管理に使用しているシステム。https://golang.org/cl/49950043は、このコミットに対応するGerritの変更リスト(Change-ID)へのリンクです。
  • gobot: Goプロジェクトの自動化されたボットアカウント。コードレビューの承認や、特定のタスクの自動実行を担当します。R=gobotは、この変更がgobotによってレビューされたことを示します。
  • golang-codereviews: Goプロジェクトのコードレビューに関するメーリングリスト。CC=golang-codereviewsは、この変更がそのメーリングリストに通知されたことを示します。

技術的詳細

このコミットは、Go言語のソースコード自体ではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSを更新しています。これらのファイルは、プロジェクトの歴史と貢献者を追跡するために重要です。

AUTHORSファイルとCONTRIBUTORSファイルは、通常、テキストファイルであり、各行に貢献者の名前とメールアドレスが記述されています。これらのファイルは、プロジェクトのビルドプロセスやドキュメント生成プロセスで参照されることは稀ですが、プロジェクトの透明性と法的コンプライアンスを維持するために不可欠です。

addcaツールは、CLA署名プロセスと連携して動作すると考えられます。CLAに署名が完了すると、その情報がaddcaツールに渡され、ツールが自動的にこれらのファイルを更新する変更リスト(Change List, CL)を生成し、Gerritに提出します。この自動化されたプロセスにより、手動でのファイル更新に伴うエラーを減らし、貢献者情報の正確性を保証します。

このコミットでは、Nicholas Katsaros氏が追加され、Rowan Worth氏が一度削除されてから再追加されています。これは、リストのアルファベット順の維持や、ツールの内部的な処理ロジックによるものと推測されます。例えば、ツールが既存のエントリを一度すべて削除し、ソートされた新しいリストを書き込むような実装になっている場合、このような差分が生じることがあります。

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

このコミットで変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルで、Nicholas Katsaros氏のエントリが追加され、Rowan Worth氏のエントリが移動(実質的には削除と再追加)されています。

AUTHORSファイルにおける変更:

--- a/AUTHORS
+++ b/AUTHORS
@@ -254,6 +254,7 @@ Môshe van der Sterre <moshevds@gmail.com>
 Nan Deng <monnand@gmail.com>
 Nathan John Youngman <nj@nathany.com>
 ngmoco, LLC
+Nicholas Katsaros <nick@nickkatsaros.com>
 Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
 Nicholas Sullivan <nicholas.sullivan@gmail.com>
 Nicholas Waples <nwaples@gmail.com>
@@ -308,6 +309,7 @@ Roger Pau Monné <royger@gmail.com>
 Roger Peppe <rogpeppe@gmail.com>
 Ron Minnich <rminnich@gmail.com>
 Ross Light <rlight2@gmail.com>
+Rowan Worth <sqweek@gmail.com>
 Ryan Hitchman <hitchmanr@gmail.com>
 Ryan Slade <ryanslade@gmail.com>
 S.Çağlar Onur <caglar@10ur.org>
@@ -325,7 +327,6 @@ Shenghou Ma <minux.ma@gmail.com>
 Shivakumar GN <shivakumar.gn@gmail.com>
 Sokolov Yura <funny.falcon@gmail.com>
 Spring Mc <heresy.mc@gmail.com>
-Rowan Worth <sqweek@gmail.com>
 Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
 Stéphane Travostino <stephane.travostino@gmail.com>
 Stephen McQuay <stephen@mcquay.me>

CONTRIBUTORSファイルにおける変更:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -369,6 +369,7 @@ Moriyoshi Koizumi <mozo@mozo.jp>
 Môshe van der Sterre <moshevds@gmail.com>
 Nan Deng <monnand@gmail.com>
 Nathan John Youngman <nj@nathany.com>
+Nicholas Katsaros <nick@nickkatsaros.com>
 Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
 Nicholas Sullivan <nicholas.sullivan@gmail.com>
 Nicholas Waples <nwaples@gmail.com>
@@ -436,6 +437,7 @@ Roger Pau Monné <royger@gmail.com>
 Roger Peppe <rogpeppe@gmail.com>
 Ron Minnich <rminnich@gmail.com>
 Ross Light <rlight2@gmail.com>
+Rowan Worth <sqweek@gmail.com>
 Russ Cox <rsc@golang.org>
 Ryan Barrett <ryanb@google.com>
 Ryan Hitchman <hitchmanr@gmail.com>
@@ -459,7 +461,6 @@ Shenghou Ma <minux.ma@gmail.com>
 Shivakumar GN <shivakumar.gn@gmail.com>
 Sokolov Yura <funny.falcon@gmail.com>
 Spring Mc <heresy.mc@gmail.com>
-Rowan Worth <sqweek@gmail.com>
 Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
 Stéphane Travostino <stephane.travostino@gmail.com>
 Stephen Ma <stephenm@golang.org>

コアとなるコードの解説

このコミットは、Go言語のランタイムやライブラリのコードベースに直接的な機能変更を加えるものではありません。その代わりに、プロジェクトの管理と法的側面に関連するメタデータファイルを更新しています。

  • Nicholas Katsaros氏の追加: AUTHORSCONTRIBUTORSの両ファイルに、Nicholas Katsaros氏の名前とメールアドレスが追加されています。これは、彼がGoプロジェクトに貢献する資格を得た(CLAに署名した)ことを公式に記録するものです。
  • Rowan Worth氏のエントリの移動: AUTHORSCONTRIBUTORSの両ファイルで、Rowan Worth氏のエントリが一度削除され、別の位置に再追加されています。これは、リストのアルファベット順を維持するため、またはaddcaツールがファイルを再生成する際に発生する一般的なパターンです。例えば、ツールが新しいエントリを挿入する際に、全体のソート順を保証するために既存のエントリを再配置することがあります。

これらの変更は、Goプロジェクトの健全なオープンソースエコシステムを維持するために不可欠です。CLAの管理と貢献者リストの正確な維持は、プロジェクトの法的健全性と透明性を保証します。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリのコミット履歴
  • 一般的なオープンソースプロジェクトにおけるCLAの慣行に関する知識
  • Gerritコードレビューシステムに関する一般的な知識
  • AUTHORSおよびCONTRIBUTORSファイルの一般的な目的