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

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

このコミットは、Go言語プロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新しい貢献者であるBjorn Tillenius氏を追加するものです。これは、彼がIndividual Contributor License Agreement (CLA)を提出したことを示しています。

コミット

commit a682540547aa0fc3380950b7f7ecaebc4eff928c
Author: Brad Fitzpatrick <bradfitz@golang.org>
Date:   Thu Apr 19 09:23:48 2012 -0700

    A+C: add Bjorn Tillenius (Individual CLA)

    R=golang-dev, kevlar
    CC=golang-dev
    https://golang.org/cl/6075045

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

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

元コミット内容

A+C: add Bjorn Tillenius (Individual CLA)

R=golang-dev, kevlar
CC=golang-dev
https://golang.org/cl/6075045

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGo言語のような大規模なプロジェクトでは、知的財産権の管理が非常に重要です。貢献者がコードを提出する際、そのコードがプロジェクトのライセンスの下で適切に利用されることを保証するために、Contributor License Agreement (CLA)の締結が求められることが一般的です。

このコミットは、Bjorn Tillenius氏がGoプロジェクトへの貢献を開始するにあたり、必要なIndividual CLAを提出したことを記録するためのものです。CLAが締結されることで、プロジェクトは貢献されたコードを安心して利用・配布できるようになり、将来的な法的な問題を回避できます。AUTHORSファイルとCONTRIBUTORSファイルは、プロジェクトに貢献した個人や団体を公式に記録するためのものであり、CLAの締結はこれらのリストに追加されるための前提条件となることが多いです。

前提知識の解説

Contributor License Agreement (CLA)

CLA(貢献者ライセンス同意書)は、個人または企業がオープンソースプロジェクトにコードやドキュメントなどの貢献を行う際に、プロジェクトの所有者(または管理団体)と貢献者の間で締結される法的な合意書です。CLAの主な目的は以下の通りです。

  1. ライセンスの明確化: 貢献されたコードがプロジェクトのライセンス(例: Apache License, MIT Licenseなど)の下で利用、配布、変更されることを貢献者が許可することを明確にします。これにより、プロジェクトの利用者は、貢献されたコードがプロジェクトのライセンスに準拠していることを確信できます。
  2. 知的財産権の保護: 貢献されたコードの著作権が誰に帰属するか、またはプロジェクトがそのコードをどのように利用できるかを明確にすることで、将来的な著作権侵害や特許侵害に関する紛争のリスクを軽減します。多くのCLAでは、貢献者は自身の貢献に対する著作権を保持しつつ、プロジェクトに対して広範な利用権(非独占的、永続的、取り消し不能なライセンス)を付与します。
  3. プロジェクトの持続可能性: プロジェクトが将来的にライセンスを変更したり、他のライセンスのコードと統合したりする際に、すべての貢献されたコードに対して適切なライセンスが付与されていることを保証します。

CLAには主に「Individual CLA(個人CLA)」と「Entity CLA(企業/団体CLA)」の2種類があります。

  • Individual CLA: 個人が自身の名義で貢献する際に締結します。
  • Entity CLA: 企業や団体が、その従業員やメンバーが行う貢献に対して締結します。これにより、企業は従業員の貢献が企業の知的財産ポリシーに準拠していることを保証し、プロジェクトは企業からの貢献を安心して受け入れることができます。

Go言語プロジェクトでは、Googleがプロジェクトを管理しており、貢献者にはCLAの締結を求めています。これは、Googleがプロジェクトのコードベース全体の知的財産権を適切に管理し、Go言語の安定した発展を保証するためです。

AUTHORS および CONTRIBUTORS ファイル

多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々を記録するために、AUTHORSCONTRIBUTORSといったテキストファイルがリポジトリのルートに配置されています。

  • AUTHORS: 通常、プロジェクトの主要な作者や、コードベースの大部分を執筆した人々をリストアップします。歴史的な経緯や、プロジェクトの初期からの主要な貢献者が記載されることが多いです。
  • CONTRIBUTORS: より広範な意味での貢献者、つまりコードのコミット、バグ報告、ドキュメントの改善、テストの作成、翻訳など、様々な形でプロジェクトに貢献した人々をリストアップします。このファイルは、プロジェクトのコミュニティの広がりと、多くの人々の努力によって成り立っていることを示す役割も果たします。

これらのファイルは、貢献者への感謝を示すとともに、プロジェクトの透明性と信頼性を高める役割も担っています。

golang-dev

golang-devは、Go言語の開発者メーリングリストを指します。Go言語のコア開発者、貢献者、およびGo言語の開発プロセスに関心のある人々が参加しています。新しい機能の提案、バグ修正の議論、設計に関する意見交換など、Go言語の進化に関する重要な議論がここで行われます。

コミットメッセージのR=golang-dev, kevlarは、この変更がgolang-devメーリングリストとkevlarというユーザー(おそらくコードレビュー担当者)によってレビューされたことを示しています。CC=golang-devは、このコミットに関する通知がgolang-devメーリングリストにも送られたことを意味します。

