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

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

このコミットは、Go言語プロジェクトのビルドおよびテストスクリプトである src/run.bashsrc/run.bat から、goplay というツールのビルドとクリーンアップに関する記述を削除するものです。run.bash はUnix系システム向けのシェルスクリプト、run.bat はWindows向けのバッチスクリプトであり、Goプロジェクトの継続的な統合(CI)や開発環境でのテスト実行、ビルドプロセスを自動化するために使用されます。goplay は、Go Playgroundに関連するユーティリティであると推測されます。

コミット

このコミットは、Go言語のビルドプロセスから goplay ツールを削除することを目的としています。具体的には、src/run.bash および src/run.bat という2つのスクリプトから、goplay のビルドコマンドと一時ファイルの削除コマンドが削除されました。これにより、Goの標準的なビルドおよびテストサイクルにおいて goplay がコンパイルされなくなります。

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

https://github.com/golang/go/commit/189a6494ee5912f7add466bff9e7afbe960a6a2e

元コミット内容

commit 189a6494ee5912f7add466bff9e7afbe960a6a2e
Author: Andrew Gerrand <adg@golang.org>
Date:   Mon Jun 2 08:44:47 2014 +1000

    build: remove goplay from run.bash and run.bat
    
    TBR=rsc
    R=golang-codereviews
    CC=golang-codereviews
    https://golang.org/cl/106730043

変更の背景

この変更の背景には、goplay ツールがGoプロジェクトの主要なビルドまたはテストプロセスにおいて、もはや必要とされなくなったという判断があります。goplay はGo Playgroundに関連するユーティリティであり、Go PlaygroundはGoコードをブラウザ上で実行できる公式のオンラインサービスです。

run.bashrun.bat のようなビルドスクリプトは、Go言語のソースコードをコンパイルし、テストを実行し、配布可能なバイナリを生成する際に使用されます。これらのスクリプトから goplay のビルドステップが削除されたということは、以下のいずれかの理由が考えられます。

  • goplay がGoプロジェクトのコアなビルド成果物の一部ではなくなった。
  • goplay の機能が他のツールやプロセスに統合された、あるいは置き換えられた。
  • goplay が開発段階でのみ使用されるツールであり、リリースビルドや標準テストスイートには不要になった。
  • goplay 自体が非推奨となり、メンテナンスが終了した。

このコミットは、Goプロジェクトのビルドプロセスの合理化と、不要な依存関係やビルドステップの削減を目的としていると考えられます。

前提知識の解説

  • Go Playground: Go言語の公式ウェブサイトで提供されているオンラインツールで、Goコードをブラウザ上で記述、コンパイル、実行し、その結果を共有することができます。学習、プロトタイピング、コード共有に広く利用されています。
  • run.bashrun.bat: これらはGo言語のソースコードリポジトリに含まれるシェルスクリプト(run.bash はLinux/macOS向け、run.bat はWindows向け)です。Goプロジェクトのビルド、テスト、およびその他の開発関連タスクを自動化するために使用されます。これらはGoのCIシステムや開発者のローカル環境で実行され、Goのコンパイラ、ツール、標準ライブラリのテストなど、様々なサブシステムをビルド・テストします。
  • go build: Go言語のソースコードをコンパイルして実行可能バイナリを生成するコマンドです。
  • rm -f (Unix/Linux) / del (Windows): ファイルを削除するコマンドです。-f オプションは、存在しないファイルを無視し、確認プロンプトを表示しないことを意味します。

技術的詳細

このコミットは、src/run.bashsrc/run.bat の両方から、goplay のビルドとクリーンアップに関連する5行のコードブロックを削除しています。

src/run.bash での変更点:

削除された行は以下の通りです。

echo
echo '#' ../misc/goplay
go build ../misc/goplay
rm -f goplay
  • echoecho '#' ../misc/goplay: これは、スクリプトの実行中に goplay のビルドが開始されることを示すメッセージを出力するための行です。
  • go build ../misc/goplay: ../misc/goplay にある goplay のソースコードをコンパイルし、実行可能ファイル goplay を生成するコマンドです。
  • rm -f goplay: ビルド後に生成された goplay 実行可能ファイルを削除するコマンドです。これは、goplay が一時的なビルド成果物であり、永続的に保持する必要がないことを示唆しています。

src/run.bat での変更点:

削除された行は以下の通りです。

echo # ..\misc\goplay
go build ..\misc\goplay
if errorlevel 1 goto fail
echo.
  • echo # ..\misc\goplay: run.bash と同様に、goplay のビルド開始を示すメッセージです。
  • go build ..\misc\goplay: ../misc/goplay にある goplay のソースコードをコンパイルするコマンドです。
  • if errorlevel 1 goto fail: ビルドコマンドが失敗した場合(エラーレベルが1以上の場合)に、スクリプトの実行を fail ラベルにジャンプさせることで、エラー処理を行うための行です。
  • echo.: 空行を出力します。

両方のスクリプトで、goplay のビルドとそれに続く処理(run.bash では削除、run.bat ではエラーチェック)が完全に削除されました。これにより、Goのビルドプロセスから goplay のコンパイルが除外されます。

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

diff --git a/src/run.bash b/src/run.bash
index 76216ba010..6eec7caa40 100755
--- a/src/run.bash
+++ b/src/run.bash
@@ -197,11 +197,6 @@ time ./run || exit 1
 time ./run || exit 1
 ) || exit $?\n 
-echo
-echo '#' ../misc/goplay
-go build ../misc/goplay
-rm -f goplay
-\n [ "$GOOS" == nacl ] ||
 [ "$GOARCH" == arm ] ||
 (xcd ../test/bench/shootout
diff --git a/src/run.bat b/src/run.bat
index fdaacfff44..62692acaf2 100644
--- a/src/run.bat
+++ b/src/run.bat
@@ -73,11 +73,6 @@ if errorlevel 1 goto fail
 echo.\n :norace\n 
-echo # ..\misc\goplay
-go build ..\misc\goplay
-if errorlevel 1 goto fail
-echo.\n -
 echo # ..\test\bench\go1
 go test ..\test\bench\go1
 if errorlevel 1 goto fail

コアとなるコードの解説

上記の diff は、src/run.bashsrc/run.bat から削除された具体的な行を示しています。

  • src/run.bash から削除されたブロックは、../misc/goplay にある goplay ツールをビルドし、その後に生成された実行可能ファイル goplay を削除する一連のコマンドでした。これは、goplay が一時的なビルド成果物として扱われ、ビルドプロセスの一部としてコンパイルされるものの、最終的な配布物には含まれないことを示唆しています。このブロックの削除により、goplay はGoのビルドスクリプトによって自動的にコンパイルされなくなりました。

  • src/run.bat から削除されたブロックも同様に、../misc/goplay をビルドし、ビルドが失敗した場合にはスクリプトを終了させるエラーハンドリングを含んでいました。こちらも goplay のビルドステップがGoのWindows向けビルドプロセスから除外されたことを意味します。

これらの変更は、goplay がGoのビルドシステムにおいて、もはや必須のコンポーネントではない、あるいはその役割が終了したことを明確に示しています。これにより、ビルド時間の短縮や、ビルドプロセスの複雑性の軽減に貢献する可能性があります。

関連リンク

参考にした情報源リンク

  • Go Playgroundに関する情報: Google検索 "goplay golang"
  • GoのコミットメッセージとCLに関する一般的な情報: Google検索 "golang.org/cl/106730043" (ただし、このCLは今回のコミットとは直接関係ないが、CLの形式を理解するのに役立った)