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

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

このコミットは、Goプロジェクトのコントリビューターリストに新たなエントリを追加するものです。具体的には、Markover Inc. DBA Poptip の企業CLA(Contributor License Agreement)を通じて、Dustin Long氏がGoプロジェクトへの貢献者として追加されました。これは、Goプロジェクトへの貢献者が増えるたびに定期的に行われるメンテナンス作業の一部であり、プロジェクトの健全な成長と法的な整合性を保つ上で重要な役割を果たします。

コミット

commit 6fbade1ec6e3f05a822b72bb90da82d382a5688a
Author: Nigel Tao <nigeltao@golang.org>
Date:   Thu Jul 10 18:08:33 2014 +1000

    A+C: add Dustin Long (Markover Inc. DBA Poptip corporate CLA).
    
    LGTM=adg
    R=adg
    CC=dustmop, golang-codereviews
    https://golang.org/cl/111000044
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 3ca21160fa..061fb98f6a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -257,6 +257,7 @@ Marc Weistroff <marc@weistroff.net>
 Marco Hennings <marco.hennings@freiheit.com>
 Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
 Marko Tiikkaja <marko@joh.to>
+Markover Inc. DBA Poptip
 Markus Duft <markus.duft@salomon.at>
 Markus Sonderegger <marraison@gmail.com>
 Markus Zimmermann <zimmski@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d3d90fc501..c3f6dec623 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -197,6 +197,7 @@ Dominik Honnef <dominik.honnef@gmail.com>
 Donovan Hide <donovanhide@gmail.com>
 Drew Hintz <adhintz@google.com>
 Duncan Holm <mail@frou.org>
+Dustin Long <dustmop@gmail.org>
 Dustin Sallings <dsallings@gmail.com>
 Dustin Shields-Cloues <dcloues@gmail.com>
 Eden Li <eden.li@gmail.com>

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

https://github.com/golang/go/commit/6fbade1ec6e3f05a822b72bb90da82d382a5688a

元コミット内容

このコミットの元のメッセージは以下の通りです。

A+C: add Dustin Long (Markover Inc. DBA Poptip corporate CLA).

LGTM=adg
R=adg
CC=dustmop, golang-codereviews
https://golang.org/cl/111000044

このメッセージは、Dustin Long氏がMarkover Inc. DBA Poptipの企業CLAを通じて追加されたことを示しています。「A+C」はAUTHORSファイルとCONTRIBUTORSファイルの両方への追加を意味します。LGTMRはコードレビューの承認者を示し、CCは追加の通知先を示しています。https://golang.org/cl/111000044は、この変更がGoのコードレビューシステムであるGerrit上での変更リスト(Change-ID)に対応していることを示しています。

変更の背景

Goプロジェクトのような大規模なオープンソースプロジェクトでは、貢献されたすべてのコードがプロジェクトのライセンスの下で適切に利用・配布されることを保証するために、法的な枠組みを設けることが一般的です。その主要な手段の一つがCLA(Contributor License Agreement)です。

このコミットは、Dustin Long氏がGoプロジェクトに貢献するにあたり、所属企業であるMarkover Inc. DBA Poptipが企業CLAを締結したことを反映しています。企業CLAは、個人の貢献ではなく、企業が所有する著作物としてコードが貢献される場合に必要となります。これにより、Goプロジェクトは、貢献されたコードの著作権が適切に処理され、将来的なライセンス変更や再配布の際に問題が生じないことを保証できます。

AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人や組織を記録するためのものです。AUTHORSファイルは主に著作権の帰属を示すために使用され、CONTRIBUTORSファイルはプロジェクトに何らかの形で貢献したすべての個人や組織をリストアップするために使用されます。これらのファイルを最新の状態に保つことは、透明性を確保し、貢献者への適切なクレジットを付与するために重要です。

前提知識の解説

