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

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

このコミットは、Goプロジェクトの貢献者リストに新しい個人を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにThomas Kappler氏の情報を追加しています。これは、Goプロジェクトへの貢献を開始する際に必要となる、Contributor License Agreement (CLA) のプロセスの一部として自動生成されたコミットであると推測されます。

コミット

commit a29702f067a4d4ebccfaff1bd52752fda40ce364
Author: Russ Cox <rsc@golang.org>
Date:   Wed Jan 2 17:39:20 2013 -0500

    A+C: Thomas Kappler (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/7038049

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

https://github.com/golang/go/commit/a29702f067a4d4ebccfaff1bd52752fda40ce364

元コミット内容

A+C: Thomas Kappler (individual CLA)

Generated by addca.

R=gobot
CC=golang-dev
https://golang.org/cl/7038049

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と、法的な側面があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、コードの著作権とライセンスの明確化が非常に重要です。新しい貢献者がプロジェクトにコードを提出する際、その貢献がプロジェクトのライセンスの下で適切に利用・配布されることを保証するために、Contributor License Agreement (CLA) の署名が求められます。

このコミットは、Thomas Kappler氏がGoプロジェクトへの貢献を開始するにあたり、個人CLAに署名した結果として生成されたものです。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献したすべての個人を記録するためのものであり、CLAの署名が完了した後にこれらのファイルに情報が追加されるのが一般的なプロセスです。addcaというツールによって自動生成されたという記述から、このプロセスが自動化されていることが伺えます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、オープンソースプロジェクトにおいて、貢献者が自身の著作物に対する著作権を保持しつつ、プロジェクトの所有者(この場合はGoogle)に対して、その貢献物をプロジェクトのライセンスの下で利用、複製、変更、配布する権利を付与するための法的な合意書です。

CLAには主に以下の2種類があります。

  1. 個人CLA (Individual CLA): 個人が自身の著作物に対して著作権を所有している場合に署名します。
  2. 企業CLA (Corporate CLA): 貢献が企業によって行われ、その企業が著作権を所有している場合に、企業の代表者が署名します。

Goプロジェクトを含むGoogleのオープンソースプロジェクトでは、通常、一度CLAに署名すれば、その後のすべての貢献に適用されます。これにより、プロジェクト側は、将来的なライセンス変更や再配布の際に、すべての貢献物に対する適切な権利を確保することができます。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した個人や団体を記録するために、AUTHORSCONTRIBUTORSといったファイルが使用されます。

  • AUTHORS: 主にプロジェクトの主要な作者や、コードベースの大部分を執筆した人々をリストアップするために使用されます。
  • CONTRIBUTORS: より広範な意味で、コードの提出、バグ報告、ドキュメントの改善、翻訳など、様々な形でプロジェクトに貢献したすべての人々をリストアップするために使用されます。

これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの歴史と所有権の記録としても機能します。

Gerrit (golang.org/cl)

コミットメッセージに記載されているhttps://golang.org/cl/7038049は、Goプロジェクトがコードレビューに利用しているGerritというシステムへのリンクです。Gerritは、Gitリポジトリ上でコードレビューを行うためのウェブベースのツールで、変更セット(チェンジリスト、cl)ごとにレビュープロセスを管理します。Goプロジェクトでは、GitHubのプルリクエストと並行して、Gerritが主要なコードレビュープラットフォームとして機能しています。

addcaツール

コミットメッセージの「Generated by addca.」という記述は、このコミットがaddcaというツールによって自動生成されたことを示唆しています。Goプロジェクトの文脈から推測すると、addcaは「Add Contributor Agreement」の略である可能性が高く、CLAの署名が完了した後に、自動的に貢献者の情報をAUTHORSおよびCONTRIBUTORSファイルに追加するスクリプトまたはツールであると考えられます。これにより、手作業によるミスを防ぎ、貢献者追加のプロセスを効率化しています。

技術的詳細

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

変更の技術的な側面は以下の通りです。

  1. ファイル変更: AUTHORSCONTRIBUTORSという2つのテキストファイルが変更されています。
  2. 差分: 各ファイルに1行ずつ、新しい貢献者であるThomas Kappler氏の名前とメールアドレスが追加されています。
    • AUTHORSファイルには +Thomas Kappler <tkappler@gmail.com> が追加。
    • CONTRIBUTORSファイルには +Thomas Kappler <tkappler@gmail.com> が追加。
  3. コミットメッセージ:
    • A+C: Thomas Kappler (individual CLA): 「AUTHORSとCONTRIBUTORSにThomas Kappler氏(個人CLA)を追加」という意味。
    • Generated by addca.: addcaツールによって生成されたことを明示。
    • R=gobot: レビュー担当者がgobot(Goプロジェクトの自動化ボット)であることを示唆。これは、自動化されたプロセスによって変更が承認されたことを意味する可能性があります。
    • CC=golang-dev: golang-devメーリングリストにこの変更が通知されたことを示唆。
    • https://golang.org/cl/7038049: Gerritのチェンジリストへのリンク。

このコミットは、Goプロジェクトのガバナンスと貢献者管理の仕組みが、自動化されたツールと明確なプロセスによって支えられていることを示しています。

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

このコミットは、Go言語のソースコード自体ではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSの2つのテキストファイルを変更しています。

AUTHORSファイルへの変更

--- a/AUTHORS
+++ b/AUTHORS
@@ -251,6 +251,7 @@ Taj Khattra <taj.khattra@gmail.com>
 Tarmigan Casebolt <tarmigan@gmail.com>
 Taru Karttunen <taruti@taruti.net>
 Thomas Alan Copeland <talan.copeland@gmail.com>
+Thomas Kappler <tkappler@gmail.com>
 Timo Savola <timo.savola@gmail.com>
 Tobias Columbus <tobias.columbus@gmail.com>
 Tor Andersson <tor.andersson@gmail.com>

CONTRIBUTORSファイルへの変更

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -355,6 +355,7 @@ Taj Khattra <taj.khattra@gmail.com>
 Tarmigan Casebolt <tarmigan@gmail.com>
 Taru Karttunen <taruti@taruti.net>
 Thomas Alan Copeland <talan.copeland@gmail.com>
+Thomas Kappler <tkappler@gmail.com>
 Timo Savola <timo.savola@gmail.com>
 Tobias Columbus <tobias.columbus@gmail.com> <tobias.columbus@googlemail.com>
 Tom Szymanski <tgs@google.com>

コアとなるコードの解説

このコミットには、Go言語の機能的な「コード」の変更は含まれていません。変更されているのは、プロジェクトの管理情報を含むプレーンテキストファイルです。

  • AUTHORSファイル: このファイルは、Goプロジェクトの主要な作者や、コードベースに大きな貢献をした個人の名前とメールアドレスをアルファベット順にリストアップしています。Thomas Kappler氏の名前がこのリストに追加されたことは、彼がGoプロジェクトに対して重要な貢献を行う意向がある、または既に行ったことを示しています。
  • CONTRIBUTORSファイル: このファイルは、Goプロジェクトに何らかの形で貢献したすべての個人の名前とメールアドレスをアルファベット順にリストアップしています。これには、コードの提出だけでなく、バグ報告、ドキュメントの改善、テストの作成など、幅広い貢献が含まれます。Thomas Kappler氏の名前がこのリストに追加されたことは、彼がGoプロジェクトの貢献者コミュニティの一員となったことを意味します。

これらのファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを付与するために非常に重要です。また、法的な観点からも、誰がプロジェクトに貢献したかを明確に記録することは、ライセンス遵守の観点から重要となります。

関連リンク

参考にした情報源リンク

  • Google検索: "Go Contributor License Agreement"
  • Google検索: "addca golang"
  • Goプロジェクトの公式ドキュメント
  • Gerritの公式ドキュメント
  • オープンソースプロジェクトにおけるCLAの一般的な慣行に関する知識