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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるL Campbell氏(unpantsu@gmail.com)を追加するものです。これは、彼が個人の貢献者ライセンス契約(CLA)を完了したことを示しています。

コミット

commit ab14888712baf8f07aba235c9e59aa214048f69e
Author: Russ Cox <rsc@golang.org>
Date:   Mon Jun 25 20:25:59 2012 -0400

    A+C: L Campbell (individual CLA)
    
    Guess I was wrong about being done for the day.
    
    R=golang-dev, r
    CC=golang-dev, unpantsu
    https://golang.org/cl/6325060

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

https://github.com/golang/go/commit/ab14888712baf8f07aba235c9e59aa214048f69e

元コミット内容

このコミットの元の内容は、Russ Cox氏によって「A+C: L Campbell (individual CLA)」と簡潔に記述されています。これは「Add to AUTHORS and CONTRIBUTORS: L Campbell (individual CLA)」の略であり、L Campbell氏が個人の貢献者ライセンス契約を締結したため、Goプロジェクトの貢献者リストに追加されたことを意味します。コミットメッセージには、Russ Cox氏の個人的なコメント「Guess I was wrong about being done for the day.」も含まれており、彼がその日の作業を終えたと思っていたが、この追加作業が発生したことを示唆しています。

変更の背景

この変更の背景には、オープンソースプロジェクトにおける貢献者ライセンス契約(CLA)の重要性があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、知的財産権の管理と、将来的なライセンス問題の回避のために、貢献者に対してCLAへの同意を求めるのが一般的です。

L Campbell氏がGoプロジェクトにコードを貢献するにあたり、個人のCLAを完了したため、その貢献が正式に認められ、プロジェクトの公式な貢献者リストに名前が追加される必要がありました。このコミットは、その管理プロセスの一環として行われたものです。AUTHORSファイルはプロジェクトの主要な作者を、CONTRIBUTORSファイルはプロジェクトに貢献したすべての個人をリストアップする役割を担っています。これらのファイルを最新の状態に保つことは、プロジェクトの透明性と、貢献者への適切なクレジット付与のために不可欠です。

前提知識の解説

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

CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(この場合はGoogle)に対して、その貢献物を使用、複製、変更、配布する権利を付与することを法的に約束する契約です。CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するのか、プロジェクト側がそのコードをどのように利用できるのかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンス(例: BSDライセンス、MITライセンスなど)の下で配布されることを保証し、異なるライセンスのコードが混在することによる複雑さを回避します。
  3. プロジェクトの持続可能性: プロジェクトの所有者が、貢献されたコードを自由に利用・再ライセンスできる権限を持つことで、プロジェクトの方向性を決定し、必要に応じてライセンスモデルを変更する柔軟性を確保します。

Goプロジェクトでは、Googleがプロジェクトの所有者であり、貢献者はCLAに署名することで、Googleが貢献されたコードをGoプロジェクトのライセンスの下で利用することを許可します。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 通常、プロジェクトの主要な開発者、創設者、または特に重要な貢献をした人々をリストアップします。このファイルは、プロジェクトの歴史と主要な貢献者を追跡するために使用されます。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップします。これには、コードのコミットだけでなく、バグ報告、ドキュメントの改善、テストの作成など、幅広い貢献が含まれる場合があります。このファイルは、コミュニティの努力を認識し、感謝を示すために重要です。

これらのファイルは、プロジェクトの透明性を高め、貢献者コミュニティを構築する上で重要な役割を果たします。

技術的詳細

このコミットは、Gitの差分(diff)として表現されており、AUTHORSファイルとCONTRIBUTORSファイルに対する変更を示しています。

  • AUTHORSファイルでは、Kyle Lemons <kyle@kylelemons.net>の行の直後に、L Campbell <unpantsu@gmail.com>の行が追加されています。
  • CONTRIBUTORSファイルでは、Kyle Lemons <kyle@kylelemons.net> <kevlar@google.com>の行の直後に、L Campbell <unpantsu@gmail.com>の行が追加されています。

両ファイルへの追加は、既存のアルファベット順のリストに新しいエントリを挿入する形で行われています。これは、これらのリストが通常、名前のアルファベット順にソートされていることを示唆しています。

