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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるPatrick Mézard氏の名前とメールアドレスを追加するものです。これは、Goプロジェクトへの貢献が認められ、Contributor License Agreement (CLA) が締結されたことを示す典型的なコミットです。

コミット

commit 66f8ef868c5cc7e793a3ff83e4143e0dd4afaa98
Author: Rob Pike <r@golang.org>
Date:   Sun Feb 23 12:52:23 2014 -0800

    A+C: Patrick Mézard (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/64100047

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

https://github.com/golang/go/commit/66f8ef868c5cc7e793a3ff83e4143e0dd4afaa98

元コミット内容

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Patrick Mézard氏を新しい貢献者として追加するものです。コミットメッセージのA+Cは"Authors and Contributors"の略であり、この種のコミットがこれらのファイルを更新する目的であることを示しています。

Generated by addca.という記述は、この変更がaddcaというツールによって自動生成されたことを示唆しています。addcaは"add Contributor Agreement"の略である可能性が高く、Goプロジェクトが貢献者ライセンス契約(CLA)のプロセスを自動化するために使用している内部ツールであると考えられます。

R=gobotは、この変更がgobotによってレビューされたことを示します。gobotはGoプロジェクトの自動化されたシステムまたはボットであり、通常はコードレビュープロセスの一部として使用されます。CC=golang-codereviewsは、この変更がgolang-codereviewsメーリングリストに通知されたことを意味し、Goプロジェクトのコードレビュー文化の一部です。

最後に、https://golang.org/cl/64100047は、このコミットに対応するGoのコードレビューシステム(Gerritベース)の変更リスト(Change List, CL)へのリンクです。

変更の背景

オープンソースプロジェクト、特にGoogleのような大企業が関与するプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際、プロジェクトがそのコードを自由に利用、配布、変更できるようにするために、Contributor License Agreement (CLA) の締結を求めることが一般的です。

このコミットは、Patrick Mézard氏がGoプロジェクトに貢献するにあたり、必要なCLAを締結したことを背景としています。CLAが締結されると、その貢献者の名前がプロジェクトの正式な貢献者リストに追加されます。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人を記録し、その貢献を公に示すためのものです。これにより、プロジェクトの透明性が保たれ、誰がどのような形でプロジェクトに関わっているかが明確になります。

addcaのようなツールの使用は、CLAの管理と貢献者リストの更新プロセスを自動化し、手作業によるエラーを減らし、効率を向上させるためのものです。

前提知識の解説

AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した個人をリストアップするためにAUTHORSファイルやCONTRIBUTORSファイルを保持しています。

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、プロジェクトの初期段階から深く関わっている人々をリストアップします。
  • CONTRIBUTORSファイル: プロジェクトにコード、ドキュメント、バグ報告、テストなど、何らかの形で貢献したすべての個人をリストアップします。

これらのファイルは、プロジェクトの歴史と貢献者を記録するだけでなく、法的な目的(例えば、ライセンスの帰属表示)にも役立つことがあります。

Contributor License Agreement (CLA)

Contributor License Agreement (CLA) は、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献されたコードの著作権をプロジェクトの所有者(または特定の財団)に譲渡するか、またはプロジェクトのライセンスの下で利用することを許可する法的な合意書です。

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

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体でコードのライセンスが統一され、再配布や利用が容易になります。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを将来的に異なるライセンスで再ライセンスする柔軟性を持つことを可能にします(ただし、これはプロジェクトのポリシーによります)。

Googleが関与する多くのオープンソースプロジェクト(Go、Kubernetes、TensorFlowなど)では、貢献者にCLAの締結を求めています。

GerritとChange List (CL)

Goプロジェクトは、コードレビューにGerritというシステムを使用しています。GerritはGitリポジトリと連携し、コードの変更をレビューし、承認された変更のみをリポジトリにマージするワークフローを提供します。

  • Change List (CL): Gerritにおけるコード変更の単位です。開発者は変更をCLとしてGerritにアップロードし、レビューアがそのCLに対してコメントや承認を行います。CLが承認されると、対応するコミットがGitリポジトリにマージされます。

技術的詳細

このコミット自体は、既存のテキストファイルに新しい行を追加するという非常に単純な技術的変更です。しかし、その背後にはGoプロジェクトの貢献者管理プロセスが関わっています。

addcaツールは、CLAが締結された後に、自動的にAUTHORSCONTRIBUTORSファイルを更新するために使用されると考えられます。このツールは、おそらく以下の手順を実行します。

  1. CLAデータベースまたはシステムから、新しくCLAを締結した貢献者の情報を取得します(名前、メールアドレスなど)。
  2. AUTHORSファイルとCONTRIBUTORSファイルを読み込みます。
  3. 取得した貢献者情報がまだファイルに存在しないことを確認します。
  4. 適切な位置(通常はアルファベット順)に新しい行を挿入します。
  5. 変更されたファイルをコミットし、Gerritにアップロードします。

この自動化されたプロセスにより、手動でのファイル編集に伴うミスを防ぎ、貢献者リストの正確性と一貫性を保つことができます。

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

diff --git a/AUTHORS b/AUTHORS
index 84431da218..02c0826db1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -297,6 +297,7 @@ Pascal S. de Kloe <pascal@quies.net>\n Patrick Crosby <patrick@stathat.com>\n Patrick Gavlin <pgavlin@gmail.com>\n Patrick Higgins <patrick.allen.higgins@gmail.com>\n+Patrick Mézard <patrick@mezard.eu>\n Patrick Mylund Nielsen <patrick@patrickmn.com>\n Patrick Smith <pat42smith@gmail.com>\n Paul Hammond <paul@paulhammond.org>\ndiff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 4339fd1fcb..6cdfa94e09 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -414,6 +414,7 @@ Pascal S. de Kloe <pascal@quies.net>\n Patrick Crosby <patrick@stathat.com>\n Patrick Gavlin <pgavlin@gmail.com>\n Patrick Higgins <patrick.allen.higgins@gmail.com>\n+Patrick Mézard <patrick@mezard.eu>\n Patrick Mylund Nielsen <patrick@patrickmn.com>\n Patrick Smith <pat42smith@gmail.com>\n Paul Borman <borman@google.com>\n```

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

このコミットは、`AUTHORS`ファイルと`CONTRIBUTORS`ファイルという2つのテキストファイルに対して、それぞれ1行ずつ追加を行っています。

*   **`AUTHORS`ファイルへの変更**:
    `+Patrick Mézard <patrick@mezard.eu>`
    この行は、`AUTHORS`ファイルにPatrick Mézard氏の名前とメールアドレスを追加しています。追加された位置は、既存の`Patrick Higgins`と`Patrick Mylund Nielsen`の間であり、アルファベット順に並べられていることがわかります。

*   **`CONTRIBUTORS`ファイルへの変更**:
    `+Patrick Mézard <patrick@mezard.eu>`
    同様に、`CONTRIBUTORS`ファイルにもPatrick Mézard氏の名前とメールアドレスが追加されています。こちらもアルファベット順に挿入されています。

これらの変更は、Goプロジェクトの貢献者リストを最新の状態に保つためのルーティンワークの一部であり、新しい貢献者がプロジェクトに加わるたびに同様のコミットが行われます。

## 関連リンク

*   **Goプロジェクトの貢献ガイドライン**: Goプロジェクトへの貢献方法に関する公式ドキュメント。CLAの要件についても言及されている可能性があります。
    *   [https://go.dev/doc/contribute](https://go.dev/doc/contribute)
*   **GoプロジェクトのCLA**: Goプロジェクトが使用しているContributor License Agreementの具体的な内容。
    *   [https://cla.developers.google.com/clas](https://cla.developers.google.com/clas) (GoogleのCLAポータル)

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

*   GoプロジェクトのGitHubリポジトリ: [https://github.com/golang/go](https://github.com/golang/go)
*   Gerrit Code Review: [https://www.gerritcodereview.com/](https://www.gerritcodereview.com/)
*   Contributor License Agreement (CLA) の一般的な情報:
    *   [https://en.wikipedia.org/wiki/Contributor_License_Agreement](https://en.wikipedia.org/wiki/Contributor_License_Agreement)
*   Google検索 (addca, Go CLA, Go AUTHORS CONTRIBUTORS):
    *   `addca go project`
    *   `golang contributor license agreement`
    *   `golang AUTHORS CONTRIBUTORS file`
    *   `golang gerrit`
# [インデックス 18596] ファイルの概要

このコミットは、Goプロジェクトの`AUTHORS`ファイルと`CONTRIBUTORS`ファイルに、新たな貢献者であるPatrick Mézard氏の名前とメールアドレスを追加するものです。これは、Goプロジェクトへの貢献が認められ、Contributor License Agreement (CLA) が締結されたことを示す典型的なコミットです。

## コミット

commit 66f8ef868c5cc7e793a3ff83e4143e0dd4afaa98 Author: Rob Pike r@golang.org Date: Sun Feb 23 12:52:23 2014 -0800

A+C: Patrick Mézard (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/64100047

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

[https://github.com/golang/go/commit/66f8ef868c5cc7e793a3ff83e4143e0dd4afaa98](https://github.com/golang/go/commit/66f8ef868c5cc7e793a3ff83e4143e0dd4afaa98)

## 元コミット内容

このコミットは、Goプロジェクトの`AUTHORS`ファイルと`CONTRIBUTORS`ファイルに、Patrick Mézard氏を新しい貢献者として追加するものです。コミットメッセージの`A+C`は"Authors and Contributors"の略であり、この種のコミットがこれらのファイルを更新する目的であることを示しています。

`Generated by addca.`という記述は、この変更が`addca`というツールによって自動生成されたことを示唆しています。`addca`は"add Contributor Agreement"の略である可能性が高く、Goプロジェクトが貢献者ライセンス契約(CLA)のプロセスを自動化するために使用している内部ツールであると考えられます。

`R=gobot`は、この変更が`gobot`によってレビューされたことを示します。`gobot`はGoプロジェクトの自動化されたシステムまたはボットであり、通常はコードレビュープロセスの一部として使用されます。`CC=golang-codereviews`は、この変更が`golang-codereviews`メーリングリストに通知されたことを意味し、Goプロジェクトのコードレビュー文化の一部です。

最後に、`https://golang.org/cl/64100047`は、このコミットに対応するGoのコードレビューシステム(Gerritベース)の変更リスト(Change List, CL)へのリンクです。

## 変更の背景

オープンソースプロジェクト、特にGoogleのような大企業が関与するプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際、プロジェクトがそのコードを自由に利用、配布、変更できるようにするために、Contributor License Agreement (CLA) の締結を求めることが一般的です。

このコミットは、Patrick Mézard氏がGoプロジェクトに貢献するにあたり、必要なCLAを締結したことを背景としています。CLAが締結されると、その貢献者の名前がプロジェクトの正式な貢献者リストに追加されます。`AUTHORS`ファイルと`CONTRIBUTORS`ファイルは、プロジェクトに貢献した個人を記録し、その貢献を公に示すためのものです。これにより、プロジェクトの透明性が保たれ、誰がどのような形でプロジェクトに関わっているかが明確になります。

`addca`のようなツールの使用は、CLAの管理と貢献者リストの更新プロセスを自動化し、手作業によるエラーを減らし、効率を向上させるためのものです。

## 前提知識の解説

### AUTHORSファイルとCONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した個人をリストアップするために`AUTHORS`ファイルや`CONTRIBUTORS`ファイルを保持しています。

*   **`AUTHORS`ファイル**: 通常、プロジェクトの主要な作者や、プロジェクトの初期段階から深く関わっている人々をリストアップします。
*   **`CONTRIBUTORS`ファイル**: プロジェクトにコード、ドキュメント、バグ報告、テストなど、何らかの形で貢献したすべての個人をリストアップします。

これらのファイルは、プロジェクトの歴史と貢献者を記録するだけでなく、法的な目的(例えば、ライセンスの帰属表示)にも役立つことがあります。

### Contributor License Agreement (CLA)

Contributor License Agreement (CLA) は、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献されたコードの著作権をプロジェクトの所有者(または特定の財団)に譲渡するか、またはプロジェクトのライセンスの下で利用することを許可する法的な合意書です。

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

1.  **知的財産権の明確化**: 貢献されたコードの著作権が誰に帰属するかを明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
2.  **ライセンスの統一性**: プロジェクト全体でコードのライセンスが統一され、再配布や利用が容易になります。
3.  **プロジェクトの持続可能性**: プロジェクトの所有者が、貢献されたコードを将来的に異なるライセンスで再ライセンスする柔軟性を持つことを可能にします(ただし、これはプロジェクトのポリシーによります)。

Googleが関与する多くのオープンソースプロジェクト(Go、Kubernetes、TensorFlowなど)では、貢献者にCLAの締結を求めています。

### GerritとChange List (CL)

Goプロジェクトは、コードレビューにGerritというシステムを使用しています。GerritはGitリポジトリと連携し、コードの変更をレビューし、承認された変更のみをリポジティにマージするワークフローを提供します。

*   **Change List (CL)**: Gerritにおけるコード変更の単位です。開発者は変更をCLとしてGerritにアップロードし、レビューアがそのCLに対してコメントや承認を行います。CLが承認されると、対応するコミットがGitリポジトリにマージされます。

## 技術的詳細

このコミット自体は、既存のテキストファイルに新しい行を追加するという非常に単純な技術的変更です。しかし、その背後にはGoプロジェクトの貢献者管理プロセスが関わっています。

`addca`ツールは、CLAが締結された後に、自動的に`AUTHORS`と`CONTRIBUTORS`ファイルを更新するために使用されると考えられます。このツールは、おそらく以下の手順を実行します。

1.  CLAデータベースまたはシステムから、新しくCLAを締結した貢献者の情報を取得します(名前、メールアドレスなど)。
2.  `AUTHORS`ファイルと`CONTRIBUTORS`ファイルを読み込みます。
3.  取得した貢献者情報がまだファイルに存在しないことを確認します。
4.  適切な位置(通常はアルファベット順)に新しい行を挿入します。
5.  変更されたファイルをコミットし、Gerritにアップロードします。

この自動化されたプロセスにより、手動でのファイル編集に伴うミスを防ぎ、貢献者リストの正確性と一貫性を保つことができます。

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

```diff
diff --git a/AUTHORS b/AUTHORS
index 84431da218..02c0826db1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -297,6 +297,7 @@ Pascal S. de Kloe <pascal@quies.net>\n Patrick Crosby <patrick@stathat.com>\n Patrick Gavlin <pgavlin@gmail.com>\n Patrick Higgins <patrick.allen.higgins@gmail.com>\n+Patrick Mézard <patrick@mezard.eu>\n Patrick Mylund Nielsen <patrick@patrickmn.com>\n Patrick Smith <pat42smith@gmail.com>\n Paul Hammond <paul@paulhammond.org>\ndiff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 4339fd1fcb..6cdfa94e09 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -414,6 +414,7 @@ Pascal S. de Kloe <pascal@quies.net>\n Patrick Crosby <patrick@stathat.com>\n Patrick Gavlin <pgavlin@gmail.com>\n Patrick Higgins <patrick.allen.higgins@gmail.com>\n+Patrick Mézard <patrick@mezard.eu>\n Patrick Mylund Nielsen <patrick@patrickmn.com>\n Patrick Smith <pat42smith@gmail.com>\n Paul Borman <borman@google.com>\n```

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

このコミットは、`AUTHORS`ファイルと`CONTRIBUTORS`ファイルという2つのテキストファイルに対して、それぞれ1行ずつ追加を行っています。

*   **`AUTHORS`ファイルへの変更**:
    `+Patrick Mézard <patrick@mezard.eu>`
    この行は、`AUTHORS`ファイルにPatrick Mézard氏の名前とメールアドレスを追加しています。追加された位置は、既存の`Patrick Higgins`と`Patrick Mylund Nielsen`の間であり、アルファベット順に並べられていることがわかります。

*   **`CONTRIBUTORS`ファイルへの変更**:
    `+Patrick Mézard <patrick@mezard.eu>`
    同様に、`CONTRIBUTORS`ファイルにもPatrick Mézard氏の名前とメールアドレスが追加されています。こちらもアルファベット順に挿入されています。

これらの変更は、Goプロジェクトの貢献者リストを最新の状態に保つためのルーティンワークの一部であり、新しい貢献者がプロジェクトに加わるたびに同様のコミットが行われます。

## 関連リンク

*   **Goプロジェクトの貢献ガイドライン**: Goプロジェクトへの貢献方法に関する公式ドキュメント。CLAの要件についても言及されている可能性があります。
    *   [https://go.dev/doc/contribute](https://go.dev/doc/contribute)
*   **GoプロジェクトのCLA**: Goプロジェクトが使用しているContributor License Agreementの具体的な内容。
    *   [https://cla.developers.google.com/clas](https://cla.developers.google.com/clas) (GoogleのCLAポータル)

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

*   GoプロジェクトのGitHubリポジトリ: [https://github.com/golang/go](https://github.com/golang/go)
*   Gerrit Code Review: [https://www.gerritcodereview.com/](https://www.gerritcodereview.com/)
*   Contributor License Agreement (CLA) の一般的な情報:
    *   [https://en.wikipedia.org/wiki/Contributor_License_Agreement](https://en.wikipedia.org/wiki/Contributor_License_Agreement)