[インデックス 13183] ファイルの概要
このコミットは、Goプロジェクトへの新たな貢献者であるPeter Kleiweg氏を、プロジェクトのAUTHORS
ファイルおよびCONTRIBUTORS
ファイルに追加するものです。これは、彼がGoプロジェクトのContributor License Agreement (CLA)に署名し、コード貢献を行う準備が整ったことを示しています。
コミット
commit b9918dbf065e91938b60b1776546e246708ef427
Author: Sameer Ajmani <sameer@golang.org>
Date: Tue May 29 11:12:31 2012 -0400
A+C: Peter Kleiweg (individual CLA)
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6260049
---
AUTHORS | 1 +
CONTRIBUTORS | 1 +
2 files changed, 2 insertions(+)
diff --git a/AUTHORS b/AUTHORS
index 10c5562482..d7cc6f5d7a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -168,6 +168,7 @@ Paul Lalonde <paul.a.lalonde@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Petar Maymounkov <petarm@gmail.com>
Peter Froehlich <peter.hans.froehlich@gmail.com>
+Peter Kleiweg <pkleiweg@xs4all.nl>
Peter Mundy <go.peter.90@gmail.com>
Peter Williams <pwil3058@gmail.com>
Pieter Droogendijk <pieter@binky.org.uk>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index c1ca386309..4e586346d3 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -243,6 +243,7 @@ Paul Lalonde <paul.a.lalonde@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Petar Maymounkov <petarm@gmail.com>
Peter Froehlich <peter.hans.froehlich@gmail.com>
+Peter Kleiweg <pkleiweg@xs4all.nl>
Peter McKenzie <petermck@google.com>
Peter Mundy <go.peter.90@gmail.com>
Péter Szabó <pts@google.com>
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/b9918dbf065e91938b60b1776546e246708ef427
元コミット内容
A+C: Peter Kleiweg (individual CLA)
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6260049
変更の背景
このコミットの背景には、オープンソースプロジェクト、特にGoogleが管理するGoプロジェクトにおける貢献の法的な側面があります。Goプロジェクトでは、外部からのコード貢献を受け入れる前に、貢献者がContributor License Agreement (CLA)に署名することが義務付けられています。CLAは、プロジェクトの所有者(この場合はGoogle)が、貢献されたコードを安全に利用、配布、ライセンス供与するための知的財産権を明確にするための法的な文書です。
Peter Kleiweg氏がGoプロジェクトに貢献する意向を示し、個人のCLAに署名したため、彼の名前と連絡先情報がプロジェクトの公式な貢献者リストであるAUTHORS
ファイルとCONTRIBUTORS
ファイルに追加されました。これにより、彼の将来の貢献が法的に適切に扱われる基盤が整います。
コミットメッセージのA+C
は、AUTHORS
とCONTRIBUTORS
ファイルへの追加を意味していると考えられます。また、R=golang-dev, bradfitz
とCC=golang-dev
は、この変更がgolang-dev
メーリングリストとbradfitz
氏によってレビューされたことを示しています。https://golang.org/cl/6260049
は、Gerrit Code Reviewシステムにおけるこの変更のChange-IDを示しており、GoプロジェクトがGerritを使用してコードレビューと変更管理を行っていることを示唆しています。
前提知識の解説
Contributor License Agreement (CLA)
Contributor License Agreement (CLA)は、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献に対する知的財産権をプロジェクトの所有者(または特定の財団など)に付与するための法的な合意書です。多くの大規模なオープンソースプロジェクト、特に企業が主導するプロジェクト(例: GoogleのGo、Apacheソフトウェア財団のプロジェクトなど)で採用されています。
CLAの主な目的は以下の通りです。
- 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、プロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
- ライセンスの統一性: プロジェクト全体でコードのライセンスが統一され、一貫したライセンスモデルの下で配布されることを保証します。
- 再ライセンスの可能性: プロジェクトが将来的にライセンスモデルを変更する必要が生じた場合でも、CLAによってその変更が可能になる場合があります。
Goプロジェクトの場合、Googleがプロジェクトを管理しており、貢献者は個人のCLAまたは企業のCLAに署名する必要があります。一度署名すれば、その貢献者はGoogleのすべてのオープンソースプロジェクトに貢献できるようになります。
Gerrit Code ReviewとChange-ID
Gerrit Code Reviewは、Gitリポジトリ上で動作するWebベースのコードレビューシステムです。Googleが開発し、Androidオープンソースプロジェクトなどで広く利用されています。GoプロジェクトもGerritを利用してコードレビュープロセスを管理しています。
Gerritの重要な概念の一つにChange-IDがあります。これは、Gitコミットメッセージのフッターに付加される一意の識別子です(例: Change-ID: Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
)。
- 目的: GerritはChange-IDを使用して、同じ論理的な変更の異なるバージョン(パッチセット)をグループ化します。開発者がコードレビューのフィードバックを受けてコミットを修正し、再度プッシュした場合、新しいコミットは同じChange-IDを持つため、Gerritはそれを既存のレビューの新しいパッチセットとして認識します。
- GitコミットIDとの違い: GitのコミットID(SHA-1ハッシュ)は、コミットの内容が少しでも変更されると変わってしまいます。しかし、Change-IDは、論理的な変更が同じであれば、コミットが修正されても変わりません。これにより、GerritはGitの履歴とは独立して、特定の変更の進化を追跡できます。
- 自動生成: Gerritは、
commit-msg
Gitフックを提供しており、これをインストールすることで、新しいコミットを作成する際にChange-IDが自動的にコミットメッセージに追加されます。
このコミットメッセージにあるhttps://golang.org/cl/6260049
は、Gerritシステムにおけるこの変更のURLであり、6260049
がそのChange-IDの一部または関連する識別子を示しています。
技術的詳細
このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのテキストファイル、AUTHORS
とCONTRIBUTORS
に、新しい行を追加する非常にシンプルな変更です。
AUTHORS
ファイル: このファイルは、Goプロジェクトの主要な作者(著作権保持者)をリストアップしています。通常、プロジェクトの初期開発者や、プロジェクトに多大な貢献をし、著作権を保持している個人がここに記載されます。CONTRIBUTORS
ファイル: このファイルは、Goプロジェクトに貢献したすべての個人をリストアップしています。これには、コード、ドキュメント、テスト、バグ報告など、様々な形でプロジェクトに貢献した人々が含まれます。CLAに署名した個人は、通常このファイルに追加されます。
これらのファイルは、プロジェクトの透明性と、貢献者への適切なクレジット付与のために維持されています。新しい貢献者がCLAに署名すると、その名前とメールアドレスがこれらのファイルに追加されるのが一般的なプロセスです。
このコミットでは、Peter Kleiweg <pkleiweg@xs4all.nl>
というエントリが両方のファイルに追記されています。これは、Peter Kleiweg氏がGoプロジェクトへの貢献を開始するにあたり、必要な法的手続き(個人のCLA署名)を完了したことを公式に記録するものです。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index 10c5562482..d7cc6f5d7a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -168,6 +168,7 @@ Paul Lalonde <paul.a.lalonde@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Petar Maymounkov <petarm@gmail.com>
Peter Froehlich <peter.hans.froehlich@gmail.com>
+Peter Kleiweg <pkleiweg@xs4all.nl>
Peter Mundy <go.peter.90@gmail.com>
Peter Williams <pwil3058@gmail.com>
Pieter Droogendijk <pieter@binky.org.uk>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index c1ca386309..4e586346d3 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -243,6 +243,7 @@ Paul Lalonde <paul.a.lalonde@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Petar Maymounkov <petarm@gmail.com>
Peter Froehlich <peter.hans.froehlich@gmail.com>
+Peter Kleiweg <pkleiweg@xs4all.nl>
Peter McKenzie <petermck@google.com>
Peter Mundy <go.peter.90@gmail.com>
Péter Szabó <pts@google.com>
コアとなるコードの解説
上記のdiffは、AUTHORS
ファイルとCONTRIBUTORS
ファイルに対する変更を示しています。
--- a/AUTHORS
と+++ b/AUTHORS
: これは、AUTHORS
ファイルの変更前(a)と変更後(b)を示しています。@@ -168,6 +168,7 @@
: これは、変更がファイルの168行目から始まり、変更前は6行、変更後は7行になることを示しています。つまり、1行が追加されたことを意味します。+Peter Kleiweg <pkleiweg@xs4all.nl>
: この行が、AUTHORS
ファイルとCONTRIBUTORS
ファイルの両方に追加された新しいエントリです。Peter Kleiweg氏の名前とメールアドレスが記載されており、彼がGoプロジェクトの正式な貢献者として認識されたことを示しています。
この変更は、Goプロジェクトのガバナンスと法務プロセスの一部であり、新しい貢献者がプロジェクトにコードを提出する前に完了する必要があるステップを反映しています。
関連リンク
参考にした情報源リンク
- GoプロジェクトのCLAに関する情報:
- Gerrit Code ReviewとChange-IDに関する情報:
- https://gerrit-review.googlesource.com/Documentation/intro-user.html#_change_id
- https://www.mediawiki.org/wiki/Gerrit/Commit_message_guidelines#Change-Id
- https://www.cloudera.org/documentation/enterprise/latest/topics/cdh_gerrit_change_id.html
- https://stackoverflow.com/questions/10603372/what-is-gerrit-change-id
- https://graphite.dev/blog/gerrit-change-id
- https://web.mit.edu/gerrit/gerrit-doc/user-changeid.html
- HashiCorpのCLAに関する情報 (参考): https://www.hashicorp.com/community/contribute/cla
- GoCDのCLAに関する情報 (参考): https://www.gocd.org/community/contribute/
- Linux Foundation EasyCLAに関する情報 (参考): https://github.com/communitybridge/easycla