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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるPeter Armitage氏の名前とメールアドレスを追加するものです。これは、彼がGoプロジェクトへの貢献を開始し、個人の貢献者ライセンス契約(CLA)を締結したことを公式に記録するための変更です。

コミット

  • コミットハッシュ: 36d7830591952a510870d4296cfe5b192b348284
  • 作者: Adam Langley agl@golang.org
  • コミット日時: 2012年7月16日 月曜日 09:35:14 -0400

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

https://github.com/golang/go/commit/36d7830591952a510870d4296cfe5b192b348284

元コミット内容

A+C: Peter Armitage (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6392065

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模プロジェクトでは、コードの著作権とライセンスに関する明確な取り決めが非常に重要です。新しい貢献者がプロジェクトにコードを提出する際、その貢献がプロジェクトのライセンス(通常はBSDライセンスなど)の下で適切に利用されることを保証するために、貢献者ライセンス契約(CLA: Contributor License Agreement)への署名が求められることが一般的です。

このコミットは、Peter Armitage氏がGoプロジェクトに貢献するための個人のCLAを締結したことを示しています。CLAの締結後、彼の貢献が正式に認められ、プロジェクトの公式な貢献者リストに名前が追加されることになります。これにより、将来的に彼が提出するコードがプロジェクトにスムーズに統合されるための法的な基盤が確立されます。

前提知識の解説

貢献者ライセンス契約 (CLA: Contributor License Agreement)

CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、その貢献物の著作権をプロジェクトの所有者(または特定の財団など)に譲渡するか、あるいはプロジェクトのライセンスの下で利用することを許可する契約です。

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

  1. 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にし、将来的な著作権紛争を防ぎます。
  2. ライセンスの保証: 貢献されたコードがプロジェクトのライセンス(例: Apache License, MIT License, BSD Licenseなど)と互換性があり、プロジェクト全体として一貫したライセンスを維持できるようにします。
  3. 法的な保護: プロジェクトの所有者や利用者が、貢献されたコードを安心して利用できる法的な保証を提供します。

Goプロジェクトの場合、GoogleがCLAを要求しており、これによりGo言語のコードベース全体の著作権管理とライセンスの一貫性が保たれています。

AUTHORSファイルとCONTRIBUTORSファイル

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

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

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割も果たします。Goプロジェクトでは、これらのファイルに貢献者の名前とメールアドレスを記録することで、公式な貢献者リストとして機能しています。

技術的詳細

このコミットは、Gitの差分(diff)形式で表現されています。差分は、変更前のファイル(--- a/ファイル名)と変更後のファイル(+++ b/ファイル名)の内容を比較し、追加、削除、変更された行を示します。

  • index 6b535df4d6..5782614e84 100644:これはGitのインデックス情報を示しており、変更前と変更後のファイルのハッシュ値(SHA-1)とファイルモード(100644は通常のファイルを示します)を表しています。
  • --- a/AUTHORS および +++ b/AUTHORSAUTHORSファイルの変更前と変更後を示します。
  • @@ -176,6 +176,7 @@:これは「hunk header」と呼ばれ、差分が適用されるファイルの場所を示します。
    • -176,6:変更前のファイルでは、176行目から6行が対象であることを意味します。
    • +176,7:変更後のファイルでは、176行目から7行が対象となることを意味します。
    • これは、元の6行に1行が追加され、合計7行になったことを示唆しています。
  • +Peter Armitage <peter.armitage@gmail.com>:行頭の+記号は、この行が新しく追加されたことを示します。

同様の変更がCONTRIBUTORSファイルにも適用されています。

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

このコミットによって変更されたファイルは以下の2つです。

  1. AUTHORS

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -176,6 +176,7 @@ Patrick Mylund Nielsen <patrick@patrickmn.com>
     Paul Lalonde <paul.a.lalonde@gmail.com>
     Paul Sbarra <Sbarra.Paul@gmail.com>
     Petar Maymounkov <petarm@gmail.com>
    +Peter Armitage <peter.armitage@gmail.com>
     Peter Froehlich <peter.hans.froehlich@gmail.com>
     Peter Kleiweg <pkleiweg@xs4all.nl>
     Peter Mundy <go.peter.90@gmail.com>
    

    177行目にPeter Armitage <peter.armitage@gmail.com>が追加されました。

  2. CONTRIBUTORS

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -253,6 +253,7 @@ Paul Borman <borman@google.com>
     Paul Lalonde <paul.a.lalonde@gmail.com>
     Paul Sbarra <Sbarra.Paul@gmail.com>
     Petar Maymounkov <petarm@gmail.com>
    +Peter Armitage <peter.armitage@gmail.com>
     Peter Froehlich <peter.hans.froehlich@gmail.com>
     Peter Kleiweg <pkleiweg@xs4all.nl>
     Peter McKenzie <petermck@google.com>
    

    254行目にPeter Armitage <peter.armitage@gmail.com>が追加されました。

コアとなるコードの解説

このコミットの「コード」は、Go言語のソースコードそのものではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSへのテキストの追加です。

追加された行は、Peter Armitage <peter.armitage@gmail.com>という形式で、貢献者の氏名とメールアドレスを記述しています。これは、Goプロジェクトが採用している貢献者リストの標準的なフォーマットに従っています。

この変更の目的は、Peter Armitage氏がGoプロジェクトの正式な貢献者として認識され、彼の将来の貢献がプロジェクトのライセンスと著作権の枠組みの中で適切に扱われるようにすることです。これは、オープンソースプロジェクトにおけるガバナンスと法務の側面において非常に重要なステップです。

関連リンク

  • Go Gerrit Code Review: https://golang.org/cl/6392065
    • このリンクは、GoプロジェクトのコードレビューシステムであるGerritにおける、この変更セット(チェンジリスト)への直接リンクです。Goプロジェクトでは、GitHubへのプッシュ前にGerritでコードレビューが行われます。

参考にした情報源リンク