https://golang.org/cl/6075045

これは、Go言語プロジェクトが利用しているGerritというコードレビューシステムにおける変更リスト(Change-List, CL)のURLです。Goプロジェクトでは、GitHubのプルリクエストではなく、Gerritを主要なコードレビューとコミットのワークフローとして使用しています。貢献者はGerritを通じて変更を提案し、レビューを経て承認された変更がGitリポジトリにコミットされます。このURLは、このコミットがGerrit上でどのようにレビューされ、承認されたかの詳細な履歴を確認できる場所を示しています。

技術的詳細

このコミットは、Gitの差分(diff)情報を見るとわかるように、既存のテキストファイルであるAUTHORSCONTRIBUTORSに新しい行を追加するだけの非常にシンプルな変更です。

  • AUTHORSファイルでは、33行目の後にBjorn Tillenius <bjorn@tillenius.me>という行が追加されています。
  • CONTRIBUTORSファイルでは、67行目の後にBjorn Tillenius <bjorn@tillenius.me>という行が追加されています。

Gitのindex行(例: index 4b9ea30f86..8e3fea8ba2 100644)は、変更前後のファイルのGitオブジェクトハッシュと、ファイルのパーミッション(100644は通常のファイルを示します)を示しています。

この変更は、Goプロジェクトの貢献者管理プロセスの一部であり、新しい貢献者が正式にプロジェクトの記録に追加されたことを意味します。これは、コードベース自体に機能的な変更を加えるものではなく、プロジェクトのメタデータに関する更新です。

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

このコミットで変更されたファイルは以下の2つです。

  1. AUTHORS
  2. CONTRIBUTORS

それぞれのファイルに対して1行ずつ追加が行われています。

diff --git a/AUTHORS b/AUTHORS
index 4b9ea30f86..8e3fea8ba2 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -33,6 +33,7 @@ Arvindh Rajesh Tamilmani <art@a-30.net>
 Ben Olive <sionide21@gmail.com>
 Benny Siegert <bsiegert@gmail.com>
 Berengar Lehr <berengar.lehr@gmx.de>
+Bjorn Tillenius <bjorn@tillenius.me>
 Bjorn Tipling <bjorn.tipling@gmail.com>
 Blake Mizerany <blake.mizerany@gmail.com>
 Bobby Powers <bobbypowers@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d8420aebac..1cf4d1ed6c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -67,6 +67,7 @@ Ben Olive <sionide21@gmail.com>
 Benny Siegert <bsiegert@gmail.com>
 Berengar Lehr <Berengar.Lehr@gmx.de>
 Bill Neubauer <wcn@golang.org> <wcn@google.com>
+Bjorn Tillenius <bjorn@tillenius.me>
 Bjorn Tipling <bjorn.tipling@gmail.com>
 Blake Mizerany <blake.mizerany@gmail.com>
 Bobby Powers <bobbypowers@gmail.com>

コアとなるコードの解説

このコミットにおける「コード」は、Go言語のソースコードではなく、プロジェクトのメタデータファイルであるAUTHORSCONTRIBUTORSのテキスト内容を指します。

  • AUTHORSファイルへの追加: +Bjorn Tillenius <bjorn@tillenius.me> この行は、Bjorn Tillenius氏の名前とメールアドレスをAUTHORSファイルに追加しています。これは、彼がGoプロジェクトの公式な作者の一員として認識されたことを意味します。

  • CONTRIBUTORSファイルへの追加: +Bjorn Tillenius <bjorn@tillenius.me> 同様に、この行はBjorn Tillenius氏の名前とメールアドレスをCONTRIBUTORSファイルに追加しています。これは、彼がGoプロジェクトに貢献した個人として公式に記録されたことを意味します。

これらの変更は、プロジェクトの管理と透明性に関わるものであり、Go言語の機能や振る舞いに直接的な影響を与えるものではありません。しかし、オープンソースプロジェクトの健全な運営には不可欠な要素です。

関連リンク

  • Go言語公式サイト: https://golang.org/
  • Go言語の貢献ガイドライン(CLAに関する情報が含まれる可能性があります): Go言語の公式ドキュメントや貢献ガイドラインを参照してください。通常、CONTRIBUTING.mdのようなファイルや、公式サイトの「貢献」セクションに記載されています。
  • Gerrit Code Review: https://www.gerritcodereview.com/

参考にした情報源リンク

  • Gitの差分表示に関する一般的な情報
  • オープンソースプロジェクトにおけるCLAの役割に関する一般的な情報
  • Go言語プロジェクトの貢献プロセスに関する一般的な知識
  • Gerritに関する一般的な情報
  • (必要に応じて)Google検索で「Go language CLA」や「Contributor License Agreement」を検索し、より詳細な情報を補完しました。