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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるJason Travis氏の情報を追加するものです。これは、通常、個人がContributor License Agreement (CLA) に署名した後に実行される、プロジェクトへの貢献者を正式に認識するプロセスの一部です。

コミット

commit 02f7049bd71cf82c1b2bfedd7058b5cf629aad16
Author: David Symonds <dsymonds@golang.org>
Date:   Tue Jan 8 15:21:09 2013 +1100

    A+C: Jason Travis (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/7064054

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

https://github.com/golang/go/commit/02f7049bd71cf82c1b2bfedd7058b5cf629aad16

元コミット内容

このコミットの目的は、Jason Travis氏をGoプロジェクトの貢献者として追加することです。コミットメッセージの「A+C: Jason Travis (individual CLA)」は、彼が個人のContributor License Agreement (CLA) に署名したことを示しています。「Generated by addca」という記述は、この変更がaddcaというツールによって自動生成されたものであることを示唆しています。R=gobotCC=golang-devは、コードレビューの担当者(gobot)と、変更が通知されるメーリングリスト(golang-dev)を示しています。また、https://golang.org/cl/7064054は、この変更に対応するGoのChange List (CL) へのリンクです。

変更の背景

オープンソースプロジェクト、特にGoのような大規模なプロジェクトでは、貢献者からのコードやドキュメントの受け入れに際して、法的な側面を明確にするためにContributor License Agreement (CLA) の署名を求めることが一般的です。CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトがその貢献を自由に利用、配布、変更できる権利を付与することを保証します。

このコミットは、Jason Travis氏がGoプロジェクトのCLAに署名した結果として行われました。CLAに署名した貢献者は、プロジェクトの正式な貢献者として認識され、その名前がAUTHORSおよびCONTRIBUTORSファイルに追加されます。addcaツールは、このプロセスを自動化するために使用される内部ツールであると考えられます。これにより、手作業によるエラーを減らし、効率的に貢献者リストを更新することができます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者とプロジェクトの間で締結される法的な合意書です。その主な目的は以下の通りです。

  • 知的財産権の明確化: 貢献者が提供するコードやドキュメントの知的財産権が誰に帰属し、プロジェクトがそれをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  • ライセンスの保証: プロジェクトが採用しているオープンソースライセンス(例: Apache License, MIT License)の下で、貢献されたコードが適切に配布・利用されることを保証します。
  • プロジェクトの持続性: プロジェクトの所有者(または財団)が、貢献されたコードに対して十分な権利を持つことで、プロジェクトのライセンス変更や再ライセンス、あるいは将来的な商業利用などの柔軟性を確保します。

GoプロジェクトのようなGoogleが関与するプロジェクトでは、GoogleがCLAを要求することが一般的です。これにより、Googleは貢献されたコードを自社の製品やサービスに組み込む際の法的な障壁を取り除きます。

AUTHORS および CONTRIBUTORS ファイル

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

  • AUTHORS: 主にプロジェクトの主要な作者や、初期の貢献者、あるいはプロジェクトの方向性を決定するような重要な役割を担った人々がリストされることが多いです。
  • CONTRIBUTORS: コードのコミット、バグ報告、ドキュメントの改善、翻訳など、様々な形でプロジェクトに貢献した人々が広くリストされます。

これらのファイルは、貢献者への感謝と認識を示すだけでなく、プロジェクトの歴史やコミュニティの成長を示す重要なドキュメントでもあります。

Goプロジェクトの貢献プロセス

Goプロジェクトへの貢献は、通常、以下のプロセスを経て行われます。

  1. Issueの特定: 修正すべきバグや追加すべき機能など、貢献の対象となるIssueを特定します。
  2. Change List (CL) の作成: 変更はGitリポジトリに直接コミットされるのではなく、Goプロジェクト独自のコードレビューシステムであるGerritを通じて「Change List (CL)」として提出されます。
  3. コードレビュー: 提出されたCLは、Goチームのメンバーや他の貢献者によってレビューされます。このプロセスでは、コードの品質、設計、パフォーマンス、Goの慣習への準拠などが評価されます。
  4. CLAの署名: 初めて貢献する個人は、前述のCLAに署名する必要があります。
  5. マージ: レビューが承認され、CLAの要件が満たされると、CLはGoリポジトリのメインブランチにマージされます。

このコミットは、CLA署名後のAUTHORSおよびCONTRIBUTORSファイルへの追加という、貢献プロセスの最終段階の一部を示しています。

addca ツール

コミットメッセージに「Generated by addca」とあることから、addcaはGoプロジェクト内部で使用される自動化ツールであると推測されます。このツールは、CLAに署名した個人の情報をAUTHORSCONTRIBUTORSファイルに自動的に追加する役割を担っていると考えられます。これにより、手動でのファイル編集に伴うミスを防ぎ、貢献者リストの管理を効率化しています。

技術的詳細

このコミット自体は、Gitの観点から見ると非常に単純なテキストファイルの変更です。

  • 変更されたファイル: AUTHORSCONTRIBUTORSの2つのファイルが変更されています。
  • 変更内容: 各ファイルに1行ずつ新しい情報が追加されています。追加された行は「Jason Travis infomaniac7@gmail.com」です。
  • Git Diffの解釈:
    • diff --git a/AUTHORS b/AUTHORS: AUTHORSファイルに対する変更を示します。a/は変更前のファイル、b/は変更後のファイルを表します。
    • index 7ba1e9faed..2b9e035929 100644: これはGitのインデックス情報を示しています。7ba1e9faedは変更前のファイルのGitオブジェクトハッシュ、2b9e035929は変更後のファイルのGitオブジェクトハッシュです。100644は、ファイルが通常のファイル(実行可能ではない)であることを示すパーミッションモードです。
    • --- a/AUTHORS+++ b/AUTHORS: それぞれ変更前のAUTHORSファイルと変更後のAUTHORSファイルを示します。
    • @@ -128,6 +128,7 @@: これは「hunk header」と呼ばれ、変更が適用されたファイルのセクションを示します。
      • -128,6: 変更前のファイルでは、128行目から6行が対象であることを意味します。
      • +128,7: 変更後のファイルでは、128行目から7行が対象であることを意味します。
      • この違い(6行が7行になったこと)は、1行が追加されたことを示しています。
    • +Jason Travis <infomaniac7@gmail.com>: 行頭の+は、この行が新しく追加されたことを示します。

このコミットは、コードの機能的な変更ではなく、プロジェクトのメタデータ(貢献者リスト)の更新に特化しています。

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

diff --git a/AUTHORS b/AUTHORS
index 7ba1e9faed..2b9e035929 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -128,6 +128,7 @@ Jan Newmarch <jan.newmarch@gmail.com>
 Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
 Jani Monoses <jani.monoses@ubuntu.com>
 Jaroslavas Počepko <jp@webmaster.ms>
+Jason Travis <infomaniac7@gmail.com>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org>
 Jeff Wendling <jeff@spacemonkey.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3e13bb3ba3..e1c439c857 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -189,6 +189,7 @@ Jan Newmarch <jan.newmarch@gmail.com>
 Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
 Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
 Jaroslavas Počepko <jp@webmaster.ms>
+Jason Travis <infomaniac7@gmail.com>
 Jean-Marc Eurin <jmeurin@google.com>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>

コアとなるコードの解説

上記の差分が示すように、このコミットの「コアとなるコードの変更」は、AUTHORSファイルとCONTRIBUTORSファイルにそれぞれ1行ずつ、Jason Travis氏の名前とメールアドレスを追加したことです。

  • AUTHORSファイルでは、既存の貢献者リストの途中にJason Travis <infomaniac7@gmail.com>が挿入されています。
  • CONTRIBUTORSファイルでも同様に、既存の貢献者リストの途中にJason Travis <infomaniac7@gmail.com>が挿入されています。

この変更は、GoプロジェクトがJason Travis氏を正式な貢献者として認識し、その記録をプロジェクトの公式ドキュメントに反映させたことを意味します。これは、プロジェクトの透明性と、貢献者への敬意を示す重要な行為です。

関連リンク

参考にした情報源リンク

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるJason Travis氏の情報を追加するものです。これは、通常、個人がContributor License Agreement (CLA) に署名した後に実行される、プロジェクトへの貢献者を正式に認識するプロセスの一部です。

コミット

commit 02f7049bd71cf82c1b2bfedd7058b5cf629aad16
Author: David Symonds <dsymonds@golang.org>
Date:   Tue Jan 8 15:21:09 2013 +1100

    A+C: Jason Travis (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/7064054

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

https://github.com/golang/go/commit/02f7049bd71cf82c1b2bfedd7058b5cf629aad16

元コミット内容

このコミットの目的は、Jason Travis氏をGoプロジェクトの貢献者として追加することです。コミットメッセージの「A+C: Jason Travis (individual CLA)」は、彼が個人のContributor License Agreement (CLA) に署名したことを示しています。「Generated by addca」という記述は、この変更がaddcaというツールによって自動生成されたものであることを示唆しています。R=gobotCC=golang-devは、コードレビューの担当者(gobot)と、変更が通知されるメーリングリスト(golang-dev)を示しています。また、https://golang.org/cl/7064054は、この変更に対応するGoのChange List (CL) へのリンクです。

変更の背景

オープンソースプロジェクト、特にGoのような大規模なプロジェクトでは、貢献者からのコードやドキュメントの受け入れに際して、法的な側面を明確にするためにContributor License Agreement (CLA) の署名を求めることが一般的です。CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトがその貢献を自由に利用、配布、変更できる権利を付与することを保証します。

このコミットは、Jason Travis氏がGoプロジェクトのCLAに署名した結果として行われました。CLAに署名した貢献者は、プロジェクトの正式な貢献者として認識され、その名前がAUTHORSおよびCONTRIBUTORSファイルに追加されます。addcaツールは、このプロセスを自動化するために使用される内部ツールであると考えられます。これにより、手作業によるエラーを減らし、効率的に貢献者リストを更新することができます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者とプロジェクトの間で締結される法的な合意書です。その主な目的は以下の通りです。

  • 知的財産権の明確化: 貢献者が提供するコードやドキュメントの知的財産権が誰に帰属し、プロジェクトがそれをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  • ライセンスの保証: プロジェクトが採用しているオープンソースライセンス(例: Apache License, MIT License)の下で、貢献されたコードが適切に配布・利用されることを保証します。
  • プロジェクトの持続性: プロジェクトの所有者(または財団)が、貢献されたコードに対して十分な権利を持つことで、プロジェクトのライセンス変更や再ライセンス、あるいは将来的な商業利用などの柔軟性を確保します。

GoプロジェクトのようなGoogleが関与するプロジェクトでは、GoogleがCLAを要求することが一般的です。これにより、Googleは貢献されたコードを自社の製品やサービスに組み込む際の法的な障壁を取り除きます。

AUTHORS および CONTRIBUTORS ファイル

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

  • AUTHORS: 主にプロジェクトの主要な作者や、初期の貢献者、あるいはプロジェクトの方向性を決定するような重要な役割を担った人々がリストされることが多いです。
  • CONTRIBUTORS: コードのコミット、バグ報告、ドキュメントの改善、翻訳など、様々な形でプロジェクトに貢献した人々が広くリストされます。

これらのファイルは、貢献者への感謝と認識を示すだけでなく、プロジェクトの歴史やコミュニティの成長を示す重要なドキュメントでもあります。

Goプロジェクトの貢献プロセス

Goプロジェクトへの貢献は、通常、以下のプロセスを経て行われます。

  1. Issueの特定: 修正すべきバグや追加すべき機能など、貢献の対象となるIssueを特定します。
  2. Change List (CL) の作成: 変更はGitリポジトリに直接コミットされるのではなく、Goプロジェクト独自のコードレビューシステムであるGerritを通じて「Change List (CL)」として提出されます。
  3. コードレビュー: 提出されたCLは、Goチームのメンバーや他の貢献者によってレビューされます。このプロセスでは、コードの品質、設計、パフォーマンス、Goの慣習への準拠などが評価されます。
  4. CLAの署名: 初めて貢献する個人は、前述のCLAに署名する必要があります。
  5. マージ: レビューが承認され、CLAの要件が満たされると、CLはGoリポジトリのメインブランチにマージされます。

このコミットは、CLA署名後のAUTHORSおよびCONTRIBUTORSファイルへの追加という、貢献プロセスの最終段階の一部を示しています。

addca ツール

コミットメッセージに「Generated by addca」とあることから、addcaはGoプロジェクト内部で使用される自動化ツールであると推測されます。このツールは、CLAに署名した個人の情報をAUTHORSCONTRIBUTORSファイルに自動的に追加する役割を担っていると考えられます。これにより、手動でのファイル編集に伴うミスを防ぎ、貢献者リストの管理を効率化します。

技術的詳細

このコミット自体は、Gitの観点から見ると非常に単純なテキストファイルの変更です。

  • 変更されたファイル: AUTHORSCONTRIBUTORSの2つのファイルが変更されています。
  • 変更内容: 各ファイルに1行ずつ新しい情報が追加されています。追加された行は「Jason Travis infomaniac7@gmail.com」です。
  • Git Diffの解釈:
    • diff --git a/AUTHORS b/AUTHORS: AUTHORSファイルに対する変更を示します。a/は変更前のファイル、b/は変更後のファイルを表します。
    • index 7ba1e9faed..2b9e035929 100644: これはGitのインデックス情報を示しています。7ba1e9faedは変更前のファイルのGitオブジェクトハッシュ、2b9e035929は変更後のファイルのGitオブジェクトハッシュです。100644は、ファイルが通常のファイル(実行可能ではない)であることを示すパーミッションモードです。
    • --- a/AUTHORS+++ b/AUTHORS: それぞれ変更前のAUTHORSファイルと変更後のAUTHORSファイルを示します。
    • @@ -128,6 +128,7 @@: これは「hunk header」と呼ばれ、変更が適用されたファイルのセクションを示します。
      • -128,6: 変更前のファイルでは、128行目から6行が対象であることを意味します。
      • +128,7: 変更後のファイルでは、128行目から7行が対象であることを意味します。
      • この違い(6行が7行になったこと)は、1行が追加されたことを示しています。
    • +Jason Travis <infomaniac7@gmail.com>: 行頭の+は、この行が新しく追加されたことを示します。

このコミットは、コードの機能的な変更ではなく、プロジェクトのメタデータ(貢献者リスト)の更新に特化しています。

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

diff --git a/AUTHORS b/AUTHORS
index 7ba1e9faed..2b9e035929 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -128,6 +128,7 @@ Jan Newmarch <jan.newmarch@gmail.com>
 Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
 Jani Monoses <jani.monoses@ubuntu.com>
 Jaroslavas Počepko <jp@webmaster.ms>
+Jason Travis <infomaniac7@gmail.com>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org>
 Jeff Wendling <jeff@spacemonkey.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3e13bb3ba3..e1c439c857 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -189,6 +189,7 @@ Jan Newmarch <jan.newmarch@gmail.com>
 Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
 Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
 Jaroslavas Počepko <jp@webmaster.ms>
+Jason Travis <infomaniac7@gmail.com>
 Jean-Marc Eurin <jmeurin@google.com>
 Jeff Hodges <jeff@somethingsimilar.com>
 Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>

コアとなるコードの解説

上記の差分が示すように、このコミットの「コアとなるコードの変更」は、AUTHORSファイルとCONTRIBUTORSファイルにそれぞれ1行ずつ、Jason Travis氏の名前とメールアドレスを追加したことです。

  • AUTHORSファイルでは、既存の貢献者リストの途中にJason Travis <infomaniac7@gmail.com>が挿入されています。
  • CONTRIBUTORSファイルでも同様に、既存の貢献者リストの途中にJason Travis <infomaniac7@gmail.com>が挿入されています。

この変更は、GoプロジェクトがJason Travis氏を正式な貢献者として認識し、その記録をプロジェクトの公式ドキュメントに反映させたことを意味します。これは、プロジェクトの透明性と、貢献者への敬意を示す重要な行為です。

関連リンク

参考にした情報源リンク