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

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

このコミットは、Goプロジェクトの貢献者リストに新しい個人を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにKamil Kisiel氏のエントリが追加されています。これは、彼がGoプロジェクトに貢献するためのIndividual Contributor License Agreement (CLA) を提出したことを示しています。

コミット

commit 53d3bbcb951b40cc1daab266e89db71fcd492018
Author: Andrew Gerrand <adg@golang.org>
Date:   Wed Jan 2 16:04:32 2013 +1100

    A+C: Kamil Kisiel (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/7038046

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

https://github.com/golang/go/commit/53d3bbcb951b40cc1daab266e89db71fcd492018

元コミット内容

このコミットの元の内容は、Kamil Kisiel氏がGoプロジェクトのIndividual Contributor License Agreement (CLA) に署名したことを記録し、その結果として彼の情報がAUTHORSファイルとCONTRIBUTORSファイルに追加されたことを示しています。コミットメッセージの「A+C」は、AUTHORSCONTRIBUTORSファイルへの追加を意味していると考えられます。また、「Generated by addca」という記述から、この変更が自動化されたツールによって行われたことが示唆されています。

変更の背景

オープンソースプロジェクト、特にGoogleが関与するような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際に、そのコードの著作権がプロジェクトに適切に帰属することを確認するため、Contributor License Agreement (CLA) の署名が求められることが一般的です。

このコミットの背景には、Kamil Kisiel氏がGoプロジェクトに貢献を開始するにあたり、必要なCLAを提出したという事実があります。CLAが署名されると、その貢献者の情報がプロジェクトの公式な貢献者リストに追加されるプロセスが実行されます。これにより、プロジェクト側は、提出されたコードが法的に問題なく利用できることを保証できます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、個人または企業がオープンソースプロジェクトに貢献する際に署名する法的な文書です。この文書は、貢献者が提出するコードの著作権をプロジェクトの所有者(または指定されたエンティティ)に譲渡するか、またはプロジェクトがそのコードを特定のライセンスの下で利用することを許可することを定めます。

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

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するのか、あるいは誰がそのコードを使用する権利を持つのかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体でコードのライセンスを統一し、一貫したライセンスモデルを維持することを可能にします。例えば、プロジェクトがApache License 2.0を採用している場合、CLAを通じて貢献されたコードもそのライセンスの下で利用されることが保証されます。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを再ライセンスしたり、商用利用したりする柔軟性を持つことを可能にし、プロジェクトの長期的な持続可能性を確保します。

GoプロジェクトのようなGoogleが主導するプロジェクトでは、通常、Individual CLA(個人向けCLA)とCorporate CLA(企業向けCLA)の2種類が用意されています。個人が個人的な立場で貢献する場合はIndividual CLAに、企業が従業員を通じて貢献する場合はCorporate CLAに署名します。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するためのテキストファイルが用意されています。

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人・団体をリストアップするために使用されます。法的な意味合いが強い場合があります。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップするために使用されます。コードの貢献者だけでなく、ドキュメントの作成者、バグ報告者、テスターなども含まれることがあります。

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割も果たします。

addcaツール

コミットメッセージに「Generated by addca」とあることから、addcaというツールがこの変更を自動生成したことがわかります。addcaは「add Contributor Agreement」の略であると推測され、CLAが署名された後に、その情報をプロジェクトの貢献者リストファイル(AUTHORSCONTRIBUTORSなど)に自動的に追加するための内部ツールであると考えられます。このような自動化ツールは、大規模なオープンソースプロジェクトにおいて、手作業によるエラーを防ぎ、プロセスを効率化するために不可欠です。

技術的詳細

このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのプレーンテキストファイル、AUTHORSCONTRIBUTORSに、Kamil Kisiel氏の情報を追加するものです。

具体的には、以下の行がそれぞれのファイルに追加されています。

Kamil Kisiel <kamil@kamilkisiel.net> <kamil.kisiel@gmail.com>

この行は、貢献者の氏名と、彼が使用する可能性のある2つの電子メールアドレスを含んでいます。これは、Gitのコミット情報や他の連絡先情報と照合するために使用される可能性があります。

変更自体は非常に単純なテキストの追加ですが、その背後にはCLAの署名という重要なプロセスが存在します。addcaのようなツールは、CLAデータベースと連携し、新しいCLAが承認されるたびに、関連するリポジトリのファイルを自動的に更新するワークフローの一部として機能します。これにより、手動でのファイル編集に伴うヒューマンエラーのリスクを排除し、貢献者リストの正確性と最新性を保つことができます。

このコミットは、Goプロジェクトが貢献者の管理と知的財産権の保護に関して、堅牢なプロセスと自動化されたツールを導入していることを示しています。

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

このコミットによって変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルにおいて、以下の行が追加されています。

--- a/AUTHORS
+++ b/AUTHORS
@@ -149,6 +149,7 @@ Jukka-Pekka Kekkonen <karatepekka@gmail.com>
 Julian Phillips <julian@quantumfyre.co.uk>
 Julien Schmidt <google@julienschmidt.com>
 Kai Backman <kaib@golang.org>
+Kamil Kisiel <kamil@kamilkisiel.net> <kamil.kisiel@gmail.com>
 Kei Son <hey.calmdown@gmail.com>
 Keith Rarick <kr@xph.us>
 Ken Friedenbach <kenliz@cruzio.com>
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -220,6 +220,7 @@ Jukka-Pekka Kekkonen <karatepekka@gmail.com>
 Julian Phillips <julian@quantumfyre.co.uk>
 Julien Schmidt <google@julienschmidt.com>
 Kai Backman <kaib@golang.org>
+Kamil Kisiel <kamil@kamilkisiel.net> <kamil.kisiel@gmail.com>
 Kei Son <hey.calmdown@gmail.com>
 Keith Rarick <kr@xph.us>
 Ken Friedenbach <kenliz@cruzio.com>

コアとなるコードの解説

変更されたのは、Goプロジェクトの貢献者情報を記録するプレーンテキストファイルです。これらのファイルは、特定のプログラミング言語のコードではなく、単なるリストとして機能します。

追加された行のフォーマットは以下の通りです。

[氏名] <[主要メールアドレス]> <[追加メールアドレス]>

このフォーマットは、人間が読みやすく、かつ必要に応じてスクリプトやツールでパースしやすいように設計されていると考えられます。メールアドレスが複数記載されているのは、貢献者が異なるドメインやサービスで複数のメールアドレスを使用している場合に、それらをすべて記録しておくことで、将来的な連絡や貢献の追跡を容易にするためです。

この変更自体は、Go言語のコードベースに直接的な機能変更をもたらすものではありませんが、プロジェクトの管理と法的な側面において重要な意味を持ちます。

関連リンク

  • Goプロジェクトの公式ウェブサイト: https://golang.org/
  • GoプロジェクトのContributor License Agreement (CLA) に関する情報(一般的なオープンソースプロジェクトのCLA情報も参考になります):

参考にした情報源リンク

  • コミット情報: /home/orange/Project/comemo/commit_data/14769.txt
  • GitHubコミットページ: https://github.com/golang/go/commit/53d3bbcb951b40cc1daab266e89db71fcd492018
  • Contributor License Agreement (CLA) に関する一般的な情報(Web検索による)
  • オープンソースプロジェクトにおけるAUTHORSおよびCONTRIBUTORSファイルの役割に関する一般的な情報(Web検索による)