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

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

このコミットは、GoプロジェクトのAUTHORSファイルとCONTRIBUTORSファイルに新しい貢献者であるAdrian Nos氏を追加するものです。これらのファイルは、オープンソースプロジェクトにおいて、プロジェクトに貢献した個人を公式に記録し、その貢献を認識するために使用されます。

  • AUTHORSファイル: 主にプロジェクトの主要な作者や、著作権を持つ個人をリストアップするために使用されます。
  • CONTRIBUTORSファイル: プロジェクトにコード、ドキュメント、バグ報告、レビューなど、何らかの形で貢献したすべての個人をリストアップするために使用されます。

これらのファイルは、プロジェクトの透明性を高め、貢献者への適切なクレジットを保証する上で重要な役割を果たします。

コミット

commit 276c04a90ab4b1eba03878182211a718e90fd563
Author: Russ Cox <rsc@golang.org>
Date:   Tue Mar 12 11:45:30 2013 -0400

    A+C: Adrian Nos (individual CLA)
    
    Generated by addca.
    
    R=gobot
    CC=golang-dev
    https://golang.org/cl/7526046

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

https://github.com/golang/go/commit/276c04a90ab4b1eba03878182211a718e90fd563

元コミット内容

A+C: Adrian Nos (individual CLA)

Generated by addca.

R=gobot
CC=golang-dev
https://golang.org/cl/7526046

変更の背景

このコミットの背景には、Adrian Nos氏がGoプロジェクトに対して何らかの貢献を行い、その貢献がプロジェクトの公式な記録に値すると判断されたことがあります。オープンソースプロジェクト、特にGoogleが関与するGoのような大規模プロジェクトでは、貢献者がコードを提出する前にContributor License Agreement (CLA) に署名することが一般的です。CLAは、貢献されたコードの著作権とライセンスに関する明確な法的枠組みを提供し、プロジェクトが将来的にそのコードを自由に利用・配布できるようにするために不可欠です。

このコミットメッセージにある「A+C: Adrian Nos (individual CLA)」は、Adrian Nos氏が個人としてCLAに署名し、その結果としてAUTHORSCONTRIBUTORSの両方のファイルに追加されたことを示しています。また、「Generated by addca」という記述は、この変更がaddcaというツールによって自動生成されたものであることを示唆しており、これはGoプロジェクトにおける貢献者管理の自動化されたプロセスの一部であることを意味します。

前提知識の解説

Contributor License Agreement (CLA)

CLA(Contributor License Agreement)は、個人または企業がオープンソースプロジェクトに貢献する際に、その貢献物(コード、ドキュメントなど)の著作権をプロジェクトの所有者(または特定の財団)に譲渡するか、あるいは特定のライセンスの下で利用することを許可する法的な合意書です。GoプロジェクトのようなGoogleが関与するプロジェクトでは、Googleがプロジェクトのコードベースを管理し、将来的なライセンス変更や再配布の柔軟性を確保するためにCLAが要求されます。これにより、プロジェクトは法的な問題を回避し、安定した開発を継続できます。

AUTHORSCONTRIBUTORSファイル

  • AUTHORS: プロジェクトの主要な開発者や、著作権を保持する個人を列挙するファイルです。歴史的な経緯や、プロジェクトの初期からの貢献者を記録する目的で使われることが多いです。
  • CONTRIBUTORS: プロジェクトに何らかの形で貢献したすべての個人を列挙するファイルです。コードのコミットだけでなく、バグ報告、ドキュメントの改善、テストの作成、レビューなど、幅広い貢献が含まれます。このファイルは、コミュニティの努力を認識し、感謝を示すために重要です。

これらのファイルは通常、アルファベット順にソートされており、新しい貢献者が追加される際には、その順序が維持されるように変更されます。

addcaツール

コミットメッセージにある「Generated by addca」は、addcaというツールがこの変更を生成したことを示しています。これはGoプロジェクト内部で使用されるユーティリティであり、新しい貢献者がCLAに署名した際に、自動的にAUTHORSおよびCONTRIBUTORSファイルにその情報を追加する役割を担っていると考えられます。このような自動化ツールは、大規模なオープンソースプロジェクトにおいて、貢献者管理のプロセスを効率化し、手作業によるエラーを防ぐために不可欠です。

gobotgolang-dev

  • R=gobot: gobotは、Goプロジェクトにおける自動化されたレビューボットまたはシステムを指す可能性があります。これは、特定の種類のコミット(例えば、自動生成されたものや、形式的な変更)に対して、人間のレビューアの代わりに自動的に承認を与える役割を果たすことがあります。
  • CC=golang-dev: CCは「Carbon Copy」の略で、このコミットがgolang-devメーリングリストに通知されたことを意味します。golang-devはGo開発者コミュニティの主要なメーリングリストであり、プロジェクトの重要な変更や議論が共有される場です。これにより、コミュニティ全体が新しい貢献者の追加について認識できます。

