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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、Stephen McQuay氏を貢献者として追加するものです。これは、彼がGoプロジェクトに貢献するためのIndividual CLA(Contributor License Agreement)に署名したことを示しています。

コミット

commit 4c2a1f95597cf84f237cb203283f764cd9b8ce0c
Author: Mikio Hara <mikioh.mikioh@gmail.com>
Date:   Thu Oct 18 15:37:53 2012 +0900

    A+C: Stephen McQuay (Individual CLA)
    
    R=golang-dev, iant
    CC=golang-dev
    https://golang.org/cl/6733043
---
 AUTHORS      | 1 +
 CONTRIBUTORS | 1 +
 2 files changed, 2 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 827a4b2055..dcfc031b47 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -221,6 +221,7 @@ Shivakumar GN <shivakumar.gn@gmail.com>
 Spring Mc <heresy.mc@gmail.com>
 Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
 Stéphane Travostino <stephane.travostino@gmail.com>
+Stephen McQuay <stephen@mcquay.me>
 Stephen Weinberg <stephen@q5comm.com>
 Sven Almgren <sven@tras.se>
 Szabolcs Nagy <nsz@port70.net>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 175c8f59e0..9d54d4ce9f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -319,6 +319,7 @@ Spring Mc <heresy.mc@gmail.com>
 Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
 Stéphane Travostino <stephane.travostino@gmail.com>
 Stephen Ma <stephenm@golang.org>
+Stephen McQuay <stephen@mcquay.me>
 Stephen Weinberg <stephen@q5comm.com>
 Sugu Sougoumarane <ssougou@gmail.com>
 Sven Almgren <sven@tras.se>

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

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

元コミット内容

このコミットの元の内容は、Stephen McQuay氏がIndividual CLA(Contributor License Agreement)に署名したことを受けて、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに彼の名前を追加することです。

コミットメッセージの各要素は以下の意味を持ちます。

  • A+C: Stephen McQuay (Individual CLA): "Add and Change"を意味し、Stephen McQuay氏を貢献者として追加し、彼がIndividual CLAに署名済みであることを示します。
  • R=golang-dev, iant: レビュー担当者(Reviewer)を示します。golang-devはGo開発者メーリングリスト、iantはIan Lance Taylor氏を指します。
  • CC=golang-dev: カーボンコピー(Carbon Copy)の宛先を示します。この変更に関する通知がgolang-devメーリングリストに送られることを意味します。
  • https://golang.org/cl/6733043: この変更がGoプロジェクトのコードレビューシステムであるGerritにおける変更リスト(Change-ID)へのリンクです。

変更の背景

オープンソースプロジェクト、特にGoogleが主導するGoのような大規模なプロジェクトでは、貢献者がコードを提出する前にContributor License Agreement (CLA) に署名することが一般的です。CLAは、プロジェクトのコードベースに対する貢献の著作権とライセンスに関する明確な法的枠組みを提供します。これにより、プロジェクトは貢献されたコードを安心して利用・配布できるようになり、将来的なライセンスに関する紛争のリスクを軽減します。

このコミットは、Stephen McQuay氏がGoプロジェクトへの貢献を開始するにあたり、必要な法的要件(Individual CLAへの署名)を満たしたため、彼の名前を公式な貢献者リストに追加するものです。これは、彼が今後Goプロジェクトにコードやドキュメントなどの形で貢献する準備が整ったことを意味します。

前提知識の解説

Contributor License Agreement (CLA)

CLAは、オープンソースプロジェクトに貢献する個人または企業が、その貢献の著作権をプロジェクトの所有者(この場合はGoogle)に譲渡するか、または特定のライセンスの下で利用することを許可する法的文書です。これにより、プロジェクトの所有者は、貢献されたコードをプロジェクトのライセンス(Goの場合はBSDライセンス)の下で再配布する権利を確実に得ることができます。

CLAには主に以下の2種類があります。

  • Individual CLA: 個人がプロジェクトに貢献する場合に署名します。
  • Corporate CLA: 企業が従業員を通じてプロジェクトに貢献する場合に署名します。企業は、従業員の貢献が企業の知的財産権を侵害しないことを保証し、プロジェクトに貢献する権利を付与します。

CLAの目的は、プロジェクトの法的健全性を保ち、将来的なライセンス問題からプロジェクトとユーザーを保護することにあります。

Gerrit

Gerritは、Gitリポジトリ上で動作するWebベースのコードレビューシステムです。Googleが開発し、AndroidオープンソースプロジェクトやGoプロジェクトなど、多くの大規模なオープンソースプロジェクトで利用されています。

