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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者「Jamie Wilkinson」を追加するものです。これは、Goプロジェクトへの貢献を開始する際に必要となる、Contributor License Agreement (CLA)の署名が完了したことを示す典型的な変更です。

コミット

commit 3714d69b1505b54683a8b28e64b8aece3796a1d2
Author: Rob Pike <r@golang.org>
Date:   Fri Sep 13 13:17:47 2013 +1000

    C: Jamie Wilkinson (Googler CLA)

    R=golang-dev, dave, adg, dsymonds
    CC=golang-dev
    https://golang.org/cl/13692043

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

https://github.com/golang/go/commit/3714d69b1505b54683a8b28e64b8aece3796a1d2

元コミット内容

このコミットは、CONTRIBUTORSファイルに以下の行を追加しています。

Jamie Wilkinson <jaq@spacepants.org>

コミットメッセージ「C: Jamie Wilkinson (Googler CLA)」は、Jamie Wilkinson氏がGooglerであり、GoogleのContributor License Agreement (CLA)に署名したことを示しています。

変更の背景

Goプロジェクトのような大規模なオープンソースプロジェクトでは、プロジェクトの知的財産権を適切に管理するために、貢献者ライセンス契約(CLA)の署名を義務付けていることが一般的です。CLAは、貢献者が自身のコードに対する著作権を保持しつつ、プロジェクトがそのコードを自由に利用、配布、変更することを許可する法的な合意です。

このコミットは、Jamie Wilkinson氏がGoプロジェクトにコードを貢献する準備が整い、必要なCLAの手続きを完了したことを示すものです。CONTRIBUTORSファイルに名前が追加されることは、その人物がプロジェクトに正式に貢献できるようになったことの証となります。これにより、プロジェクトは将来的にJamie Wilkinson氏からのコード変更を受け入れることが可能になります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス契約)は、オープンソースプロジェクトにおいて、貢献者からプロジェクトへのコード寄贈に関する権利を明確にするための法的な文書です。主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、プロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権に関する紛争を防ぎます。
  2. ライセンスの統一性: プロジェクト全体でコードのライセンスが統一されていることを保証し、プロジェクトのライセンスモデル(例: BSDライセンス、MITライセンスなど)に沿ってコードが利用されることを保証します。
  3. 再ライセンスの可能性: プロジェクトが将来的にライセンスモデルを変更する必要が生じた場合、CLAによって貢献されたコードを新しいライセンスで再配布する権利をプロジェクトに与えることがあります。

Googleが主導するGoプロジェクトでは、GoogleのCLAが適用されます。これは、Googleの従業員(Googler)が貢献する場合と、外部の貢献者が貢献する場合で異なるCLAが存在することがあります。このコミットメッセージにある「Googler CLA」は、Jamie Wilkinson氏がGoogleの従業員としてCLAに署名したことを示唆しています。

CONTRIBUTORSファイル

多くのオープンソースプロジェクトには、プロジェクトに貢献した人々の名前をリストアップしたファイルが存在します。GoプロジェクトのCONTRIBUTORSファイルもその一つです。このファイルは、プロジェクトの歴史と、その成長に貢献した人々を記録する役割を果たします。

このファイルに名前が追加されることは、単に名前がリストに載るだけでなく、その人物がプロジェクトの正式な貢献者として認識され、コードレビュープロセスに参加したり、自身のコードをコミットしたりする権限を得るための前提条件となることが多いです。

技術的詳細

このコミット自体は、Goのランタイムやコンパイラといったコアな技術要素に直接的な変更を加えるものではありません。しかし、Goプロジェクトのガバナンスと貢献プロセスにおいて重要な意味を持ちます。

変更は、プロジェクトのルートディレクトリにあるCONTRIBUTORSというテキストファイルに対して行われています。このファイルは、プロジェクトのビルドシステムやランタイムに直接リンクされているわけではなく、主に人間が読むためのドキュメントとして機能します。

変更の技術的な側面は、単にテキストファイルに新しい行を追加することです。Gitの差分(diff)を見ると、ファイルの229行目の後に新しい行が挿入されていることがわかります。

@@ -229,6 +229,7 @@ James Toy <nil@opensesame.st>\n James Tucker <raggi@google.com>\n James Whitehead <jnwhiteh@gmail.com>\n Jamie Gennis <jgennis@google.com> <jgennis@gmail.com>\n+Jamie Wilkinson <jaq@spacepants.org>\n Jan H. Hosang <jan.hosang@gmail.com>\n Jan Mercl <0xjnml@gmail.com>\n Jan Mercl <befelemepeseveze@gmail.com>\

この差分は、CONTRIBUTORSファイルにJamie Wilkinson氏の名前とメールアドレスが追加されたことを明確に示しています。この変更は、Goプロジェクトの貢献者リストを最新の状態に保つための定期的なメンテナンスの一部です。

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

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

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -229,6 +229,7 @@ James Toy <nil@opensesame.st>\n James Tucker <raggi@google.com>\n James Whitehead <jnwhiteh@gmail.com>\n Jamie Gennis <jgennis@google.com> <jgennis@gmail.com>\n+Jamie Wilkinson <jaq@spacepants.org>\n Jan H. Hosang <jan.hosang@gmail.com>\n Jan Mercl <0xjnml@gmail.com>\n Jan Mercl <befelemepeseveze@gmail.com>\

具体的には、229行目の後に新しい行が追加されています。

コアとなるコードの解説

このコミットにおける「コアとなるコード」は、Goプロジェクトの貢献者リストを管理するCONTRIBUTORSファイルです。このファイルは、プロジェクトのソースコードの一部としてGitリポジトリで管理されており、プロジェクトの歴史と貢献者を追跡するために重要です。

追加された行は、以下のフォーマットに従っています。

[貢献者の氏名] <[メールアドレス]>

このシンプルなテキスト形式は、人間が読みやすく、またスクリプトなどによる解析も容易です。Goプロジェクトでは、このような慣習的なファイルを通じて、プロジェクトの透明性とコミュニティへの感謝を示しています。

この変更自体は、Go言語の機能やパフォーマンスに直接的な影響を与えるものではありませんが、プロジェクトの健全な運営とコミュニティの成長を支える重要な側面です。

関連リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • GoプロジェクトのContributor License Agreement (CLA)に関する情報(一般的なオープンソースプロジェクトのCLAに関する情報も参考になります)

参考にした情報源リンク

  • GoプロジェクトのGitHubコミットページ: https://github.com/golang/go/commit/3714d69b1505b54683a8b28e64b8aece3796a1d2
  • GoプロジェクトのCONTRIBUTORSファイル(コミット時点のファイル内容を基に解説)
  • Contributor License Agreement (CLA)に関する一般的な情報源(例: Wikipedia, 各オープンソース財団のドキュメントなど)