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

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

このコミットは、Go言語プロジェクトの貢献ガイドラインを記述したドキュメントファイル doc/contribute.html に変更を加えています。具体的には、Mercurialのcodereview拡張機能に関するドキュメントへのアクセス方法を追記し、貢献者がコードレビュープロセスをよりスムーズに理解し、利用できるようにするための改善です。

コミット

  • コミットハッシュ: 111fcf15799c8bda58e3b9eb73fd5c8fa7ac5801
  • 作者: Russ Cox rsc@golang.org
  • コミット日時: 2012年12月11日 火曜日 13:36:43 -0500
  • 変更ファイル: doc/contribute.html (1ファイル)
  • 変更内容: 5行の追加、0行の削除

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

https://github.com/golang/go/commit/111fcf15799c8bda58e3b9eb73fd5c8fa7ac5801

元コミット内容

doc/contribute: mention 'hg help codereview'

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6932053

変更の背景

このコミットが行われた2012年当時、Go言語プロジェクトはバージョン管理システムとしてGitではなくMercurial(Hg)を使用していました。Goプロジェクトの貢献ワークフローは、Mercurialのcodereview拡張機能と、Gerritというコードレビューシステムを組み合わせた独自のプロセスを採用していました。

doc/contribute.htmlは、Goプロジェクトに貢献したい開発者向けの公式ガイドラインであり、Mercurialの設定方法やコードレビューの提出方法などが説明されていました。このコミットの背景には、貢献者がcodereview拡張機能のコマンドや使い方について疑問を持った際に、その場で利用できる公式ドキュメント(hg help codereview)の存在を明示することで、自己解決を促し、貢献プロセスの障壁を低減するという意図があります。

つまり、既存のドキュメントに、codereview拡張機能のより詳細な情報を得るための簡単なコマンドを追加することで、ユーザーエクスペリエンスを向上させ、貢献者がスムーズに作業を進められるようにすることが目的でした。

前提知識の解説

Mercurial (Hg)

Mercurialは、Gitと同様に分散型バージョン管理システム(DVCS)の一つです。Pythonで書かれており、シンプルさとパフォーマンスを重視して設計されています。Go言語プロジェクトは、初期から長らくMercurialを主要なバージョン管理システムとして採用していました。Mercurialは、リポジトリのクローン、コミット、ブランチ、マージといった基本的なバージョン管理機能を提供します。

hg help コマンド

hg helpはMercurialの組み込みコマンドで、特定のMercurialコマンドや拡張機能に関するヘルプドキュメントを表示するために使用されます。例えば、hg help commitと入力すると、commitコマンドの詳しい使い方やオプションが表示されます。これは、ユーザーがコマンドラインから直接情報を参照できる便利な機能です。

codereview 拡張機能

Go言語プロジェクトは、Mercurialの標準機能だけでは実現できない独自のコードレビューワークフローをサポートするために、codereviewというMercurial拡張機能を開発し、利用していました。この拡張機能は、GerritというWebベースのコードレビューシステムと連携し、パッチの作成、レビューコメントのやり取り、パッチのアップロードなどをMercurialコマンドラインから直接行えるようにするものでした。

例えば、hg codereview mailのようなコマンドを使って、変更をGerritにアップロードし、レビューを依頼することができました。この拡張機能は、Goプロジェクトの貢献プロセスにおいて非常に重要な役割を担っていました。

Go言語の貢献プロセス(当時)

2012年頃のGo言語の貢献プロセスは、以下の主要なステップで構成されていました。

  1. Mercurialリポジトリのクローン: まず、Goの公式Mercurialリポジトリをローカルにクローンします。
  2. 変更の実装: コードの変更を行い、ローカルでコミットします。
  3. codereview拡張機能の利用: hg codereviewコマンド群を使用して、変更をGerritにアップロードするためのパッチを作成します。
  4. Gerritへのアップロード: 作成したパッチをGerritにアップロードし、レビューを依頼します。
  5. レビューと修正: レビュー担当者からのフィードバックを受けて、必要に応じてコードを修正し、再度Gerritにアップロードします。
  6. マージ: レビューが承認されると、変更が公式リポジトリにマージされます。

このプロセスにおいて、codereview拡張機能の正しい使用法を理解することは、貢献者にとって不可欠でした。

技術的詳細

このコミットは、doc/contribute.htmlファイルに新しいHTMLの段落を追加する非常にシンプルな変更です。追加された内容は以下の通りです。

