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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに対する変更です。これらのファイルは、オープンソースプロジェクトにおいて、プロジェクトに貢献した個人や組織、そしてその貢献に関する法的な取り決め(特にCLA: Contributor License Agreement)を記録するために使用されます。

  • AUTHORSファイル: プロジェクトの主要な作者や、著作権を保持する組織をリストアップします。
  • CONTRIBUTORSファイル: プロジェクトにコードやドキュメントなどで貢献した個人をリストアップします。

これらのファイルは、プロジェクトの透明性を高め、知的財産権の管理を明確にする上で重要な役割を果たします。

コミット

このコミットは、Dropbox社の企業CLA(Contributor License Agreement)に基づき、Jamie Turner氏をGoプロジェクトの貢献者として追加するものです。具体的には、AUTHORSファイルに"Dropbox, Inc."を、CONTRIBUTORSファイルに"Jamie Turner jamwt@dropbox.com"を追加しています。

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

https://github.com/golang/go/commit/078bcffcb83e5aafd5e368c587bc8cb159a39020

元コミット内容

A+C: add Jamie Turner (Dropbox corporate CLA).

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/14765043

変更の背景

この変更の背景には、オープンソースプロジェクトにおける貢献の法的な側面があります。Goのような大規模なオープンソースプロジェクトでは、プロジェクトのコードベースの健全性と将来的な利用可能性を保証するために、貢献者からの知的財産権の許諾を得ることが一般的です。

Jamie Turner氏がDropbox社に所属しており、その業務の一環としてGoプロジェクトに貢献する場合、個人のCLAだけでなく、企業としてのCLAが必要となることがあります。企業CLAは、従業員が業務として行った貢献について、企業がプロジェクトに対して適切なライセンス許諾を与えることを保証するためのものです。これにより、将来的に知的財産権に関する紛争が発生するリスクを低減し、プロジェクトの安定性を保つことができます。

このコミットは、Goプロジェクトが貢献を受け入れる際の正式なプロセスの一部であり、法務部門との連携を通じて行われることが多い、プロジェクト運営上の重要なステップです。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、個人または法人がオープンソースプロジェクトに貢献する際に、その貢献に関する著作権や特許権などの知的財産権をプロジェクトの所有者(またはプロジェクトをホストする財団など)に許諾するための法的な合意書です。

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

  1. 知的財産権の明確化: 貢献されたコードやドキュメントの著作権が誰に帰属し、どのように利用されるかを明確にします。
  2. ライセンスの保証: プロジェクトのライセンス(例: BSDライセンス、MITライセンスなど)に基づいて、貢献されたコードが再配布、変更、利用されることを保証します。これにより、プロジェクトの利用者が安心してコードを使用できます。
  3. 訴訟リスクの軽減: 将来的に知的財産権に関する紛争や訴訟が発生した場合に、プロジェクトとその利用者を保護するための法的基盤を提供します。
  4. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを自由に利用・再ライセンスできる権限を持つことで、プロジェクトの長期的な発展とメンテナンスを保証します。

CLAには、個人が署名する「個人CLA」と、企業が署名する「企業CLA」があります。企業CLAは、従業員が業務として行った貢献について、企業がプロジェクトに対してライセンス許諾を与える場合に必要となります。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORS: プロジェクトの主要な作者、またはプロジェクトの著作権を保持するエンティティ(例: 財団、企業)をリストします。これは、プロジェクト全体の著作権表示に関連することが多いです。
  • CONTRIBUTORS: プロジェクトに何らかの形で貢献したすべての個人をリストします。これには、コードの寄稿者だけでなく、ドキュメントの作成者、バグ報告者、テスターなども含まれる場合があります。これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの透明性と履歴を維持する役割も果たします。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラの内部動作に直接的な技術的変更を加えるものではありません。しかし、オープンソースプロジェクトの「技術」を広義に捉えるならば、プロジェクトのガバナンス、法務、そして貢献プロセスも重要な技術的側面と見なすことができます。

このコミットの「技術的詳細」は、以下の点に集約されます。

  1. CLAの運用: Goプロジェクトが、貢献を受け入れるための正式なプロセスとしてCLAを運用していることを示しています。これは、プロジェクトの法的な健全性を維持するための重要な「技術」です。特に、企業からの貢献を受け入れる際には、企業CLAの存在が不可欠であり、これにより企業が従業員の貢献に対する権利を放棄し、プロジェクトがそのコードを自由に利用できるようにします。
  2. メタデータの管理: AUTHORSCONTRIBUTORSファイルは、プロジェクトのメタデータの一部です。これらのファイルを正確に維持することは、プロジェクトの履歴、著作権情報、および貢献者の認識を管理するための「技術」です。これらのファイルは通常、手動で更新されますが、大規模なプロジェクトでは、貢献管理システム(例: Gerrit、GitHubのプルリクエストシステムなど)と連携して、CLAの署名状況と貢献者の追加を自動化する仕組みが導入されている場合もあります。
  3. バージョン管理システムへの記録: このような管理上の変更も、他のコード変更と同様にGitのようなバージョン管理システムに記録されます。これにより、いつ、誰が、どのような理由で貢献者リストに追加されたかの履歴が追跡可能になります。これは、プロジェクトの透明性と監査可能性を保証する上で不可欠な「技術」です。

