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

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

このコミットは、Go言語プロジェクトのコントリビューターリストに新しいエントリを追加するものです。具体的には、CONTRIBUTORSファイルにAndreas Jellinghaus氏の名前とメールアドレスが追加されました。これは、彼がGoプロジェクトへの貢献を開始するにあたり、GoogleのContributor License Agreement (CLA) に同意したことを示すものです。

コミット

  • コミットハッシュ: f5f651b89a7eb028f8d9fbb50cdf0d6e2be5218e
  • 作者: Ian Lance Taylor iant@golang.org
  • コミット日時: 2012年9月12日 06:34:42 -0700
  • 変更ファイル数: 1
  • 追加行数: 1
  • 削除行数: 0

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

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

元コミット内容

C: Add Andreas Jellinghaus (Google CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6494121

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGo言語のような大規模なプロジェクトでは、プロジェクトの知的財産権を適切に管理することが非常に重要です。新しいコントリビューターがコードを提出する際、その貢献がプロジェクトのライセンスと互換性があり、将来的な法的な問題を防ぐために、Contributor License Agreement (CLA) への署名が求められることが一般的です。

このコミットは、Andreas Jellinghaus氏がGoプロジェクトに貢献するための準備が整い、GoogleのCLAに同意したことを記録するために行われました。CONTRIBUTORSファイルは、プロジェクトに貢献した個人を公式に認識し、彼らがCLAに署名済みであることを示す役割を果たします。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにコードやドキュメントなどの貢献を行う開発者と、プロジェクトの所有者(または管理団体)との間で締結される法的な合意書です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、CLAは貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクト所有者に対してその貢献をプロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)の下で利用、配布、変更する永続的かつ取り消し不能な権利を付与することを定めます。これにより、プロジェクト所有者は将来的にライセンスを変更したり、貢献されたコードを他の目的で利用したりする際の法的リスクを軽減できます。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスモデルを維持するために役立ちます。個々の貢献が異なるライセンスで提供されることを防ぎ、プロジェクトのライセンス遵守を容易にします。
  3. 法的保護: プロジェクトが第三者からの著作権侵害訴訟に直面した場合、CLAはプロジェクト所有者を保護する盾となります。貢献者が自身の貢献がオリジナルであり、第三者の権利を侵害していないことを保証するため、プロジェクト所有者は安心してコードを利用できます。

Googleのような大企業が主導するオープンソースプロジェクトでは、特にCLAの導入が一般的です。これは、企業がプロジェクトのコードベースに対する明確な法的権利を確保し、将来的な商業利用やライセンス変更の柔軟性を維持するためです。

オープンソースプロジェクトへの貢献プロセス

一般的なオープンソースプロジェクトへの貢献プロセスは以下のステップを含みます。

  1. 課題の特定または提案: 既存のバグを修正するか、新機能を追加するかを決定します。
  2. 開発: コードを記述し、テストを行います。
  3. CLAへの署名(必要な場合): プロジェクトがCLAを要求する場合、コードを提出する前にこれに署名する必要があります。これは通常、オンラインフォームを通じて行われます。
  4. プルリクエスト/変更リストの提出: 変更をプロジェクトのリポジトリに提出します。Goプロジェクトでは、Gerritというコードレビューシステムを使用しており、変更は「変更リスト (Change List)」として提出されます。
  5. コードレビュー: プロジェクトのメンテナーや他のコントリビューターがコードをレビューし、フィードバックを提供します。
  6. マージ: レビューが承認されると、変更がメインのコードベースにマージされます。

このコミットは、上記のプロセスにおける「CLAへの署名」が完了し、その結果としてコントリビューターリストが更新されたことを示しています。

技術的詳細

このコミットの技術的な変更は非常にシンプルで、GoプロジェクトのルートディレクトリにあるCONTRIBUTORSというテキストファイルに1行を追加するものです。

CONTRIBUTORSファイルは、Goプロジェクトに貢献したすべての個人をリストアップするために使用されます。このファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを付与する役割を担っています。

追加された行のフォーマットは以下の通りです。

Andreas Jellinghaus <andreas@ionisiert.de> <anj@google.com>

この行は、以下の情報を含んでいます。

  • Andreas Jellinghaus: コントリビューターの名前。
  • <andreas@ionisiert.de>: コントリビューターの主要な(または個人的な)メールアドレス。
  • <anj@google.com>: コントリビューターのGoogle関連のメールアドレス。これは、彼がGoogleのCLAに署名し、Googleの従業員として、またはGoogleに関連する形で貢献していることを示唆しています。

このファイルへの追加は、Goプロジェクトのビルドプロセスやランタイム動作に直接的な影響を与えるものではありません。これは純粋にプロジェクトのメタデータの一部であり、管理上の目的で維持されています。

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

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index f21cbc9380..4ac62be42c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -47,6 +47,7 @@ Alexey Borzenkov <snaury@gmail.com>
 Amir Mohammad Saied <amir@gluegadget.com>
 Amrut Joshi <amrut.joshi@gmail.com>
 Andrea Spadaccini <spadaccio@google.com>
+Andreas Jellinghaus <andreas@ionisiert.de> <anj@google.com>
 Andrei Vieru <euvieru@gmail.com>
 Andrew Balholm <andybalholm@gmail.com>
 Andrew Gerrand <adg@golang.org>

コアとなるコードの解説

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

  • --- a/CONTRIBUTORS+++ b/CONTRIBUTORS は、それぞれ変更前のファイルと変更後のファイルを示します。
  • @@ -47,6 +47,7 @@ は、変更がファイルの47行目から始まり、変更前は6行、変更後は7行であることを示しています。これは、1行が追加されたことを意味します。
  • +Andreas Jellinghaus <andreas@ionisiert.de> <anj@google.com> の行が新しく追加された行です。この行が、Andreas Jellinghaus氏がGoプロジェクトのコントリビューターとして正式にリストに追加されたことを示しています。

この変更は、Goプロジェクトの管理プロセスの一部であり、新しいコントリビューターがプロジェクトに貢献する準備ができたことを示す記録として機能します。

関連リンク

参考にした情報源リンク

  • Go言語のソースコードリポジトリ (GitHub): https://github.com/golang/go
  • Gitの差分表示に関する一般的な知識
  • Contributor License Agreement (CLA) に関する一般的な知識
  • オープンソースプロジェクトへの貢献に関する一般的な知識