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

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

このコミットは、Goプロジェクトのコントリビューターリストに新しい貢献者「David McLeish」を追加するものです。これは、彼がGoogleのContributor License Agreement (CLA) に署名したことを反映しています。

コミット

commit 9876fd99d6e95ef2fc983ee3f2fc68a5e5b685a1
Author: Andrew Gerrand <adg@golang.org>
Date:   Mon Nov 12 12:20:54 2012 +0100

    C: add David McLeish (Google CLA)
    
    R=golang-dev, dsymonds
    CC=golang-dev
    https://golang.org/cl/6814120

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

https://github.com/golang/go/commit/9876fd99d6e95ef2fc983ee3f2fc68a5e5b685a1

元コミット内容

C: add David McLeish (Google CLA)

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6814120

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と、知的財産権の明確化という重要な側面があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、多数の個人や企業がコードベースに貢献します。これらの貢献がプロジェクトのライセンスの下で適切に利用されることを保証するため、多くのプロジェクトでは「Contributor License Agreement (CLA)」の署名を義務付けています。

このコミットは、David McLeish氏がGoプロジェクトへの貢献を開始するにあたり、Googleが要求するCLAに署名したことを示しています。CLAへの署名が完了したため、彼の名前がプロジェクトの正式な貢献者リスト(CONTRIBUTORSファイル)に追加されました。これにより、彼の将来の貢献がプロジェクトのライセンス条項に準拠していることが法的に明確になります。

前提知識の解説

Contributor License Agreement (CLA)

Contributor License Agreement (CLA) は、オープンソースプロジェクトにおいて、貢献者がその貢献(コード、ドキュメント、デザインなど)に対する著作権をプロジェクトの所有者または特定の団体に許諾するための法的文書です。CLAは、プロジェクトが貢献されたコードをそのライセンス(例: Apache License, MIT Licenseなど)の下で配布、変更、利用する権利を明確にすることを目的としています。

CLAが必要とされる主な理由は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、どのように利用されるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンスの下で配布されることを保証します。もしCLAがない場合、各貢献者のコードが異なるライセンス条件を持つ可能性があり、ライセンスの複雑化や互換性の問題を引き起こす可能性があります。
  3. プロジェクトの再ライセンスの可能性: 将来的にプロジェクトのライセンスを変更する必要が生じた場合、CLAによって貢献者から事前に必要な権利が許諾されているため、スムーズな再ライセンスが可能になります。
  4. 企業による貢献の管理: 企業が従業員を通じてオープンソースプロジェクトに貢献する場合、CLAは従業員が企業に代わって貢献する権限を持っていることを確認し、企業がその貢献に対する権利を放棄しないことを保証します。

Google CLA

Googleは、多くの自社が主導するオープンソースプロジェクト(Go、Android、Chromiumなど)において、個人または企業向けのCLAの署名を義務付けています。GoogleのCLAは、貢献者がその貢献に対する著作権をGoogleに許諾し、Googleがその貢献をプロジェクトのライセンスの下で利用、配布、変更する権利を持つことを定めています。これにより、Googleはプロジェクトの法的健全性を維持し、将来的なライセンス変更や商業的利用の可能性を確保しています。

Goプロジェクトの場合、貢献者はコードを提出する前にGoogle CLAに署名する必要があります。署名が確認されると、その貢献者は正式なコントリビューターとして認識され、CONTRIBUTORSファイルに名前が追加されるのが一般的な流れです。

技術的詳細

このコミット自体は、Go言語のコードベースに対する直接的な技術的変更ではありません。むしろ、プロジェクトの管理とガバナンスに関する変更です。具体的には、プロジェクトの貢献者リストを管理するCONTRIBUTORSファイルへの変更です。

CONTRIBUTORSファイルは、Goプロジェクトに貢献した個人や組織の名前と連絡先を記録するためのプレーンテキストファイルです。このようなファイルは、多くのオープンソースプロジェクトで採用されており、プロジェクトの歴史と貢献者を可視化する役割を果たします。

このコミットで行われた技術的な操作は、Gitの差分(diff)として表現されています。これは、CONTRIBUTORSファイルに新しい行が1行追加されたことを示しています。

  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS は、変更前のファイル(a)と変更後のファイル(b)を示しています。
  • index 98c9869706..a4e115b0c7 100644 は、Gitがファイルの変更を追跡するために使用する内部的なハッシュとファイルモードを示しています。
  • @@ -124,6 +124,7 @@ は、変更がファイルの124行目から始まり、6行が変更され、変更後には7行になることを示しています。これは、1行の追加があったことを意味します。
  • +David McLeish <davemc@google.com> の行は、新しく追加された行です。

この変更は、GoプロジェクトのCI/CDパイプラインやリリースプロセスにおいて、特定の自動化されたチェックやスクリプトによって利用される可能性があります。例えば、新しいリリースを作成する際に、このCONTRIBUTORSファイルから貢献者リストを自動生成するスクリプトが存在するかもしれません。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 98c9869706..a4e115b0c7 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -124,6 +124,7 @@ David du Colombier <0intro@gmail.com>\n David Forsythe <dforsythe@gmail.com>\n David G. Andersen <dave.andersen@gmail.com>\n David Jakob Fritz <david.jakob.fritz@gmail.com>\n+David McLeish <davemc@google.com>\n David Symonds <dsymonds@golang.org>\n David Titarenco <david.titarenco@gmail.com>\n Dean Prichard <dean.prichard@gmail.com>\

コアとなるコードの解説

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

David McLeish <davemc@google.com>

これは、Goプロジェクトに貢献する新しい個人であるDavid McLeish氏の名前と、彼のGoogleのメールアドレスをリストに追加するものです。この追加は、彼がGoプロジェクトへの貢献に必要なGoogle CLAに署名し、正式な貢献者として認められたことを意味します。

この変更自体は、Go言語の機能や振る舞いに影響を与えるものではありません。しかし、プロジェクトの透明性と貢献者への認識という点で非常に重要です。このファイルは、プロジェクトの歴史とコミュニティの成長を反映するドキュメントの一部として機能します。

関連リンク

参考にした情報源リンク