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

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

このコミットは、Goプロジェクトの貢献者リストに新しい個人貢献者を追加するものです。具体的には、AUTHORSファイルとCONTRIBUTORSファイルにWillem van der Schyff氏の名前とメールアドレスが追加されています。

コミット

commit 0ae408eb727e8abf25cd7e7001422dc7684c16f6
Author: Adam Langley <agl@golang.org>
Date:   Sun Oct 21 14:20:17 2012 +1100

    A+C: add Willem van der Schyff (Individual CLA).
    
    R=golang-dev, bradfitz, dave
    CC=golang-dev
    https://golang.org/cl/6733047

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

https://github.com/golang/go/commit/0ae408eb727e8abf25cd7e7001422dc7684c16f6

元コミット内容

A+C: add Willem van der Schyff (Individual CLA).

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

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者の管理と、知的財産権の明確化という重要な側面があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、多数の個人や企業がコードベースに貢献します。これらの貢献がプロジェクトのライセンス(通常はBSDライセンスなど)の下で適切に利用されることを保証するためには、貢献者からの同意を得る必要があります。

この同意は通常、Contributor License Agreement (CLA) と呼ばれる法的な文書を通じて行われます。CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトの所有者(この場合はGoogle)がその貢献をプロジェクトのライセンスの下で利用、配布、変更する権利を持つことを明確にします。これにより、将来的な著作権に関する紛争を防ぎ、プロジェクトの法的健全性を保つことができます。

したがって、このコミットは、Willem van der Schyff氏がGoプロジェクトに貢献する準備が整い、その貢献が法的に適切に扱われるように、氏の名前を正式な貢献者リストに追加する目的で行われました。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、オープンソースプロジェクトにおいて、貢献者が自身のコードやドキュメントなどの貢献物に対する著作権をプロジェクトの所有者(または指定された団体)に許諾するための法的な契約です。これにより、プロジェクトの所有者は、貢献されたコードをプロジェクトのライセンス(例: Apache License, MIT License, BSD Licenseなど)の下で自由に利用、配布、変更、サブライセンスする権利を得ます。

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

  1. 知的財産権の明確化: 貢献されたコードの著作権が誰に帰属し、どのように利用されるかを明確にします。これにより、将来的な著作権侵害の訴訟リスクを軽減します。
  2. ライセンスの一貫性: プロジェクト全体のコードベースが単一のライセンスの下で提供されることを保証し、ライセンスの混在による複雑さを回避します。
  3. 法的保護: プロジェクトの所有者やユーザーが、貢献されたコードを安心して利用できるようにします。

CLAには大きく分けて「Individual CLA(個人CLA)」と「Corporate CLA(企業CLA)」の2種類があります。

  • Individual CLA: 個人が自身の名義でプロジェクトに貢献する際に締結するものです。このコミットで言及されているのはこちらです。
  • Corporate CLA: 企業が従業員の貢献を代表してプロジェクトに貢献する際に締結するものです。企業は、従業員が作成したコードの著作権を所有していることを確認し、そのコードをプロジェクトに提供する権利を許諾します。

Goプロジェクトでは、Googleがプロジェクトの所有者であり、貢献者はGoogleに対してCLAを締結します。

AUTHORSファイルとCONTRIBUTORSファイル

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

  • AUTHORS: このファイルは、プロジェクトの主要な作者や、特に重要な貢献をした人々をリストアップするために使用されます。通常、著作権表示に関連する情報が含まれることがあります。
  • CONTRIBUTORS: このファイルは、プロジェクトに何らかの形で貢献したすべての個人をリストアップするために使用されます。これには、コードのコミットだけでなく、バグ報告、ドキュメントの改善、テストの作成など、幅広い貢献が含まれます。

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割も果たします。

Gerrit (golang.org/cl)

https://golang.org/cl/6733047というリンクは、Goプロジェクトがコードレビューに利用しているGerritシステムへのリンクです。Gerritは、Gitリポジトリ上でコードレビューを行うためのウェブベースのツールです。

Goプロジェクトの開発ワークフローは以下のようになっています。

  1. 開発者は変更をローカルで作成します。
  2. 変更をGerritにアップロードし、レビューをリクエストします。このアップロードされた変更は「Change-list (CL)」と呼ばれ、一意のID(例: 6733047)が割り当てられます。
  3. 他の開発者(レビュアー)がCLをレビューし、コメントや提案を行います。
  4. レビューが承認されると、変更はGitリポジトリにマージされます。

