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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるAkshat Kumar氏を追加するものです。これは、彼がGoプロジェクトへの貢献を開始するにあたり、個人の貢献者ライセンス契約(CLA)を締結したことを示す記録的な変更です。

コミット

  • コミットハッシュ: c9ad57ff2c1c00e6f4eadcea5e0be87de9733347
  • Author: Russ Cox rsc@golang.org
  • Date: Tue Apr 10 15:14:04 2012 -0400

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

https://github.com/golang/go/commit/c9ad57ff2c1c00e6f4eadcea5e0be87de9733347

元コミット内容

A+C: Akshat Kumar (individual CLA)

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

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、知的財産権の管理と貢献者の権利保護が非常に重要です。このコミットは、Akshat Kumar氏がGoプロジェクトにコードを貢献する前に、個人の貢献者ライセンス契約(Individual Contributor License Agreement, ICLA)を締結したことを記録するために行われました。

CLAは、貢献者がその貢献物に対する著作権をプロジェクトの所有者(この場合はGoogle)に許諾することを保証する法的な文書です。これにより、プロジェクトの所有者は、貢献されたコードを自由に利用、配布、再ライセンスできるようになり、将来的なライセンス問題や著作権侵害の訴訟リスクを回避できます。

AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人や組織を公式に認識し、その貢献を記録するためのものです。新しい貢献者がCLAを締結し、プロジェクトへの貢献を開始する際には、これらのファイルにその名前が追加されるのが一般的な慣行です。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、貢献者がそのコードやドキュメントなどの貢献物に対する著作権をプロジェクトの所有者または特定の団体に許諾するための法的な合意書です。CLAには主に以下の2種類があります。

  1. Individual CLA (ICLA): 個人がプロジェクトに貢献する際に締結します。
  2. Corporate CLA (CCLA): 企業が従業員を通じてプロジェクトに貢献する際に締結します。企業は、従業員の貢献が企業の知的財産権ポリシーに準拠していることを保証します。

CLAの主な目的は以下の通りです。

  • 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、どのように利用されるかを明確にします。
  • ライセンスの保証: プロジェクトの所有者が、貢献されたコードをプロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)の下で配布する権利を持つことを保証します。
  • 訴訟リスクの軽減: 著作権侵害に関する将来的な紛争や訴訟のリスクを軽減します。
  • プロジェクトの持続可能性: プロジェクトが法的な問題なく成長し、進化し続けるための基盤を提供します。

Goプロジェクトでは、Googleがプロジェクトの所有者であり、貢献者はGoogleに対してCLAを締結する必要があります。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々をリストアップするために、AUTHORSCONTRIBUTORSといったファイルが使用されます。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、プロジェクトの初期段階から深く関わっている人々をリストアップします。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての人々(コードの提出、バグ報告、ドキュメントの改善、翻訳など)をより包括的にリストアップします。

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

技術的詳細

このコミットは、Gitの差分(diff)形式で表現されています。差分は、2つのファイルの状態(変更前と変更後)を比較し、その違いを示すものです。

コミットメッセージのA+C: Akshat Kumar (individual CLA)は、「AUTHORSファイルとCONTRIBUTORSファイルにAkshat Kumar氏を追加した(個人のCLAを締結済み)」という意味です。

差分の各行の意味は以下の通りです。

  • diff --git a/AUTHORS b/AUTHORS: AUTHORSファイルに対する変更を示します。a/は変更前のファイル、b/は変更後のファイルを表します。
  • index 7ffb079635..66be681ec3 100644: Gitの内部的なインデックス情報です。7ffb079635は変更前のファイルのハッシュ、66be681ec3は変更後のファイルのハッシュです。100644はファイルのパーミッション(通常ファイル)を示します。
  • --- a/AUTHORS: 変更前のAUTHORSファイルを示します。
  • +++ b/AUTHORS: 変更後のAUTHORSファイルを示します。
  • @@ -10,6 +10,7 @@: これは「hunk header」と呼ばれ、差分が表示されているファイルのどの部分が変更されたかを示します。
    • -10,6: 変更前のファイルでは、10行目から6行(合計6行)が表示されています。
    • +10,7: 変更後のファイルでは、10行目から7行(合計7行)が表示されています。
    • これは、変更前の6行に1行が追加され、合計7行になったことを意味します。
  • (スペース): 変更されていない行。
  • + (プラス): 追加された行。

このコミットでは、AUTHORSファイルとCONTRIBUTORSファイルの両方に、Akshat Kumar氏の名前とメールアドレスが追加されています。

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

diff --git a/AUTHORS b/AUTHORS
index 7ffb079635..66be681ec3 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -10,6 +10,7 @@
 
 Abhinav Gupta <abhinav.g90@gmail.com>
 Adrian O'Grady <elpollouk@gmail.com>
+Akshat Kumar <seed@mail.nanosouffle.net>
 Albert Strasheim <fullung@gmail.com>
 Aleksandar Dezelin <dezelin@gmail.com>
 Alex Brainman <alex.brainman@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 4b69317aea..a10e0de3c7 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -35,6 +35,7 @@ Aaron Kemp <kemp.aaron@gmail.com>
 Abhinav Gupta <abhinav.g90@gmail.com>
 Adam Langley <agl@golang.org>
 Adrian O'Grady <elpollouk@gmail.com>
+Akshat Kumar <seed@mail.nanosouffle.net>
 Albert Strasheim <fullung@gmail.com>
 Aleksandar Dezelin <dezelin@gmail.com>
 Alex Brainman <alex.brainman@gmail.com>

コアとなるコードの解説

上記の差分は、AUTHORSファイルとCONTRIBUTORSファイルの両方に、以下の行が追加されたことを示しています。

+Akshat Kumar <seed@mail.nanosouffle.net>

これは、Akshat Kumar氏がGoプロジェクトの正式な貢献者として認識され、彼の名前と連絡先(メールアドレス)がプロジェクトの貢献者リストに追加されたことを意味します。この追加は、彼がGoプロジェクトへの貢献を開始するための前提条件であるCLAを締結した後に実行されました。

具体的には、既存の貢献者リストのアルファベット順に、適切な位置に新しいエントリが挿入されています。これにより、プロジェクトの貢献者リストが常に最新の状態に保たれ、すべての貢献者が適切に記録されるようになります。

関連リンク

  • Goプロジェクトの公式ウェブサイト: https://golang.org/
  • Goプロジェクトの貢献ガイドライン (CLAに関する情報が含まれる場合があります): https://go.dev/doc/contribute (CLAに関する具体的なページは変更される可能性があるため、最新の情報を確認してください)

参考にした情報源リンク