golang.org/cl/7526046

これはGoプロジェクトのコードレビューシステムであるGerritのチェンジリスト(CL)へのリンクです。Goプロジェクトでは、GitHubのプルリクエストではなく、Gerritを使用してコードレビューと変更の統合を行っています。このリンクは、Adrian Nos氏の貢献に関連する具体的な変更内容とレビュープロセスを追跡するためのものです。

技術的詳細

このコミットの技術的な詳細は、主にAUTHORSCONTRIBUTORSという2つのテキストファイルの変更に集約されます。

  1. ファイルの特定: 変更対象はAUTHORSCONTRIBUTORSというファイルです。これらはプロジェクトのルートディレクトリに配置されています。
  2. 行の追加: 各ファイルに新しい行が追加されています。
    • AUTHORSファイルには Adrian Nos <nos.adrian@gmail.com> が追加されています。
    • CONTRIBUTORSファイルにも Adrian Nos <nos.adrian@gmail.com> が追加されています。
  3. ソート順の維持: diffを見ると、追加された行は既存のリストのアルファベット順に挿入されています。これは、これらのファイルが常にソートされた状態を保つというプロジェクトの慣習に従っていることを示しています。例えば、AUTHORSファイルではAbhinav Guptaの後にAdrian Nosが、そしてAdrian O'Gradyの前に挿入されています。
  4. 自動生成: コミットメッセージにある「Generated by addca」は、この変更が手動ではなく、addcaというツールによって自動的に行われたことを示唆しています。これは、CLAの署名プロセスと連動して、貢献者リストの更新が自動化されていることを意味します。これにより、手作業によるミスを防ぎ、プロセスの一貫性を保つことができます。
  5. ファイルパーミッション: index 64d733cf93..d59adc4fe2 100644のような行は、Gitの内部的なインデックス情報とファイルパーミッション(100644は通常のファイルで読み書き可能であることを示す)を示しており、ファイルの内容が変更されたことを確認できます。

このコミットは、Goプロジェクトの貢献者管理プロセスが自動化されており、新しい貢献者がCLAに署名すると、関連するファイルが適切に更新される仕組みが整っていることを示しています。

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

diff --git a/AUTHORS b/AUTHORS
index 64d733cf93..d59adc4fe2 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -9,6 +9,7 @@
 # Please keep the list sorted.
 
 Abhinav Gupta <abhinav.g90@gmail.com>
+Adrian Nos <nos.adrian@gmail.com>
 Adrian O'Grady <elpollouk@gmail.com>
 Akshat Kumar <seed@mail.nanosouffle.net>
 Albert Strasheim <fullung@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index b8291de446..50009eb86d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -34,6 +34,7 @@
 Aaron Kemp <kemp.aaron@gmail.com>
 Abhinav Gupta <abhinav.g90@gmail.com>
 Adam Langley <agl@golang.org>
+Adrian Nos <nos.adrian@gmail.com>
 Adrian O'Grady <elpollouk@gmail.com>
 Akshat Kumar <seed@mail.nanosouffle.net>
 Alan Donovan <adonovan@google.com>

コアとなるコードの解説

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

  • AUTHORSファイルへの変更:

    • @@ -9,6 +9,7 @@ は、変更が元のファイルの9行目から6行を対象とし、変更後のファイルでは9行目から7行になることを示しています。これは1行が追加されたことを意味します。
    • +Adrian Nos <nos.adrian@gmail.com> の行が追加されています。この行は、Abhinav GuptaAdrian O'Gradyの間に挿入されており、アルファベット順が維持されていることがわかります。
  • CONTRIBUTORSファイルへの変更:

    • @@ -34,6 +34,7 @@ は、変更が元のファイルの34行目から6行を対象とし、変更後のファイルでは34行目から7行になることを示しています。ここでも1行が追加されています。
    • +Adrian Nos <nos.adrian@gmail.com> の行が追加されています。この行も、Adam LangleyAdrian O'Gradyの間に挿入されており、アルファベット順が維持されています。

これらの変更は、Adrian Nos氏がGoプロジェクトの正式な貢献者として認識され、その情報がプロジェクトの公式記録に追加されたことを明確に示しています。これは、オープンソースプロジェクトにおける貢献者の追跡と認識のための標準的なプラクティスです。

関連リンク

参考にした情報源リンク