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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Mike Andrews氏の情報を追加するものです。これは、Goプロジェクトへの貢献者が、その貢献がプロジェクトのライセンスの下で適切に利用されることを保証するために署名する、個人貢献者ライセンス契約(Individual Contributor License Agreement, ICLA)に関連する管理上の変更です。

コミット

commit 1aebaae5e19da37c81e81fd964af1c5f3445cb5b
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Tue Mar 4 08:25:38 2014 -0800

    A+C: Mike Andrews (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/71150043

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

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

元コミット内容

このコミットの目的は、Mike Andrews氏をGoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに追加することです。これは、彼が個人貢献者ライセンス契約(individual CLA)に署名したことを示すものであり、addcaツールによって自動生成されたものです。

変更の背景

Goプロジェクトのような大規模なオープンソースプロジェクトでは、プロジェクトの知的財産権を適切に管理し、将来的なライセンス問題を防ぐために、貢献者ライセンス契約(CLA)の締結が一般的です。CLAは、貢献者が自身のコードに対する著作権を保持しつつ、プロジェクトに対してそのコードをプロジェクトのライセンス(Goの場合はBSDライセンス)の下で利用、配布、変更する権利を付与することを保証する法的な合意です。

このコミットは、Mike Andrews氏がGoプロジェクトへの貢献を開始するにあたり、必要なCLAに署名したことを反映しています。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人や組織を記録するためのものであり、CLAの締結はこれらのリストに追加されるための前提条件となります。addcaというツールは、CLAの管理プロセスの一部として、これらのファイルを自動的に更新するために使用されます。

前提知識の解説

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

CLAは、オープンソースプロジェクトにおいて、貢献されたコードの著作権とライセンスに関する明確な法的枠組みを提供するものです。これにより、プロジェクトの所有者(この場合はGoogleとGoプロジェクト)は、貢献されたコードをプロジェクトのライセンスの下で自由に利用、配布、変更する権利を確実に得ることができます。貢献者は自身の著作権を放棄するわけではなく、プロジェクトに特定の権利を付与する形になります。

CLAには主に以下の2種類があります。

  • Individual CLA (ICLA): 個人がプロジェクトに貢献する際に締結します。
  • Corporate CLA (CCLA): 企業が従業員を通じてプロジェクトに貢献する際に締結します。これにより、企業の従業員が行った貢献が、企業によって承認され、適切なライセンスの下で提供されることが保証されます。

Goプロジェクトでは、貢献者がコードを提出する前にCLAに署名することを求めています。これは、プロジェクトのコードベースの健全性を保ち、将来的なライセンス紛争のリスクを最小限に抑えるための重要なステップです。

AUTHORSファイルとCONTRIBUTORSファイル

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、プロジェクトの初期段階から深く関わってきた人々をリストアップするために使用されます。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人や組織をリストアップするために使用されます。これには、コードの貢献だけでなく、ドキュメントの作成、バグ報告、テスト、翻訳なども含まれる場合があります。

これらのファイルは、プロジェクトの歴史と貢献者を可視化する役割を果たします。

addcaツール

コミットメッセージに「Generated by addca.」とあるように、この変更はaddcaというツールによって生成されたものです。このツールは、Goプロジェクトの内部ツールであり、CLAの管理プロセスを自動化するために使用されます。具体的には、新しいCLAが締結された際に、関連するAUTHORSCONTRIBUTORSファイルを自動的に更新する役割を担っていると考えられます。これにより、手動でのファイル更新に伴うエラーを防ぎ、プロセスを効率化しています。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラ、標準ライブラリといったコアな部分に技術的な変更を加えるものではありません。純粋にプロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSにテキスト行を追加するものです。

変更内容は以下の通りです。

  • AUTHORSファイルに Mike Andrews <mra@xoba.com> の行が追加されました。
  • CONTRIBUTORSファイルに Mike Andrews <mra@xoba.com> の行が追加されました。

これらのファイルはプレーンテキスト形式であり、特定の構造化されたデータ形式(例: JSON, YAML)ではありません。そのため、変更は単純なテキストの追加として行われます。

この変更は、Goプロジェクトの貢献者管理システムの一部として、CLAの締結というイベントを反映したものです。このような管理上のコミットは、プロジェクトの健全な運用と法的なコンプライアンスを維持するために不可欠です。

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

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

diff --git a/AUTHORS b/AUTHORS
index e70464bd05..6041c7a24b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -268,6 +268,7 @@ Michał Derkacz <ziutek@lnet.pl>
 Miek Gieben <miek@miek.nl>
 Mihai Borobocea <MihaiBorobocea@gmail.com>
 Mikael Tillenius <mikti42@gmail.com>
+Mike Andrews <mra@xoba.com>
 Mike Rosset <mike.rosset@gmail.com>
 Mikhail Panchenko <m@mihasya.com>
 Miki Tebeka <miki.tebeka@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 0d0f1c51fd..fbcbaeebdb 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -383,6 +383,7 @@ Michał Derkacz <ziutek@lnet.pl>
 Miek Gieben <miek@miek.nl> <remigius.gieben@gmail.com>
 Mihai Borobocea <MihaiBorobocea@gmail.com>
 Mikael Tillenius <mikti42@gmail.com>
+Mike Andrews <mra@xoba.com>
 Mike Rosset <mike.rosset@gmail.com>
 Mike Samuel <mikesamuel@gmail.com>
 Mike Solomon <msolo@gmail.com>

コアとなるコードの解説

上記の差分が示すように、AUTHORSファイルとCONTRIBUTORSファイルの両方に、+Mike Andrews <mra@xoba.com>という行が追加されています。これは、それぞれのファイルの既存のリストに、Mike Andrews氏の名前とメールアドレスが新しいエントリとして挿入されたことを意味します。

この変更は、ファイルの特定の行に新しいテキスト行を挿入する、非常に基本的なテキスト操作です。特別なプログラミングロジックやアルゴリズムは含まれていません。addcaツールがこの操作を自動的に実行したと考えられます。

関連リンク

  • Goプロジェクトの貢献ガイドライン(CLAに関する情報が含まれる可能性があります): https://go.dev/doc/contribute (一般的なGoの貢献ガイドラインへのリンクですが、CLAに関する詳細が記載されている可能性があります)
  • GoogleのCLAに関する情報: https://cla.developers.google.com/ (Googleが管理するCLAのポータルサイト)

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • コミットハッシュ: 1aebaae5e19da37c81e81fd964af1c5f3445cb5b
  • 一般的な貢献者ライセンス契約(CLA)に関する情報(例: Wikipedia, 各オープンソースプロジェクトの貢献ガイドライン)