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

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

このコミットは、Goプロジェクトの貢献者リストにSébastien Paolacci氏を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルに同氏の名前とメールアドレスが追記されています。これは、同氏がGoプロジェクトへの貢献を開始するにあたり、個人のContributor License Agreement (CLA)を締結したことを示しています。

コミット

commit 0b396a1731fcc0cd787964a2a80724bec2691257
Author: Mikio Hara <mikioh.mikioh@gmail.com>
Date:   Sat Nov 19 13:47:15 2011 +0900

    A+C: Sébastien Paolacci (individual CLA)
    
    R=adg, golang-dev
    CC=golang-dev
    https://golang.org/cl/5417052

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

https://github.com/golang/go/commit/0b396a1731fcc0cd787964a2a80724bec2691257

元コミット内容

A+C: Sébastien Paolacci (individual CLA)

R=adg, golang-dev
CC=golang-dev
https://golang.org/cl/5417052

変更の背景

オープンソースプロジェクト、特にGoのような大規模なプロジェクトでは、コードの著作権やライセンスの明確化が非常に重要です。新しい貢献者がプロジェクトにコードを提出する際、多くの場合、プロジェクト側はContributor License Agreement (CLA)の締結を求めます。CLAは、貢献者が提出するコードの著作権をプロジェクトに譲渡するか、またはプロジェクトがそのコードを特定のライセンスの下で利用することを許可する法的な合意です。

Sébastien Paolacci氏がGoプロジェクトに貢献を開始するにあたり、個人のCLAを締結したため、その事実をプロジェクトの公式な記録としてAUTHORSファイルとCONTRIBUTORSファイルに追記する必要がありました。これにより、将来的に同氏が提出するコードがプロジェクトのライセンスポリシーに準拠していることが明確になります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス合意)は、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(または管理団体)との間で締結する法的な契約です。主な目的は以下の通りです。

  • 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。これにより、プロジェクトのライセンスが将来変更された場合でも、すべてのコードベースに対して一貫したライセンスを適用できるようになります。
  • 知的財産権の保護: プロジェクトが第三者からの知的財産権侵害の訴訟から保護されることを保証します。貢献者が提出したコードが、実は別の場所から無断でコピーされたものであった、といったリスクを軽減します。
  • ライセンスの一貫性: プロジェクト全体で単一のライセンスモデルを維持しやすくします。

Goプロジェクトでは、Googleがプロジェクトを管理しており、貢献者には個人のCLA(Individual CLA)または企業のCLA(Corporate CLA)の締結を求めています。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために特定のファイルを使用します。

  • AUTHORSファイル: このファイルは通常、プロジェクトの主要な作者、著作権保持者、またはプロジェクトの初期開発者など、プロジェクトの知的財産権に直接関わる人々をリストアップします。このファイルに名前が記載されていることは、その人物がプロジェクトの著作権の一部を保持していることを示す場合があります。
  • CONTRIBUTORSファイル: このファイルは、プロジェクトに何らかの形で貢献したすべての個人をリストアップします。これには、コードの提出者だけでなく、バグ報告者、ドキュメントの作成者、テスター、翻訳者なども含まれることがあります。AUTHORSファイルよりも広範な貢献者を対象とします。

Goプロジェクトでは、これら2つのファイルが貢献者の記録として利用されています。

Gerrit

Gerritは、Webベースのコードレビューおよびプロジェクト管理ツールです。Gitリポジトリと連携し、開発者が変更をコミットする前に、他の開発者によるレビューを必須とすることができます。Goプロジェクトは、コードの変更を提案する際にGerritを使用しています。コミットメッセージにあるhttps://golang.org/cl/5417052は、このコミットに対応するGerritの変更リスト(Change-List, CL)へのリンクです。開発者はこのCL上でコードの変更を議論し、承認を得てからメインのコードベースにマージされます。

技術的詳細

このコミットは、Goプロジェクトの管理プロセスの一部であり、新しい貢献者を正式に認識するためのものです。技術的なコード変更は伴わず、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSの更新のみが行われています。

Goプロジェクトのような大規模なオープンソースプロジェクトでは、貢献者の管理は非常に重要です。CLAの締結は、法的な側面からプロジェクトの健全性を保つために不可欠です。CLAが締結されると、その貢献者の名前がこれらのファイルに追加され、プロジェクトへの貢献が公式に認められます。

このプロセスは、以下のステップで構成されます。

  1. 貢献の意図: 開発者がGoプロジェクトに貢献したいと表明します。
  2. CLAの締結: 開発者はGoプロジェクトのCLA(個人または企業)を読み、同意し、署名します。
  3. CLAの確認: Goプロジェクトの管理チームがCLAの締結を確認します。
  4. ファイル更新の提案: 管理チームまたは既存の貢献者が、AUTHORSおよびCONTRIBUTORSファイルに新しい貢献者の情報を追加する変更をGerritに提出します。
  5. レビューとマージ: 提案された変更はレビューされ、承認された後にGoリポジトリにマージされます。

このコミットは、上記のステップ4と5に該当します。R=adg, golang-devは、この変更がadg(Andrew Gerrand氏、当時のGoチームメンバー)とgolang-dev(Go開発者メーリングリスト)によってレビューされたことを示唆しています。

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

このコミットでは、以下の2つのファイルが変更されています。

AUTHORS

--- a/AUTHORS
+++ b/AUTHORS
@@ -152,6 +152,7 @@ Ross Light <rlight2@gmail.com>
 Ryan Hitchman <hitchmanr@gmail.com>
 Scott Lawrence <bytbox@gmail.com>
 Sebastien Binet	<seb.binet@gmail.com>
+Sébastien Paolacci <sebastien.paolacci@gmail.com>
 Sergei Skorobogatov <skorobo@rambler.ru>
 Sergey 'SnakE'  Gromov <snake.scaly@gmail.com>
 Sergio Luis O. B. Correia <sergio@larces.uece.br>

CONTRIBUTORS

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -229,6 +229,7 @@ Sameer Ajmani <ajmani@gmail.com>
 Scott Lawrence <bytbox@gmail.com>
 Scott Schwartz <scotts@golang.org>
 Sebastien Binet	<seb.binet@gmail.com>
+Sébastien Paolacci <sebastien.paolacci@gmail.com>
 Sergei Skorobogatov <skorobo@rambler.ru>
 Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
 Sergio Luis O. B. Correia <sergio@larces.uece.br>

コアとなるコードの解説

上記のdiff出力は、AUTHORSファイルとCONTRIBUTORSファイルの両方に、Sébastien Paolacci氏の名前とメールアドレスが1行追加されたことを示しています。

  • +Sébastien Paolacci <sebastien.paolacci@gmail.com>: この行が追加されたことを意味します。追加された情報は、貢献者のフルネームと、その連絡先となるメールアドレスです。

この変更は、Goプロジェクトの公式な記録として、Sébastien Paolacci氏がGoプロジェクトの貢献者コミュニティの一員となったことを示しています。これにより、同氏が将来的にGoプロジェクトに提出するコードは、CLAの合意の下で適切にライセンスされることになります。

関連リンク

参考にした情報源リンク

  • Contributor License Agreement (CLA) の概念に関する一般的な情報源
  • Goプロジェクトの公式ドキュメント(特に貢献ガイドライン)
  • Gerritの公式ドキュメント
  • GitHub上のGoリポジトリの履歴