このコミットは、Goプロジェクトが単なるコードの集合体ではなく、法的な枠組みと管理プロセスによって支えられていることを示しており、これは大規模なオープンソースプロジェクトを成功させるための重要な要素です。

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

diff --git a/AUTHORS b/AUTHORS
index 4d414468ca..689762f210 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -105,6 +105,7 @@ Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>
 Dmitry Chestnykh <dchest@gmail.com>
 Dominik Honnef <dominik.honnef@gmail.com>
 Donovan Hide <donovanhide@gmail.com>
+Dropbox, Inc.
 Duncan Holm <mail@frou.org>
 Dustin Sallings <dsallings@gmail.com>
 Dustin Shields-Cloues <dcloues@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a7d4c0039f..af071f30a5 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -230,6 +230,7 @@ James Toy <nil@opensesame.st>\n James Tucker <raggi@google.com>\n James Whitehead <jnwhiteh@gmail.com>\n Jamie Gennis <jgennis@google.com> <jgennis@gmail.com>\n+Jamie Turner <jamwt@dropbox.com>\n Jamie Wilkinson <jaq@spacepants.org>\n Jan H. Hosang <jan.hosang@gmail.com>\n Jan Mercl <0xjnml@gmail.com>\n```

## コアとなるコードの解説

このコミットでは、以下の2つのファイルにそれぞれ1行ずつ追加が行われています。

1.  **`AUTHORS`ファイルへの追加**:
    ```diff
    +Dropbox, Inc.
    ```
    この行は、Goプロジェクトの`AUTHORS`ファイルに"Dropbox, Inc."というエントリを追加しています。これは、Dropbox社がGoプロジェクトへの貢献に関して企業CLAに署名し、その貢献に関する著作権の許諾を与えたことを示しています。これにより、Dropbox社がGoプロジェクトの正式な「作者」または著作権許諾者の一つとして認識されることになります。

2.  **`CONTRIBUTORS`ファイルへの追加**:
    ```diff
    +Jamie Turner <jamwt@dropbox.com>
    ```
    この行は、Goプロジェクトの`CONTRIBUTORS`ファイルに"Jamie Turner <jamwt@dropbox.com>"というエントリを追加しています。これは、Jamie Turner氏がGoプロジェクトに貢献し、その貢献が正式に認められたことを示しています。メールアドレスも併記することで、貢献者の識別を明確にしています。この追加は、Dropbox社の企業CLAの下で行われた貢献であるため、`AUTHORS`ファイルへのDropbox社の追加とセットになっています。

これらの変更は、Goプロジェクトの貢献者管理と法務的な側面を反映したものであり、コードの機能的な変更ではありません。

## 関連リンク

-   Goプロジェクトの貢献ガイドライン (Goの公式ドキュメント内):
    [https://go.dev/doc/contribute](https://go.dev/doc/contribute)
-   GoプロジェクトのCLAに関する情報 (Goの公式ドキュメント内):
    [https://go.dev/doc/contribute#cla](https://go.dev/doc/contribute#cla)

## 参考にした情報源リンク

-   Contributor License Agreement (CLA) - Wikipedia:
    [https://en.wikipedia.org/wiki/Contributor_License_Agreement](https://en.wikipedia.org/wiki/Contributor_License_Agreement)
-   Why CLAs? - Apache Software Foundation:
    [https://www.apache.org/licenses/cla-faq.html#why-cla](https://www.apache.org/licenses/cla-faq.html#why-cla)
-   Open Source Contributor License Agreements (CLAs) Explained:
    [https://www.whitesourcesoftware.com/resources/blog/open-source-contributor-license-agreements-clas-explained/](https://www.whitesourcesoftware.com/resources/blog/open-source-contributor-license-agreements-clas-explained/)
-   Go Contribution Guidelines:
    [https://go.dev/doc/contribute](https://go.dev/doc/contribute)
-   Go CLA FAQ:
    [https://go.dev/doc/contribute#cla](https://go.dev/doc/contribute#cla)