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

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

このコミットは、Go言語プロジェクトの貢献者リストに新しいエントリを追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにDaniel Morsing <daniel.morsing@gmail.com>というエントリが追加されています。これは、Daniel Morsing氏がGoプロジェクトに貢献し、その貢献が正式に認められたことを示しています。

コミット

commit c53450a0722ad34437dbfffdd41a6dbe9e18aff9
Author: Russ Cox <rsc@golang.org>
Date:   Wed Jun 6 16:52:38 2012 -0400

    A+C: Daniel Morsing (individual CLA)
    
    R=golang-dev, bradfitz
    CC=golang-dev
    https://golang.org/cl/6307048

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

https://github.com/golang/go/commit/c53450a0722ad34437dbfffdd41a6dbe9e18aff9

元コミット内容

A+C: Daniel Morsing (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6307048

このコミットメッセージは、Daniel Morsing氏が個人のCLA(Contributor License Agreement)を提出し、その結果として彼がプロジェクトのAUTHORSおよびCONTRIBUTORSリストに追加されたことを示しています。R=はレビュー担当者(golang-devメーリングリストとbradfitz氏)、CC=はカーボンコピー(golang-devメーリングリスト)を示しています。https://golang.org/cl/6307048は、この変更に関連するGerrit Change-IDへのリンクです。

変更の背景

オープンソースプロジェクトにおいて、貢献者がコードベースに貢献する際には、その貢献がプロジェクトのライセンスの下で適切に利用されることを保証するために、Contributor License Agreement (CLA) を締結することが一般的です。CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトがその貢献を自由に利用、配布、変更することを許可する法的な合意です。

このコミットの背景には、Daniel Morsing氏がGoプロジェクトに対して何らかの貢献(コード、ドキュメント、バグ報告など)を行い、その貢献を正式にプロジェクトに組み込むために個人のCLAを締結したという経緯があります。CLAの締結が完了したことで、プロジェクトの公式な貢献者リストに彼の名前が追加されることになりました。これは、プロジェクトの透明性を保ち、誰がどのような形でプロジェクトに貢献しているかを明確にするための標準的なプラクティスです。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトにおいて、貢献者とプロジェクトオーナー(またはプロジェクトをホストする組織)の間で交わされる法的な契約です。主な目的は以下の通りです。

  1. ライセンスの明確化: 貢献されたコードがプロジェクトのライセンス(例: Apache License, MIT License)の下で適切に利用されることを保証します。これにより、将来的なライセンスに関する紛争を防ぎます。
  2. 著作権の管理: 貢献者が自身の著作権を保持しつつ、プロジェクトがその貢献を自由に利用、配布、変更、サブライセンスすることを許可します。これにより、プロジェクトは貢献されたコードを安心して統合し、配布することができます。
  3. プロジェクトの安定性: プロジェクトのコードベース全体が単一のライセンスの下で管理されることを保証し、法的なリスクを軽減します。

CLAには「個人CLA」と「企業CLA」の2種類があります。個人CLAは個人が自身の貢献に対して締結するもので、企業CLAは企業が従業員の貢献に対して締結するものです。このコミットでは「individual CLA」と明記されているため、Daniel Morsing氏が個人としてCLAを締結したことがわかります。

AUTHORSファイルと CONTRIBUTORSファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するためにAUTHORSファイルやCONTRIBUTORSファイルを使用します。

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、プロジェクトの初期段階から深く関わっている人々をリストアップするために使用されます。著作権表示の目的で利用されることもあります。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての人々(コードの寄稿者、バグ報告者、ドキュメント作成者、テスターなど)をリストアップするために使用されます。これは、プロジェクトへの貢献を認識し、感謝を示すためのものです。

これらのファイルは、プロジェクトの透明性とコミュニティの健全性を示す重要な要素です。

Gerrit Change-ID

https://golang.org/cl/6307048は、Goプロジェクトが使用しているコードレビューシステムであるGerritのChange-IDを指しています。GerritはGitの上に構築されたWebベースのコードレビューツールで、変更がメインのコードベースにマージされる前に、チームメンバーがコードをレビューし、承認することを可能にします。各変更(コミット)には一意のChange-IDが割り当てられ、これを通じてレビュープロセスを追跡できます。

技術的詳細

このコミットは、Goプロジェクトのソースコードリポジトリ内の2つのテキストファイル、AUTHORSCONTRIBUTORSを修正しています。これらのファイルは、プロジェクトのメタデータの一部として機能し、プロジェクトの歴史と貢献者を記録する役割を担っています。

ファイルの変更は非常にシンプルで、新しい行を追加する形で行われています。これは、Gitの差分表示(diff)からも明らかです。

diff --git a/AUTHORS b/AUTHORS
index c609924f2d..42d7e82b42 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -57,6 +57,7 @@ Damian Gryski <dgryski@gmail.com>
 Dan Sinclair <dan.sinclair@gmail.com>
 Daniel Fleischman <danielfleischman@gmail.com>
 Daniel Krech <eikeon@eikeon.com>
+Daniel Morsing <daniel.morsing@gmail.com>
 Daniel Theophanes <kardianos@gmail.com>
 Darren Elwood <darren@textnode.com>
 Dave Cheney <dave@cheney.net>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index c8ffda1713..e24b38a4a6 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -97,6 +97,7 @@ Damian Gryski <dgryski@gmail.com>
 Dan Sinclair <dan.sinclair@gmail.com>
 Daniel Fleischman <danielfleischman@gmail.com>
 Daniel Krech <eikeon@eikeon.com>
+Daniel Morsing <daniel.morsing@gmail.com>
 Daniel Nadasi <dnadasi@google.com>
 Daniel Theophanes <kardianos@gmail.com>
 Darren Elwood <darren@textnode.com>

この差分は、AUTHORSファイルとCONTRIBUTORSファイルの両方に、既存のDaniel Krechのエントリの直後にDaniel Morsing <daniel.morsing@gmail.com>という行が追加されたことを示しています。ファイルのインデックス(c609924f2d..42d7e82b42およびc8ffda1713..e24b38a4a6)は、変更前後のファイルのハッシュ値を示しており、ファイルの内容が変更されたことを確認できます。100644は、これらのファイルが通常のファイルであり、実行可能ではないことを示すGitのモードです。

このような変更は、通常、自動化されたスクリプトによって行われるか、または手動で追加された後にレビュープロセスを経てマージされます。Goプロジェクトのような大規模なオープンソースプロジェクトでは、CLAの締結と貢献者リストの更新は、プロジェクトのガバナンスと法務部門によって厳密に管理されるプロセスの一部です。

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

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

変更されたファイルと行数は以下の通りです。

  • AUTHORS: 1行追加
  • CONTRIBUTORS: 1行追加

具体的な変更箇所は以下の通りです。

AUTHORSファイル:

--- a/AUTHORS
+++ b/AUTHORS
@@ -57,6 +57,7 @@ Damian Gryski <dgryski@gmail.com>
 Dan Sinclair <dan.sinclair@gmail.com>
 Daniel Fleischman <danielfleischman@gmail.com>
 Daniel Krech <eikeon@eikeon.com>
+Daniel Morsing <daniel.morsing@gmail.com>
 Daniel Theophanes <kardianos@gmail.com>
 Darren Elwood <darren@textnode.com>
 Dave Cheney <dave@cheney.net>

CONTRIBUTORSファイル:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -97,6 +97,7 @@ Damian Gryski <dgryski@gmail.com>
 Dan Sinclair <dan.sinclair@gmail.com>
 Daniel Fleischman <danielfleischman@gmail.com>
 Daniel Krech <eikeon@eikeon.com>
+Daniel Morsing <daniel.morsing@gmail.com>
 Daniel Nadasi <dnadasi@google.com>
 Daniel Theophanes <kardianos@gmail.com>
 Darren Elwood <darren@textnode.com>

両ファイルにおいて、Daniel Krechのエントリの直後にDaniel Morsing <daniel.morsing@gmail.com>という行が挿入されています。

コアとなるコードの解説

このコミットは、Go言語のランタイムやライブラリのコードを変更するものではなく、プロジェクトの管理に関する変更です。したがって、Go言語の機能的な側面に関する「コアとなるコードの解説」は適用されません。

しかし、この変更が意味する「コア」は、オープンソースプロジェクトのガバナンスとコミュニティ管理の側面です。AUTHORSCONTRIBUTORSファイルは、プロジェクトの歴史と貢献を記録する上で不可欠なドキュメントです。これらのファイルが正確かつ最新の状態に保たれることは、プロジェクトの透明性を高め、貢献者への正当な評価を提供し、将来的な法的な問題を防ぐ上で非常に重要です。

このコミットは、Daniel Morsing氏がGoプロジェクトの正式な貢献者として認められたことを、プロジェクトの公式記録に反映させるという、管理上および法務上の重要なステップを示しています。

関連リンク

  • Go言語公式ウェブサイト: https://golang.org/
  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • Gerrit Code Review: Goプロジェクトがコードレビューに使用しているシステム。golang.org/cl/のURLはGerritの変更リストを指します。

参考にした情報源リンク

  • Git公式ドキュメント: Gitのコミット、差分、リポジトリ管理に関する基本的な情報。
  • オープンソースプロジェクトにおけるCLAの概念: Contributor License Agreementに関する一般的な情報源(例: Linux Foundation, Apache Software Foundationなどのウェブサイト)。
  • Goプロジェクトの貢献ガイドライン: Goプロジェクトへの貢献方法やCLAに関する情報が記載されている可能性のある公式ドキュメント。
  • Gerrit Code Reviewのドキュメント: Gerritの仕組みやChange-IDに関する情報。