[インデックス 12568] ファイルの概要
このコミットは、Goプロジェクトのコントリビューターリストに新しい個人、Ingo Oeser氏を追加するものです。具体的には、AUTHORS
ファイルとCONTRIBUTORS
ファイルに彼の名前とメールアドレスが追記されています。これは、彼がGoプロジェクトへの貢献を開始するにあたり、個人コントリビューターライセンス契約(CLA)を締結したことを示しています。
コミット
- コミットハッシュ:
b23b001bd2e780ddb1eacded10797e92be1f3650
- 作者: Russ Cox rsc@golang.org
- 日付: Mon Mar 12 14:25:52 2012 -0400
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/b23b001bd2e780ddb1eacded10797e92be1f3650
元コミット内容
A+C: add Ingo Oeser (individual CLA)
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5794061
変更の背景
このコミットの背景には、オープンソースプロジェクト、特にGoogleが主導するGoのような大規模プロジェクトにおける貢献の管理と法的な側面があります。新しいコントリビューターがコードベースに貢献する際、プロジェクトは通常、その貢献がプロジェクトのライセンスと互換性があり、将来的な法的な問題を防ぐために、コントリビューターライセンス契約(CLA)の締結を求めます。
Ingo Oeser氏がGoプロジェクトに貢献を開始するにあたり、彼は個人のCLAを締結しました。このCLAの締結が完了したことを受けて、彼の名前がプロジェクトの正式な貢献者リストであるAUTHORS
ファイルとCONTRIBUTORS
ファイルに追加されました。これにより、彼の貢献が正式に認識され、プロジェクトの法的な枠組みの中で適切に扱われるようになります。
AUTHORS
ファイルは、プロジェクトの主要な作者や貢献者を列挙するものであり、CONTRIBUTORS
ファイルはより広範な貢献者(コードだけでなく、ドキュメント、テスト、レビューなど様々な形で貢献した人々)をリストアップするものです。これらのファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを保証するために重要です。
前提知識の解説
AUTHORSファイルと CONTRIBUTORSファイル
多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するためにAUTHORS
やCONTRIBUTORS
といったファイルを使用します。
AUTHORS
ファイル: 主にプロジェクトの初期開発者や、コードベースに大きな影響を与えた主要な貢献者をリストアップするために使われます。著作権表示の根拠となることもあります。CONTRIBUTORS
ファイル:AUTHORS
ファイルよりも広範な意味で、コードのコミットだけでなく、バグ報告、ドキュメントの改善、テストの作成、レビュー、コミュニティサポートなど、様々な形でプロジェクトに貢献した人々をリストアップします。Goプロジェクトでは、これらのファイルは貢献者の名前とメールアドレスをシンプルなテキスト形式で保持しています。
コントリビューターライセンス契約 (CLA: Contributor License Agreement)
CLAは、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献に対する著作権をプロジェクトの所有者(またはプロジェクトをホストする組織)に譲渡するか、または特定のライセンスの下で利用することを許可する法的な合意書です。
CLAの主な目的:
- 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
- ライセンスの統一性: プロジェクト全体でコードのライセンスを統一し、異なるライセンスのコードが混在することによる複雑さを避けます。これにより、プロジェクトのライセンス変更や再ライセンスが容易になります。
- 法的な保護: プロジェクトの所有者やユーザーが、貢献されたコードを安心して利用できるようにします。
GoプロジェクトのようなGoogleが主導するプロジェクトでは、通常、貢献者はGoogleのCLAに署名する必要があります。これにより、Googleは貢献されたコードをGoプロジェクトのライセンス(通常はBSDライセンス)の下で配布する権利を得るとともに、将来的に必要に応じてライセンスを変更する柔軟性を持ちます。
Goプロジェクトにおける貢献プロセス
Goプロジェクトへの貢献は、通常、以下のステップを踏みます。
- CLAの締結: 最初の貢献を行う前に、個人または企業CLAを締結します。
- コードの作成: 変更を加えたいコードを作成します。
- 変更リスト (CL: Change List) の作成:
git-cl
などのツールを使用して、変更をレビューシステムにアップロードします。Goプロジェクトでは、Gerritをベースとした独自のコードレビューシステムを使用しています。 - レビューと承認: 変更はGoチームのメンバーや他の貢献者によってレビューされます。承認されると、変更はメインのコードベースにマージされます。
- 貢献者リストへの追加: CLAが締結され、最初の貢献がマージされると、このコミットのように
AUTHORS
およびCONTRIBUTORS
ファイルに名前が追加されることがあります。
技術的詳細
このコミットは、Goプロジェクトのルートディレクトリにある2つのプレーンテキストファイル、AUTHORS
とCONTRIBUTORS
に新しい行を追加するものです。
-
AUTHORS
ファイルへの変更:Ingo Oeser <nightlyone@googlemail.com>
という形式で、彼の名前と主要なメールアドレスが追加されています。このファイルは、プロジェクトの主要な作者をアルファベット順にリストアップしているため、適切な位置に挿入されています。 -
CONTRIBUTORS
ファイルへの変更:Ingo Oeser <nightlyone@googlemail.com> <nightlyone@gmail.com>
という形式で、彼の名前と複数のメールアドレスが追加されています。CONTRIBUTORS
ファイルは、より広範な貢献者をリストアップするため、複数の連絡先情報が記載されることがあります。こちらもアルファベット順に挿入されています。
これらのファイルは、Gitのバージョン管理下にあり、変更がコミットされることでプロジェクトの履歴の一部となります。
コアとなるコードの変更箇所
diff --git a/AUTHORS b/AUTHORS
index e5ca363066..49ce5f0aff 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -89,6 +89,7 @@ Harley Laue <losinggeneration@gmail.com>
Hector Chu <hectorchu@gmail.com>
Hong Ruiqi <hongruiqi@gmail.com>
Icarus Sparry <golang@icarus.freeuk.com>
+Ingo Oeser <nightlyone@googlemail.com>
Isaac Wagner <ibw@isaacwagner.me>
James Fysh <james.fysh@gmail.com>
James Meneghello <rawrz0r@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 738426c0d3..24815c9641 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -133,6 +133,7 @@ Hector Chu <hectorchu@gmail.com>
Hong Ruiqi <hongruiqi@gmail.com>
Ian Lance Taylor <iant@golang.org>
Icarus Sparry <golang@icarus.freeuk.com>
+Ingo Oeser <nightlyone@googlemail.com> <nightlyone@gmail.com>
Isaac Wagner <ibw@isaacwagner.me>
Ivan Krasin <krasin@golang.org>
Jacob Baskin <jbaskin@google.com>
コアとなるコードの解説
上記のdiffは、AUTHORS
ファイルとCONTRIBUTORS
ファイルに対する変更を示しています。
-
AUTHORS
ファイル (diff --git a/AUTHORS b/AUTHORS
):@@ -89,6 +89,7 @@
: これは、変更が元のファイルの89行目から始まり、6行が変更され、新しいファイルでは89行目から7行になることを示しています。+Ingo Oeser <nightlyone@googlemail.com>
: この行がAUTHORS
ファイルに追加されました。これは、Ingo Oeser氏がGoプロジェクトの正式な作者の一人として認識されたことを意味します。
-
CONTRIBUTORS
ファイル (diff --git a/CONTRIBUTORS b/CONTRIBUTORS
):@@ -133,6 +133,7 @@
: これは、変更が元のファイルの133行目から始まり、6行が変更され、新しいファイルでは133行目から7行になることを示しています。+Ingo Oeser <nightlyone@googlemail.com> <nightlyone@gmail.com>
: この行がCONTRIBUTORS
ファイルに追加されました。ここでは、Ingo Oeser氏の主要なメールアドレスに加えて、もう一つのメールアドレスも記載されています。これは、彼がGoプロジェクトに貢献した広範な貢献者の一人として認識されたことを意味します。
両ファイルへの追加は、既存のリストのアルファベット順を維持するように行われています。これは、これらのファイルが手動で管理されており、可読性と検索性を保つためにソートされていることを示唆しています。
関連リンク
- Goプロジェクトの変更リスト (CL) へのリンク: https://golang.org/cl/5794061
参考にした情報源リンク
- GoプロジェクトのCONTRIBUTORSファイル: https://github.com/golang/go/blob/master/CONTRIBUTORS
- GoプロジェクトのAUTHORSファイル: https://github.com/golang/go/blob/master/AUTHORS
- Google Developers - Contributor License Agreements (CLA): https://cla.developers.google.com/
- Wikipedia - Contributor License Agreement: https://en.wikipedia.org/wiki/Contributor_License_Agreement
- Go Contribution Guidelines (一般的なオープンソースプロジェクトの貢献ガイドラインも参考にしました): https://go.dev/doc/contribute (これは現在のGoの貢献ガイドラインですが、当時のプロセスも同様の原則に基づいています)
- Git diffの読み方に関する一般的な情報源 (例: Atlassian Git Tutorial): https://www.atlassian.com/git/tutorials/comparing-changes/git-diff
- Goプロジェクトのコードレビュープロセスに関する情報 (Gerrit): https://go.dev/doc/contribute#code_review (これも現在の情報ですが、当時のシステムもGerritベースでした)