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

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

このコミットは、Go言語プロジェクトのCONTRIBUTORSファイルに、Peter Weinberger氏を追加するものです。これは、彼がGoogle Contributor License Agreement (CLA) に署名したことを示すものであり、Goプロジェクトへの貢献を正式に認めるための標準的な手続きの一環です。

コミット

  • コミットハッシュ: e7095851518b7a9796ad532860412cefb43a6ae1
  • 作者: Russ Cox rsc@golang.org
  • 日付: 2012年4月2日 月曜日 12:59:02 -0400
  • コミットメッセージ: C: add Peter Weinberger (Google CLA)
  • 変更ファイル: CONTRIBUTORS
  • 変更概要: 1ファイル変更、1行追加

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

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

元コミット内容

C: add Peter Weinberger (Google CLA)

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

変更の背景

このコミットの背景には、オープンソースプロジェクト、特にGoogleが主導するプロジェクトにおける貢献の管理と法的な側面があります。Go言語プロジェクトのような大規模なオープンソースプロジェクトでは、外部からのコード貢献を受け入れる際に、知的財産権に関する明確な取り決めが必要です。

Peter Weinberger氏がGoプロジェクトに貢献するにあたり、Google Contributor License Agreement (CLA) に署名したため、その事実をプロジェクトのCONTRIBUTORSファイルに記録する必要がありました。CLAは、貢献されたコードの著作権がプロジェクトの所有者(この場合はGoogle)に移譲されるか、またはプロジェクトがそのコードを自由に利用、配布、変更できるライセンスが付与されることを保証するための法的な文書です。これにより、将来的な著作権紛争のリスクを軽減し、プロジェクトの健全な発展を保証します。

CONTRIBUTORSファイルは、プロジェクトに貢献した個人や団体を公式にリストアップする役割を果たします。このリストは、プロジェクトの透明性を高め、貢献者への感謝を示すとともに、誰がプロジェクトに法的に貢献する権利を持っているかを示す重要な記録となります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、外部の貢献者からコードを受け入れる際に使用される法的な合意書です。主な目的は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するか、またはプロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを防ぎます。
  2. ライセンスの保証: 貢献者が提供するコードが、プロジェクトのライセンス(例: Apache License, MIT Licenseなど)と互換性があることを保証します。
  3. プロジェクトの柔軟性: プロジェクトの所有者(企業や財団など)が、貢献されたコードを再ライセンスしたり、商用利用したりする際の法的障壁を取り除きます。

Googleが主導する多くのオープンソースプロジェクトでは、個人または法人向けのCLAへの署名が、コード貢献を受け入れるための必須条件となっています。これにより、Googleは貢献されたコードを自社の製品やサービスに組み込む際の法的リスクを管理しています。

Goプロジェクトの貢献プロセス

Goプロジェクトへの貢献は、一般的に以下のステップを踏みます。

  1. Issueの特定または作成: 貢献したい内容に関連する既存のIssueを見つけるか、新しいIssueを提案します。
  2. コードの変更: 提案された変更を実装します。
  3. テストの追加/更新: 変更が正しく機能し、既存の機能に影響を与えないことを確認するためのテストを作成または更新します。
  4. CLAへの署名: まだ署名していない場合、Google CLAに署名します。これは一度行えば、その後のすべてのGoプロジェクトへの貢献に適用されます。
  5. Gerritへの変更のアップロード: GitとGerrit(Goプロジェクトがコードレビューに使用するシステム)を使用して、変更をアップロードします。
  6. コードレビュー: プロジェクトのメンテナや他の貢献者によるコードレビューを受け、必要に応じて修正を行います。
  7. コミット: レビューが承認されると、変更がメインリポジトリにコミットされます。

このコミットは、上記のステップ4(CLAへの署名)が完了し、その結果としてCONTRIBUTORSファイルが更新されたことを示しています。

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、オープンソースプロジェクトにおいて、そのプロジェクトに何らかの形で貢献した個人や組織の名前をリストアップするために使用されるテキストファイルです。このファイルは、以下のような目的で利用されます。

  • 貢献者への謝意: プロジェクトの成功に貢献した人々を公に認識し、感謝の意を表します。
  • 透明性: プロジェクトの貢献者ベースを明確にし、誰がプロジェクトに関与しているかを示します。
  • 法的記録: 特にCLAが関連する場合、誰が法的にプロジェクトに貢献する権利を持っているか、またはその貢献が特定の法的合意の下で行われたかを示す記録の一部となります。

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

技術的詳細

このコミットの技術的な変更は非常にシンプルです。CONTRIBUTORSという単一のテキストファイルに1行が追加されただけです。

具体的には、Peter Weinberger <pjw@golang.org>という行が、既存の貢献者リストの適切なアルファベット順の位置に挿入されました。これは、Goプロジェクトが貢献者リストをアルファベット順に維持しているという慣例に従ったものです。

この変更自体はコードの機能に直接影響を与えるものではありませんが、プロジェクトの管理と法的な側面において重要な意味を持ちます。CONTRIBUTORSファイルは、プロジェクトの歴史と貢献者コミュニティの成長を記録する役割も果たします。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 0da3466e81..71b8dd0a32 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -234,6 +234,7 @@ Peter Froehlich <peter.hans.froehlich@gmail.com>
 Peter McKenzie <petermck@google.com>
 Peter Mundy <go.peter.90@gmail.com>
 Péter Szabó <pts@google.com>
+Peter Weinberger <pjw@golang.org>
 Peter Williams <pwil3058@gmail.com>
 Phil Pennock <pdp@golang.org>
 Pieter Droogendijk <pieter@binky.org.uk>

コアとなるコードの解説

上記のdiff出力は、CONTRIBUTORSファイルに加えられた変更を示しています。

  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS は、それぞれ変更前のファイルと変更後のファイルを示します。
  • @@ -234,6 +234,7 @@ は、変更がファイルの234行目から始まり、変更前は6行、変更後は7行のコンテキストがあることを示します。
  • +Peter Weinberger <pjw@golang.org> の行が追加されたことを示しています。この行は、Peter Weinberger氏がGoプロジェクトの貢献者として正式にリストに追加されたことを意味します。彼のメールアドレスも併記されており、これは一般的な慣例です。

この変更は、Goプロジェクトの貢献者リストを最新の状態に保ち、Peter Weinberger氏がGoogle CLAに署名し、プロジェクトへの貢献が認められたことを反映しています。

関連リンク

  • Gerrit Change: https://golang.org/cl/5976059
    • これは、Goプロジェクトがコードレビューと変更管理に使用しているGerritシステム上の、このコミットに対応する変更セットのリンクです。通常、コミットメッセージに記載されるgolang.org/cl/のリンクは、Gerritの変更セットを指します。

参考にした情報源リンク

  • Google Open Source - Contributor License Agreements: https://opensource.google/docs/cla/
  • Go Contribution Guidelines (一般的な情報源): https://go.dev/doc/contribute (このコミット当時の正確なURLではない可能性がありますが、Goプロジェクトの貢献プロセスに関する一般的な情報を提供します)
  • Peter Weinberger: 彼は、AWK言語の共同開発者の一人として知られる著名な計算機科学者です。Goプロジェクトへの貢献は、彼の専門知識がGo言語の発展に寄与した可能性を示唆しています。