[インデックス 13977] ファイルの概要
このコミットは、Go言語の公式ドキュメントである doc/install.html
におけるOS X (旧称 Mac OS X) 向けのダウンロードリンクの修正に関するものです。具体的には、ダウンロードリストをフィルタリングするためのURLクエリパラメータが更新され、より正確なリンクが提供されるようになりました。
コミット
commit 020d85152ec25fdf454e02d9a8d1b7a7fc5860ca
Author: Andrew Gerrand <adg@golang.org>
Date: Thu Sep 27 14:48:33 2012 -0700
doc: fix OS X download links
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6566064
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/020d85152ec25fdf454e02d9a8d1b7a7fc5860ca
元コミット内容
diff --git a/doc/install.html b/doc/install.html
index 5414b94fb8..cc02f12924 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -115,7 +115,7 @@ rm -r /usr/local/go
</pre>
<p>
-Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive">the archive</a>
+Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive">the archive</a>
into <code>/usr/local</code>, creating a Go tree in <code>/usr/local/go</code>:
</p>
@@ -140,7 +140,7 @@ export PATH=$PATH:/usr/local/go/bin
<h3 id="osx">Mac OS X package installer</h3>
<p>
-Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-Darwin+AND+Type-Installer">package file</a>
+Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer">package file</a>
and follow the prompts to install the Go tools.\n The package installs the Go distribution to <code>/usr/local/go</code>.
</p>
変更の背景
このコミットが行われた2012年当時、Go言語のダウンロードは主にGoogle Codeのプロジェクトページ(code.google.com/p/go
)を通じて提供されていました。このページには、様々なオペレーティングシステムやアーキテクチャ向けのGoバイナリがアーカイブやインストーラーとしてリストされていました。ユーザーは、URLのクエリパラメータを使用して、特定のOSやファイルタイプでダウンロードリストをフィルタリングすることができました。
しかし、既存の doc/install.html
に記載されていたOS X向けのダウンロードリンクのクエリパラメータが、意図した通りに機能していなかったか、あるいはGoプロジェクトのダウンロードページのフィルタリングロジックの変更により、正しくOS X向けのファイルが表示されなくなっていた可能性があります。
具体的には、以下の2つの問題が考えられます。
AND
演算子の誤用または不要化: 最初の変更箇所ではOpSys-OSX+AND+Type-Archive
からAND
が削除されています。これは、Google Codeのダウンロードリストのクエリパーサーが+AND+
を正しく解釈していなかったか、あるいは単にOpSys-OSX
とType-Archive
をスペースで区切るだけで暗黙的にAND条件として扱われるようになったため、冗長なAND
を削除したと考えられます。- OS名の変更または正規化: 2番目の変更箇所では
OpSys-Darwin
がOpSys-OSX
に変更されています。Darwin
はmacOS(当時はOS X)の基盤となるUNIX系オペレーティングシステムの名称ですが、ユーザーインターフェースやマーケティング上はOS X
が一般的に使用されていました。Google Codeのダウンロードリストのフィルタリングシステムが、より一般的なOS X
という表記を正式なオペレーティングシステム名として認識するようになったか、あるいは一貫性を保つためにOS X
に統一された可能性があります。
これらの問題により、ユーザーがGoのインストールガイドに従ってOS X向けのダウンロードリンクをクリックしても、期待するファイルが見つからない、あるいは不適切なファイルが表示されるというユーザーエクスペリエンスの低下が発生していました。このコミットは、その問題を解決し、ユーザーがGoをスムーズにダウンロードできるようにすることを目的としています。
前提知識の解説
このコミットを理解するためには、以下の前提知識が役立ちます。
- URLクエリパラメータ: URLの末尾に
?
の後に続くkey=value
形式の文字列で、ウェブサーバーに情報を渡すために使用されます。複数のパラメータは&
で区切られます。このコミットでは、q=
パラメータの値が変更されています。 - URLエンコーディング: URLで使用できない文字(スペースなど)を
%XX
の形式でエンコードする仕組みです。このコミットでは、スペースが+
で表現されています(これはapplication/x-www-form-urlencoded
形式でよく見られます)。 - Google Code: 2006年から2015年までGoogleが提供していたオープンソースプロジェクトのホスティングサービスです。Go言語プロジェクトも初期にはここでホストされており、ダウンロードファイルもGoogle Codeのダウンロードセクションで管理されていました。このサービスは2015年に閉鎖され、GoプロジェクトはGitHubに移行しました。
- オペレーティングシステムの名称:
- OS X: Appleが開発したmacOSの旧称(2012年当時はこの名称)。
- Darwin: OS X/macOSの基盤となるオープンソースのUNIX系オペレーティングシステム。
- ダウンロードサイトでは、これらの名称がフィルタリングのキーとして使用されることがあります。
技術的詳細
このコミットの技術的詳細は、主にURLのクエリパラメータの構文と、それがウェブアプリケーション(この場合はGoogle Codeのダウンロードリストページ)によってどのように解釈されるかに関連しています。
変更前:
http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive
http://code.google.com/p/go/downloads/list?q=OpSys-Darwin+AND+Type-Installer
変更後:
http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive
http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer
変更点1: +AND+
の削除
元のURLでは、OpSys-OSX+AND+Type-Archive
のように、明示的に AND
演算子を使用していました。一般的な検索クエリでは AND
や OR
を使用して条件を組み合わせますが、ウェブアプリケーションによっては、スペース区切りで複数のキーワードを指定するだけで暗黙的にAND条件として扱われることがあります。この場合、+AND+
が冗長であったか、あるいはGoogle Codeの検索エンジンがこの明示的な AND
を正しく解釈せず、結果として期待通りのフィルタリングが行われていなかった可能性があります。+AND+
を削除することで、OpSys-OSX
と Type-Archive
の両方の条件を満たすファイルを正しく検索できるようになりました。
変更点2: OpSys-Darwin
から OpSys-OSX
への変更
これは、ダウンロードリストのフィルタリングシステムが認識するオペレーティングシステム名の正規化または変更を示唆しています。Darwin
は技術的な名称ですが、ユーザー向けのダウンロードページでは OS X
というより一般的な名称が使用されることが多いため、システム側も OS X
を正式なキーとして採用したと考えられます。これにより、OpSys-OSX
で検索することで、OS X向けの適切なインストーラーが確実に表示されるようになりました。
これらの変更は、ウェブサイトのバックエンドにおける検索ロジックやデータ構造の変更に起因している可能性があり、フロントエンドのドキュメント側でそれに合わせてURLを更新する必要があったことを示しています。
コアとなるコードの変更箇所
変更は doc/install.html
ファイルの2箇所です。
-
行115:
-Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive">the archive</a>
+Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive">the archive</a>
-
行140:
-Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-Darwin+AND+Type-Installer">package file</a>
+Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer">package file</a>
コアとなるコードの解説
これらの変更は、HTMLのアンカータグ (<a>
) の href
属性内のURLを修正しています。
-
最初の変更は、Goのアーカイブ(tar.gzなど)をダウンロードするためのリンクです。
- 変更前:
q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive
- 変更後:
q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive
OpSys-OSX
とType-Archive
の間の+AND+
が削除されました。これにより、OS X向けのアーカイブファイルが正しくフィルタリングされるようになりました。
- 変更前:
-
2番目の変更は、Mac OS X向けのパッケージインストーラー(.pkgファイル)をダウンロードするためのリンクです。
- 変更前:
q=OpSys-Darwin+AND+Type-Installer
- 変更後:
q=OpSys-OSX+Type-Installer
OpSys-Darwin
がOpSys-OSX
に変更され、+AND+
が削除されました。これにより、OS X向けのインストーラーファイルが正しくフィルタリングされるようになりました。
- 変更前:
これらの修正により、Go言語のインストール手順に従うユーザーが、OS X環境で適切なダウンロードファイルにアクセスできるようになりました。これは、ユーザーエクスペリエンスの向上と、ドキュメントの正確性の維持に貢献しています。
関連リンク
- Go言語の公式ウェブサイト (現在のダウンロードページ): https://go.dev/dl/
- Google Codeの閉鎖に関する情報: https://opensource.googleblog.com/2015/03/farewell-to-google-code.html (Google Open Source Blog)
参考にした情報源リンク
- Google Codeのダウンロード機能に関する一般的な情報 (サービスは終了しているため、アーカイブされた情報源や関連するフォーラムの議論など)
- URLクエリパラメータの構文に関する一般的なウェブ開発のドキュメント
- Go言語の過去のリリースノートやドキュメントの変更履歴 (もしあれば)
diff
コマンドの出力形式に関する情報- OS XとDarwinの名称に関する情報
- Go言語のGitHubリポジトリのコミット履歴
golang.org/cl/6566064
(GoのGerritコードレビューシステムへのリンク。ただし、このリンクは現在機能しない可能性が高いです。Google Codeの閉鎖に伴い、GerritのURL構造も変更された可能性があります。)