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

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

このコミットは、Go言語プロジェクトのCONTRIBUTORSファイルに新しい貢献者であるJeremy Ellington氏を追加するものです。これは、彼がGoプロジェクトに貢献するためのGoogle CLA(Contributor License Agreement)を完了したことを示す記録的な変更であり、プロジェクトへの正式な参加を反映しています。

コミット

commit 80790ab740eb8aa11d07624c2e9cf1eab834992f
Author: Sameer Ajmani <sameer@golang.org>
Date:   Mon May 7 10:47:58 2012 -0400

    C: Jeremy Ellington (Google CLA)
    
    R=golang-dev, rsc
    CC=golang-dev, jme
    https://golang.org/cl/6197058

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

https://github.com/golang/go/commit/80790ab740eb8aa11d07624c2e9cf1eab834992f

元コミット内容

このコミットは、CONTRIBUTORSファイルに以下の変更を加えています。

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -158,6 +158,7 @@ Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
 Jaroslavas Počepko <jp@webmaster.ms>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>
+Jeremy Ellington <jme@google.com>
 Jeremy Jackins <jeremyjackins@gmail.com>
 Jim McGrath <jimmc2@gmail.com>
 Joe Poirier <jdpoirier@gmail.com>

具体的には、CONTRIBUTORSファイルの158行目付近に、Jeremy Ellington <jme@google.com>という行が追加されています。

変更の背景

この変更の背景には、オープンソースプロジェクトにおける貢献者の管理と、知的財産権の明確化という重要な側面があります。Go言語のような大規模なオープンソースプロジェクトでは、多数の個人がコードベースに貢献します。これらの貢献者が提出するコードがプロジェクトのライセンス(Goの場合はBSDライセンス)の下で適切に利用されることを保証するため、多くのプロジェクトではCLA(Contributor License Agreement)の締結を求めています。

Jeremy Ellington氏がGoプロジェクトに貢献するにあたり、Google CLAを完了したため、その事実をプロジェクトの公式な貢献者リストであるCONTRIBUTORSファイルに記録する必要がありました。このコミットは、その記録作業の一環として行われたものです。これにより、彼の将来の貢献がプロジェクトのライセンス条項に準拠していることが明確になります。

前提知識の解説

CONTRIBUTORSファイル

CONTRIBUTORSファイルは、多くのオープンソースプロジェクトで見られる慣習的なファイルで、プロジェクトに貢献した個人や組織のリストを保持します。このファイルは、プロジェクトの成功に寄与した人々を認識し、感謝を示す目的で作成されます。法的な拘束力を持つものではありませんが、プロジェクトの歴史とコミュニティの成長を示す重要なドキュメントです。

CLA (Contributor License Agreement)

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

CLAを導入する主な理由は以下の通りです。

  1. 知的財産権の明確化: プロジェクトのコードベース全体の著作権が明確になり、将来的なライセンス変更や訴訟リスクを軽減します。
  2. ライセンスの一貫性: すべての貢献がプロジェクトの選択したライセンスの下で利用可能であることを保証します。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを自由に利用、配布、変更できる権利を持つことで、プロジェクトの長期的な健全性を保ちます。

Google CLAは、Googleが主導するオープンソースプロジェクトで利用されるCLAの一種です。Go言語はGoogleによって開発され、後にオープンソース化されたため、貢献者にはGoogle CLAの締結が求められます。

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

Goプロジェクトへの貢献は、通常、以下のステップで行われます。

  1. CLAの締結: 貢献者はまずGoogle CLAを締結します。これにより、彼らの貢献がGoプロジェクトのライセンスの下で利用されることが法的に保証されます。
  2. コードの作成: 貢献者は、バグ修正、新機能の実装、ドキュメントの改善など、Goプロジェクトに対する変更を作成します。
  3. コードレビュー: 変更は、Gerritなどのコードレビューシステムを通じて提出されます。Goプロジェクトでは、golang.org/clという形式のURLでアクセスできるGerritインスタンスが使用されていました(現在はGitHubのPull Requestが主流)。レビューア(R=フィールドに記載)がコードをレビューし、改善点を提案します。
  4. コミット: レビューが承認されると、変更はプロジェクトのリポジトリにコミットされます。この際、コミットメッセージには、レビューアや関連するCLのURLなどが含まれることがあります。
  5. CONTRIBUTORSファイルの更新: 新しい貢献者がCLAを締結し、最初の貢献を行った場合、その名前がCONTRIBUTORSファイルに追加されることがあります。

技術的詳細

このコミット自体は、Go言語のコードベースに機能的な変更を加えるものではなく、プロジェクトのメタデータの一部であるCONTRIBUTORSファイルを更新するものです。技術的な観点からは、これは単なるテキストファイルの変更ですが、その背後にはプロジェクトのガバナンスと法的な側面が深く関わっています。

CONTRIBUTORSファイルは、通常、手動で更新されます。新しい貢献者がCLAを締結し、その貢献が承認された後、プロジェクトのメンテナまたは担当者がこのファイルにその貢献者の名前と連絡先(通常はメールアドレス)を追加します。このプロセスは、プロジェクトの透明性を高め、コミュニティのメンバーを認識するために重要です。

このコミットのC: Jeremy Ellington (Google CLA)という行は、コミットメッセージの慣習的な部分であり、この変更がJeremy Ellington氏によるGoogle CLAの完了に関連していることを示しています。R=golang-dev, rscはレビューアを示し、CC=golang-dev, jmeはカーボンコピー(CC)の対象者を示しています。https://golang.org/cl/6197058は、この変更がレビューされたGerritの変更リストへのリンクです。

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

変更はCONTRIBUTORSファイルの一箇所のみです。

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -158,6 +158,7 @@ Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
 Jaroslavas Počepko <jp@webmaster.ms>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>
+Jeremy Ellington <jme@google.com>
 Jeremy Jackins <jeremyjackins@gmail.com>
 Jim McGrath <jimmc2@gmail.com>
 Joe Poirier <jdpoirier@gmail.com>

具体的には、158行目の後にJeremy Ellington <jme@google.com>という行が追加されています。

コアとなるコードの解説

追加された行Jeremy Ellington <jme@google.com>は、Jeremy Ellington氏がGoプロジェクトの貢献者リストに正式に追加されたことを示しています。この行は、彼の名前と、Googleのドメインに属する彼のメールアドレスを記載しており、彼がGoogleの従業員である可能性、またはGoogle CLAを通じて貢献していることを示唆しています。

この変更自体は、Go言語のコンパイラやランタイム、標準ライブラリの動作に直接的な影響を与えるものではありません。しかし、プロジェクトのガバナンスとコミュニティ管理の観点からは非常に重要です。これは、Goプロジェクトが新しい貢献者を迎え入れ、その貢献を正式に認識するプロセスの一部です。

関連リンク

参考にした情報源リンク