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

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

このコミットは、Goプロジェクトのコントリビューターリストに新しい個人を追加するものです。具体的には、John Graham-Cumming氏がIndividual Contributor License Agreement (CLA) に署名したことを反映し、AUTHORS および CONTRIBUTORS ファイルにその情報を追記しています。

コミット

commit ec2460a3149d24e9611adc7544b5c0d67ba266b6
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Fri Nov 23 20:30:03 2012 -0800

    A+C: Add John Graham-Cumming (Individual CLA)
    
    R=golang-dev, dsymonds
    CC=golang-dev
    https://golang.org/cl/6846095

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

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

元コミット内容

A+C: Add John Graham-Cumming (Individual CLA)

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6846095

変更の背景

このコミットの背景には、オープンソースプロジェクト、特にGoogleが関与するプロジェクトにおける「Contributor License Agreement (CLA)」の要件があります。CLAは、コントリビューターが自身の貢献に対する著作権をプロジェクトの所有者(この場合はGoogle)に付与、または特定のライセンスの下で使用することを許可するための法的な合意書です。

John Graham-Cumming氏がGoプロジェクトに貢献するにあたり、Individual CLAに署名したため、その事実をプロジェクトの公式なコントリビューターリストに反映させる必要がありました。これにより、彼の将来の貢献がプロジェクトのライセンスモデルと整合性が取れるようになります。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、コントリビューターが自身のコードやドキュメントなどの貢献物に対する著作権をプロジェクトの所有者(通常は企業や財団)に譲渡、または特定のライセンスの下での使用を許可するための法的な文書です。

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

  1. ライセンスの明確化: プロジェクト全体が単一のライセンス(例: Apache License, MIT License)の下で配布されることを保証します。個々のコントリビューターが異なるライセンスのコードを混入させることを防ぎ、プロジェクトのライセンスの一貫性を保ちます。
  2. 著作権侵害のリスク軽減: コントリビューターが提出したコードが、第三者の著作権を侵害していないことを確認し、プロジェクト所有者が将来的な法的な問題から保護されるようにします。
  3. 再ライセンスの可能性: プロジェクト所有者が将来的にプロジェクトのライセンスを変更する(例: より寛容なライセンスへの移行)必要がある場合に、コントリビューターからの許可を事前に得ておくことができます。これは、個々のコントリビューターから後から許可を得る手間を省きます。

CLAには「Individual CLA」(個人向け)と「Corporate CLA」(企業向け)の2種類があります。個人が個人的に貢献する場合はIndividual CLAに、企業に雇用されている開発者が業務として貢献する場合はCorporate CLAに署名することが一般的です。

AUTHORS および CONTRIBUTORS ファイル

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

  • AUTHORS ファイル: 主にプロジェクトの主要な作者や、初期の貢献者、またはプロジェクトの方向性を決定するような重要な役割を担った人々をリストアップするために使用されます。このファイルは、プロジェクトの歴史的な側面や、誰がプロジェクトの「生みの親」であるかを示すことが多いです。
  • CONTRIBUTORS ファイル: プロジェクトにコード、ドキュメント、バグ報告、テスト、レビューなど、何らかの形で貢献したすべての個人をリストアップするために使用されます。このファイルは、プロジェクトの成長とコミュニティの広がりを示すものであり、貢献者への感謝と認識を示す役割も果たします。

Goプロジェクトでは、これらのファイルがプロジェクトの公式な記録として機能し、新しいコントリビューターがCLAに署名した際に更新されます。

技術的詳細

このコミットは、Goプロジェクトのリポジトリ内の2つのテキストファイル、AUTHORSCONTRIBUTORS を変更しています。

変更内容は非常にシンプルで、両ファイルに以下の1行を追加しています。

John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>

これは、John Graham-Cumming氏の名前と、彼に関連付けられた2つのメールアドレス(おそらく個人用と仕事用、または異なるサービスでの登録用)をリストに追加するものです。

この変更自体はコードの機能に影響を与えるものではなく、プロジェクトのメタデータの一部を更新するものです。しかし、この変更が行われるためには、前述のCLAへの署名という法的なプロセスが完了している必要があります。

コミットメッセージの R=golang-dev, dsymondsCC=golang-dev は、この変更がGo開発者メーリングリスト (golang-dev) と dsymonds 氏によってレビューされたことを示しています。https://golang.org/cl/6846095 は、この変更がGoプロジェクトのコードレビューシステム(Gerritベースのgo.googlesource.com/goリポジトリ)における変更リスト(Change-ID)へのリンクです。これは、このコミットが直接GitHubにプッシュされたのではなく、Goプロジェクトの標準的な貢献ワークフロー(コードレビューを経てマージされる)に従って行われたことを示唆しています。

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

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

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、John Graham-Cumming氏の情報が1行ずつ追加されています。

AUTHORS ファイルの変更差分

--- a/AUTHORS
+++ b/AUTHORS
@@ -128,6 +128,7 @@ Jingcheng Zhang <diogin@gmail.com>
 Joakim Sernbrant <serbaut@gmail.com>
 Joe Poirier <jdpoirier@gmail.com>
 John Asmuth <jasmuth@gmail.com>
+John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
 Jonathan Gold <jgold.bg@gmail.com>
 Jonathan Mark <jhmark@xenops.com>
 Jonathan Wills <runningwild@gmail.com>

CONTRIBUTORS ファイルの変更差分

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -194,6 +194,7 @@ Johan Euphrosine <proppy@google.com>
 John Asmuth <jasmuth@gmail.com>
 John Beisley <huin@google.com>
 John DeNero <denero@google.com>
+John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
 Jonathan Allie <jonallie@google.com>
 Jonathan Feinberg <feinberg@google.com>
 Jonathan Gold <jgold.bg@gmail.com>

コアとなるコードの解説

このコミットにおける「コアとなるコード」は、Go言語のソースコードそのものではなく、プロジェクトの管理とガバナンスに関連するメタデータファイルです。

変更は、単にテキストファイルに新しい行を追加するものです。これは、Goプロジェクトが新しいコントリビューターを受け入れ、その貢献を正式に認識するための標準的な手続きの一部です。この手続きは、プロジェクトの法的な健全性を保ち、誰がプロジェクトに貢献しているかを明確にする上で重要です。

追加された情報は、コントリビューターの名前と連絡先(メールアドレス)であり、これは将来的な連絡や、貢献の帰属を明確にするために使用されます。

関連リンク

  • Goプロジェクトの公式ウェブサイト: https://golang.org/
  • Goプロジェクトの貢献ガイドライン(CLAに関する情報が含まれることが多い): https://go.dev/doc/contribute (現在のGoプロジェクトの貢献ガイドラインへのリンク。コミット当時のものとは異なる可能性がありますが、CLAの概念は共通です。)
  • Contributor License Agreement (CLA) の一般的な説明: https://cla.developers.google.com/ (GoogleのCLAポータル)

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Gitコミットの差分情報
  • Contributor License Agreement (CLA) に関する一般的な知識 (Web検索による)
  • オープンソースプロジェクトにおける AUTHORS および CONTRIBUTORS ファイルの慣習 (Web検索による)
  • Goプロジェクトのコードレビューシステム (Gerrit) の一般的な知識