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

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

このコミットは、Go言語の公式ドキュメント doc/install-source.html から、オペレーティングシステム(OS)固有のビルド手順、特にCコンパイラのインストールに関する詳細な説明を削除し、GoコミュニティのWikiページへのリンクに置き換える変更を行っています。これにより、メインのインストールガイドの簡潔さを保ちつつ、より詳細で更新されやすい情報源への誘導が図られています。

コミット

commit d8630694db6b00782a9172ac6b88ec9fc8f7da3f
Author: Dave Cheney <dave@cheney.net>
Date:   Sun Feb 10 17:39:13 2013 -0500

    doc: move os specific build instructions to wiki
    
    Fixes #4010.
    
    This proposal avoids cluttering the main install-source.html with OS specific instructions by linking to the wiki for details. See discussion in the comments.
    
    R=adg, minux.ma
    CC=golang-dev
    https://golang.org/cl/7241068

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

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

元コミット内容

doc: move os specific build instructions to wiki

このコミットは、OS固有のビルド手順をWikiに移動させることを目的としています。

Fixes #4010.

GoリポジトリのIssue #4010を修正します。

This proposal avoids cluttering the main install-source.html with OS specific instructions by linking to the wiki for details. See discussion in the comments.

この提案は、install-source.html という主要なインストールガイドがOS固有の指示で煩雑になるのを避け、詳細についてはWikiへのリンクを提供することで解決を図ります。コメントでの議論を参照してください。

変更の背景

この変更の背景には、Go言語のドキュメント管理における課題がありました。doc/install-source.html はGoのソースコードからビルドするための主要なガイドでしたが、様々なOS(macOS, Ubuntu/Debian, Windowsなど)におけるCコンパイラのインストール手順など、OS固有の詳細な情報が記述されていました。

このようなOS固有の情報は、以下のような問題を引き起こしていました。

  1. 情報の陳腐化の速さ: OSのバージョンアップやパッケージ管理システムの変更により、インストール手順が頻繁に変わる可能性があります。公式ドキュメントに直接記述されていると、その都度Goリポジトリへのコミットが必要となり、更新が追いつかないリスクがありました。
  2. ドキュメントの肥大化と可読性の低下: 多くのOS固有の情報を一つのHTMLファイルに詰め込むことで、ドキュメントが長くなり、本当に必要な情報(Goのビルドプロセス自体)が埋もれてしまう可能性がありました。
  3. コミュニティによる貢献の促進: Wikiのようなプラットフォームは、コミュニティメンバーが情報を更新・改善しやすいという利点があります。公式リポジトリのドキュメントは、より厳格なレビュープロセスを経るため、迅速な更新には不向きです。

Issue #4010は、まさにこの問題意識から提起されたものと考えられます。このコミットは、これらの課題を解決し、ドキュメントの保守性を高め、ユーザーが常に最新かつ正確な情報にアクセスできるようにするための戦略的な判断に基づいています。

前提知識の解説

このコミットを理解するためには、以下の前提知識が役立ちます。

  • Go言語のビルドプロセス: Go言語のコンパイラやツールチェインは、初期の段階ではC言語で書かれていました(現在はGo自身で書かれていますが、このコミットが作成された2013年時点ではC言語の依存がありました)。そのため、Goのソースコードからビルドするには、システムにCコンパイラ(例: GCC)がインストールされている必要がありました。
  • doc/install-source.html: これはGo言語の公式ドキュメントの一部であり、Goのソースコードをダウンロードし、ビルドしてインストールする手順を説明するHTMLファイルです。
  • GoコミュニティWiki: Go言語には、公式ドキュメントとは別に、コミュニティによって維持・管理されるWikiが存在します。Wikiは、より詳細な情報、FAQ、特定のユースケースに関するガイドなど、公式ドキュメントではカバーしきれない広範な情報を提供するために利用されます。
  • Issueトラッカー (GitHub Issues): ソフトウェア開発プロジェクトでは、バグ報告、機能要望、改善提案などを管理するためにIssueトラッカーが使用されます。Go言語プロジェクトでは、GitHub Issues(当時はGoogle CodeのIssueトラッカー)が利用されており、「Fixes #4010」は、このコミットが特定のIssueを解決することを示します。
  • Mercurial: コミットメッセージに「Install Mercurial, if needed」という記述がありますが、これはGoプロジェクトがかつてバージョン管理システムとしてMercurialを使用していた名残です。現在はGitに移行しています。このコミットの時点では、ソースコードの取得にMercurialが必要な場合がありました。

技術的詳細

このコミットの技術的な変更は、doc/install-source.html ファイルの内容を修正することに集約されます。

具体的には、以下のセクションが変更されました。

  1. Cツールに関する記述の変更:

    • 変更前は、macOS (Xcode Command Line Tools), Ubuntu/Debian (apt-get), Windows (MinGW) など、各OSにおけるCコンパイラの具体的なインストールコマンドや注意点が詳細に記述されていました。
    • 変更後は、これらの詳細な記述が削除され、代わりにGoコミュニティWikiの InstallFromSource ページにある Install_C_tools セクションへのハイパーリンクが追加されました。
    <!-- 変更前の一部抜粋 -->
    <p>
    On OS X, a C compiler is bundled in the command line tools for
    <a href="http://developer.apple.com/Xcode/">Xcode</a>,
    and you don't need to install the whole Xcode to compile Go.
    ...
    </p>
    
    <!-- 変更後の一部抜粋 -->
    <p>
    The Go tool chain is written in C. To build it, you need a C compiler installed. 
    Please refer to the <a href="http://code.google.com/p/go-wiki/wiki/InstallFromSource#Install_C_tools">InstallFromSource</a>
    page on the Go community Wiki for operating system specific instructions.
    </p>
    

