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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるUriel Mangado氏を追加するものです。これは、彼が個人の貢献者ライセンス契約(CLA)を締結したことを示しています。

コミット

commit 5fa8987fe33210aed95aabe86864cbf75eca3fa0
Author: Russ Cox <rsc@golang.org>
Date:   Sat Sep 1 19:55:03 2012 -0400

    A+C: add Uriel Mangado (individual CLA)
    
    R=golang-dev, r
    CC=golang-dev
    https://golang.org/cl/6492070

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

https://github.com/golang/go/commit/5fa8987fe33210aed95aabe86864cbf75eca3fa0

元コミット内容

A+C: add Uriel Mangado (individual CLA)

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

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、貢献者からのコードを受け入れる際に、法的な側面を明確にすることが非常に重要です。これは、プロジェクトの知的財産権を保護し、将来的なライセンス問題を防ぐためです。

このコミットの背景には、Uriel Mangado氏がGoプロジェクトに貢献する意向があり、そのために必要な「個人貢献者ライセンス契約(Individual Contributor License Agreement, CLA)」を締結したという事実があります。CLAは、貢献者が自身の貢献に対する著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、または非独占的なライセンスを付与することを保証する法的な合意書です。これにより、プロジェクトは貢献されたコードを自由に利用、配布、変更できるようになります。

CLAの締結後、その貢献者の名前をプロジェクトの公式な貢献者リスト(AUTHORSおよびCONTRIBUTORSファイル)に追加することが慣例となっています。これは、貢献者への敬意を示すとともに、プロジェクトの透明性を保つためでもあります。

前提知識の解説

貢献者ライセンス契約 (Contributor License Agreement, CLA)

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

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するのか、プロジェクト側がそのコードをどのように利用できるのかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを低減します。
  2. ライセンスの統一性: プロジェクト全体のライセンス(例: BSDライセンス、MITライセンスなど)と、個々の貢献者のコードのライセンスとの間に矛盾が生じないようにします。CLAを通じて、貢献者はプロジェクトのライセンス条項に従うことに同意します。
  3. プロジェクトの持続可能性: プロジェクトの所有者(企業や財団など)が、貢献されたコードを自由に利用、再ライセンス、配布できる権限を持つことで、プロジェクトの長期的な維持管理や商業利用の可能性を確保します。

CLAには、個人が署名する「個人CLA (Individual CLA)」と、企業が署名する「企業CLA (Corporate CLA)」の2種類が一般的です。このコミットでは「individual CLA」と明記されており、Uriel Mangado氏が個人として契約を締結したことを示しています。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するためのテキストファイルが存在します。Goプロジェクトでは、AUTHORSCONTRIBUTORSという2つのファイルがその役割を担っています。

  • AUTHORS: 主にプロジェクトの主要な開発者や、コードベースに大きな影響を与えた人々がリストされます。
  • CONTRIBUTORS: より広範な貢献者、例えばバグ修正、ドキュメントの改善、テストの追加など、様々な形でプロジェクトに貢献した人々がリストされます。

これらのファイルは、プロジェクトの歴史とコミュニティの成長を示す重要な記録であり、貢献者への感謝と認識を示す役割も果たします。

Gerrit (golang.org/cl/)

https://golang.org/cl/6492070というリンクは、Goプロジェクトがコードレビューに利用しているGerritシステムへのリンクです。Gerritは、Gitリポジトリ上で変更をレビューするためのウェブベースのツールです。

  • Change-ID (CL): Gerritでは、各変更セット(コミット)は「Change-ID」または「CL (Change List)」と呼ばれる一意の識別子を持ちます。6492070はこのCLのIDです。
  • コードレビュープロセス: Goプロジェクトでは、コードがメインのブランチにマージされる前に、Gerritを通じて厳格なコードレビューが行われます。R=golang-dev, rはレビュー担当者を示し、CC=golang-devはカーボンコピー(通知)の対象を示しています。

このリンクは、このコミットがGerrit上でレビューされ、承認された後にマージされたことを示唆しています。

技術的詳細

このコミット自体は、Go言語のコードベースに対する機能的な変更を含んでいません。純粋にプロジェクトのメタデータ、具体的には貢献者リストを更新するものです。

変更は以下の2つのファイルに対して行われています。

  1. AUTHORS:
    • このファイルは、プロジェクトの主要な作者や貢献者を列挙しています。
    • Uriel Mangado氏の名前とメールアドレス(Uriel Mangado <uriel@berlinblue.org>)が、アルファベット順に既存のエントリに追加されています。
  2. CONTRIBUTORS:
    • このファイルは、より広範な貢献者を列挙しています。
    • 同様に、Uriel Mangado氏の名前とメールアドレスが、アルファベット順に既存のエントリに追加されています。

Gitの差分(diff)を見ると、両ファイルに1行ずつ追加されていることが確認できます。これは、新しい貢献者の情報を既存のリストに挿入する標準的な方法です。

この変更は、Goプロジェクトのガバナンスと法務プロセスの一部であり、新しい貢献者がプロジェクトに正式に迎え入れられたことを示すものです。

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

diff --git a/AUTHORS b/AUTHORS
index 1b274ce532..c5c6a9c6a4 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -222,6 +222,7 @@ Timo Savola <timo.savola@gmail.com>
 Tobias Columbus <tobias.columbus@gmail.com>
 Tor Andersson <tor.andersson@gmail.com>
 Ugorji Nwoke <ugorji@gmail.com>
+Uriel Mangado <uriel@berlinblue.org>
 Vadim Vygonets <unixdj@gmail.com>
 Vincent Ambo <tazjin@googlemail.com>
 Vincent Vanackere <vincent.vanackere@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3c0a643c42..d01b17f85b 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -317,6 +317,7 @@ Tom Szymanski <tgs@google.com>
 Tor Andersson <tor.andersson@gmail.com>
 Trevor Strohman <trevor.strohman@gmail.com>
 Ugorji Nwoke <ugorji@gmail.com>
+Uriel Mangado <uriel@berlinblue.org>
 Vadim Vygonets <unixdj@gmail.com>
 Vincent Ambo <tazjin@googlemail.com>
 Vincent Vanackere <vincent.vanackere@gmail.com>

コアとなるコードの解説

上記の差分は、AUTHORSファイルとCONTRIBUTORSファイルに対する変更を示しています。

  • --- a/AUTHORS+++ b/AUTHORS は、AUTHORSファイルの変更前と変更後を示します。
  • @@ -222,6 +222,7 @@ は、変更がファイルの222行目から始まり、変更前は6行、変更後は7行あることを示します。
  • +Uriel Mangado <uriel@berlinblue.org> の行は、Uriel Mangado氏の名前とメールアドレスが追加されたことを示しています。この行の先頭の+は、この行が新しく追加されたことを意味します。

同様に、CONTRIBUTORSファイルにも同じ行が追加されています。

この変更は非常にシンプルで、既存のテキストファイルに新しいエントリを挿入するだけです。特筆すべき複雑なロジックやアルゴリズムは含まれていません。これは、プロジェクトの管理と法務要件を満たすための典型的なコミットパターンです。

関連リンク

参考にした情報源リンク