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

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

このコミットは、GoプロジェクトのCONTRIBUTORSファイルに新しい貢献者「Alexis Imperial-Legrand」を追加するものです。これは、Google Contributor License Agreement (CLA) に基づく追加であり、オープンソースプロジェクトにおける貢献者の法的な側面を反映しています。

コミット

commit b1e81a54622280ea200b1b90b9d2c97913c11646
Author: Russ Cox <rsc@golang.org>
Date:   Tue Sep 10 13:00:01 2013 -0400

    CONTRIBUTORS: add Alexis Imperial-Legrand (Google CLA)
    
    R=golang-dev, bradfitz
    CC=ail, golang-dev
    https://golang.org/cl/13441050

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

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

元コミット内容

CONTRIBUTORS: add Alexis Imperial-Legrand (Google CLA)

変更の背景

オープンソースプロジェクト、特に大規模なものや企業が関与しているプロジェクトでは、貢献者からのコードがプロジェクトのライセンスの下で適切に配布されることを保証するために、Contributor License Agreement (CLA) の締結を求めることが一般的です。このコミットは、Alexis Imperial-Legrand氏がGoプロジェクトに貢献するにあたり、Google CLAを締結したため、その貢献者リストに名前が追加されたことを示しています。

CONTRIBUTORSファイルは、プロジェクトに貢献した個人のリストを保持するものであり、プロジェクトの透明性と、誰がコードベースに貢献したかを明確にする役割を果たします。新しい貢献者が現れ、必要な法的手続き(この場合はCLAの締結)を完了した場合、このファイルが更新されるのは自然な流れです。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者が自身の作成したコードやドキュメントなどの著作物をプロジェクトに提供する際に、プロジェクトのライセンスの下でその著作物を利用、配布、変更することを許可するための法的な合意書です。

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

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、CLAは貢献者が著作権を保持しつつ、プロジェクトの所有者(または財団)にその著作物を使用、配布、サブライセンスする永続的で取り消し不能な権利を付与する形を取ります。これにより、プロジェクトの所有者は、将来的なライセンス変更や、著作権侵害の訴訟などが発生した場合に、貢献されたコードを合法的に利用し続けることができます。
  2. ライセンスの整合性: プロジェクト全体のコードベースが単一のライセンス(例: Apache License, MIT License)の下で配布されることを保証します。個々の貢献者が異なるライセンスでコードを提供してしまうと、ライセンスの複雑性が増し、将来的な利用や配布に問題が生じる可能性があります。CLAは、すべての貢献がプロジェクトの指定するライセンスに準拠することを保証します。
  3. 法的リスクの軽減: プロジェクトの所有者や利用者が、貢献されたコードに起因する著作権侵害やその他の法的問題に巻き込まれるリスクを軽減します。CLAは、貢献者が提供するコードが彼ら自身のオリジナルであり、第三者の著作権を侵害していないことを保証する条項を含むことが一般的です。

Google CLA

Google CLAは、Googleが関与するオープンソースプロジェクト(Go、Android、Chromiumなど)に貢献する際に、個人または企業がGoogleと締結するCLAです。Google CLAには、個人向けの「Individual Contributor License Agreement (ICLA)」と、企業向けの「Corporate Contributor License Agreement (CCLA)」があります。

このコミットメッセージにある「Google CLA」は、Alexis Imperial-Legrand氏がGoプロジェクトに貢献するために、Googleが求めるCLAを締結したことを意味します。これにより、GoogleはGoプロジェクトのコードベース全体に対する法的権利を確保し、プロジェクトの継続的な開発と配布を保証することができます。

CONTRIBUTORS ファイル

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

GoプロジェクトのCONTRIBUTORSファイルは、Goのソースコードリポジトリのルートディレクトリに存在し、プロジェクトにコードを貢献した個人の名前とメールアドレスがアルファベット順にリストされています。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといった技術的な機能変更を伴うものではありません。純粋にプロジェクトの管理と法的な側面に関わる変更です。

具体的には、CONTRIBUTORSファイルというプレーンテキストファイルに、新しい行が1行追加されただけです。この追加は、Goプロジェクトの貢献者リストを最新の状態に保つための定期的なメンテナンス作業の一部です。

コミットメッセージに含まれるR=golang-dev, bradfitzCC=ail, golang-devは、コードレビューのプロセスを示しています。

  • R=はレビュー担当者(Reviewers)を示し、この変更がgolang-devメーリングリストとbradfitzによってレビューされたことを意味します。
  • CC=はカーボンコピー(Carbon Copy)を示し、この変更に関する通知がail(Alexis Imperial-Legrand氏のイニシャルまたはアカウント名)とgolang-devメーリングリストにも送られたことを意味します。
  • https://golang.org/cl/13441050は、この変更がGoのコードレビューシステム(Gerritベース)におけるチェンジリスト(CL)のURLであることを示しています。Goプロジェクトでは、GitHubのプルリクエストではなく、このGerritベースのシステムを通じてコード変更が提案され、レビューされます。

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

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

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -53,6 +53,7 @@ Alexandre Normand <alexandre.normand@gmail.com>
 Alexandru Moșoi <brtzsnr@gmail.com>
 Alexei Sholik <alcosholik@gmail.com>
 Alexey Borzenkov <snaury@gmail.com>
+Alexis Imperial-Legrand <ail@google.com>
 Amir Mohammad Saied <amir@gluegadget.com>
 Amrut Joshi <amrut.joshi@gmail.com>
 Andrea Spadaccini <spadaccio@google.com>

コアとなるコードの解説

この変更は、CONTRIBUTORSファイルの54行目にAlexis Imperial-Legrand <ail@google.com>という行を追加しています。これは、Alexis Imperial-Legrand氏がGoプロジェクトの貢献者として正式に認識され、その名前がリストに追加されたことを示しています。

このファイルは、Goプロジェクトのソースコードの一部としてバージョン管理されており、新しい貢献者が加わるたびに更新されます。この変更自体は、Goの機能に直接的な影響を与えるものではなく、プロジェクトの管理と法的なコンプライアンスを維持するためのものです。

関連リンク

参考にした情報源リンク

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