この変更により、install-source.html はGoのビルドに必要な一般的な前提条件(Cコンパイラが必要であること)のみを記述し、OS固有の具体的な手順は外部のWikiに委ねる形になりました。これにより、公式ドキュメントはより汎用的な情報に特化し、OS固有の情報の更新はコミュニティ主導で行われるWikiに任せるという役割分担が明確化されました。

このアプローチは、ドキュメントの保守性を向上させるだけでなく、公式ドキュメントの「単一責任の原則」を強化するものです。つまり、install-source.html はGoのソースからのインストールという「コアな情報」に責任を持ち、OS固有の環境設定という「変動しやすい情報」は別の場所で管理されるべきである、という思想が反映されています。

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

変更されたファイルは doc/install-source.html のみです。

--- a/doc/install-source.html
+++ b/doc/install-source.html
@@ -57,8 +57,7 @@ architectures.
  	<code>arm</code> (a.k.a. <code>ARM</code>); <code>5g,5l,5c,5a</code>
 </dt>
 <dd>
-	Supports only Linux binaries. Less widely used than the other ports and therefore
-	not as thoroughly tested.
+	Supports only Linux binaries. Less widely used than the other ports and therefore not as thoroughly tested.
 </dd>
 </dl>
 
@@ -81,31 +80,9 @@ The full set of supported combinations is listed in the discussion of
 <h2 id="ctools">Install C tools, if needed</h2>
 
 <p>
-The Go tool chain is written in C.
-To build it, you need a C compiler installed.
-</p>
-
-<p>
-On OS X, a C compiler is bundled in the command line tools for
-<a href="http://developer.apple.com/Xcode/">Xcode</a>,
-and you don't need to install the whole Xcode to compile Go.
-If you have already installed Xcode 4.3+, you can install command
-line tools from the Components tab of the Downloads preferences panel.
-To verify you have a working compiler, just invoke <code>gcc</code>
-in a freshly created Terminal window, unless you see the
-"<code>gcc: command not found</code>" error, you are ready to go.
-</p>
-
-<p>
-On Ubuntu/Debian, use <code>sudo apt-get install gcc libc6-dev</code>.
-If you want to build 32-bit binaries on a 64-bit system you'll also need the
-<code>libc6-dev-i386</code> package.
-</p>
-
-<p>
-On Windows, install <code>gcc</code> with
-<a href="http://www.mingw.org/">MinGW</a>.
-(Make sure you add its <code>bin</code> subdirectory to your <code>PATH</code>.)
+The Go tool chain is written in C. To build it, you need a C compiler installed. 
+Please refer to the <a href="http://code.google.com/p/go-wiki/wiki/InstallFromSource#Install_C_tools">InstallFromSource</a>
+page on the Go community Wiki for operating system specific instructions.
 </p>
 
 <h2 id="mercurial">Install Mercurial, if needed</h2>

コアとなるコードの解説

上記のdiffが示すように、変更の大部分は doc/install-source.html 内の <h2 id="ctools">Install C tools, if needed</h2> セクションに集中しています。

  • 削除された行: 27行が削除されました。これらは、macOS、Ubuntu/Debian、WindowsにおけるCコンパイラのインストールに関する具体的な手順(Xcode Command Line Toolsのインストール方法、apt-get コマンド、MinGWの利用など)を記述していた部分です。これらの情報は、OSのバージョンや環境によって頻繁に変化する可能性があり、ドキュメントの保守性を低下させる要因となっていました。

  • 追加された行: 4行が追加されました。これらの行は、Cツールが必要であるという一般的な事実を述べた後、GoコミュニティWikiの InstallFromSource ページにある Install_C_tools セクションへのハイパーリンクを提供しています。

    The Go tool chain is written in C. To build it, you need a C compiler installed. 
    Please refer to the <a href="http://code.google.com/p/go-wiki/wiki/InstallFromSource#Install_C_tools">InstallFromSource</a>
    page on the Go community Wiki for operating system specific instructions.
    

    この変更により、install-source.html はより簡潔になり、OS固有のインストールの詳細はコミュニティが管理するWikiに委ねられることになりました。これにより、公式ドキュメントはGoのビルドに関する普遍的な情報に集中し、OS固有の変動する情報はより柔軟に更新可能なWikiで管理されるという、効率的なドキュメント管理体制が確立されました。

また、arm アーキテクチャに関する記述もわずかに変更されていますが、これはCツールに関する変更とは直接関係なく、単に改行の調整が行われただけです。

関連リンク

  • Go言語公式ドキュメント: Go言語の公式ウェブサイトには、最新のインストールガイドやドキュメントが掲載されています。
  • GoコミュニティWiki: Go言語のコミュニティによって維持されているWikiは、公式ドキュメントを補完する形で、より詳細な情報や特定のトピックに関するガイドを提供しています。

参考にした情報源リンク

  • Go Issue #4010: このコミットが修正したIssueの詳細は、GoプロジェクトのIssueトラッカーで確認できます。
  • Go CL 7241068: このコミットに対応するGerritの変更リスト(Change List)です。詳細なレビューコメントや議論が残されている場合があります。
  • Go Wiki - InstallFromSource: このコミットでリンクされているGoコミュニティWikiのページです。
    • https://code.google.com/p/go-wiki/wiki/InstallFromSource (当時のURL、現在はgolang.orgドメインに移行している可能性が高い)
    • 現在のGo Wikiの関連ページ: https://go.dev/doc/install/source (これは公式ドキュメントのソースからのインストールページであり、Wikiとは異なりますが、関連情報として参照できます。)
    • Go WikiのCツールに関するセクションは、時間の経過とともに内容が変化している可能性があります。