Gerritの主な特徴は以下の通りです。

  • 変更リスト(Change-ID): 各コミットはGerrit上で一意のChange-IDを持ち、レビュープロセスを通じて複数のパッチセット(コミットの改訂版)を管理できます。
  • インラインコメント: コードの特定の行に対して直接コメントを残すことができ、詳細な議論が可能です。
  • 承認ワークフロー: レビュー担当者がコードを承認(+1, +2など)することで、変更がマージされる準備が整ったことを示します。
  • 自動テストとの連携: CI/CDシステムと連携し、変更が提出されるたびに自動テストを実行し、結果をGerrit上で表示できます。

Goプロジェクトでは、開発者はGerritを通じてコード変更を提出し、レビューを受け、最終的にメインのコードベースにマージされます。コミットメッセージにあるhttps://golang.org/cl/6733043は、このGerrit上の変更リストへの直接リンクです。

AUTHORSCONTRIBUTORSファイル

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

  • AUTHORS: 主にプロジェクトの主要な作者や、初期からの貢献者、または特に重要な貢献をした人々がリストされます。
  • CONTRIBUTORS: プロジェクトに何らかの形で貢献したすべての個人がリストされます。これには、コードの貢献だけでなく、ドキュメントの作成、バグ報告、テストの作成、翻訳など、幅広い貢献が含まれます。

これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示すとともに、プロジェクトの歴史的な記録としても機能します。

技術的詳細

このコミットは、GoプロジェクトのGitリポジトリ内の2つのテキストファイル、AUTHORSCONTRIBUTORSを修正しています。

  • AUTHORSファイルは、プロジェクトの主要な作者や、特に重要な貢献をした人々を列挙しています。
  • CONTRIBUTORSファイルは、プロジェクトに貢献したすべての個人を列挙しています。

コミットの差分(diff)を見ると、両方のファイルに+Stephen McQuay <stephen@mcquay.me>という行が追加されていることがわかります。これは、Stephen McQuay氏の名前とメールアドレスがそれぞれのファイルの適切なアルファベット順の位置に挿入されたことを示しています。

この変更は、Goプロジェクトの貢献者管理プロセスの一部であり、新しい貢献者がCLAに署名し、その貢献が正式に認められた際に実行されます。技術的には非常に単純なファイル変更ですが、プロジェクトの法的およびコミュニティ管理の側面において重要な意味を持ちます。

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

このコミットにおけるコアとなるコードの変更箇所は、以下の2つのファイルへの1行ずつの追加です。

  1. AUTHORSファイルへの追加:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -221,6 +221,7 @@ Shivakumar GN <shivakumar.gn@gmail.com>
     Spring Mc <heresy.mc@gmail.com>
     Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
     Stéphane Travostino <stephane.travostino@gmail.com>
    +Stephen McQuay <stephen@mcquay.me>
     Stephen Weinberg <stephen@q5comm.com>
     Sven Almgren <sven@tras.se>
     Szabolcs Nagy <nsz@port70.net>
    
  2. CONTRIBUTORSファイルへの追加:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -319,6 +319,7 @@ Spring Mc <heresy.mc@gmail.com>
     Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
     Stéphane Travostino <stephane.travostino@gmail.com>
     Stephen Ma <stephenm@golang.org>
    +Stephen McQuay <stephen@mcquay.me>
     Stephen Weinberg <stephen@q5comm.com>
     Sugu Sougoumarane <ssougou@gmail.com>
     Sven Almgren <sven@tras.se>
    

コアとなるコードの解説

このコミットは、既存のテキストファイルに新しい行を追加するだけの非常にシンプルな変更です。

  • AUTHORSファイルとCONTRIBUTORSファイルは、それぞれプロジェクトの作者と貢献者の名前とメールアドレスをリストしています。
  • 追加された行Stephen McQuay <stephen@mcquay.me>は、Stephen McQuay氏の名前と彼の連絡先メールアドレスを示しています。
  • これらのファイルは通常、アルファベット順にソートされており、新しいエントリもその規則に従って適切な位置に挿入されます。

この変更自体はGo言語のコードベースに直接的な機能変更をもたらすものではありませんが、プロジェクトの管理と法的側面において重要な記録となります。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitリポジトリ: https://github.com/golang/go
  • Gerritの概念に関する一般的な情報源(例: Wikipedia, Gerrit公式ドキュメント)
  • Contributor License Agreement (CLA) に関する一般的な情報源(例: Wikipedia, 各オープンソースプロジェクトのCLA説明ページ)
  • コミットメッセージの慣習に関する情報源(例: Gitのドキュメント、オープンソースプロジェクトの貢献ガイドライン)
  • AUTHORSおよびCONTRIBUTORSファイルの一般的な慣習に関する情報源(例: GitHub上の他のオープンソースプロジェクト)