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

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

コミット

コミットハッシュ: a4ae4ce8ba70f1f7258bf29f80a0c560b14f1a75
作成者: Russ Cox rsc@golang.org
作成日: 2011年11月7日 11:18:38 EST
コミットメッセージ: CONTRIBUTORS: add David Crawshaw's codereview account

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

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

元コミット内容

CONTRIBUTORS: add David Crawshaw's codereview account

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5339047

変更ファイル: CONTRIBUTORS (1ファイル変更、1行追加、1行削除)

差分内容:

-David Crawshaw <david.crawshaw@zentus.com>
+David Crawshaw <david.crawshaw@zentus.com> <crawshaw@google.com>

変更の背景

このコミットは、Go言語プロジェクトのCONTRIBUTORSファイルに、David Crawshaw氏の新しいコードレビューアカウント(crawshaw@google.com)を追加したものです。2011年11月の時点で、Go言語プロジェクトはGo 1.0のリリースに向けて重要な開発段階にあり、この時期には多くの貢献者が活発に開発に参加していました。

David Crawshaw氏は、この時期にGoogleに入社し、Go言語の開発に本格的に参加することになったと考えられます。彼のメールアドレスがzentus.com(おそらく以前の所属先)からgoogle.comに変更されていることから、Google入社に伴うアカウント情報の更新であることがわかります。

前提知識の解説

CONTRIBUTORSファイルとは

CONTRIBUTORSファイルは、Go言語プロジェクトの貢献者リストを管理するファイルです。このファイルは以下の目的で使用されていました:

  1. 貢献者の公式記録: プロジェクトに貢献した開発者の名前とメールアドレスを記録
  2. 法的要件: オープンソースプロジェクトにおける著作権管理の一部
  3. コミュニティ認知: 貢献者の認知と感謝の表明

2011年のGo言語コードレビューシステム

2011年当時、Go言語プロジェクトは独自のコードレビューシステムを使用していました:

  • Rietveld: Googleが開発したコードレビューツール(codereview.appspot.com)
  • CL(Change List): コードの変更単位を表す識別子
  • golang-dev: Go言語開発者向けメーリングリスト

Go言語の開発状況(2011年11月)

2011年11月は、Go言語にとって重要な時期でした:

  • Go 1.0 準備期: 2011年10月にGo 1の計画が発表され、安定版リリースに向けて準備が進められていた
  • コミュニティ拡大: Googleの内外から多くの開発者が参加し始めた時期
  • 標準ライブラリ充実: Go 1.0に向けて標準ライブラリの整備が進められていた

技術的詳細

CONTRIBUTORSファイルの形式

CONTRIBUTORSファイルは、以下の形式で貢献者情報を管理していました:

Name <primary-email> <alternate-email>

この形式により、一人の貢献者が複数のメールアドレスを持つ場合でも、同一人物として認識できるようになっていました。

メールアドレス管理の重要性

オープンソースプロジェクトにおいて、メールアドレスは以下の理由で重要です:

  1. gitの履歴管理: gitのコミット履歴は主にメールアドレスで識別される
  2. 権限管理: コードレビューシステムでの権限はメールアドレスベース
  3. 通知システム: 変更通知やディスカッションがメールアドレスに送信される

複数メールアドレスの問題

開発者が複数のメールアドレスを使用する場合、以下の問題が発生することがあります:

  1. 重複エントリ: 同一人物が複数のエントリとして記録される
  2. 権限の不整合: 異なるメールアドレスで異なる権限を持つ可能性
  3. 統計の不正確性: 貢献度の計算で同一人物が複数回カウントされる

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

@@ -85,7 +85,7 @@ Daniel Theophanes <kardianos@gmail.com>
 Dave Cheney <dave@cheney.net>
 Dave Grijalva <dgrijalva@ngmoco.com>
 David Anderson <danderson@google.com>
-David Crawshaw <david.crawshaw@zentus.com>
+David Crawshaw <david.crawshaw@zentus.com> <crawshaw@google.com>
 David Forsythe <dforsythe@gmail.com>
 David G. Andersen <dave.andersen@gmail.com>
 David Jakob Fritz <david.jakob.fritz@gmail.com>

コアとなるコードの解説

この変更は、CONTRIBUTORSファイルの85行目付近で行われました。変更内容を詳しく見ると:

変更前

David Crawshaw <david.crawshaw@zentus.com>

変更後

David Crawshaw <david.crawshaw@zentus.com> <crawshaw@google.com>

変更の意味

  1. 主要メールアドレスの保持: 元のメールアドレス(david.crawshaw@zentus.com)は保持されている
  2. 新しいメールアドレスの追加: Googleのメールアドレス(crawshaw@google.com)が追加された
  3. アカウントの統合: 両方のメールアドレスが同一人物として関連付けられた

David Crawshaw氏の貢献

David Crawshaw氏は、Go言語プロジェクトに以下の重要な貢献をしました:

  1. モバイルプラットフォーム対応: Go言語のiOSとAndroidへの移植
  2. ネットワーク機能: Fuchsia OS向けのTCP/IPネットワーク実装
  3. パフォーマンス改善: cgo(C言語とのインターフェース)のオーバーヘッド削減
  4. 開発ツール: Go言語のVS Code拡張機能の開発に関与

技術的影響

この変更により、David Crawshaw氏は:

  1. 統一されたアイデンティティ: 複数のメールアドレスでの貢献が統合される
  2. Google社内での協業: Google内でのコードレビューやディスカッションが円滑になる
  3. 権限の一元化: 両方のメールアドレスで同じ権限を持つことができる

関連リンク

参考にした情報源リンク