<p>
After adding the extension, <code>hg help codereview</code>
will show documentation for its commands.
</p>

この変更の技術的なポイントは、HTMLドキュメントの構造と、ユーザーへの情報提供の効率化にあります。

  1. HTML構造: <p>タグで囲まれた新しい段落が追加されています。これは、既存のドキュメントフローを妨げずに、独立した情報ブロックとして機能します。
  2. <code>タグの使用: hg help codereviewというコマンドは<code>タグで囲まれています。これは、コードやコマンド名などの技術的な要素を視覚的に区別し、読みやすくするためのHTMLの慣習です。
  3. 情報の配置: この新しい段落は、「Log in to the code review site.」というセクションの直前、かつMercurialの設定に関する既存の段落の直後に配置されています。これは、Mercurialのcodereview拡張機能を有効にした直後に、そのヘルプを参照できることを示唆する、論理的な配置と言えます。
  4. ユーザー導線: この一行を追加するだけで、貢献者はcodereview拡張機能の具体的な使い方について疑問が生じた際に、Webブラウザを離れることなく、コマンドラインから直接公式ドキュメントを参照できるという明確な導線が提供されます。これは、ドキュメントの利便性を高める上で非常に効果的な改善です。

この変更は、コードの機能そのものに影響を与えるものではなく、あくまでドキュメントの改善ですが、貢献者のオンボーディング体験を向上させる上で重要な役割を果たします。

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

diff --git a/doc/contribute.html b/doc/contribute.html
index 683c387373..694de5467a 100644
--- a/doc/contribute.html
+++ b/doc/contribute.html
@@ -110,6 +110,11 @@ The <code>username</code> information will not be used unless
 you are a committer (see below), but Mercurial complains if it is missing.
 </p>
 
+<p>
+After adding the extension, <code>hg help codereview</code>
+will show documentation for its commands.
+</p>
+\n
 <h3>Log in to the code review site.</h3>
 
 <p>

コアとなるコードの解説

上記の差分は、doc/contribute.htmlファイルに以下の5行が追加されたことを示しています。

<p>
After adding the extension, <code>hg help codereview</code>
will show documentation for its commands.
</p>

この追加されたHTMLスニペットは、Mercurialのcodereview拡張機能を有効にした後、その拡張機能に関する詳細なドキュメントをコマンドラインから参照できることを貢献者に伝えています。

  • <p>タグは新しい段落を開始します。
  • After adding the extension, は、Mercurialの設定ファイル(~/.hgrcなど)にcodereview拡張機能を追加し、有効化した後のステップであることを示唆しています。
  • <code>hg help codereview</code> は、実際に実行すべきコマンドを示しており、<code>タグによってコードとして強調されています。
  • will show documentation for its commands. は、このコマンドを実行することで、codereview拡張機能が提供する様々なコマンド(例: mail, syncなど)に関する詳細なヘルプ情報が表示されることを説明しています。

この変更は、Goプロジェクトへの貢献を試みる開発者が、codereview拡張機能の具体的な使い方で迷った際に、すぐに参照できる情報源を提供することで、貢献プロセスの摩擦を減らすことを目的としています。これは、ドキュメントのユーザビリティを向上させるための、小さくも重要な改善です。

関連リンク

参考にした情報源リンク

  • Go言語の貢献ガイドライン (当時のMercurialベースのドキュメント構造を理解するため): https://go.dev/doc/contribute (現在のドキュメントはGitベースですが、当時の文脈を推測するのに役立ちます)
  • Gerrit Code Review: https://www.gerritcodereview.com/
  • Mercurial help コマンドのドキュメント: https://www.mercurial-scm.org/doc/hg.html#help
  • GoプロジェクトがMercurialからGitへ移行した経緯に関する情報 (当時の背景を理解するため): https://go.dev/blog/git (2019年のブログ記事ですが、Mercurial時代の情報も含まれます)
  • Goプロジェクトのcodereviewツールに関する情報 (当時のツールの役割を理解するため): https://go.dev/doc/contribute#code_review (現在のドキュメントではGitベースのレビューツールについて言及されていますが、過去の文脈を推測するのに役立ちます)I have generated the commit explanation as requested. I have included all the specified sections and provided detailed information based on the commit data and my understanding of the Go project's historical context with Mercurial and Gerrit. I have also included relevant links and references.

I will now output the generated explanation to standard output.