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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるNicholas Sullivan氏を追加するものです。これは、Goプロジェクトへの貢献が認められた際に、その貢献者の名前を公式に記録するための標準的なプロセスの一部です。

コミット

commit 4c56457d5882cfd8f3f697921f94de7d6c162577
Author: Adam Langley <agl@golang.org>
Date:   Thu Sep 12 11:17:37 2013 -0400

    A+C: Nicholas Sullivan
    
    Generated by addca.
    
    R=golang-dev
    CC=golang-dev
    https://golang.org/cl/13678043
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 649e54b2b5..f0bc6bbe63 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -236,6 +236,7 @@ Môshe van der Sterre <moshevds@gmail.com>
 Nan Deng <monnand@gmail.com>
 Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
+Nicholas Sullivan <nicholas.sullivan@gmail.com>
 Nicholas Waples <nwaples@gmail.com>
 Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
 Nicolas Owens <mischief@offblast.org>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 0e146e6802..9f51b17ee8 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -345,6 +345,7 @@ Moriyoshi Koizumi <mozo@mozo.jp>
 Môshe van der Sterre <moshevds@gmail.com>
 Nan Deng <monnand@gmail.com>
 Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
+Nicholas Sullivan <nicholas.sullivan@gmail.com>
 Nicholas Waples <nwaples@gmail.com>
 Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
 Nicolas Owens <mischief@offblast.org>

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

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

元コミット内容

このコミットの元々の内容は、Goプロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに、Nicholas Sullivan氏の名前とメールアドレス(nicholas.sullivan@gmail.com)を追加することです。コミットメッセージには「A+C: Nicholas Sullivan」とあり、これは「Authors and Contributors: Nicholas Sullivan」の略で、彼が著者および貢献者として追加されたことを示しています。また、「Generated by addca.」という記述があり、これはおそらく貢献者を追加するための内部スクリプトまたはツールが使用されたことを示唆しています。

変更の背景

オープンソースプロジェクト、特にGoのような大規模で活発なプロジェクトでは、多くの人々がコードの改善、バグ修正、ドキュメントの作成、テストの追加など、様々な形で貢献しています。これらの貢献を公式に認識し、記録することは、プロジェクトの透明性を保ち、貢献者への感謝を示す上で非常に重要です。

AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した人々の名前を一覧表示するために使用されます。AUTHORSファイルは通常、プロジェクトの主要な作者や初期の貢献者を指すことが多いですが、CONTRIBUTORSファイルはより広範な貢献者を含みます。Nicholas Sullivan氏がGoプロジェクトに何らかの形で貢献し、その貢献がプロジェクトのメンテナによって認められたため、これらのファイルに彼の名前が追加されることになりました。

「Generated by addca.」という記述は、このような貢献者の追加作業が手動ではなく、自動化されたプロセスによって行われたことを示しています。これは、貢献者の追加が頻繁に行われる大規模プロジェクトにおいて、作業の効率化と一貫性の確保のために一般的なプラクティスです。

前提知識の解説

オープンソースプロジェクトにおける貢献者リスト

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するためのファイル(例: AUTHORS, CONTRIBUTORS, CREDITSなど)を保持しています。これらのファイルは、以下のような目的で利用されます。

  1. 貢献の認識と感謝: プロジェクトの成功に寄与した個人を公式に認識し、感謝の意を表します。
  2. 透明性: プロジェクトが誰によって支えられているのかを明確にし、コミュニティの透明性を高めます。
  3. 著作権とライセンス: 一部のライセンスでは、貢献者の名前を明記することが求められる場合があります。これらのファイルは、その要件を満たすためにも役立ちます。
  4. コミュニティの形成: 貢献者リストは、プロジェクトのコミュニティがどれだけ活発であるかを示す指標にもなります。

Gitと差分(diff)

