[インデックス 12323] ファイルの概要
このコミットは、Go 1リリースに関するドキュメント(doc/go1.html
および doc/go1.tmpl
)を更新し、html
パッケージの変更点を反映させることを目的としています。具体的には、html
パッケージがexp
(experimental/experimental)パッケージ群に移動したこと、およびEscapeString
とUnescapeString
関数が引き続きhtml
パッケージに残ることを明記しています。
コミット
- コミットハッシュ:
47d614e667d15aa324ec1909ae2422202947ff20
- Author: Andrew Gerrand adg@golang.org
- Date: Fri Mar 2 11:52:46 2012 +1100
- コミットメッセージ:
doc: update go1 for html changes R=golang-dev, rsc, r CC=golang-dev https://golang.org/cl/5713054
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/47d614e667d15aa324ec1909ae2422202947ff20
元コミット内容
doc: update go1 for html changes
R=golang-dev, rsc, r
CC=golang-dev
https://golang.org/cl/5713054
変更の背景
Go言語は、バージョン1(Go 1)のリリースに向けて、標準ライブラリの安定化と整理を行っていました。この過程で、一部のパッケージはまだ実験的な段階にあると判断され、将来的な変更の可能性を考慮してexp
ディレクトリに移動されました。html
パッケージもその一つであり、このコミットは、Go 1の公式ドキュメントがこの変更を正確に反映するようにするためのものです。
特に、EscapeString
とUnescapeString
という特定の関数は、HTMLエンコーディング/デコーディングにおいて非常に基本的な機能であり、これらが引き続きhtml
パッケージに残ることを明記することで、開発者が混乱することなくこれらの機能を利用できるように配慮されています。これは、パッケージ全体の移動とは別に、特定の重要な機能のアクセシビリティを維持するための措置と考えられます。
前提知識の解説
Go 1リリース
Go 1は、Go言語の最初の安定版リリースであり、言語仕様と標準ライブラリの互換性を保証する重要なマイルストーンでした。Go 1以降、既存のGo 1プログラムは、将来のGoのバージョンでも動作することが保証されています。この安定化の過程で、一部のパッケージはexp
(experimental)ディレクトリに移動され、将来の変更や削除の可能性が示唆されました。
exp
パッケージ
Go言語の標準ライブラリには、exp
という特別なディレクトリが存在します。このディレクトリに配置されたパッケージは「実験的」と見なされ、将来のGoのバージョンでAPIが変更されたり、完全に削除されたりする可能性があります。これは、Goチームが新しいアイデアや機能のプロトタイプを開発し、コミュニティからのフィードバックを収集するためのメカニズムです。exp
パッケージは、安定版のGo APIの一部とは見なされず、プロダクション環境での使用は推奨されません。
html
パッケージとHTMLエスケープ/アンエスケープ
Go言語の標準ライブラリには、HTMLの処理に関連するパッケージがいくつか存在します。このコミットで言及されているhtml
パッケージは、HTMLの構文解析やエスケープ処理に関連する機能を提供します。
- HTMLエスケープ: HTMLエスケープとは、特殊文字(例:
<
,>
,&
,"
,'
)をHTMLエンティティ(例:<
,>
,&
,"
,'
)に変換するプロセスです。これにより、ユーザーが入力したデータがHTMLとして解釈されることを防ぎ、クロスサイトスクリプティング(XSS)などのセキュリティ脆弱性を回避できます。 - HTMLアンエスケープ: HTMLアンエスケープは、エスケープされたHTMLエンティティを元の特殊文字に戻すプロセスです。
EscapeString
とUnescapeString
は、これらのエスケープ/アンエスケープ処理を行うための関数であり、Webアプリケーション開発においてセキュリティとデータの正確性を確保するために不可欠です。
技術的詳細
このコミットは、doc/go1.html
とdoc/go1.tmpl
という2つのドキュメントファイルを変更しています。これらのファイルは、Go 1リリースに関する公式ドキュメントの一部であり、Go 1で導入された変更点やパッケージの移動について説明しています。
変更の核心は、html
パッケージがexp
パッケージ群に移動したことを明記しつつ、その中でもEscapeString
とUnescapeString
という特定の関数は引き続きhtml
パッケージに残るという例外を明確にすることです。
具体的には、以下の変更が行われています。
-
exp
パッケージリストへのhtml
の追加:ebnf
,go/types
,os/signal
といった既存のexp
パッケージのリストに、新たにhtml
が追加されています。これにより、html
パッケージ全体が実験的なものとして扱われることが示されます。 -
EscapeString
とUnescapeString
の例外の明記:html
パッケージがexp
に移動したにもかかわらず、EscapeString
とUnescapeString
という2つの重要な関数は引き続きhtml
パッケージに残るという注釈が追加されています。これは、これらの関数がHTML処理において非常に基本的かつ頻繁に使用されるため、開発者が引き続き簡単にアクセスできるようにするための配慮です。注釈には†
(ダガー記号)が使用され、補足説明があることを示しています。
これらの変更は、Go 1のリリースに伴うパッケージの再編成と、その中でも特に重要な機能の扱いに関する公式な情報提供の一環です。
コアとなるコードの変更箇所
diff --git a/doc/go1.html b/doc/go1.html
--- a/doc/go1.html
+++ b/doc/go1.html
@@ -650,10 +650,16 @@ Several packages have moved under <code>exp</code> at the time of Go 1's release
<ul>
<li><code>ebnf</code></li>
+<li><code>html</code>†</li>
<li><code>go/types</code></li>
<li><code>os/signal</code></li>
</ul>
+<p>
+(†The <code>EscapeString</code> and <code>UnescapeString</code> types remain
+in package <code>html</code>.)
+</p>
+
<p>
All these packages are available under the same names, with the prefix <code>exp/</code>: <code>exp/ebnf</code> etc.
</p>
diff --git a/doc/go1.tmpl b/doc/go1.tmpl
--- a/doc/go1.tmpl
+++ b/doc/go1.tmpl
@@ -574,10 +574,16 @@ Several packages have moved under <code>exp</code> at the time of Go 1's release
<ul>
<li><code>ebnf</code></li>
+<li><code>html</code>†</li>
<li><code>go/types</code></li>
<li><code>os/signal</code></li>
</ul>
+<p>
+(†The <code>EscapeString</code> and <code>UnescapeString</code> types remain
+in package <code>html</code>.)
+</p>
+
<p>
All these packages are available under the same names, with the prefix <code>exp/</code>: <code>exp/ebnf</code> etc.
</p>
コアとなるコードの解説
両方のファイル(doc/go1.html
とdoc/go1.tmpl
)で、以下の変更が加えられています。
-
<li><code>html</code>†</li>
の追加: これは、exp
パッケージとしてリストされている項目(ebnf
,go/types
,os/signal
)の中に、新たにhtml
パッケージが追加されたことを示しています。†
はHTMLエンティティで、ダガー記号(†)を表し、この項目に補足説明があることを示唆しています。 -
(†The <code>EscapeString</code> and <code>UnescapeString</code> types remain in package <code>html</code>.)
の追加: この段落は、直前のhtml
パッケージのリスト項目に対する補足説明です。ダガー記号で示されたように、html
パッケージ全体がexp
に移動したにもかかわらず、EscapeString
とUnescapeString
という2つの型(実際には関数ですが、ドキュメントでは型として言及されている可能性があります)は引き続きhtml
パッケージに残ることを明確にしています。これは、これらの機能がHTML処理において非常に重要であり、開発者が引き続き直接html
パッケージからアクセスできるようにするための意図的な設計判断を示しています。
これらの変更は、Go 1のリリースノートやドキュメントにおいて、パッケージの再編成に関する正確な情報を提供し、開発者がGo 1への移行時に混乱しないようにするためのものです。
関連リンク
- Go言語公式サイト: https://go.dev/
- Go 1リリースノート(公式ドキュメントに統合されている可能性が高い)
参考にした情報源リンク
- コミット情報:
/home/orange/Project/comemo/commit_data/12323.txt
- GitHubコミットページ: https://github.com/golang/go/commit/47d614e667d15aa324ec1909ae2422202947ff20
- Go言語の
exp
パッケージに関する一般的な知識 - HTMLエスケープ/アンエスケープに関する一般的な知識
- Go 1リリースに関する一般的な知識