Gitの差分表示では、--- a/AUTHORS+++ b/AUTHORSは、それぞれ変更前のファイル(a)と変更後のファイル(b)を示します。@@ -133,6 +133,7 @@のような行は、変更が適用されたファイルのチャンク(hunk)ヘッダーであり、行番号と変更された行数を示します。この場合、AUTHORSファイルでは133行目から6行が変更され、結果として7行になったことを意味します(1行追加)。同様に、CONTRIBUTORSファイルでも同様の変更が行われています。

この変更は、Goプロジェクトの貢献者管理プロセスが、CLAの完了と連動して、手動または半自動でこれらのファイルを更新することを含んでいることを示しています。

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

このコミットにおける「コアとなるコード」は、Go言語のソースコードそのものではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSです。

変更されたファイルと行数は以下の通りです。

  • AUTHORS: 1行追加
  • CONTRIBUTORS: 1行追加

具体的な変更箇所は以下の通りです。

AUTHORSファイル:

--- a/AUTHORS
+++ b/AUTHORS
@@ -133,6 +133,7 @@ Ken Rockot <ken@oz.gs>
 Kevin Ballard <kevin@sb.org>
 Kyle Consalus <consalus@gmail.com>
 Kyle Lemons <kyle@kylelemons.net>
+L Campbell <unpantsu@gmail.com>
 Lai Jiangshan <eag0628@gmail.com>
 Lorenzo Stoakes <lstoakes@gmail.com>
 Luca Greco <luca.greco@alcacoop.it>

CONTRIBUTORSファイル:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -197,6 +197,7 @@ Kevin Ballard <kevin@sb.org>
 Kirklin McDonald <kirklin.mcdonald@gmail.com>
 Kyle Consalus <consalus@gmail.com>
 Kyle Lemons <kyle@kylelemons.net> <kevlar@google.com>
+L Campbell <unpantsu@gmail.com>
 Lai Jiangshan <eag0628@gmail.com>
 Larry Hosken <lahosken@golang.org>
 Lorenzo Stoakes <lstoakes@gmail.com>

コアとなるコードの解説

このコミットは、Goプロジェクトのコードベースに直接的な機能変更を加えるものではありません。その代わりに、プロジェクトの管理とガバナンスに関連するメタデータファイルを更新しています。

  • AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトの歴史と貢献者を記録するための重要なドキュメントです。これらのファイルにL Campbell氏の名前とメールアドレスが追加されたことは、彼がGoプロジェクトの正式な貢献者として認められたことを意味します。
  • この変更は、L Campbell氏がGoプロジェクトにコードを貢献する準備が整った、または既に貢献を開始しており、その貢献が法的に適切に処理されたことを示すものです。
  • このようなコミットは、オープンソースプロジェクトの健全な運営において不可欠な部分であり、プロジェクトの透明性を維持し、貢献者コミュニティを育成する上で重要な役割を果たします。

関連リンク

  • Goプロジェクトの公式ウェブサイト: https://golang.org/
  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Goプロジェクトの貢献ガイドライン(CLAに関する情報を含む可能性が高い): 通常、プロジェクトのGitHubリポジトリのCONTRIBUTING.mdファイルや、公式ドキュメントに記載されています。

参考にした情報源リンク

  • コミットハッシュ: ab14888712baf8f07aba235c9e59aa214048f69e
  • GitHub上のコミットページ: https://github.com/golang/go/commit/ab14888712baf8f07aba235c9e59aa214048f69e
  • Go Contributor License Agreement (CLA) に関する一般的な情報(Web検索による)
    • Google Open Source CLA: https://cla.developers.google.com/
    • (Goプロジェクト固有のCLAドキュメントへの直接リンクは、当時の情報源を特定するのが困難なため、一般的なGoogle CLAのリンクを記載)
  • Gitの差分表示に関する一般的なドキュメント(Web検索による)
  • オープンソースプロジェクトにおけるAUTHORSおよびCONTRIBUTORSファイルの慣習に関する一般的な情報(Web検索による)
    • (特定の情報源は特定できないが、多くのオープンソースプロジェクトで共通の慣習)
  • GoプロジェクトのChange List (CL) 6325060: https://golang.org/cl/6325060 (これはGoの内部コードレビューシステムGerritのリンクであり、コミットメッセージに記載されている)