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

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

コミット

commit ab7c8a620049c52bd437317272d2bd18a8ac4e1b
Author: Andrew Gerrand <adg@golang.org>
Date:   Fri Sep 14 12:26:45 2012 +1000

    A+C: add Xing Xing (individual CLA)
    
    R=golang-dev, nigeltao
    CC=golang-dev
    https://golang.org/cl/6493121

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

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

元コミット内容

A+C: add Xing Xing (individual CLA)

R=golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/6493121

変更の背景

このコミットは、Goプロジェクトへの貢献者リストに「Xing Xing」氏を追加するものです。コミットメッセージにある「individual CLA」という記述が示す通り、Xing Xing氏がGoプロジェクトに対して個人貢献者ライセンス契約(Individual Contributor License Agreement, ICLA)を締結したことを背景としています。

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、知的財産権の管理と保護が非常に重要です。貢献者がコードを提出する際にCLAに署名することで、プロジェクトは提出されたコードを使用、配布、変更する権利を明確に取得し、将来的な法的な問題を回避することができます。これにより、プロジェクトの持続可能性と健全性が保たれます。

このコミットは、Xing Xing氏がGoプロジェクトに貢献する準備が整い、その貢献が正式に認められるための手続きの一環として行われました。

前提知識の解説

コントリビューターライセンス契約 (CLA)

コントリビューターライセンス契約(Contributor License Agreement, CLA)は、オープンソースプロジェクトにおいて、貢献者がそのプロジェクトに提出するコードやドキュメントなどの著作物に関する権利を、プロジェクトの所有者(またはプロジェクトをホストする組織)に付与するための法的な合意書です。

CLAには主に以下の目的があります。

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、プロジェクトがそのコードをどのように利用できるかを明確にします。これにより、将来的に著作権侵害などの法的な紛争が発生するリスクを低減します。
  2. ライセンスの統一性: プロジェクト全体のコードベースが単一のライセンス(例: Apache License 2.0, MIT Licenseなど)の下で配布されることを保証します。これにより、異なるライセンスのコードが混在することによる複雑さを避けることができます。
  3. プロジェクトの保護: プロジェクトの所有者(例: Google)が、貢献されたコードを自由に利用、再ライセンス、配布できる権利を持つことで、プロジェクトの継続的な開発と進化を保証します。

CLAには、個人が署名する「Individual CLA (ICLA)」と、企業や組織が署名する「Corporate CLA (CCLA)」の2種類があります。このコミットでは「individual CLA」と明記されているため、Xing Xing氏が個人として契約を締結したことを意味します。

AUTHORS および CONTRIBUTORS ファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために特定のファイルを使用します。Goプロジェクトでは、AUTHORSCONTRIBUTORSという2つのファイルがその役割を担っています。

  • AUTHORS: 主にプロジェクトの主要な開発者や、コードベースに大きな影響を与えた人々をリストアップするために使用されます。
  • CONTRIBUTORS: プロジェクトに何らかの形で貢献したすべての人々(コードの提出者、バグ報告者、ドキュメントの改善者など)をより広範にリストアップするために使用されます。

これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの透明性を高め、誰がプロジェクトの発展に寄与したかを明確にする役割を果たします。新しい貢献者がCLAに署名し、その貢献が正式に認められると、通常これらのファイルに名前が追加されます。

技術的詳細

このコミットの技術的な変更は非常にシンプルで、GoプロジェクトのルートディレクトリにあるAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるXing Xing氏の名前とメールアドレスを追加するものです。

ファイルの変更は以下の通りです。

  • AUTHORSファイル: 231行目と232行目の間に新しい行が挿入され、Xing Xing <mikespook@gmail.com>が追加されています。
  • CONTRIBUTORSファイル: 332行目と333行目の間に新しい行が挿入され、Xing Xing <mikespook@gmail.com>が追加されています。

これらのファイルはプレーンテキスト形式であり、各行に貢献者の名前とメールアドレスが記述されています。Gitの差分表示(diff)を見ると、既存のリストのアルファベット順に挿入されていることがわかります。これは、リストの可読性と管理を容易にするための一般的な慣習です。

この変更自体はコードの機能に影響を与えるものではなく、プロジェクトのメタデータの一部を更新するものです。しかし、前述のCLAの背景を考慮すると、これはGoプロジェクトのガバナンスと法務的な側面において重要なステップとなります。

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

このコミットでは、以下の2つのファイルが変更されています。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに対する変更は、新しい行の追加のみです。

AUTHORS ファイルの変更差分:

--- a/AUTHORS
+++ b/AUTHORS
@@ -231,6 +231,7 @@ Vinu Rajashekhar <vinutheraj@gmail.com>
 Volker Dobler <dr.volker.dobler@gmail.com>
 Wei Guangjing <vcc.163@gmail.com>
 William Josephson <wjosephson@gmail.com>
+Xing Xing <mikespook@gmail.com>
 Yasuhiro Matsumoto <mattn.jp@gmail.com>
 Yissakhar Z. Beck <yissakhar.beck@gmail.com>
 Yongjian Xu <i3dmaster@gmail.com>

CONTRIBUTORS ファイルの変更差分:

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -332,6 +332,7 @@ Volker Dobler <dr.volker.dobler@gmail.com>
 Wei Guangjing <vcc.163@gmail.com>
 William Chan <willchan@chromium.org>
 William Josephson <wjosephson@gmail.com>
+Xing Xing <mikespook@gmail.com>
 Yasuhiro Matsumoto <mattn.jp@gmail.com>
 Yissakhar Z. Beck <yissakhar.beck@gmail.com>
 Yongjian Xu <i3dmaster@gmail.com>

コアとなるコードの解説

このコミットにおける「コアとなるコード」は、Goプロジェクトの貢献者情報を記録するAUTHORSCONTRIBUTORSファイルそのものです。

  • AUTHORSファイル:
    • +Xing Xing <mikespook@gmail.com> という行が232行目に追加されました。これは、Xing Xing氏がGoプロジェクトの主要な貢献者の一員として認識されたことを示します。
  • CONTRIBUTORSファイル:
    • +Xing Xing <mikespook@gmail.com> という行が333行目に追加されました。これは、Xing Xing氏がGoプロジェクトに貢献したすべての人々のリストに加わったことを示します。

これらの変更は、Goプロジェクトのガバナンスプロセスの一部であり、新しい貢献者が正式にプロジェクトコミュニティの一員として認められたことを示す記録的な意味合いが強いです。コードの機能的な振る舞いを変更するものではなく、プロジェクトのメタデータと法務的な側面を更新するものです。

関連リンク

参考にした情報源リンク