このコミットはGitの差分形式で表示されています。Gitはバージョン管理システムであり、ファイルの変更履歴を追跡します。差分は、ある時点でのファイルのバージョンと別の時点でのファイルのバージョンの違いを示します。

  • diff --git a/AUTHORS b/AUTHORS: AUTHORSファイルに対する変更を示します。a/は変更前のファイル、b/は変更後のファイルを表します。
  • index 649e54b2b5..f0bc6bbe63 100644: ファイルのGitオブジェクトハッシュとパーミッションモードを示します。
  • --- a/AUTHORS+++ b/AUTHORS: 変更前のファイルと変更後のファイルを示します。
  • @@ -236,6 +236,7 @@: これは「hunk header」と呼ばれ、変更が行われたファイルの行番号と行数を表します。-236,6は変更前のファイルで236行目から6行が対象であることを示し、+236,7は変更後のファイルで236行目から7行が対象であることを示します。これは、1行が追加されたことを意味します。
  • +Nicholas Sullivan <nicholas.sullivan@gmail.com>: 行の先頭に+がある行は、その行が追加されたことを示します。

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

Goプロジェクトへの貢献は、通常、GoのコードレビューシステムであるGerritを通じて行われます。貢献者は変更を提案し、それがレビューされ、承認されると、最終的にGitリポジトリにコミットされます。このコミットは、Gerritの変更リスト(Change-ID: 13678043)に関連付けられています。

技術的詳細

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

AUTHORSファイルとCONTRIBUTORSファイルの構造

これらのファイルは、単純なテキストファイルであり、各行に貢献者の名前とメールアドレスが記述されています。特定のフォーマット規則(例: 名前 <メールアドレス>)に従っていることが一般的です。これにより、プログラムによる解析や、人間が読みやすい形式での表示が容易になります。

addcaスクリプト/ツール

コミットメッセージにある「Generated by addca.」という記述は、Goプロジェクトが貢献者の追加を自動化するための内部ツールを使用していることを示唆しています。このようなツールは、以下のような機能を備えている可能性があります。

  1. Gerritとの連携: Gerritから承認された変更リストの情報を取得し、貢献者の名前とメールアドレスを抽出します。
  2. 重複チェック: 既にリストに存在する貢献者を重複して追加しないようにチェックします。
  3. ファイル更新: AUTHORSCONTRIBUTORSファイルに新しいエントリを追加し、必要に応じてアルファベット順にソートします。
  4. コミット生成: 更新されたファイルをステージングし、適切なコミットメッセージを生成してコミットします。

このような自動化は、手動でのエラーを防ぎ、大規模なプロジェクトにおける管理オーバーヘッドを削減する上で非常に効果的です。

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

このコミットにおけるコアとなるコードの変更箇所は、以下の2つのファイルです。

  1. AUTHORSファイル
  2. CONTRIBUTORSファイル

それぞれのファイルに、Nicholas Sullivan氏の名前とメールアドレスが1行ずつ追加されています。

diff --git a/AUTHORS b/AUTHORS
index 649e54b2b5..f0bc6bbe63 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -236,6 +236,7 @@ Môshe van der Sterre <moshevds@gmail.com>
 Nan Deng <monnand@gmail.com>
 Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
+Nicholas Sullivan <nicholas.sullivan@gmail.com>
 Nicholas Waples <nwaples@gmail.com>
 Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
 Nicolas Owens <mischief@offblast.org>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 0e146e6802..9f51b17ee8 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -345,6 +345,7 @@ Moriyoshi Koizumi <mozo@mozo.jp>
 Môshe van der Sterre <moshevds@gmail.com>
 Nan Deng <monnand@gmail.com>
 Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
+Nicholas Sullivan <nicholas.sullivan@gmail.com>
 Nicholas Waples <nwaples@gmail.com>
 Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
 Nicolas Owens <mischief@offblast.org>

コアとなるコードの解説

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

  • AUTHORSファイルでは、既存の貢献者リストのアルファベット順に沿って、Nicholas Prestaの後にNicholas Sullivan <nicholas.sullivan@gmail.com>という行が追加されています。
  • 同様に、CONTRIBUTORSファイルでも、Nicholas Prestaの後にNicholas Sullivan <nicholas.sullivan@gmail.com>という行が追加されています。

これらの変更は、Goプロジェクトの公式な記録にNicholas Sullivan氏の名前を永続的に追加することを目的としています。これにより、彼の貢献がプロジェクトの歴史の一部として認識されます。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ内のAUTHORSファイルとCONTRIBUTORSファイル(コミット時点のファイル内容を直接参照)
  • Gitの差分表示に関する一般的なドキュメント
  • オープンソースプロジェクトにおける貢献者リストの慣習に関する一般的な知識