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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに新しいエントリを追加するものです。これらのファイルは、オープンソースプロジェクトにおいて、プロジェクトに貢献した個人や組織を記録するために一般的に使用されます。

  • AUTHORSファイル: プロジェクトの主要な作者や、コードベースに大きな影響を与えた人々をリストアップします。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての人々(コードの提出、バグ報告、ドキュメントの改善など)をリストアップします。

これらのファイルは、プロジェクトの歴史と貢献者を透明にすることで、コミュニティの認識と感謝を示す役割を果たします。

コミット

  • コミットハッシュ: 222e2ee4d558f94f1da896fee008a5bba6940aa8
  • 作者: Russ Cox rsc@golang.org
  • 日付: Mon Feb 13 23:45:49 2012 -0500
  • コミットメッセージ:
    A+C: Daniel Krech (individual CLA)
    
    R=golang-dev, gri, bradfitz
    CC=golang-dev
    https://golang.org/cl/5658046
    

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

https://github.com/golang/go/commit/222e2ee4d558f94f1da896fee008a5bba6940aa8

元コミット内容

A+C: Daniel Krech (individual CLA)

R=golang-dev, gri, bradfitz
CC=golang-dev
https://golang.org/cl/5658046

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者管理と法的な側面があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、コードの著作権とライセンスの明確化が非常に重要です。

  • 貢献者ライセンス同意書 (CLA): コミットメッセージにある「individual CLA」は、Contributor License Agreement(貢献者ライセンス同意書)を指します。これは、貢献者がその貢献物に対する著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、または広範なライセンスを付与することに同意する法的な文書です。これにより、プロジェクトの所有者は、貢献されたコードを安心してプロジェクトに組み込み、再配布することができます。CLAは、将来的な著作権紛争を防ぎ、プロジェクトのライセンスの一貫性を保つために不可欠です。
  • 貢献者の認識: 新しい貢献者がプロジェクトにコードを提出し、CLAに署名すると、その貢献が正式に認められます。この認識の一環として、その貢献者の名前がAUTHORSおよびCONTRIBUTORSファイルに追加されます。これは、コミュニティに対する透明性を示すとともに、貢献者への感謝の意を表すものです。

したがって、このコミットは、Daniel Krech氏がGoプロジェクトに貢献し、必要なCLAに署名した結果として行われた、管理上の変更であると理解できます。

前提知識の解説

1. オープンソースプロジェクトにおけるAUTHORSCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、AUTHORSCONTRIBUTORSといったテキストファイルをリポジトリのルートに配置します。

  • AUTHORS: 主にプロジェクトの創始者、主要な開発者、またはプロジェクトの方向性に大きな影響を与えた人々がリストされます。
  • CONTRIBUTORS: コードのコミット、バグ報告、ドキュメントの改善、翻訳、テストの作成など、あらゆる種類の貢献を行った人々がリストされます。

これらのファイルは、プロジェクトの透明性を高め、貢献者への敬意を示す役割を果たします。また、プロジェクトの歴史を追跡する上でも役立ちます。

2. 貢献者ライセンス同意書 (CLA: Contributor License Agreement)

CLAは、オープンソースプロジェクトにおいて、貢献者がその貢献物(コード、ドキュメントなど)に対する著作権をプロジェクトの所有者(またはプロジェクトをホストする組織)に譲渡するか、または特定のライセンスの下で利用することを許可することに同意する法的な文書です。

CLAの主な目的:

  • 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  • ライセンスの一貫性: プロジェクト全体のライセンスモデルを維持するために、すべての貢献が同じライセンスの下で利用可能であることを保証します。例えば、プロジェクトがApache License 2.0を使用している場合、すべての貢献もそのライセンスの下で利用できる必要があります。
  • プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを自由に利用、変更、再配布できることを保証することで、プロジェクトの長期的な維持と発展を可能にします。

Googleが管理するGoプロジェクトのような大規模なプロジェクトでは、CLAの署名は必須となることが一般的です。これにより、GoogleはGo言語とその関連プロジェクトのコードベース全体に対する明確な権利を確保し、法的な問題を回避しながらプロジェクトを管理できます。

