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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに対する変更です。CONTRIBUTORSファイルは、プロジェクトに貢献した個人のリストを管理するためのものであり、通常、各貢献者の名前と連絡先情報(多くの場合、メールアドレス)が含まれています。このファイルは、プロジェクトの透明性を高め、誰がプロジェクトに貢献しているかを明確にする役割を果たします。

コミット

commit c3f49ca9779c80cf2769745ec35939389a4982ee
Author: Ian Lance Taylor <iant@golang.org>
Date:   Wed Feb 6 08:21:03 2013 -0800

    CONTRIBUTORS: add Gaal Yahas (Google CLA)
    
    R=golang-dev, rsc
    CC=golang-dev
    https://golang.org/cl/7311053

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

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

元コミット内容

このコミットの目的は、GoプロジェクトのCONTRIBUTORSファイルにGaal Yahas氏を追加することです。コミットメッセージには、彼がGoogleのContributor License Agreement (CLA)に署名済みであることが明記されています。

変更の背景

オープンソースプロジェクト、特にGoogleのような大企業が主導するプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際に、プロジェクトに対してそのコードを使用、配布、変更する権利を付与することを保証するために、Contributor License Agreement (CLA)への署名が求められることが一般的です。

このコミットの背景には、Gaal Yahas氏がGoプロジェクトに貢献する準備が整い、その前提条件であるGoogle CLAへの署名が完了したことがあります。CLAへの署名が確認された後、正式に貢献者リストに追加されるというプロセスの一環として、この変更が行われました。これにより、彼の将来の貢献が法的に保護され、プロジェクトにスムーズに統合されることが保証されます。

前提知識の解説

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、多くのオープンソースプロジェクトで見られる慣習的なファイルです。このファイルは、プロジェクトにコード、ドキュメント、デザイン、その他の形で貢献したすべての個人の名前をリストアップするために使用されます。その主な目的は以下の通りです。

  • 貢献者の認識: プロジェクトの成功に貢献した人々を公式に認識し、感謝の意を表します。
  • 透明性: プロジェクトの貢献者ベースを明確にし、誰がプロジェクトの進化に影響を与えているかを示します。
  • 法的側面: 一部のプロジェクトでは、著作権表示やライセンス情報と関連付けて、貢献者のリストが法的な目的で使用されることがあります。

通常、このファイルはプロジェクトのルートディレクトリに配置され、シンプルなテキスト形式で各貢献者の名前と、場合によってはメールアドレスや所属が記載されます。

Contributor License Agreement (CLA)

Contributor License Agreement (CLA)は、オープンソースプロジェクトにコードやその他のコンテンツを貢献する個人または団体と、プロジェクトの所有者(またはプロジェクトをホストする組織)との間で締結される法的文書です。CLAの主な目的は以下の通りです。

  • 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するか、そしてプロジェクトがそのコードをどのように使用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  • ライセンスの再許諾: 多くのCLAでは、貢献者が自身の貢献物に対してプロジェクトのライセンス(例: Apache License, MIT License)を適用することを許可し、さらにプロジェクトがその貢献物を異なるライセンスで再許諾する権利を付与します。これは、プロジェクトが将来的にライセンスを変更する必要が生じた場合に柔軟性を提供します。
  • プロジェクトの健全性: 特に企業が主導するプロジェクトでは、すべての貢献がCLAによってカバーされていることを確認することで、プロジェクトの法的健全性を維持し、企業がそのコードベースを安心して使用できるようにします。

Googleのような企業が管理するオープンソースプロジェクトでは、CLAへの署名は貢献の必須条件となることが非常に多いです。これは、Googleがそのプロジェクトのコードベース全体に対する明確な権利を確保し、将来的な商業利用やライセンス変更の際に問題が生じないようにするためです。

技術的詳細

このコミットは、CONTRIBUTORSファイルというプレーンテキストファイルに1行を追加する非常にシンプルな変更です。技術的な複雑さはほとんどありませんが、その背後にあるプロセスと意味合いは重要です。

CONTRIBUTORSファイルは、通常、アルファベット順に貢献者の名前がリストされています。新しい貢献者を追加する際には、既存のリストの適切な位置に新しいエントリを挿入することで、ファイルの順序を維持します。このコミットでは、Gaal Yahas <gaal@google.com>という形式で、名前とメールアドレスが追加されています。これは、GoプロジェクトのCONTRIBUTORSファイルにおける標準的なエントリ形式に従っています。

Gitの差分(diff)を見ると、index aec4580312..d7e8930575 100644という行があります。これは、変更前のファイルのハッシュ(aec4580312)と変更後のファイルのハッシュ(d7e8930575)を示しており、ファイルモードが100644(通常のファイルで、読み取り/書き込み権限があることを示す)であることを意味します。

この変更は、Goプロジェクトの継続的な成長と、新しい貢献者の受け入れプロセスが機能していることを示しています。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index aec4580312..d7e8930575 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -161,6 +161,7 @@ Francesc Campoy <campoy@golang.org>
 Francisco Souza <franciscossouza@gmail.com>
 Frithjof Schulze <schulze@math.uni-hannover.de>
 Fumitoshi Ukai <ukai@google.com>
+Gaal Yahas <gaal@google.com>
 Gary Burd <gary@beagledreams.com> <gary.burd@gmail.com>
 Georg Reinke <guelfey@gmail.com>
 Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>

コアとなるコードの解説

上記の差分は、CONTRIBUTORSファイルに対する唯一の変更を示しています。

  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS は、それぞれ変更前のファイルと変更後のファイルを示しています。
  • @@ -161,6 +161,7 @@ は、変更がファイルの161行目から始まり、変更前は6行、変更後は7行のコンテキストがあることを示しています。
  • +Gaal Yahas <gaal@google.com> の行が追加されています。これは、Gaal Yahas氏がGoプロジェクトの新しい貢献者として、そのメールアドレスgaal@google.comと共にリストに追加されたことを意味します。この行は、既存の貢献者リストのアルファベット順に従って、Fumitoshi Ukai氏の後に挿入されています。

この変更は、Goプロジェクトの公式な貢献者リストに新しいメンバーが加わったことを記録するものです。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubコミット履歴
  • Gitの差分表示に関する一般的な知識
  • オープンソースプロジェクトにおけるCONTRIBUTORSファイルの役割に関する一般的な知識
  • Contributor License Agreement (CLA)に関する一般的な知識 (Wikipediaなど)
  • Google CLAに関する情報 (Googleのオープンソース関連ドキュメントなど)

参考にした情報源リンク

  • GoプロジェクトのGitHubコミット履歴
  • Gitの差分表示に関する一般的な知識
  • オープンソースプロジェクトにおけるCONTRIBUTORSファイルの役割に関する一般的な知識
  • Contributor License Agreement (CLA)に関する一般的な知識 (Wikipediaなど)
  • Google CLAに関する情報: