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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに、新たな貢献者であるBrendan Daniel Tracey氏の情報を追加するものです。これは、彼がGoプロジェクトへの貢献を始めるにあたり、個人貢献者ライセンス契約(Individual CLA)を締結したことを示しています。

コミット

commit d98dc0e8911fa49fc21ac7f61fbe15bdd48f9509
Author: Russ Cox <rsc@golang.org>
Date:   Mon Feb 10 20:27:21 2014 -0500

    A+C: Brendan Daniel Tracey (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-codereviews
    https://golang.org/cl/55870046

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

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

元コミット内容

A+C: Brendan Daniel Tracey (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/55870046

変更の背景

このコミットの背景には、オープンソースプロジェクトにおける貢献者ライセンス契約(CLA)の重要性があります。Goプロジェクトのような大規模なオープンソースプロジェクトでは、外部からのコード貢献を受け入れる際に、その貢献されたコードの著作権の帰属や利用許諾について明確にする必要があります。

Brendan Daniel Tracey氏がGoプロジェクトにコードを貢献する準備が整ったため、彼は個人貢献者ライセンス契約(Individual CLA)に署名しました。この契約が締結されたことを記録するため、Goプロジェクトの公式な貢献者リストであるAUTHORSファイルとCONTRIBUTORSファイルに彼の名前とメールアドレスが追加されました。

コミットメッセージにあるGenerated by addca.は、この変更がaddcaというツールによって自動生成されたものであることを示唆しています。addcaは、新しいCLAが署名された際に、関連するファイルを更新するための内部ツールであると考えられます。

前提知識の解説

  • 貢献者ライセンス契約 (Contributor License Agreement, CLA): CLAは、個人または企業がオープンソースプロジェクトにコードを貢献する際に、プロジェクトの所有者(この場合はGoogle)と貢献者の間で締結される法的な合意です。CLAの主な目的は以下の通りです。

    • 著作権の明確化: 貢献されたコードの著作権が誰に帰属するかを明確にします。多くのCLAでは、貢献者はプロジェクト所有者に著作権を譲渡するか、または永続的で取り消し不能なライセンスを付与します。これにより、プロジェクト所有者は貢献されたコードを自由に利用、配布、変更できるようになります。
    • ライセンスの統一性: プロジェクト全体で一貫したライセンス(例: BSDライセンス、MITライセンスなど)を維持するために重要です。CLAがない場合、個々の貢献コードのライセンスが異なると、将来的なライセンス変更や再配布に問題が生じる可能性があります。
    • 訴訟リスクの軽減: 貢献されたコードが第三者の著作権を侵害していた場合に、プロジェクト所有者が法的な責任を負うリスクを軽減します。CLAには通常、貢献されたコードが貢献者自身のオリジナルであること、または貢献する権利があることを保証する条項が含まれます。 Goプロジェクトの場合、Googleがプロジェクトの所有者であり、貢献者はGoogleに対してコードの利用を許可するCLAに署名します。
  • AUTHORSファイルとCONTRIBUTORSファイル: 多くのオープンソースプロジェクトでは、プロジェクトに貢献した人々の名前を記録するためのファイルが存在します。

    • AUTHORSファイル: 通常、プロジェクトの主要な作者や、著作権を保持する個人や団体がリストされます。
    • CONTRIBUTORSファイル: プロジェクトに何らかの形で貢献したすべての個人や団体がリストされます。これには、コードの寄稿者だけでなく、ドキュメントの作成者、バグ報告者、テスターなども含まれる場合があります。 これらのファイルは、プロジェクトの透明性を高め、貢献者への感謝を示す役割も果たします。
  • addca: Goプロジェクトの内部ツールで、新しいCLAが署名された際に、AUTHORSCONTRIBUTORSファイルなどの関連ファイルを自動的に更新するために使用されます。これにより、手動での更新ミスを防ぎ、プロセスを効率化します。

  • gobot: Goプロジェクトにおける自動化されたレビューボットです。コミットメッセージのR=gobotは、この変更がgobotによってレビューされ、承認されたことを意味します。gobotは、CLAの署名確認や、コミットメッセージのフォーマットチェックなど、定型的なレビュー作業を自動的に行います。

  • golang-codereviews: Goプロジェクトのコードレビューメーリングリストです。CC=golang-codereviewsは、この変更がレビューのためにこのメーリングリストに通知されたことを示します。

技術的詳細

このコミット自体は、Go言語のランタイムやコンパイラといったコアな技術的側面に直接的な変更を加えるものではありません。その代わりに、プロジェクトの管理と法的な側面に関わる変更です。

具体的には、AUTHORSファイルとCONTRIBUTORSファイルという2つのテキストファイルに、新しい行が追加されています。これらのファイルは、プロジェクトのソースコードリポジトリのルートディレクトリに配置されており、プロジェクトの歴史と貢献者の記録として機能します。

ファイルの変更は非常に単純で、以下の形式で新しい貢献者の情報が追加されています。

  • AUTHORSファイル: Brendan Daniel Tracey <tracey.brendan@gmail.com>
  • CONTRIBUTORSファイル: Brendan Daniel Tracey <tracey.brendan@gmail.com>

この変更は、addcaというツールによって自動的に行われたと明記されており、これはGoプロジェクトが貢献者管理プロセスを自動化していることを示しています。自動化されたプロセスは、手動でのエラーを減らし、効率性を高める上で重要です。

また、コミットメッセージのR=gobotは、この変更がgobotという自動レビューシステムによって承認されたことを示しています。これは、CLAの署名が正しく行われたことをgobotが確認し、この変更がプロジェクトのポリシーに準拠していると判断したことを意味します。このような自動化されたチェックは、大規模なオープンソースプロジェクトにおいて、多数の貢献を効率的かつ一貫性のある方法で処理するために不可欠です。

このコミットは、Goプロジェクトがオープンソースとしての健全なガバナンスと、法的な要件への準拠を維持していることを示す一例と言えます。

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

このコミットで変更された「コード」は、Go言語のソースコードではなく、プロジェクトのメタデータファイルです。

  • AUTHORSファイル:

    --- a/AUTHORS
    +++ b/AUTHORS
    @@ -61,6 +61,7 @@ Bjorn Tillenius <bjorn@tillenius.me>
     Bjorn Tipling <bjorn.tipling@gmail.com>
     Blake Mizerany <blake.mizerany@gmail.com>
     Bobby Powers <bobbypowers@gmail.com>
    +Brendan Daniel Tracey <tracey.brendan@gmail.com>
     Brian Dellisanti <briandellisanti@gmail.com>
     Brian G. Merrell <bgmerrell@gmail.com>
     Brian Gitonga Marete <marete@toshnix.com>
    
  • CONTRIBUTORSファイル:

    --- a/CONTRIBUTORS
    +++ b/CONTRIBUTORS
    @@ -103,6 +103,7 @@ Blake Mizerany <blake.mizerany@gmail.com>
     Bobby Powers <bobbypowers@gmail.com>
     Brad Fitzpatrick <bradfitz@golang.org> <bradfitz@gmail.com>
     Brad Garcia <bgarcia@golang.org>
    +Brendan Daniel Tracey <tracey.brendan@gmail.com>
     Brendan O'Dea <bod@golang.org>
     Brian Dellisanti <briandellisanti@gmail.com>
     Brian G. Merrell <bgmerrell@gmail.com>
    

コアとなるコードの解説

このコミットにおける「コアとなるコード」は、AUTHORSCONTRIBUTORSという2つのテキストファイルです。これらのファイルは、プロジェクトの歴史と貢献者の記録を保持する役割を担っています。

  • AUTHORSファイル: このファイルは、Goプロジェクトの主要な作者や、著作権を保持する個人や団体をリストアップしています。このコミットでは、61行目の後にBrendan Daniel Tracey <tracey.brendan@gmail.com>という行が追加されました。これは、Brendan Daniel Tracey氏がGoプロジェクトの著作権に関する合意(CLA)を締結し、正式な作者の一員として認められたことを意味します。

  • CONTRIBUTORSファイル: このファイルは、Goプロジェクトに何らかの形で貢献したすべての個人や団体をリストアップしています。これには、コードの寄稿者だけでなく、ドキュメントの作成者、バグ報告者、テスターなど、幅広い貢献者が含まれます。このコミットでは、103行目の後にBrendan Daniel Tracey <tracey.brendan@gmail.com>という行が追加されました。これは、彼がGoプロジェクトへの貢献を開始する準備が整ったことを示しています。

これらのファイルへの追加は、Goプロジェクトのガバナンスと法務部門が、新しい貢献者を受け入れる際の標準的な手続きの一部として行われます。addcaツールによる自動生成とgobotによる自動レビューは、このプロセスが効率的かつエラーなく実行されることを保証します。

関連リンク

参考にした情報源リンク

  • GoプロジェクトのGitHubリポジトリ: https://github.com/golang/go
  • コミットハッシュ d98dc0e8911fa49fc21ac7f61fbe15bdd48f9509 のGitHubページ: https://github.com/golang/go/commit/d98dc0e8911fa49fc21ac7f61fbe15bdd48f9509
  • 一般的な貢献者ライセンス契約 (CLA) に関する情報源 (例: Wikipedia, 各オープンソースプロジェクトのドキュメント)
  • Goプロジェクトのコードレビュープロセスに関する情報 (Goの公式ドキュメントやブログ記事)
  • addcagobotに関する情報は、Goプロジェクトの内部ツールであるため、公開されているドキュメントは少ないですが、コミットメッセージやGoのコードベース内の関連スクリプトからその役割を推測できます。
  • GoプロジェクトのAUTHORSおよびCONTRIBUTORSファイルの内容。