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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者であるMarko Mikulicic氏を追加するものです。これは、彼がGoogleのContributor License Agreement (CLA)に署名したことを示すものであり、オープンソースプロジェクトにおける貢献者の管理と法的な側面を反映しています。

コミット

commit 49f6415b956a79472dd0fbc6e6c8ed9004d66f8c
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Fri Nov 15 11:01:54 2013 -0800

    C: add Marko Mikulicic (Google CLA)
    
    R=golang-dev, crawshaw
    CC=golang-dev
    https://golang.org/cl/27000043

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

https://github.com/golang/go/commit/49f6415b956a79472dd0fbc6e6c8ed9004d66f8c

元コミット内容

C: add Marko Mikulicic (Google CLA)

R=golang-dev, crawshaw
CC=golang-dev
https://golang.org/cl/27000043

このコミットメッセージは非常に簡潔で、Marko Mikulicic氏がGoogle CLAに署名したため、彼を貢献者として追加したことを示しています。R=CC=はコードレビューの担当者とCCリストを示しており、https://golang.org/cl/27000043はGoプロジェクトのコードレビューシステム(Gerritベース)における変更リスト(Change-ID)へのリンクです。

変更の背景

この変更の背景には、オープンソースプロジェクト、特にGoogleが主導するGoのような大規模プロジェクトにおける貢献者管理の慣行があります。多くのオープンソースプロジェクトでは、プロジェクトのコードベースに貢献する開発者に対して、Contributor License Agreement (CLA)への署名を求めることがあります。

Google CLAは、貢献者が自身の貢献に対する著作権をGoogleに付与する(またはライセンスを許諾する)ことを保証するための法的な文書です。これにより、Googleは貢献されたコードをGoプロジェクトの一部として、将来的なライセンス変更や再配布の際に、法的な問題なく利用できるようになります。Marko Mikulicic氏がGoプロジェクトに貢献するにあたり、このCLAに署名したため、彼の名前が正式な貢献者リストであるCONTRIBUTORSファイルに追加されました。

このプロセスは、プロジェクトの知的財産権を保護し、将来的な法的な紛争を避けるために重要です。特に企業が主導するオープンソースプロジェクトでは、このような法的な枠組みが整備されていることが一般的です。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者が自身のコードをプロジェクトに提供する際に署名する法的な合意書です。これは、プロジェクトの所有者(この場合はGoogle)が、貢献されたコードをプロジェクトのライセンスの下で配布し、将来的にライセンスを変更する権利を持つことを保証するために使用されます。

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

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するか、またはプロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの柔軟性: プロジェクトが将来的にライセンスを変更する必要が生じた場合(例えば、より寛容なライセンスへの移行や、より厳格なライセンスへの移行)、CLAがあれば、すべての貢献者から個別に同意を得る必要がなくなります。これは、多数の貢献者がいる大規模プロジェクトにとって非常に重要です。
  3. プロジェクトの保護: 悪意のある貢献や、第三者の著作権を侵害するコードがプロジェクトに混入するのを防ぐ一助となります。

CLAには、主に以下の2つのタイプがあります。

  • 著作権譲渡 (Copyright Assignment): 貢献者が自身のコードの著作権をプロジェクトの所有者(企業や財団)に完全に譲渡する形式です。Google CLAは通常この形式に近いですが、厳密には「著作権の非独占的、永続的、取り消し不能なライセンス」を付与する形を取ることが多いです。
  • 著作権許諾 (Copyright License): 貢献者が著作権を保持しつつ、プロジェクトの所有者に対して、コードを特定の目的(プロジェクトのライセンスに基づく配布など)で利用するための非独占的なライセンスを付与する形式です。

GoプロジェクトのようなGoogleが主導するプロジェクトでは、Google CLAへの署名が必須となることが一般的です。

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、オープンソースプロジェクトにおいて、そのプロジェクトに貢献した人々の名前をリストアップしたテキストファイルです。このファイルは、コードの著作権表示の一部として機能したり、プロジェクトへの貢献を公式に認識するための手段として利用されます。

このファイルは、法的な意味合いを持つこともあれば、単に感謝の意を示すためのものとして機能することもあります。Goプロジェクトの場合、CLAに署名した貢献者の名前がこのファイルに追加されることで、プロジェクトの法的な健全性を保つ役割も果たしています。

技術的詳細

このコミット自体は、Go言語のコードベースに対する技術的な変更ではなく、プロジェクトの管理ファイルに対する変更です。具体的には、CONTRIBUTORSというプレーンテキストファイルに新しい行を追加しています。

CONTRIBUTORSファイルは、プロジェクトのルートディレクトリに配置されており、各行が1人の貢献者を表すシンプルな形式です。通常、貢献者の名前とメールアドレスが記載されます。このファイルは、Gitのリポジトリで管理されており、他のソースコードファイルと同様にバージョン管理の対象となります。

変更の技術的な側面は、Gitの差分(diff)として表現されます。この差分は、ファイルの特定の行に新しい情報が追加されたことを示しています。

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -314,6 +314,7 @@ Marcel van Lohuizen <mpvl@golang.org>
 Marco Hennings <marco.hennings@freiheit.com>
 Mark Zavislak <zavislak@google.com>
 Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
+Marko Mikulicic <mkm@google.com>
 Markus Duft <markus.duft@salomon.at>
 Markus Sonderegger <marraison@gmail.com>
 Martin Neubauer <m.ne@gmx.net>

このdiffは、CONTRIBUTORSファイルの314行目付近に、+Marko Mikulicic <mkm@google.com>という新しい行が追加されたことを示しています。これは、Gitの標準的な差分表示形式であり、+記号は追加された行を意味します。

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

変更されたファイルはCONTRIBUTORSのみです。

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a837ab5808..4d4a73e721 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -314,6 +314,7 @@ Marcel van Lohuizen <mpvl@golang.org>
 Marco Hennings <marco.hennings@freiheit.com>
 Mark Zavislak <zavislak@google.com>
 Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
+Marko Mikulicic <mkm@google.com>
 Markus Duft <markus.duft@salomon.at>
 Markus Sonderegger <marraison@gmail.com>
 Martin Neubauer <m.ne@gmx.net>

コアとなるコードの解説

このコミットの「コアとなるコード」は、CONTRIBUTORSファイルに追加された単一の行です。

+Marko Mikulicic <mkm@google.com>

この行は、Marko Mikulicic氏の名前とメールアドレスを、Goプロジェクトの公式な貢献者リストに追加しています。この追加は、彼がGoプロジェクトへの貢献を開始するにあたり、必要な法的手続き(Google CLAへの署名)を完了したことを意味します。

この変更自体は、Goのランタイムやライブラリの動作に直接的な影響を与えるものではありません。しかし、プロジェクトのガバナンスと法的なコンプライアンスの観点からは非常に重要な変更です。これにより、Marko Mikulicic氏による将来のコード貢献が、プロジェクトのライセンスと知的財産権の枠組みの中で適切に扱われることが保証されます。

関連リンク

参考にした情報源リンク

  • Gitの差分表示に関する一般的な情報
  • Contributor License Agreement (CLA)に関する一般的な情報 (例: Wikipedia, 各オープンソースプロジェクトの貢献ガイドライン)
  • Goプロジェクトの公式ドキュメントおよび貢献ガイドライン