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

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

このコミットは、Go言語プロジェクトのCONTRIBUTORSファイルに新しい貢献者であるMaxim Pimenov氏を追加するものです。これは、彼がGoogleのContributor License Agreement (CLA) に署名したことを反映しています。

コミット

commit 7606079d9f54351e0aff78da804ce72814475446
Author: Russ Cox <rsc@golang.org>
Date:   Mon Nov 28 11:47:23 2011 -0500

    CONTRIBUTORS: add Maxim Pimenov (Google CLA)
    
    R=golang-dev, bradfitz
    CC=golang-dev
    https://golang.org/cl/5443047

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

https://github.com/golang/go/commit/7606079d9f54351e0aff78da804ce72814475446

元コミット内容

CONTRIBUTORS: add Maxim Pimenov (Google CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5443047

変更の背景

オープンソースプロジェクトにおいて、貢献者がコードを提出する際には、プロジェクトのライセンスと整合性を持たせるために、Contributor License Agreement (CLA) への署名が求められることがよくあります。Googleが主導するGo言語プロジェクトも例外ではありません。このコミットは、Maxim Pimenov氏がGoプロジェクトへの貢献を開始するにあたり、GoogleのCLAに署名したことを受けて、彼の名前を正式な貢献者リストであるCONTRIBUTORSファイルに追加するために行われました。これにより、彼の将来の貢献が法的に適切に扱われるようになります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者(コントリビューター)が自身の作成したコードやドキュメントなどの著作物をプロジェクトに提供する際に、その著作物の利用許諾や著作権の帰属について取り決める法的な合意書です。

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

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。これにより、プロジェクトの所有者(または管理団体)が、貢献されたコードをプロジェクトのライセンス(例: Apache License, MIT Licenseなど)の下で配布・利用する権利を確実に得ることができます。
  2. ライセンスの整合性: プロジェクト全体のライセンスの一貫性を保ちます。異なるライセンスのコードが混在することを防ぎ、将来的なライセンス変更や再ライセンスの可能性を確保します。
  3. 法的リスクの軽減: 貢献されたコードに関する著作権侵害や特許侵害などの法的紛争が発生した場合に、プロジェクト側が適切に対応できる法的基盤を提供します。

CLAには大きく分けて2つのタイプがあります。

  • 著作権譲渡型 (Copyright Assignment CLA): 貢献者が自身の著作権をプロジェクトの所有者(例: 財団や企業)に譲渡する形式です。これにより、プロジェクトの所有者が著作権を完全に管理し、必要に応じてライセンスを変更するなどの柔軟性を持つことができます。
  • 著作権許諾型 (Copyright License CLA): 貢献者が著作権を保持したまま、プロジェクトの所有者に対して、貢献された著作物を特定のライセンスの下で利用、配布、改変、サブライセンスする永続的かつ取り消し不能な権利を付与する形式です。GoogleのCLAは通常このタイプに属します。

Go言語プロジェクトの場合、Googleがプロジェクトを主導しているため、GoogleのCLAが適用されます。これは、貢献者がGoogleに対して、彼らの貢献をGoプロジェクトのライセンス(BSDライセンス)の下で利用する権利を付与することを意味します。

CONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するためのファイルが存在します。Go言語プロジェクトでは、このファイルがCONTRIBUTORSという名前で存在します。このファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割を果たします。また、CLAへの署名が完了したことを示す公式な記録としても機能します。

Gerrit Change-ID (golang.org/cl/5443047)

https://golang.org/cl/5443047 は、Goプロジェクトがコードレビューに利用しているGerritシステムにおけるチェンジリスト(Change-ID)へのリンクです。Gerritは、Gitリポジトリと連携して動作するWebベースのコードレビューシステムで、変更がメインのコードベースにマージされる前に、レビューと承認のプロセスを管理します。

  • CL (Change List): Gerritにおける個々の変更の単位を指します。このリンクは、Maxim Pimenov氏をCONTRIBUTORSファイルに追加する具体的な変更がGerrit上でどのようにレビューされ、承認されたかを示すものです。
  • R=golang-dev, bradfitz: これは、この変更のレビュー担当者(Reviewers)がgolang-devメーリングリストのメンバーとbradfitz(Brad Fitzpatrick氏、Goチームの主要メンバーの一人)であることを示しています。
  • CC=golang-dev: これは、この変更に関する通知がgolang-devメーリングリストにも送られることを示しています。

技術的詳細

このコミットの技術的な変更は非常に単純です。CONTRIBUTORSというテキストファイルに1行追加するだけです。しかし、その背後には、オープンソースプロジェクトにおける法的な側面と、貢献管理のプロセスが関わっています。

Goプロジェクトでは、貢献者がコードを提出する前にCLAに署名することが義務付けられています。これは、プロジェクトの知的財産権を保護し、将来的なライセンスの変更や法的問題が発生した場合に備えるためです。Maxim Pimenov氏がGoogle CLAに署名したことで、彼の貢献がGoプロジェクトのライセンス(BSDライセンス)の下で適切に利用されることが保証されます。

このコミットは、Gerritというコードレビューシステムを通じて行われました。Gerritは、変更がリポジトリにマージされる前に、複数のレビュー担当者による承認を必要とします。このプロセスにより、コードの品質とプロジェクトのポリシーへの準拠が保証されます。この場合、CONTRIBUTORSファイルの更新という単純な変更であっても、正式なレビュープロセスを経ています。

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

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

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -175,6 +175,7 @@ Mateusz Czapliński <czapkofan@gmail.com>
 Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
 Matt Jones <mrjones@google.com>
 Matthew Horsnell <matthew.horsnell@gmail.com>
+Maxim Pimenov <mpimenov@google.com>
 Maxim Ushakov <ushakov@google.com>
 Micah Stetson <micah.stetson@gmail.com>
 Michael Elkins <michael.elkins@gmail.com>

コアとなるコードの解説

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

Maxim Pimenov <mpimenov@google.com>

これは、Maxim Pimenov氏がGoプロジェクトの正式な貢献者として認識され、彼のGoogleアカウントに関連付けられたメールアドレスが記録されたことを意味します。この追加は、彼がGoogle CLAに署名し、Goプロジェクトへの貢献を開始する準備が整ったことを示すものです。

関連リンク

参考にした情報源リンク

  • コミット情報: /home/violet/Project/comemo/commit_data/10517.txt
  • GitHubコミットページ: https://github.com/golang/go/commit/7606079d9f54351e0aff78da804ce72814475446
  • Gerrit Change-ID: https://golang.org/cl/5443047
  • Contributor License Agreement (CLA) に関する一般的な情報 (例: Wikipedia, 各オープンソースプロジェクトのCLAページなど)
  • Gerritに関する一般的な情報 (例: Gerrit Code Reviewの公式ドキュメントなど)
  • Go言語プロジェクトの貢献ガイドライン (もしあれば)