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

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

このコミットは、Goプロジェクトの貢献者リストに新しいエントリを追加するものです。具体的には、AUTHORS ファイルと CONTRIBUTORS ファイルに Billie Harold Cleek 氏の情報を追加しています。これは、Goプロジェクトへの貢献を開始する際に必要となる、貢献者ライセンス同意書(CLA: Contributor License Agreement)の承認を記録する管理上のコミットです。

コミット

commit fe49aa5512db6f8b8ecceee266cbd1330ee061b3
Author: Andrew Gerrand <adg@golang.org>
Date:   Wed Apr 16 13:39:51 2014 +1000

    A+C: Billie Harold Cleek (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/87830046
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 08c107833b..77742d278e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -62,6 +62,7 @@ Ben Olive <sionide21@gmail.com>
 Benjamin Black <b@b3k.us>
 Benny Siegert <bsiegert@gmail.com>
 Berengar Lehr <berengar.lehr@gmx.de>
+Billie Harold Cleek <bhcleek@gmail.com>
 Bjorn Tillenius <bjorn@tillenius.me>
 Bjorn Tipling <bjorn.tipling@gmail.com>
 Blake Mizerany <blake.mizerany@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 9c22cb5808..46c76bd481 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -102,6 +102,7 @@ Benny Siegert <bsiegert@gmail.com>
 Berengar Lehr <Berengar.Lehr@gmx.de>
 Bill Neubauer <wcn@golang.org> <wcn@google.com> <bill.neubauer@gmail.com>
 Bill Thiede <couchmoney@gmail.com>
+Billie Harold Cleek <bhcleek@gmail.com>
 Bjorn Tillenius <bjorn@tillenius.me>
 Bjorn Tipling <bjorn.tipling@gmail.com>
 Blake Mizerany <blake.mizerany@gmail.com>

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

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

元コミット内容

このコミットは、Andrew Gerrand 氏によって2014年4月16日に作成されました。コミットメッセージは以下の通りです。

  • タイトル: A+C: Billie Harold Cleek (individual CLA)
    • A+C は "Add Contributor" の略であると推測されます。
    • Billie Harold Cleek 氏が個人として貢献者ライセンス同意書(CLA)を提出したことを示しています。
  • 本文: Generated by addca.
    • この変更が addca というツールによって自動生成されたものであることを示しています。addca は "add Contributor Agreement" の略であると考えられます。
  • レビュー情報:
    • R=gobot: レビュー担当者が gobot であることを示します。gobot はGoプロジェクトにおける自動化されたレビューボットである可能性が高いです。
    • CC=golang-codereviews: golang-codereviews メーリングリストにCCされていることを示し、プロジェクトのレビュープロセスに従っていることを意味します。
    • https://golang.org/cl/87830046: このコミットに関連するGoのコードレビューシステム(Gerrit)のチェンジリストへのリンクです。

このコミットは、AUTHORS ファイルと CONTRIBUTORS ファイルにそれぞれ1行ずつ追加を行い、合計2つのファイルが変更され、2行が追加されています。

変更の背景

オープンソースプロジェクト、特にGoのような大規模で活発なプロジェクトでは、知的財産権の管理が非常に重要です。プロジェクトにコードを貢献する際、そのコードの著作権が誰に帰属し、どのようなライセンスの下で利用されるかを明確にする必要があります。この目的のために、多くのプロジェクトでは「貢献者ライセンス同意書(CLA)」の提出を求めています。

このコミットの背景には、Billie Harold Cleek 氏がGoプロジェクトに貢献するために必要なCLAを提出し、それが承認されたという事実があります。CLAが承認されると、その貢献者の情報がプロジェクトの公式な貢献者リストに追加されます。これにより、プロジェクトは将来的に貢献されたコードを安心して利用・配布できるようになります。

前提知識の解説

貢献者ライセンス同意書(CLA: Contributor License Agreement)

CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(または管理団体)と貢献者の間で締結される法的な合意書です。CLAの主な目的は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者は自身の著作権を保持しつつ、プロジェクトに対してそのコードを特定のライセンス(例: Apache License, MIT Licenseなど)の下で利用、配布、変更する権利を付与します。一部のCLAでは、著作権をプロジェクトの所有者(例: Google)に譲渡することを求める場合もあります。
  2. ライセンスの統一性: プロジェクト全体でコードのライセンスを統一し、将来的なライセンス変更や再ライセンスを容易にします。これにより、プロジェクトの利用者がライセンスに関する不確実性なくコードを利用できるようになります。
  3. 法的保護: プロジェクトが第三者からの著作権侵害訴訟などから保護されるための基盤を提供します。貢献されたコードが実際に貢献者のオリジナルであり、第三者の権利を侵害していないことを確認する役割も果たします。

GoプロジェクトはGoogleによって管理されており、Googleが定めるCLAに署名することが貢献の前提条件となっています。

AUTHORS ファイルと CONTRIBUTORS ファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するためのテキストファイルが慣習的に存在します。

  • AUTHORS ファイル: 通常、プロジェクトの主要な作者や初期の貢献者、または特に重要な貢献をした人々をリストアップするために使用されます。このファイルは、プロジェクトの歴史的な起源や主要な開発者を記録する意味合いが強いです。
  • CONTRIBUTORS ファイル: プロジェクトに何らかの形で貢献したすべての個人や団体をリストアップするために使用されます。これには、コードのコミットだけでなく、バグ報告、ドキュメントの改善、テストの作成、翻訳など、幅広い貢献が含まれることがあります。Goプロジェクトの場合、CLAを提出し、コードをコミットする権限を得た人々がこのリストに追加されることが多いです。

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

技術的詳細

このコミット自体は、Goのランタイムやコンパイラといったコアな技術要素に直接的な変更を加えるものではありません。しかし、オープンソースプロジェクトのガバナンスと運用における重要な側面を示しています。

addca ツール

コミットメッセージに Generated by addca. とあることから、この変更が手動ではなく、addca という自動化されたツールによって行われたことがわかります。これは、Goプロジェクトが貢献者ライセンス同意書の管理プロセスを自動化していることを示唆しています。

一般的なCLA管理プロセスの自動化には、以下のような要素が含まれますと考えられます。

  1. CLA署名プロセスの連携: 貢献者がオンラインでCLAに署名するシステム(例: DocuSign、HelloSign、またはGoogle独自のシステム)と連携します。
  2. 署名状態の確認: 署名が完了し、有効であることを確認します。
  3. 貢献者情報の追加: 署名が確認された後、自動的にプロジェクトのリポジトリ内の AUTHORSCONTRIBUTORS ファイルに貢献者の名前とメールアドレスを追加するスクリプトやツールが実行されます。
  4. レビューとコミット: 自動生成された変更は、通常、レビュープロセス(この場合は gobot によるレビュー)を経て、最終的にリポジトリにコミットされます。これにより、手動でのエラーを防ぎ、プロセスの一貫性を保ちます。

このような自動化は、Goのような多数の貢献者を持つ大規模プロジェクトにおいて、管理オーバーヘッドを削減し、貢献プロセスをスムーズにする上で不可欠です。

管理上のコミットの重要性

この種のコミットは、コードの機能変更とは異なり、プロジェクトの健全な運用と法的遵守を保証するために不可欠です。これらは、プロジェクトの透明性を高め、誰がプロジェクトに貢献しているかを明確にするだけでなく、将来的な法的問題からプロジェクトを保護するための記録としても機能します。

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

このコミットでは、以下の2つのファイルが変更されています。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、Billie Harold Cleek <bhcleek@gmail.com> という行が1行ずつ追加されています。

AUTHORS ファイルへの追加:

--- a/AUTHORS
+++ b/AUTHORS
@@ -62,6 +62,7 @@ Ben Olive <sionide21@gmail.com>
 Benjamin Black <b@b3k.us>
 Benny Siegert <bsiegert@gmail.com>
 Berengar Lehr <berengar.lehr@gmx.de>
+Billie Harold Cleek <bhcleek@gmail.com>
 Bjorn Tillenius <bjorn@tillenius.me>
 Bjorn Tipling <bjorn.tipling@gmail.com>
 Blake Mizerany <blake.mizerany@gmail.com>

CONTRIBUTORS ファイルへの追加:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -102,6 +102,7 @@ Benny Siegert <bsiegert@gmail.com>
 Berengar Lehr <Berengar.Lehr@gmx.de>
 Bill Neubauer <wcn@golang.org> <wcn@google.com> <bill.neubauer@gmail.com>
 Bill Thiede <couchmoney@gmail.com>
+Billie Harold Cleek <bhcleek@gmail.com>
 Bjorn Tillenius <bjorn@tillenius.me>
 Bjorn Tipling <bjorn.tipling@gmail.com>
 Blake Mizerany <blake.mizerany@gmail.com>

コアとなるコードの解説

変更された「コード」は、実際にはGoのソースコードではなく、プロジェクトのメタデータファイルです。

  • AUTHORS および CONTRIBUTORS ファイルは、単なるテキストファイルであり、プロジェクトに貢献した人々の名前とメールアドレスがリスト形式で記述されています。
  • 追加された行 Billie Harold Cleek <bhcleek@gmail.com> は、Billie Harold Cleek 氏がGoプロジェクトの正式な貢献者として認識され、その連絡先メールアドレスが bhcleek@gmail.com であることを示しています。
  • これらのファイルへの追加は、Billie Harold Cleek 氏がGoプロジェクトへの貢献を開始するための前提条件である個人CLAを正常に完了したことの公式な記録となります。

関連リンク

  • Goプロジェクトの貢献ガイドライン: Goプロジェクトへの貢献方法に関する公式ドキュメント。CLAの要件についても言及されています。
  • Goの貢献者ライセンス同意書 (CLA) について: GoプロジェクトのCLAに関する詳細情報。
  • Gerrit チェンジリスト: コミットメッセージに記載されているチェンジリストへのリンク。

参考にした情報源リンク

  • Goプロジェクトの公式ドキュメント (go.dev)
  • オープンソースプロジェクトにおける貢献者ライセンス同意書 (CLA) に関する一般的な情報源 (例: Wikipedia, 各プロジェクトの貢献ガイドライン)
  • Gitのコミットメッセージとdiffの一般的な解釈
  • (必要に応じて)addca ツールに関する情報(ただし、このツールはGoプロジェクト内部のものであり、公開されているドキュメントは少ない可能性があります)