[インデックス 11084] ファイルの概要
このコミットは、Goプロジェクトのコントリビューターリストに新しい貢献者であるShenghou Ma氏を追加するものです。具体的には、プロジェクトのAUTHORS
ファイルとCONTRIBUTORS
ファイルに同氏の名前とメールアドレスが追記されています。これは、Goプロジェクトへの貢献を開始するにあたり、個人コントリビューターライセンス契約(Individual CLA)が締結されたことを示しています。
コミット
- コミットハッシュ:
57f15a3d0302c6743150e105958b7f21fddc4058
- 作者: Brad Fitzpatrick bradfitz@golang.org
- 日付: 2012年1月10日 火曜日 11:13:27 -0800
- コミットメッセージ:
A+C: add Shenghou Ma (Individual CLA)
- レビュー担当者: golang-dev, r
- Gerrit Change-ID:
https://golang.org/cl/5528065
- 変更ファイル:
AUTHORS
,CONTRIBUTORS
- 変更行数: 2ファイルで2行の追加
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/57f15a3d0302c6743150e105958b7f21fddc4058
元コミット内容
A+C: add Shenghou Ma (Individual CLA)
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5528065
変更の背景
このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と法的な側面があります。多くの大規模なオープンソースプロジェクト、特にGoogleが関与するプロジェクト(Goを含む)では、貢献者がコードを提出する前にコントリビューターライセンス契約(CLA: Contributor License Agreement)に署名することを要求しています。
CLAは、貢献者が提出するコードの著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、またはプロジェクトがそのコードを特定のライセンス(Goの場合はBSDライセンス)の下で利用することを許可するものです。これにより、プロジェクトの所有者は、将来的なライセンスの変更や、著作権に関する紛争が発生した場合に、プロジェクト全体のコードベースの法的健全性を維持することができます。
Shenghou Ma氏がGoプロジェクトに貢献を開始するにあたり、個人CLAに署名したため、その事実をプロジェクトの公式な貢献者リストに反映させるためにこのコミットが作成されました。AUTHORS
ファイルとCONTRIBUTORS
ファイルは、プロジェクトに貢献した人々を記録するためのものです。
前提知識の解説
コントリビューターライセンス契約 (CLA: Contributor License Agreement)
CLAは、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者との間で締結する法的な合意です。主な目的は以下の通りです。
- 著作権の明確化: 貢献されたコードの著作権が誰に帰属するか、またはプロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
- ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンス(または互換性のあるライセンス)の下で配布されることを保証し、ライセンスの複雑化を防ぎます。
- プロジェクトの持続性: プロジェクトの所有者が、貢献されたコードを再ライセンスしたり、商用利用したりする権利を持つことで、プロジェクトの長期的な維持・発展を可能にします。
Googleが関与する多くのオープンソースプロジェクト(Android, Chromium, Goなど)では、CLAへの署名が必須となっています。
AUTHORS
ファイルとCONTRIBUTORS
ファイル
オープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、慣習的にAUTHORS
やCONTRIBUTORS
といったテキストファイルがリポジトリのルートに置かれることがあります。
AUTHORS
: 主にプロジェクトの主要な作者や、初期の貢献者、または著作権を保持する個人や団体をリストアップするために使用されます。CONTRIBUTORS
: より広範な意味で、コードの提出、バグ報告、ドキュメントの改善、テストの作成など、様々な形でプロジェクトに貢献した人々をリストアップするために使用されます。
これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの歴史的な記録としても機能します。
Gerrit
Gerritは、Webベースのコードレビューおよびプロジェクト管理ツールです。Gitリポジトリと連携し、変更がメインのコードベースにマージされる前に、チームメンバーがコード変更をレビューできるように設計されています。Goプロジェクトは、GitHubにミラーリングされる前の主要なコードレビューシステムとしてGerritを使用しています。コミットメッセージ内のhttps://golang.org/cl/5528065
は、この変更がGerrit上でレビューされた際のChange-ID(変更セットの識別子)を示しています。
技術的詳細
このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのプレーンテキストファイル、AUTHORS
とCONTRIBUTORS
を修正するものです。変更内容は非常にシンプルで、それぞれのファイルの適切な位置に新しい行を追加し、Shenghou Ma氏の名前とメールアドレスを記載しています。
ファイルの変更は以下の通りです。
AUTHORS
ファイル: 既存のアルファベット順のリストにShenghou Ma <minux.ma@gmail.com>
が追加されています。CONTRIBUTORS
ファイル: 同様に、既存のアルファベット順のリストにShenghou Ma <minux.ma@gmail.com>
が追加されています。
このような変更は、Gitの基本的なテキストファイル操作によって行われ、特別なツールやスクリプトは必要ありません。単にテキストエディタでファイルを開き、行を追加して保存するだけです。その後、Gitのコミットプロセスを通じて変更がリポジトリに記録されます。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index d04a010323..112479ce87 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -161,6 +161,7 @@ Sébastien Paolacci <sebastien.paolacci@gmail.com>
Sergei Skorobogatov <skorobo@rambler.ru>
Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
Sergio Luis O. B. Correia <sergio@larces.uece.br>
+Shenghou Ma <minux.ma@gmail.com>
Spring Mc <heresy.mc@gmail.com>
Stefan Nilsson <snilsson@nada.kth.se>
Stephen Weinberg <stephen@q5comm.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e6edba802d..eca370b1ee 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -240,6 +240,7 @@ Sébastien Paolacci <sebastien.paolacci@gmail.com>
Sergei Skorobogatov <skorobo@rambler.ru>
Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
Sergio Luis O. B. Correia <sergio@larces.uece.br>
+Shenghou Ma <minux.ma@gmail.com>
Spring Mc <heresy.mc@gmail.com>
Stefan Nilsson <snilsson@nada.kth.se>
Stephen Ma <stephenm@golang.org>
コアとなるコードの解説
上記の差分(diff)は、AUTHORS
ファイルとCONTRIBUTORS
ファイルに対して行われた変更を示しています。
--- a/AUTHORS
と+++ b/AUTHORS
は、AUTHORS
ファイルの変更前と変更後を示します。@@ -161,6 +161,7 @@
は、変更がファイルの161行目から始まり、変更前は6行、変更後は7行になることを示しています。+Shenghou Ma <minux.ma@gmail.com>
の行は、このコミットによって新しく追加された行です。
同様に、CONTRIBUTORS
ファイルにも同じ行が追加されています。
この変更は、既存のリストのアルファベット順を維持するように、適切な位置に新しい貢献者の情報が挿入されていることを示しています。これは、手動でテキストファイルを編集し、Gitでコミットする典型的な例です。
関連リンク
- Gerrit Change-ID: https://golang.org/cl/5528065
参考にした情報源リンク
- Goプロジェクトの貢献ガイドライン: https://go.dev/doc/contribute (CLAに関する情報も含まれています)
- Contributor License Agreement (CLA) について: 一般的なCLAの概念を理解するために、Apache Software FoundationのCLAに関する情報なども参考になります。
- Gerrit Code Review: https://www.gerritcodereview.com/