コントリビューター・ライセンス・アグリーメント (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、貢献者とプロジェクトの所有者(この場合はGoogle)の間で締結される法的な合意書です。CLAの主な目的は以下の通りです。

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くの場合、貢献者は著作権を保持しつつ、プロジェクト所有者に対して、そのコードをプロジェクトのライセンスの下で利用、配布、変更する永続的で取り消し不能な権利を付与します。
  2. ライセンスの整合性: プロジェクト全体が単一のライセンス(例: BSDライセンス、Apacheライセンスなど)の下で配布されることを保証します。これにより、将来的にプロジェクトのライセンスを変更する際にも、すべての貢献されたコードに対して適切な権利が確保されます。
  3. 訴訟リスクの軽減: 貢献されたコードが第三者の著作権を侵害していないことを確認し、万が一問題が発生した場合のプロジェクト所有者の法的リスクを軽減します。

Goプロジェクトを含むGoogleが管理する多くのオープンソースプロジェクトでは、貢献を行う前にCLAへの署名が必須となっています。CLAには主に以下の2種類があります。

  • 個人CLA (Individual CLA): 個人が自身の著作物として貢献する場合に署名します。
  • 企業CLA (Corporate CLA): 貢献者が企業に所属しており、その企業が貢献されるコードの著作権を所有している場合に、企業が署名します。この場合、企業は、その企業の従業員がプロジェクトに貢献するすべてのコードに対して、プロジェクト所有者へのライセンス付与を許可します。

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために特定のファイルを使用します。Goプロジェクトでは、AUTHORSCONTRIBUTORSという2つのファイルがその役割を担っています。

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を保持する個人・組織をリストアップします。このファイルは、プロジェクトの著作権表示と密接に関連していることが多いです。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人や組織をリストアップします。これには、コードの貢献者だけでなく、ドキュメントの作成者、バグ報告者、テスター、翻訳者なども含まれることがあります。このファイルは、プロジェクトのコミュニティと貢献の多様性を示す役割も果たします。

これらのファイルは通常、プレーンテキスト形式で、各行に貢献者の名前や組織名が記載されます。

技術的詳細

このコミットにおける「技術的詳細」は、一般的なソフトウェア開発におけるコードの機能変更とは異なります。ここでは、Goプロジェクトのガバナンスと貢献プロセスにおける技術的な側面を掘り下げます。

  1. CLAの自動化と追跡: GoogleのCLAシステムは、貢献者がCLAに署名したかどうかを自動的に追跡します。Goプロジェクトへの変更リスト(Change-ID)がGerritに提出されると、システムは貢献者のCLAステータスを確認します。CLAが未署名の場合、変更リストは承認されません。この自動化されたチェックは、プロジェクトの法的な整合性を維持するための重要な技術的側面です。
  2. ファイル形式と管理: AUTHORSCONTRIBUTORSファイルは、単純なテキストファイルであり、特別な構造やパースロジックを必要としません。これは、Gitリポジトリの一部としてバージョン管理され、通常のコード変更と同様にレビュープロセスを経て更新されます。このシンプルさは、管理の容易さと、誰でも内容を確認できる透明性を提供します。
  3. Gerritとの連携: コミットメッセージ内のhttps://golang.org/cl/111000044は、GoプロジェクトがコードレビューにGerritを使用していることを示しています。Gerritは、変更リストの提出、レビュー、承認、そして最終的なマージを管理するウェブベースのツールです。CLAの確認もGerritのワークフローに統合されており、貢献者はGerritを通じて自身のCLAステータスを確認できます。
  4. 貢献者の識別: AUTHORSファイルに企業名(Markover Inc. DBA Poptip)が追加され、CONTRIBUTORSファイルに個人名(Dustin Long)が追加されているのは、企業CLAの性質を反映しています。企業CLAの場合、著作権は企業に帰属するためAUTHORSに企業名が記載され、実際に貢献を行った個人はCONTRIBUTORSに記載されることで、その努力が認められます。

これらの側面は、Goプロジェクトが大規模なオープンソースプロジェクトとして、法的な要件を満たしつつ、効率的かつ透明性の高い貢献プロセスを維持するための基盤となっています。

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

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

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに1行ずつ追加が行われています。

AUTHORSファイルへの変更:

--- a/AUTHORS
+++ b/AUTHORS
@@ -257,6 +257,7 @@ Marc Weistroff <marc@weistroff.net>
 Marco Hennings <marco.hennings@freiheit.com>
 Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
 Marko Tiikkaja <marko@joh.to>
+Markover Inc. DBA Poptip
 Markus Duft <markus.duft@salomon.at>
 Markus Sonderegger <marraison@gmail.com>
 Markus Zimmermann <zimmski@gmail.com>

AUTHORSファイルには、Markover Inc. DBA Poptipという行が追加されました。これは、Markover Inc.が企業CLAを締結し、その企業を通じてGoプロジェクトに貢献が行われることを示しています。

CONTRIBUTORSファイルへの変更:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -197,6 +197,7 @@ Dominik Honnef <dominik.honnef@gmail.com>
 Donovan Hide <donovanhide@gmail.com>
 Drew Hintz <adhintz@google.com>
 Duncan Holm <mail@frou.org>
+Dustin Long <dustmop@gmail.com>
 Dustin Sallings <dsallings@gmail.com>
 Dustin Shields-Cloues <dcloues@gmail.com>
 Eden Li <eden.li@gmail.com>

CONTRIBUTORSファイルには、Dustin Long <dustmop@gmail.com>という行が追加されました。これは、Dustin Long氏がGoプロジェクトに貢献を行った個人であることを示しています。

コアとなるコードの解説

このコミットで変更されたファイルは、Go言語のソースコードそのものではなく、プロジェクトのメタデータファイルです。したがって、ここでいう「コードの解説」は、これらのファイルが持つ意味と、追加された行がプロジェクトに与える影響についての説明となります。

  • AUTHORSファイルへの追加 (Markover Inc. DBA Poptip): この行の追加は、Markover Inc.がGoプロジェクトに対して企業CLAを締結したことを公式に記録するものです。これにより、Markover Inc.の従業員がGoプロジェクトに貢献したコードの著作権が、企業CLAの条件に従って適切に扱われることが保証されます。これは、Goプロジェクトが貢献されたコードの著作権を管理し、将来的なライセンス変更や再配布の際に法的な問題が発生しないようにするための重要なステップです。

  • CONTRIBUTORSファイルへの追加 (Dustin Long <dustmop@gmail.com>): この行の追加は、Dustin Long氏がGoプロジェクトに貢献を行った個人として正式に認識されたことを意味します。CONTRIBUTORSファイルは、プロジェクトの成長とコミュニティの拡大を示す証拠となります。また、これは貢献者への適切なクレジット付与という観点からも重要です。Goプロジェクトは、個々の貢献者の努力を認識し、透明性を維持するためにこのファイルを活用しています。

これらの変更は、Goプロジェクトの法務部門とコミュニティ管理部門が連携して行う、プロジェクトの健全性を維持するためのルーティンワークの一部です。

関連リンク

  • Google Developers CLA: Googleのオープンソースプロジェクトへの貢献に関するCLAの公式情報ページ。 https://cla.developers.google.com/
  • Go Contribution Guidelines: Goプロジェクトへの貢献方法に関する公式ガイドライン。CLAの要件についても言及されています。 (具体的なURLはGoの公式ドキュメントサイトで「contributing to Go」などで検索してください。時期によってURLが変わる可能性がありますが、go.dev/doc/contributeのようなパスが一般的です。)

参考にした情報源リンク

  • Google検索: "Go contribution guidelines CLA"
    • 検索結果から得られたGo公式ドキュメント、Google Open Sourceサイト、および関連するブログ記事やフォーラムの議論。
    • 特に、CLAの目的、種類(個人CLA、企業CLA)、署名プロセスに関する情報。
  • GoプロジェクトのGitHubリポジトリ内のAUTHORSおよびCONTRIBUTORSファイルの構造と内容。
  • 一般的なオープンソースプロジェクトにおけるCLAの概念と重要性に関する知識。