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

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

このコミットは、Go言語プロジェクトの貢献者リストに新しい個人、Andrew Pritchard氏を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにAndrew Pritchard氏の名前とメールアドレスが追記されています。これは、オープンソースプロジェクトにおける貢献者の管理と、法的な側面(CLA: Contributor License Agreement)の遵守を示す典型的なコミットです。

コミット

commit 1a761fd002ccdfb2bb0a24362247895052c105f5
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Wed Feb 8 16:12:21 2012 +1100

    A+C: add Andrew Pritchard (Individual CLA)
    
    R=golang-dev, dsymonds
    CC=golang-dev
    https://golang.org/cl/5646049
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index a0cc69432b..4ef7bd30f6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -19,6 +19,7 @@ Alexey Borzenkov <snaury@gmail.com>
 Amrut Joshi <amrut.joshi@gmail.com>
 Andrei Vieru <euvieru@gmail.com>
 Andrew Balholm <andybalholm@gmail.com>
+Andrew Pritchard <awpritchard@gmail.com>
 Andrew Skiba <skibaa@gmail.com>
 Andrey Mirtchovski <mirtchovski@gmail.com>
 Andy Davis <andy@bigandian.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ebf2309183..be8da8abe7 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -46,6 +46,7 @@ Andrea Spadaccini <spadaccio@google.com>
 Andrei Vieru <euvieru@gmail.com>
 Andrew Balholm <andybalholm@gmail.com>
 Andrew Gerrand <adg@golang.org>
+Andrew Pritchard <awpritchard@gmail.com>
 Andrew Skiba <skibaa@gmail.com>
 Andrey Mirtchovski <mirtchovski@gmail.com>
 Andy Davis <andy@bigandian.com>

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

https://github.com/golang/go/commit/1a761fd002ccdfb2bb0a24362247895052c105f5

元コミット内容

A+C: add Andrew Pritchard (Individual CLA)

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5646049

変更の背景

このコミットの背景には、オープンソースプロジェクト、特に大規模なプロジェクトにおける貢献者の管理と、知的財産権の明確化という重要な側面があります。

  1. 新規貢献者の追加: Andrew Pritchard氏がGoプロジェクトに何らかの貢献(コード、ドキュメント、バグ報告など)を行ったため、その貢献を公式に記録し、プロジェクトの歴史に名を残すために追加されました。
  2. CLA (Contributor License Agreement) の遵守: コミットメッセージにある「Individual CLA」は、Andrew Pritchard氏がGoプロジェクトに対して個人貢献者ライセンス契約を締結したことを示しています。これは、貢献されたコードの著作権がプロジェクト(この場合はGoogle)に適切に帰属し、プロジェクトがそのコードを自由に利用・配布できることを保証するための法的な取り決めです。多くの大規模オープンソースプロジェクト、特に企業が主導するプロジェクトでは、法的なリスクを回避し、プロジェクトの持続可能性を確保するためにCLAの締結を義務付けています。
  3. プロジェクトの透明性と記録: AUTHORSおよびCONTRIBUTORSファイルは、プロジェクトに貢献した人々を明確にリストアップするためのものです。これにより、誰がプロジェクトに貢献したかを追跡し、コミュニティの透明性を高めることができます。

前提知識の解説

1. オープンソースプロジェクトにおける貢献者リスト (AUTHORS, CONTRIBUTORS)

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人・団体をリストアップするために使用されます。法的な意味合いが強い場合があります。
  • CONTRIBUTORSファイル: プロジェクトに貢献したすべての個人をリストアップするために使用されます。コードのコミットだけでなく、ドキュメントの作成、バグ報告、テスト、デザインなど、様々な形の貢献が含まれることがあります。これは、コミュニティへの感謝と認識を示す役割も果たします。

これらのファイルは、プロジェクトの歴史とコミュニティの成長を記録する重要なドキュメントです。

2. CLA (Contributor License Agreement)

  • 定義: CLAは、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献物(コード、ドキュメントなど)のライセンスに関する権利をプロジェクトの所有者(または指定された団体)に付与するための法的な契約です。
  • 目的:
    • 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、プロジェクトがそれをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
    • ライセンスの再配布: プロジェクトが自身のライセンス(例: Apache License, MIT License)で貢献されたコードを再配布する権利を確保します。
    • プロジェクトの持続可能性: 貢献者が変わっても、プロジェクトがコードベース全体を管理し、ライセンスを維持できることを保証します。
  • 種類:
    • Individual CLA (ICLA): 個人がプロジェクトに貢献する際に締結します。
    • Corporate CLA (CCLA): 企業が従業員の貢献を代表して締結します。
  • GoプロジェクトとCLA: Go言語プロジェクトはGoogleが主導しており、貢献者にはCLAの締結を求めています。これは、GoogleがGoプロジェクトのコードベースに対する明確な権利を保持し、プロジェクトの安定性と法的な健全性を維持するためです。

