[インデックス 11490] ファイルの概要
このコミットは、Go言語の公式ドキュメントである doc/go1.html
および doc/go1.tmpl
に、image/bmp
および image/tiff
パッケージのインポートパス変更に関する情報を追加するものです。これは、Go 1リリースに向けた標準ライブラリの整理の一環として、一部のパッケージがGoプロジェクトの外部リポジトリへ移動されたことを反映しています。
コミット
commit ceb1ca6b41e0dc2fae4fddf5f06533a0c55c8786
Author: Nigel Tao <nigeltao@golang.org>
Date: Tue Jan 31 12:29:00 2012 +1100
doc: add image/{bmp,tiff} renames to go1.tmpl.
R=r
CC=golang-dev
https://golang.org/cl/5598052
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/ceb1ca6b41e0dc2fae4fddf5f06533a0c55c8786
元コミット内容
doc: add image/{bmp,tiff} renames to go1.tmpl.
このコミットは、image/bmp
および image/tiff
パッケージのインポートパスが変更されたことを示す情報を、Go 1のドキュメントテンプレートに追加するものです。
変更の背景
Go言語は、2012年3月に初の安定版であるGo 1をリリースしました。Go 1の目標の一つは、言語と標準ライブラリの安定性を提供し、将来のバージョンとの互換性を保証することでした。この安定化プロセスの一環として、標準ライブラリに含まれていた一部のパッケージが、Goプロジェクトのメインリポジトリから分離され、code.google.com/p/go.*
のような外部リポジトリへ移動されました。
image/bmp
と image/tiff
パッケージもこの対象となり、Go 1リリース前に標準ライブラリから code.google.com/p/go.image/bmp
および code.google.com/p/go.image/tiff
へと移動されました。この変更は、標準ライブラリのコア部分をよりスリムに保ちつつ、特定の機能(この場合は画像フォーマットのサポート)を必要とするユーザーが、必要に応じて外部パッケージとしてインポートできるようにするためのものでした。
このコミットは、Go 1のリリースノートや移行ガイドとなる go1.html
およびそのテンプレート go1.tmpl
に、この重要な変更を明記することで、既存のGoユーザーがGo 1へ移行する際に混乱しないようにするためのドキュメンテーションの更新です。
前提知識の解説
- Go 1リリース: Go言語の最初の安定版リリースであり、言語仕様と標準ライブラリの互換性が保証されるようになった重要なマイルストーンです。これ以降、Goのバージョンアップは後方互換性を維持する方針が採られています。
- Goのパッケージ管理: Go言語では、パッケージはインポートパスによって識別されます。初期のGoでは、標準ライブラリのパッケージはGoのソースツリー内に存在していました。しかし、Go 1の準備段階で、一部のパッケージは標準ライブラリの「コア」から外され、
code.google.com/p/go.*
のような外部の「サブリポジトリ」へと移動されました。これにより、Goの配布サイズを抑え、コアライブラリの保守性を高める狙いがありました。 go1.html
とgo1.tmpl
: これらはGo 1のリリースに関する公式ドキュメントの一部です。go1.tmpl
はテンプレートファイルであり、そこからgo1.html
が生成されます。これらのファイルは、Go 1への移行ガイドや、Go 1で導入された変更点、特にインポートパスの変更などについて記述されています。image/bmp
およびimage/tiff
パッケージ: これらはGoの標準ライブラリの一部として、それぞれBMPおよびTIFF画像フォーマットのエンコード/デコード機能を提供していました。Go 1のリリースに伴い、これらは標準ライブラリから分離され、Goのサブプロジェクトとして独立したリポジトリに移動されました。
技術的詳細
このコミットの技術的詳細は、Go 1におけるパッケージの再編成と、それに対応するドキュメンテーションの更新にあります。
Go 1のリリースでは、標準ライブラリの肥大化を防ぎ、よりコアな機能に焦点を当てるために、一部のパッケージがGoのメインリポジトリから分離されました。これらのパッケージは、code.google.com/p/go.image
や code.google.com/p/go.net
のような、Goプロジェクトが管理する別のリポジトリ(当時はGoogle Code上でホストされていた)に移動されました。
具体的には、image/bmp
は code.google.com/p/go.image/bmp
へ、image/tiff
は code.google.com/p/go.image/tiff
へとインポートパスが変更されました。これは、これらの画像フォーマットのサポートが、Goのコアな画像処理機能(image
パッケージ)とは別に、必要に応じて追加でインポートされるべき「拡張機能」と位置づけられたためです。
このコミットは、このインポートパスの変更をユーザーに明確に伝えるため、Go 1の公式ドキュメントに以下のHTMLテーブルエントリを追加しています。
<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
これにより、Go 1に移行する開発者は、既存のコードでこれらのパッケージを使用している場合、インポートパスを新しいものに更新する必要があることを容易に認識できるようになります。これは、Go 1が後方互換性を重視する一方で、一部の非互換な変更(特にパッケージの移動)が発生したことを示す重要な例の一つです。
コアとなるコードの変更箇所
変更は doc/go1.html
と doc/go1.tmpl
の2つのファイルに対して行われています。両ファイルで同様の変更が、既存のインポートパス変更リストのセクションに追加されています。
--- a/doc/go1.html
+++ b/doc/go1.html
@@ -673,6 +673,11 @@ This table lists the old and new import paths:
<tr>
<td colspan="2"><hr></td>
</tr>
+<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
+<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
+<tr>
+<td colspan="2"><hr></td>
+</tr>
<tr><td>net/dict</td> <td>code.google.com/p/go.net/dict</tr>
<tr><td>net/websocket</td> <td>code.google.com/p/go.net/websocket</tr>
<tr><td>exp/spdy</td> <td>code.google.com/p/go.net/spdy</tr>
--- a/doc/go1.tmpl
+++ b/doc/go1.tmpl
@@ -597,6 +597,11 @@ This table lists the old and new import paths:
<tr>
<td colspan="2"><hr></td>
</tr>
+<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
+<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
+<tr>
+<td colspan="2"><hr></td>
+</tr>
<tr><td>net/dict</td> <td>code.google.com/p/go.net/dict</tr>
<tr><td>net/websocket</td> <td>code.google.com/p/go.net/websocket</tr>
<tr><td>exp/spdy</td> <td>code.google.com/p/go.net/spdy</tr>
コアとなるコードの解説
上記の変更箇所は、HTMLのテーブル行 (<tr>
) を追加しています。このテーブルは、Go 1でインポートパスが変更されたパッケージのリストを示しています。
<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
- この行は、以前
image/bmp
というパスでインポートされていたパッケージが、Go 1以降はcode.google.com/p/go.image/bmp
という新しいパスでインポートする必要があることを示しています。
- この行は、以前
<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
- 同様に、この行は
image/tiff
パッケージがcode.google.com/p/go.image/tiff
へと移動したことを示しています。
- 同様に、この行は
これらの行は、既存の net/dict
や net/websocket
といった他の移動済みパッケージのエントリの間に挿入されており、ドキュメントの一貫性を保っています。doc/go1.tmpl
はテンプレートであるため、この変更は最終的に生成される doc/go1.html
にも反映され、Go 1の公式リリースノートの一部となります。
関連リンク
- Go 1リリースに関する公式ブログ記事 (当時の情報源): https://go.dev/blog/go1 (Go 1の発表に関する一般的な情報)
- Go 1ドキュメント (現在のGo公式サイト): https://go.dev/doc/go1 (このコミットが変更したドキュメントの現在のバージョン)
- Goのパッケージ管理に関する歴史的背景 (Go Modules以前): https://go.dev/blog/go-modules-part01-background (Go Modules以前のパッケージ管理の課題と背景について触れられている可能性のある記事)
参考にした情報源リンク
- GitHub上のコミットページ: https://github.com/golang/go/commit/ceb1ca6b41e0dc2fae4fddf5f06533a0c55c8786
- Go CL 5598052: https://golang.org/cl/5598052 (Goのコードレビューシステムにおけるこの変更のレビューページ)
- Go 1 Release Notes (当時の情報源を基にした一般的な知識)
- Go言語のパッケージとモジュールの進化に関する一般的な知識
- Google Codeのアーカイブ情報 (
code.google.com/p/go.image
のようなリポジトリがかつて存在したことの確認) - Go言語の公式ドキュメント (
go.dev
) - Go言語のブログ (
go.dev/blog
)