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

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

このコミットは、GoプロジェクトのAUTHORSファイルに、以前CONTRIBUTORSファイルには追加されていたもののAUTHORSファイルには記載されていなかった貢献者Berengar Lehr氏を追加するものです。これは、Contributor License Agreement (CLA) に関連する記録の整合性を保つための修正です。

コミット

  • コミットハッシュ: 4ec8fd1cece15967bffe668957e7e43138dd5944
  • Author: Russ Cox rsc@golang.org
  • Date: Fri Jan 20 13:34:25 2012 -0500
  • Summary: A+C: Berengar Lehr (individual CLA)

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

https://github.com/golang/go/commit/4ec8fd1cece15967bffe668957e7e43138dd5944

元コミット内容

A+C: Berengar Lehr (individual CLA)

Was added to CONTRIBUTORS file in:

changeset:   7092:638ad4d7d280
user:        Berengar Lehr <Berengar.Lehr@gmx.de>
date:        Tue Jan 11 20:51:35 2011 -0500
summary:     crypto: add twofish package

but never added to AUTHORS file.

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

変更の背景

このコミットの背景には、Goプロジェクトにおける貢献者情報の管理と、Contributor License Agreement (CLA) の重要性があります。

Goプロジェクトのような大規模なオープンソースプロジェクトでは、多くの開発者がコードベースに貢献します。これらの貢献を法的に適切に管理するため、プロジェクトは通常、貢献者ライセンス契約 (CLA) を要求します。CLAは、貢献者が自身の貢献に対する著作権を保持しつつ、プロジェクトがその貢献を自由に利用、配布、変更できる権利を付与する法的な合意です。

Goプロジェクトでは、過去にAUTHORSファイルとCONTRIBUTORSファイルという2つのファイルで貢献者情報を管理していました。

  • CONTRIBUTORSファイルは、プロジェクトにコードを貢献した個人をリストアップするもので、彼らがCLAに署名したことを示します。
  • AUTHORSファイルは、プロジェクトの著作権保持者をリストアップするもので、通常はCLAを通じて著作権利用権をプロジェクトに付与した個人や組織が記載されます。

今回のケースでは、Berengar Lehr氏が2011年1月11日のコミット(638ad4d7d280)でcrypto: add twofish packageという貢献を行い、その際にCONTRIBUTORSファイルには追加されていました。しかし、何らかの理由でAUTHORSファイルには追加されていませんでした。

このコミットは、この情報の不整合を修正し、Berengar Lehr氏が個別のCLAに署名していることを踏まえ、AUTHORSファイルにも適切に氏名を記載することで、プロジェクトの記録の正確性と法的な整合性を確保することを目的としています。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、オープンソースプロジェクトにおいて、貢献者とプロジェクトの所有者(または管理団体)との間で締結される法的な契約です。その主な目的は以下の通りです。

  1. ライセンスの明確化: 貢献者が提供するコードが、プロジェクトのライセンス(例: Apache License, MIT Licenseなど)の下で利用、配布、変更されることを明確にします。これにより、プロジェクトは将来的に貢献されたコードを自由に利用・再ライセンスできるようになります。
  2. 著作権の保持: 多くのCLAでは、貢献者は自身のコードに対する著作権を保持します。CLAは著作権の譲渡ではなく、プロジェクトがコードを使用するための非独占的なライセンスを付与するものです。
  3. 法的な保護: プロジェクト側は、貢献されたコードが第三者の著作権を侵害していないことを確認し、将来的な法的な紛争からプロジェクトを保護するための保証を得ます。
  4. 一貫性の確保: すべての貢献者が同じCLAに署名することで、プロジェクト全体のコードベースに対するライセンスの一貫性が保たれ、管理が容易になります。

Goプロジェクトでは、個人または企業向けのCLAが用意されており、コードを貢献する前にこれに署名することが義務付けられています。

AUTHORSファイルとCONTRIBUTORSファイル