3. Gitの差分表示 (diff)

Gitのdiffコマンドは、2つのコミット、2つのブランチ、または作業ディレクトリとステージングエリアの間の変更点を表示するために使用されます。このコミットのdiff出力は、AUTHORSファイルとCONTRIBUTORSファイルに加えられた具体的な変更を示しています。

  • --- a/AUTHORS+++ b/AUTHORS: 変更前のファイル (a) と変更後のファイル (b) を示します。
  • index 9a3de973ad..5ecc7276c7 100644: ファイルのGitオブジェクトハッシュとパーミッションの変更を示します。
  • @@ -51,6 +51,7 @@: 変更がファイルのどの行に適用されたかを示します。-51,6は変更前のファイルで51行目から6行が対象であることを意味し、+51,7は変更後のファイルで51行目から7行が対象であることを意味します。
  • +Daniel Krech <eikeon@eikeon.com>: 行の先頭に+がある行は、追加された行を示します。

技術的詳細

このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのプレーンテキストファイル、AUTHORSCONTRIBUTORSに、新しい行を追加する非常にシンプルな変更です。

具体的には、以下の情報が追加されています。

  • 名前: Daniel Krech
  • メールアドレス: eikeon@eikeon.com

この変更は、Gitの差分表示(diff)によって明確に示されており、既存のリストに新しいエントリが挿入されたことがわかります。ファイルの変更は、既存の行の間に新しい行を挿入する形で行われています。これは、リストがアルファベット順にソートされている場合に一般的な操作です。

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

diff --git a/AUTHORS b/AUTHORS
index 9a3de973ad..5ecc7276c7 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -51,6 +51,7 @@ Corey Thomasson <cthom.lists@gmail.com>
 Damian Gryski <dgryski@gmail.com>
 Dan Sinclair <dan.sinclair@gmail.com>
 Daniel Fleischman <danielfleischman@gmail.com>
+Daniel Krech <eikeon@eikeon.com>
 Daniel Theophanes <kardianos@gmail.com>
 Darren Elwood <darren@textnode.com>
 Dave Cheney <dave@cheney.net>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 16133eadd0..9d41f11a03 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -87,6 +87,7 @@ Corey Thomasson <cthom.lists@gmail.com>
 Damian Gryski <dgryski@gmail.com>
 Dan Sinclair <dan.sinclair@gmail.com>
 Daniel Fleischman <danielfleischman@gmail.com>
+Daniel Krech <eikeon@eikeon.com>
 Daniel Nadasi <dnadasi@google.com>
 Daniel Theophanes <kardianos@gmail.com>
 Darren Elwood <darren@textnode.com>

コアとなるコードの解説

上記のdiff出力は、AUTHORSファイルとCONTRIBUTORSファイルの両方に、Daniel Krech <eikeon@eikeon.com>という行が追加されたことを示しています。

  • AUTHORSファイル:

    • 変更前の51行目から6行(Corey ThomassonからDaniel Fleischmanまで)の後に、新しい行が追加されています。
    • 追加された行は+Daniel Krech <eikeon@eikeon.com>です。
    • この追加により、Daniel FleischmanDaniel Theophanesの間にDaniel Krechが挿入され、アルファベット順が維持されています。
  • CONTRIBUTORSファイル:

    • 変更前の87行目から6行(Corey ThomassonからDaniel Fleischmanまで)の後に、新しい行が追加されています。
    • 追加された行は+Daniel Krech <eikeon@eikeon.com>です。
    • 同様に、Daniel FleischmanDaniel Nadasiの間にDaniel Krechが挿入され、アルファベット順が維持されています。

この変更は、Daniel Krech氏がGoプロジェクトに貢献し、その貢献が正式に認められたことを示すものです。AUTHORSCONTRIBUTORSファイルは通常、手動で更新されるか、貢献者管理ツールによって自動的に更新されます。このコミットは、Goプロジェクトの貢献者リストが適切に維持されていることを示しています。

関連リンク

参考にした情報源リンク