このコミットメッセージに含まれるGerritのリンクは、このコミットがGerrit上でレビューされ、承認された結果としてマージされたことを示しています。

技術的詳細

このコミット自体は、Go言語のコードベースに対する機能的な変更やバグ修正ではありません。これは、プロジェクトのメタデータ、特に貢献者リストの更新です。技術的な観点からは、以下の点が重要です。

  1. テキストファイルの更新: AUTHORSCONTRIBUTORSはプレーンなテキストファイルです。変更は単純な行の追加であり、特別なフォーマットや構造は必要ありません。
  2. Gitの差分: コミットメッセージに含まれるdiff情報は、Gitがどのようにファイルの変更を追跡しているかを示しています。
    • --- a/AUTHORS+++ b/AUTHORSは、それぞれ変更前のAUTHORSファイルと変更後のAUTHORSファイルを示します。
    • index dcfc031b47..213f844ff1 100644は、ファイルのGitオブジェクトハッシュの変更と、ファイルモード(ここでは100644で通常のファイルを示します)を示します。
    • @@ -240,6 +240,7 @@は、変更がファイルの240行目から始まり、6行が変更され、新しいファイルでは240行目から7行が変更されたことを示します(実際には1行追加)。
    • +Willem van der Schyff <willemvds@gmail.com>の行頭の+は、この行が追加されたことを示します。
  3. コミットメッセージの慣習: Goプロジェクトのコミットメッセージには特定の慣習があります。
    • A+C:: これは、AUTHORSファイルとCONTRIBUTORSファイルの両方が変更されたことを示す略語です。
    • R=golang-dev, bradfitz, dave: R=はレビュアーを示します。golang-devはGo開発者メーリングリスト、bradfitzdaveは特定の個人レビュアーです。
    • CC=golang-dev: CC=はカーボンコピー(通知先)を示します。
    • GerritのCLリンク: 前述の通り、コードレビューシステムへのリンクです。

これらの要素は、Goプロジェクトがどのように貢献を管理し、コードの品質と法的健全性を維持しているかを示すものです。

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

このコミットでは、Go言語のソースコード自体への変更はありません。変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに、Willem van der Schyff <willemvds@gmail.com>という行が追加されています。

AUTHORSファイルへの変更

--- a/AUTHORS
+++ b/AUTHORS
@@ -240,6 +240,7 @@ Vincent Vanackere <vincent.vanackere@gmail.com>
 Vinu Rajashekhar <vinutheraj@gmail.com>
 Volker Dobler <dr.volker.dobler@gmail.com>
 Wei Guangjing <vcc.163@gmail.com>
+Willem van der Schyff <willemvds@gmail.com>
 William Josephson <wjosephson@gmail.com>
 Xing Xing <mikespook@gmail.com>
 Yasuhiro Matsumoto <mattn.jp@gmail.com>

CONTRIBUTORSファイルへの変更

--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -342,6 +342,7 @@ Vinu Rajashekhar <vinutheraj@gmail.com>
 Vish Subramanian <vish@google.com>
 Volker Dobler <dr.volker.dobler@gmail.com>
 Wei Guangjing <vcc.163@gmail.com>
+Willem van der Schyff <willemvds@gmail.com>
 William Chan <willchan@chromium.org>
 William Josephson <wjosephson@gmail.com>
 Xing Xing <mikespook@gmail.com>

コアとなるコードの解説

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

AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトの歴史と貢献者を記録するためのものです。これらのファイルに名前が追加されることは、その個人がGoプロジェクトに正式に貢献する資格を得たことを意味します。特に、コミットメッセージに「Individual CLA」と明記されていることから、Willem van der Schyff氏がGoプロジェクトへの貢献に必要な個人貢献者ライセンス同意書を締結した後に、このリストに追加されたことがわかります。

これらのファイルは、Goプロジェクトのガバナンスと法務部門によって管理されており、新しい貢献者がプロジェクトにコードを提出する前に、適切な法的手続きが完了していることを確認するための重要なステップです。これにより、Goプロジェクトは、すべての貢献が適切なライセンスの下で行われ、将来的な知的財産権に関する問題が発生しないように保証しています。

関連リンク

参考にした情報源リンク