Goプロジェクトでは、過去に以下の2つのファイルで貢献者情報を管理していました。

  • AUTHORSファイル:

    • このファイルは、プロジェクトの著作権保持者、またはプロジェクトのコードに対する主要な著作権利用権を持つ個人や組織をリストアップするために使用されていました。
    • 通常、CLAに署名し、その貢献がプロジェクトの著作権に影響を与えるような形でライセンスを付与した個人がここに記載されます。
    • 法的な側面が強く、プロジェクトの知的財産権の帰属を示す重要な文書でした。
  • CONTRIBUTORSファイル:

    • このファイルは、プロジェクトに実際にコードを貢献したすべての個人をリストアップするために使用されていました。
    • CLAに署名し、コードを提出した開発者がここに記載されます。
    • AUTHORSファイルよりも広範なリストであり、プロジェクトの成長とコミュニティの活動を示すものでした。

現在のGoプロジェクトの状況: Web検索の結果によると、Goプロジェクトは現在、これらのAUTHORSファイルやCONTRIBUTORSファイルを積極的に維持する方針から移行しています。Googleのオープンソース法務チームは、Gitのコミット履歴自体が著作権情報と貢献者リストの両方にとって十分な権威ある情報源であると判断しました。そのため、新しいGoリポジトリのファイルには、通常「// Copyright YYYY The Go Authors. All rights reserved.」のような標準的な著作権ヘッダーが使用され、個々の著者名は記載されなくなっています。

しかし、このコミットが作成された2012年時点では、これらのファイルはまだ活発に利用されており、その整合性を保つことが重要でした。

技術的詳細

このコミットの技術的な変更は非常にシンプルで、GoプロジェクトのルートディレクトリにあるAUTHORSというテキストファイルに1行を追加するものです。

具体的には、AUTHORSファイル内の既存のアルファベット順のリストに、Berengar Lehr <berengar.lehr@gmx.de>というエントリが挿入されます。この変更は、Gitの差分(diff)によって明確に示されています。

この修正は、コードの機能に直接的な影響を与えるものではなく、プロジェクトのメタデータ、特に法的な側面に関わる記録の正確性を保証するためのものです。このようなメタデータの正確性は、オープンソースプロジェクトの健全な運営と、将来的なライセンス関連の問題を回避するために不可欠です。

コミットメッセージに記載されているA+C: Berengar Lehr (individual CLA)は、「Added to AUTHORS and CONTRIBUTORS」の略であり、Berengar Lehr氏が個別のCLAに署名していることを示唆しています。これは、氏がGoプロジェクトに貢献する上で必要な法的手続きを完了していることを意味します。

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

diff --git a/AUTHORS b/AUTHORS
index cd6d97abb6..25785eb024 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -30,6 +30,7 @@ Aron Nopanen <aron.nopanen@gmail.com>
 Arvindh Rajesh Tamilmani <art@a-30.net>
 Ben Olive <sionide21@gmail.com>
 Benny Siegert <bsiegert@gmail.com>
+Berengar Lehr <berengar.lehr@gmx.de>
 Bobby Powers <bobbypowers@gmail.com>
 Caine Tighe <arctanofyourface@gmail.com>
 Charles L. Dorian <cldorian@gmail.com>

コアとなるコードの解説

上記のdiff出力は、AUTHORSファイルに対する変更を示しています。

  • --- a/AUTHORSは変更前のファイル(オリジナル)を示します。
  • +++ b/AUTHORSは変更後のファイル(新しいバージョン)を示します。
  • @@ -30,6 +30,7 @@は、変更がファイルの30行目から始まり、元のファイルでは6行が、新しいファイルでは7行が含まれることを示しています。
  • +Berengar Lehr <berengar.lehr@gmx.de>という行の先頭にある+記号は、この行が新しく追加されたことを意味します。

この変更により、AUTHORSファイル内の既存の貢献者リストに、Berengar Lehr <berengar.lehr@gmx.de>というエントリが追加されました。これは、アルファベット順に並べられたリストの適切な位置に挿入されています。

この修正は、Goプロジェクトの公式な著作権保持者リストにBerengar Lehr氏の名前を追加することで、氏の貢献が適切に認識され、法的な記録が正確に保たれるようにするものです。

関連リンク

参考にした情報源リンク