3. Gerrit (Goプロジェクトのコードレビューシステム)

  • 定義: Gerritは、Gitリポジトリ上で動作するWebベースのコードレビューシステムです。変更がメインのコードベースにマージされる前に、コードの品質と整合性を確保するために使用されます。
  • Goプロジェクトでの利用: Goプロジェクトでは、GitHubのような一般的なプルリクエストモデルではなく、Gerritをコードレビューと変更の提出に利用しています。コミットメッセージにあるhttps://golang.org/cl/5646049は、Gerrit上の変更リスト(Change-List, CL)へのリンクです。
  • ワークフロー: 貢献者は変更をGerritにアップロードし、レビュー担当者(R=で示される)がコードをレビューし、コメントや承認を行います。変更が承認されると、メインのブランチにマージされます。

技術的詳細

このコミットは、Gitの差分(diff)として表現されています。

  • AUTHORSファイルとCONTRIBUTORSファイルの両方に、Andrew Pritchard <awpritchard@gmail.com>という行が追加されています。
  • AUTHORSファイルでは19行目と20行目の間に、CONTRIBUTORSファイルでは46行目と47行目の間にそれぞれ新しい行が挿入されています。
  • index a0cc69432b..4ef7bd30f6 100644index ebf2309183..be8da8abe7 100644は、Gitがファイルの変更を追跡するために使用する内部的なハッシュ(オブジェクトID)とファイルモードを示しています。100644は通常のファイル(実行可能ではない)であることを意味します。

この変更は、Goプロジェクトのコードベースに直接的な機能変更をもたらすものではなく、プロジェクトのメタデータと管理に関するものです。しかし、オープンソースプロジェクトの健全な運営と法的な基盤を維持するためには不可欠なプロセスです。

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

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

  • AUTHORSファイル:
    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -19,6 +19,7 @@ Alexey Borzenkov <snaury@gmail.com>
     Amrut Joshi <amrut.joshi@gmail.com>
     Andrei Vieru <euvieru@gmail.com>
     Andrew Balholm <andybalholm@gmail.com>
    +Andrew Pritchard <awpritchard@gmail.com>
     Andrew Skiba <skibaa@gmail.com>
     Andrey Mirtchovski <mirtchovski@gmail.com>
     Andy Davis <andy@bigandian.com>
    
  • CONTRIBUTORSファイル:
    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -46,6 +46,7 @@ Andrea Spadaccini <spadaccio@google.com>
     Andrei Vieru <euvieru@gmail.com>
     Andrew Balholm <andybalholm@gmail.com>
     Andrew Gerrand <adg@golang.org>
    +Andrew Pritchard <awpritchard@gmail.com>
     Andrew Skiba <skibaa@gmail.com>
     Andrey Mirtchovski <mirtchovski@gmail.com>
     Andy Davis <andy@bigandian.com>
    

コアとなるコードの解説

上記の差分が示すように、変更は非常にシンプルです。

  1. AUTHORSファイルにAndrew Pritchard <awpritchard@gmail.com>という行が追加されました。
  2. CONTRIBUTORSファイルにも同様にAndrew Pritchard <awpritchard@gmail.com>という行が追加されました。

この変更は、Andrew Pritchard氏がGoプロジェクトに貢献し、その貢献が正式に認められたことを意味します。また、コミットメッセージにある「Individual CLA」は、彼がGoプロジェクトの貢献者ライセンス契約に署名したことを示しており、これにより彼の貢献がGoプロジェクトのライセンスの下で適切に利用されることが保証されます。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Gitの差分表示に関する一般的な情報
  • Contributor License Agreement (CLA) に関する一般的な情報 (例: Wikipedia, 各オープンソースプロジェクトのCLA説明ページ)
  • Gerritに関する一般的な情報 (例: Gerrit公式サイト、関連ドキュメント)
  • コミットメッセージの構造と意味に関する一般的なGitの知識