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

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

このコミットは、GoプロジェクトのコントリビューターリストにMikhail Panchenko氏を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにMikhail Panchenko氏の名前とメールアドレスが追記されています。これは、同氏がGoプロジェクトに貢献するために必要な個人CLA(Contributor License Agreement)を締結したことを示しています。

コミット

commit 37bf90024b5cce75fab905fef7c73f9fce5628be
Author: Andrew Gerrand <adg@golang.org>
Date:   Thu Feb 13 15:34:30 2014 +1100

    A+C: Mikhail Panchenko (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/62890043

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

https://github.com/golang/go/commit/37bf90024b5cce75fab905fef7c73f9fce5628be

元コミット内容

A+C: Mikhail Panchenko (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/62890043

変更の背景

このコミットの背景には、オープンソースプロジェクト、特にGoogleが関与するプロジェクトにおけるCLA(Contributor License Agreement)の要件があります。GoプロジェクトはGoogleによって開発されており、プロジェクトへのコード貢献を受け入れる前に、貢献者からCLAの締結を求めています。これは、プロジェクトの知的財産権を保護し、将来的なライセンス問題を防ぐための法的な手続きです。

Mikhail Panchenko氏がGoプロジェクトに貢献する意向を示し、個人CLAを締結したため、その事実をプロジェクトの公式記録であるAUTHORSファイルとCONTRIBUTORSファイルに反映させる必要がありました。このコミットは、その記録更新作業の一環として行われました。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、個人または企業がオープンソースプロジェクトにコードを貢献する際に、プロジェクトの所有者(この場合はGoogle)と貢献者の間で締結される法的文書です。CLAを締結することで、貢献者は自身のコードに対する著作権を保持しつつ、プロジェクトの所有者に対して、そのコードをプロジェクトのライセンス(Goの場合はBSDライセンス)の下で利用、配布、変更する権利を付与します。

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

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、どのように利用されるかを明確にします。これにより、将来的な著作権侵害やライセンスに関する紛争のリスクを低減します。
  2. プロジェクトの持続可能性: プロジェクトの所有者が貢献されたコードを自由に利用・再ライセンスできる権利を持つことで、プロジェクトの長期的なメンテナンス、進化、およびライセンス変更の柔軟性を確保します。
  3. 法的な保護: プロジェクトの所有者やユーザーが、貢献されたコードの使用によって第三者から訴訟を起こされるリスクから保護されます。

Goプロジェクトのような大規模なオープンソースプロジェクトでは、多数の貢献者からのコードを受け入れるため、CLAは非常に重要な役割を果たします。

AUTHORSファイルとCONTRIBUTORSファイル

Goプロジェクトのルートディレクトリには、AUTHORSCONTRIBUTORSという2つのテキストファイルが存在します。

  • AUTHORS: このファイルは、Goプロジェクトの主要な作者(original authors)をリストアップしています。プロジェクトの初期段階から深く関わり、その基盤を築いた人々が主に記載されます。
  • CONTRIBUTORS: このファイルは、Goプロジェクトにコードやドキュメントなどで貢献したすべての個人をリストアップしています。CLAを締結し、実際に貢献を行った人々がここに追記されます。

これらのファイルは、プロジェクトへの貢献を公式に認識し、感謝を示すためのものです。また、プロジェクトの歴史と貢献者の記録としても機能します。

addcaツール

コミットメッセージに「Generated by addca.」とあるように、この変更はaddcaというツールによって生成されたものです。addcaは、Goプロジェクトの内部ツールであり、新しいCLA締結者をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加するために使用されます。これにより、手作業によるミスを防ぎ、プロセスを効率化しています。

技術的詳細

このコミットは、Goプロジェクトのソースコード管理におけるメタデータ管理の一例です。AUTHORSCONTRIBUTORSファイルは、プロジェクトのビルドや実行には直接影響しませんが、プロジェクトのガバナンスと法的な側面において重要な役割を担っています。

変更内容は非常にシンプルで、Mikhail Panchenko氏の名前とメールアドレスが、それぞれのファイルの適切なアルファベット順の位置に挿入されています。これは、新しい貢献者が追加されるたびに定期的に行われるメンテナンス作業の一部です。

この種のコミットは、通常、以下のようなプロセスを経て行われます。

  1. CLAの締結: 貢献者がGoプロジェクトのCLAに同意し、必要な手続きを完了します。
  2. 内部ツールの実行: Goプロジェクトの管理者がaddcaのような内部ツールを実行し、CLA締結者の情報を取得します。
  3. ファイルの更新: addcaツールがAUTHORSおよびCONTRIBUTORSファイルを更新し、新しい貢献者のエントリを追加します。
  4. レビューとコミット: 生成された変更は、通常のコードレビュープロセスと同様にレビューされ、承認された後にGoリポジトリにコミットされます。

このコミットは、Goプロジェクトがどのようにして貢献者の情報を管理し、法的な要件を満たしているかを示す具体的な例と言えます。

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

diff --git a/AUTHORS b/AUTHORS
index defe270847..42a5505f1b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -264,6 +264,7 @@ Miek Gieben <miek@miek.nl>
 Mihai Borobocea <MihaiBorobocea@gmail.com>
 Mikael Tillenius <mikti42@gmail.com>
 Mike Rosset <mike.rosset@gmail.com>
+Mikhail Panchenko <m@mihasya.com>
 Miki Tebeka <miki.tebeka@gmail.com>
 Mikio Hara <mikioh.mikioh@gmail.com>
 Mikkel Krautz <mikkel@krautz.dk>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 1874597fdb..6c5ad199d0 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -381,6 +381,7 @@ Mikael Tillenius <mikti42@gmail.com>
 Mike Rosset <mike.rosset@gmail.com>
 Mike Samuel <mikesamuel@gmail.com>
 Mike Solomon <msolo@gmail.com>
+Mikhail Panchenko <m@mihasya.com>\n
 Miki Tebeka <miki.tebeka@gmail.com>
 Mikio Hara <mikioh.mikioh@gmail.com>
 Mikkel Krautz <mikkel@krautz.dk> <krautz@gmail.com>

コアとなるコードの解説

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

  • AUTHORSファイルへの変更:

    • +Mikhail Panchenko <m@mihasya.com> の行が追加されています。これは、Mikhail Panchenko氏がGoプロジェクトの作者の一人として認識されたことを示しています。追加された位置は、アルファベット順に並べられた既存のエントリの中に適切に挿入されています。
  • CONTRIBUTORSファイルへの変更:

    • +Mikhail Panchenko <m@mihasya.com> の行が追加されています。これは、Mikhail Panchenko氏がGoプロジェクトに貢献した個人としてリストに追加されたことを示しています。こちらもアルファベット順に挿入されています。

両ファイルへの追加は、Mikhail Panchenko氏がGoプロジェクトへの貢献に必要な法的要件(個人CLAの締結)を満たしたことを公式に記録するものです。この変更自体はコードの機能に影響を与えるものではなく、プロジェクトの管理と法務に関するメタデータの更新です。

関連リンク

参考にした情報源リンク