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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるDmitriy Shelenin氏の情報を追加するものです。これは、彼が個人のContributor License Agreement (CLA) に署名したことを示すものであり、addcaというツールによって自動生成されました。

コミット

commit a545aae35aab6d627e26d90d5e356fb85881111c
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Thu Aug 8 10:08:45 2013 -0700

    A+C: Dmitriy Shelenin (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/12671043
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 754e0e05dc..5e22de5bc4 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -97,6 +97,7 @@ David Jakob Fritz <david.jakob.fritz@gmail.com>
 David Titarenco <david.titarenco@gmail.com>
 Dean Prichard <dean.prichard@gmail.com>
 Devon H. O'Dell <devon.odell@gmail.com>
+Dmitriy Shelenin <deemok@gmail.com>
 Dmitry Chestnykh <dchest@gmail.com>
 Dominik Honnef <dominik.honnef@gmail.com>
 Donovan Hide <donovanhide@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 7860958b1e..e8c2fafc75 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -154,6 +154,7 @@ David Symonds <dsymonds@golang.org>
 David Titarenco <david.titarenco@gmail.com>
 Dean Prichard <dean.prichard@gmail.com>
 Devon H. O'Dell <devon.odell@gmail.com>
+Dmitriy Shelenin <deemok@gmail.com>
 Dmitriy Vyukov <dvyukov@google.com>
 Dmitry Chestnykh <dchest@gmail.com>
 Dominik Honnef <dominik.honnef@gmail.com>

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

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

元コミット内容

このコミットは、Goプロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに、Dmitriy Shelenin氏の名前とメールアドレスを追加することを目的としています。コミットメッセージの "A+C" は "AUTHORS + CONTRIBUTORS" を意味し、"individual CLA" は彼が個人として貢献者ライセンス同意書に署名したことを示しています。また、この変更がaddcaというツールによって自動生成されたものであることも明記されています。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際に、プロジェクトに対してそのコードを使用、配布、変更する権利を付与することを明確にするために、Contributor License Agreement (CLA) の署名が求められることが一般的です。

このコミットは、Dmitriy Shelenin氏がGoプロジェクトへの貢献を開始するにあたり、必要なCLAに署名したことを受けて行われました。CLAに署名した貢献者の情報は、プロジェクトの公式な記録としてAUTHORSおよびCONTRIBUTORSファイルに追記されます。これにより、プロジェクトの法的健全性が保たれ、将来的なライセンスに関する問題を防ぐことができます。addcaツールは、このプロセスを自動化し、手動でのエラーを防ぐために使用されます。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、その貢献物の著作権をプロジェクトの所有者(または指定された団体)に譲渡するか、または特定のライセンスの下で使用することを許可する法的な合意書です。

CLAの主な目的は以下の通りです。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にし、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの統一性: プロジェクト全体で一貫したライセンスモデルを維持することを可能にします。例えば、プロジェクトがMITライセンスを採用している場合でも、貢献されたコードが別のライセンスで提供されることを防ぎます。
  3. 再ライセンスの可能性: プロジェクトの所有者が将来的にプロジェクトのライセンスを変更する際に、すべての貢献物に対してその変更を適用できる権利を確保します。これは、特に企業が主導するプロジェクトで重要です。

Goプロジェクトの場合、GoogleがCLAを要求しており、これによりGoのコードベース全体の法的整合性が保たれています。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORSファイル: 通常、プロジェクトの主要な作者や、著作権を保持する個人または団体をリストアップします。このファイルは、プロジェクトの著作権表示と密接に関連していることが多いです。
  • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人をリストアップします。これには、コードの提出者だけでなく、ドキュメントの作成者、バグ報告者、テスター、翻訳者なども含まれる場合があります。このファイルは、プロジェクトへの貢献を認識し、感謝を示す目的で作成されます。

Goプロジェクトでは、これらのファイルがCLAに署名した貢献者の公式な記録として機能しています。

addcaツール

addcaは "add Contributor Agreement" の略であると推測されます。これは、Goプロジェクトの内部ツールであり、CLAに署名した新しい貢献者の情報をAUTHORSおよびCONTRIBUTORSファイルに自動的に追加するために使用されます。このような自動化ツールは、手作業によるミスを防ぎ、貢献者管理プロセスを効率化するために大規模なプロジェクトでよく採用されます。具体的な実装はGoプロジェクトの内部リポジトリに存在し、一般には公開されていませんが、その機能はコミットメッセージから明らかです。

技術的詳細

このコミットは、Goプロジェクトのソースコード管理におけるメタデータ管理の一例です。AUTHORSCONTRIBUTORSファイルは、プロジェクトの歴史と法的側面を記録する重要なテキストファイルです。

変更自体は非常にシンプルで、両方のファイルに新しい行を追加するだけです。しかし、その背後にはCLAという法的なプロセスと、addcaという自動化ツールが存在します。

addcaツールは、おそらく以下のような処理を行っています。

  1. 新しい貢献者がCLAに署名したことを確認するシステム(Googleの内部システムなど)と連携します。
  2. 署名が確認された貢献者の名前とメールアドレスを取得します。
  3. GoリポジトリのAUTHORSファイルとCONTRIBUTORSファイルを読み込みます。
  4. 既存のリストのアルファベット順(または他の定義された順序)を維持するように、新しい貢献者の情報を適切な位置に挿入します。
  5. 変更されたファイルをコミットとしてステージングし、コミットメッセージを自動生成します。
  6. 最終的に、このコミットがGoリポジトリにプッシュされます。

この自動化により、手動でのファイル編集に伴うタイポやフォーマットの不一致といったヒューマンエラーが排除され、一貫性のある貢献者リストが維持されます。

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

このコミットによるコードの変更は、以下の2つのファイルに対するものです。

  1. AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -97,6 +97,7 @@ David Jakob Fritz <david.jakob.fritz@gmail.com>
     David Titarenco <david.titarenco@gmail.com>
     Dean Prichard <dean.prichard@gmail.com>
     Devon H. O'Dell <devon.odell@gmail.com>
    +Dmitriy Shelenin <deemok@gmail.com>
     Dmitry Chestnykh <dchest@gmail.com>
     Dominik Honnef <dominik.honnef@gmail.com>
     Donovan Hide <donovanhide@gmail.com>
    

    97行目の後に、Dmitriy Shelenin <deemok@gmail.com>という行が追加されています。

  2. CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -154,6 +154,7 @@ David Symonds <dsymonds@golang.org>
     David Titarenco <david.titarenco@gmail.com>
     Dean Prichard <dean.prichard@gmail.com>
     Devon H. O'Dell <devon.odell@gmail.com>
    +Dmitriy Shelenin <deemok@gmail.com>
     Dmitriy Vyukov <dvyukov@google.com>
     Dmitry Chestnykh <dchest@gmail.com>
     Dominik Honnef <dominik.honnef@gmail.com>
    

    154行目の後に、Dmitriy Shelenin <deemok@gmail.com>という行が追加されています。

コアとなるコードの解説

追加された行は、貢献者の氏名とメールアドレスをシンプルなテキスト形式で記述したものです。これは、Goプロジェクトの貢献者リストの標準的なフォーマットに従っています。

  • Dmitriy Shelenin: 貢献者の氏名。
  • <deemok@gmail.com>: 貢献者のメールアドレス。

これらの情報は、プロジェクトの履歴を追跡し、特定のコード変更が誰によって行われたかを識別するのに役立ちます。また、前述の通り、CLAの法的要件を満たすための公式な記録の一部でもあります。

この変更自体は機能的なコードの変更ではなく、プロジェクトのメタデータに対する更新です。しかし、オープンソースプロジェクトのガバナンスと法的側面において重要な意味を持ちます。

関連リンク

参考にした情報源リンク