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

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

このコミットは、Go言語プロジェクトの CONTRIBUTORS ファイルに新しい貢献者「Ryan Barrett」を追加するものです。これは、プロジェクトへの貢献者が増えるたびに、その貢献者の名前と連絡先情報を記録するために行われる一般的なメンテナンス作業の一環です。

コミット

commit 29e32d73efc0cd6df128097f4f686d134411cc17
Author: Sameer Ajmani <sameer@golang.org>
Date:   Thu May 31 16:51:49 2012 -0400

    CONTRIBUTORS: Add Ryan Barrett (Google CLA)
    
    R=golang-dev, r
    CC=golang-dev
    https://golang.org/cl/6244071

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

https://github.com/golang/go/commit/29e32d73efc0cd6df128097f4f686d134411cc17

元コミット内容

このコミットの元々の目的は、Go言語プロジェクトの貢献者リストである CONTRIBUTORS ファイルに、Ryan Barrett氏の名前を追加することです。コミットメッセージには「Google CLA」と明記されており、これはRyan Barrett氏がGoogleのContributor License Agreement (CLA) に署名したことを示唆しています。

変更の背景

オープンソースプロジェクト、特に大規模なものにおいては、プロジェクトのコードベースに貢献するすべての個人または企業が、その貢献に対するライセンスを明確にすることが非常に重要です。これは、将来的なライセンスに関する紛争を防ぎ、プロジェクトの知的財産権を保護するために行われます。

Go言語プロジェクトのようなGoogleが主導するプロジェクトでは、通常、貢献者はContributor License Agreement (CLA) に署名することが求められます。CLAは、貢献者が自身の貢献に対する著作権をプロジェクトの所有者(この場合はGoogle)に付与するか、または特定のライセンスの下で利用することを許可する法的な合意文書です。

このコミットは、Ryan Barrett氏がGoプロジェクトに貢献する準備が整い、必要なCLAの手続きを完了したため、正式に貢献者リストに追加されたという背景があります。

前提知識の解説

Contributor License Agreement (CLA)

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

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

  1. ライセンスの明確化: 貢献されたコードがどのライセンスの下で配布されるかを明確にし、将来的なライセンスの曖昧さを排除します。
  2. 知的財産権の保護: プロジェクトの所有者が、貢献されたコードに対する権利を適切に管理し、プロジェクト全体の知的財産権を保護します。これにより、プロジェクトの再ライセンスや商用利用が容易になります。
  3. 法的なリスクの軽減: 貢献されたコードに起因する法的な問題(著作権侵害など)が発生した場合に、プロジェクトの所有者が適切に対応できる法的根拠を提供します。

CLAには、個人向けの「Individual CLA (ICLA)」と、企業向けの「Corporate CLA (CCLA)」があります。Googleが主導する多くのオープンソースプロジェクトでは、貢献者はCLAへの署名が必須となっています。

CONTRIBUTORS ファイル

多くのオープンソースプロジェクトには、プロジェクトに貢献した人々の名前をリストアップしたファイルが存在します。このファイルは CONTRIBUTORSAUTHORSCREDITS など、様々な名前で呼ばれます。このファイルは、プロジェクトへの貢献を認識し、感謝を示す目的で作成されます。また、プロジェクトの歴史や、誰がどのような役割を果たしたかを示す非公式な記録としても機能します。

Go言語プロジェクトの CONTRIBUTORS ファイルは、プロジェクトにコードを貢献した個人の名前とメールアドレスを記録しています。このファイルは、CLAへの署名が完了した後に更新されることが一般的です。

技術的詳細

このコミット自体は、技術的な複雑さを伴うものではありません。単一のテキストファイル CONTRIBUTORS に1行を追加するだけの変更です。

Gitの観点から見ると、この変更は以下のようになります。

  • ファイルパス: CONTRIBUTORS
  • 変更タイプ: 1行の追加 (1 insertion(+))
  • 変更内容: Ryan Barrett <ryanb@google.com> という行が、ファイルの既存の行の間に挿入されています。具体的には、Russ Cox <rsc@golang.org> の次の行に追加されています。

この変更は、Goプロジェクトのバージョン管理システム(Git)を通じて行われ、レビュープロセス(R=golang-dev, r, CC=golang-dev)を経て承認されています。https://golang.org/cl/6244071 は、Goプロジェクトが内部的に使用しているコードレビューシステム(Gerritなど)の変更リスト(Change-ID)へのリンクであり、この変更がどのように提案され、レビューされたかの詳細を確認できます。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a468600a80..10f060d2cb 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -266,6 +266,7 @@ Roger Peppe <rogpeppe@gmail.com>
 Ron Minnich <rminnich@gmail.com>
 Ross Light <rlight2@gmail.com>
 Russ Cox <rsc@golang.org>
+Ryan Barrett <ryanb@google.com>
 Ryan Hitchman <hitchmanr@gmail.com>
 Sam Thorogood <thorogood@google.com> <sam.thorogood@gmail.com>
 Sameer Ajmani <sameer@golang.org> <ajmani@gmail.com>

コアとなるコードの解説

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

  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS は、それぞれ変更前のファイルと変更後のファイルを示します。
  • @@ -266,6 +266,7 @@ は、変更がファイルの266行目から始まることを示しています。変更前は6行が対象でしたが、変更後は7行が対象となり、1行が追加されたことを意味します。
  • +Ryan Barrett <ryanb@google.com> の行が追加された新しい行です。この行は、Ryan Barrett氏の名前とGoogleのメールアドレスを記録しています。

この変更は、CONTRIBUTORS ファイルのアルファベット順または特定の順序規則に従って、新しい貢献者のエントリが追加されたことを示しています。

関連リンク

  • Go言語プロジェクトの公式ウェブサイト: https://golang.org/
  • Go言語の貢献ガイドライン(CLAに関する情報が含まれる場合があります): Goプロジェクトの公式リポジトリやウェブサイトで「contributing」や「CLA」で検索すると見つかる可能性があります。

参考にした情報源リンク

  • Gitのコミット情報
  • オープンソースプロジェクトにおけるContributor License Agreement (CLA) の一般的な概念
  • Go言語プロジェクトのGitHubリポジトリ
  • 一般的なオープンソースプロジェクトの慣行に関する知識