[インデックス 10929] ファイルの概要
コミット
commit 5b12940b09e7b831f4fca44bc4f6368ca7ad3261
Author: Andrew Gerrand <adg@golang.org>
Date: Wed Dec 21 17:12:16 2011 +1100
builder: set default builder host to build.golang.org
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5489099
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/5b12940b09e7b831f4fca44bc4f6368ca7ad3261
元コミット内容
builder: set default builder host to build.golang.org
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5489099
変更の背景
このコミットは、Goプロジェクトのビルドシステムにおけるデフォルトのダッシュボードホストをgo-build.appspot.com
からbuild.golang.org
に変更することを目的としています。
Goプロジェクトは、継続的インテグレーション(CI)とビルドプロセスを管理するために、独自のビルドシステムを運用しています。初期の段階では、Google App Engineのappspot.com
ドメインを利用して、ビルド関連のサービスやダッシュボードがホストされていた可能性があります。しかし、プロジェクトの成熟とインフラの進化に伴い、より公式で専用のドメインであるbuild.golang.org
への移行が進められました。
この変更は、Goプロジェクトのビルドインフラストラクチャの標準化と集中化の一環と考えられます。build.golang.org
は、Goプロジェクトの公式なCI/ビルドプラットフォームとして機能し、プリコミット(TryBot)およびポストコミットの作業、ビルドの実行、マシンの割り当て、ビルドログと結果の状態管理など、ビルドシステム全体の調整役を担っています。このコミットは、ビルダクライアントがデフォルトでこの新しい公式ホストに接続するように設定することで、ビルドシステムの整合性と信頼性を向上させることを意図しています。
前提知識の解説
Goプロジェクトのビルドシステム
Goプロジェクトは、その開発プロセスにおいて堅牢な継続的インテグレーション(CI)システムを構築しています。これは、コードの変更がコミットされる前にテストを実行したり、コミット後に様々なプラットフォームやアーキテクチャでビルドとテストを行ったりすることで、コードベースの品質と安定性を維持するために不可欠です。
Go Dashboard
Go Dashboardは、Goプロジェクトのビルドとテストのステータスを視覚的に表示するウェブインターフェースです。各コミットに対するビルド結果(成功、失敗、スキップなど)や、様々な環境でのテスト結果を確認できます。開発者はこのダッシュボードを通じて、コードの変更がシステム全体にどのような影響を与えているかを一目で把握できます。
appspot.com
ドメイン
appspot.com
は、Google App Engine(GAE)でデプロイされたアプリケーションに割り当てられるデフォルトのドメインです。Google App Engineは、Googleが提供するPlatform as a Service (PaaS) であり、開発者がスケーラブルなウェブアプリケーションを構築・デプロイできる環境を提供します。Goプロジェクトの初期段階では、一部のサービスがGAE上でホストされていたため、go-build.appspot.com
のようなドメインが使用されていました。
golang.org
ドメイン
golang.org
は、Goプログラミング言語の公式ウェブサイトであり、Goプロジェクトに関連するすべての公式リソース(ドキュメント、ツール、リポジトリなど)がホストされています。build.golang.org
は、この公式ドメインのサブドメインであり、Goプロジェクトの公式ビルドシステム専用に割り当てられています。これは、Goプロジェクトが独自のインフラストラクチャを確立し、Google App Engineのような汎用プラットフォームから独立してビルドプロセスを管理していることを示しています。
Goのflag
パッケージ
Go言語の標準ライブラリには、コマンドライン引数を解析するためのflag
パッケージが含まれています。このパッケージを使用すると、プログラムの起動時にユーザーが指定できるオプション(フラグ)を簡単に定義できます。
flag.String(name, defaultValue, usage)
: 文字列型のフラグを定義します。name
はフラグの名前(例:--dashboard
)、defaultValue
はフラグが指定されなかった場合のデフォルト値、usage
はそのフラグの説明です。
このコミットでは、dashboard
という名前の文字列フラグのデフォルト値が変更されています。
Gerrit (golang.org/cl)
https://golang.org/cl/5489099
というリンクは、Goプロジェクトがコードレビューに利用しているGerritシステムへのリンクです。Gerritは、Gitリポジトリに対する変更(コミット)をレビューするためのウェブベースのツールです。開発者は変更をGerritにアップロードし、他の開発者からのレビューを受けて承認された後に、その変更がメインのGitリポジトリにマージされます。CL
は「Change List」の略で、Gerritにおける個々の変更セットを指します。
技術的詳細
このコミットは、Goプロジェクトのビルドシステムの一部であるmisc/dashboard/builder/main.go
ファイル内の設定を変更しています。具体的には、Goのflag
パッケージを使用して定義されているdashboard
というコマンドラインフラグのデフォルト値を更新しています。
変更前は、dashboard
フラグのデフォルト値は"go-build.appspot.com"
でした。これは、ビルダクライアントがデフォルトでGoogle App Engine上でホストされている古いダッシュボードサービスに接続するように設定されていたことを意味します。
変更後は、dashboard
フラグのデフォルト値が"build.golang.org"
に変更されています。これにより、ビルダクライアントは、Goプロジェクトの公式かつ専用のビルドダッシュボードホストにデフォルトで接続するようになります。
この変更は、ビルダアプリケーションが起動する際に、明示的に--dashboard
フラグが指定されない限り、新しい公式ホストを使用することを保証します。これにより、ビルドシステムのクライアント側が、最新かつ推奨されるインフラストラクチャに自動的に誘導されるようになります。
コアとなるコードの変更箇所
--- a/misc/dashboard/builder/main.go
+++ b/misc/dashboard/builder/main.go
@@ -52,7 +52,7 @@ type Builder struct {
var (
buildroot = flag.String("buildroot", path.Join(os.TempDir(), "gobuilder"), "Directory under which to build")
commitFlag = flag.Bool("commit", false, "upload information about new commits")
- dashboard = flag.String("dashboard", "go-build.appspot.com", "Go Dashboard Host")
+ dashboard = flag.String("dashboard", "build.golang.org", "Go Dashboard Host")
buildRelease = flag.Bool("release", false, "Build and upload binary release archives")
buildRevision = flag.String("rev", "", "Build specified revision and exit")
buildCmd = flag.String("cmd", "./all.bash", "Build command (specify absolute or relative to go/src/)")
コアとなるコードの解説
上記の差分は、misc/dashboard/builder/main.go
ファイル内のvar
ブロックで定義されているグローバル変数の一部を示しています。
変更された行は以下の通りです。
- dashboard = flag.String("dashboard", "go-build.appspot.com", "Go Dashboard Host")
+ dashboard = flag.String("dashboard", "build.golang.org", "Go Dashboard Host")
この行は、flag.String
関数を呼び出して、dashboard
という名前のコマンドラインフラグを定義しています。
- 第一引数
"dashboard"
: コマンドラインで指定するフラグの名前です(例:./builder --dashboard=somehost.com
)。 - 第二引数
"go-build.appspot.com"
(変更前) /"build.golang.org"
(変更後): このフラグのデフォルト値です。ユーザーがコマンドラインで--dashboard
フラグを明示的に指定しなかった場合、この値が使用されます。 - 第三引数
"Go Dashboard Host"
: このフラグの用途を説明するヘルプメッセージです。
この変更により、ビルダアプリケーションが起動する際に、dashboard
フラグのデフォルト値がgo-build.appspot.com
からbuild.golang.org
に切り替わります。これは、ビルダが接続するデフォルトのダッシュボードサービスが、古いApp Engineベースのホストから、Goプロジェクトの公式なビルドインフラストラクチャであるbuild.golang.org
へと移行したことを意味します。これにより、ビルドシステムのクライアント側が、最新かつ推奨されるインフラストラクチャに自動的に誘導されるようになります。
関連リンク
- Goプロジェクトの公式ビルドシステム: https://build.golang.org/
- GoプロジェクトのGerritコードレビューシステム: https://go.googlesource.com/go/+/refs/heads/master/CONTRIBUTING.md#Code-Review (Gerritの利用方法に関するドキュメント)
- Go言語
flag
パッケージのドキュメント: https://pkg.go.dev/flag
参考にした情報源リンク
- Google検索: "go-build.appspot.com vs build.golang.org"
- https://github.com/golang/go/issues/10000 (Goプロジェクトのビルドシステムに関する議論の一部)
- https://go.dev/doc/contribute#build-system (Goプロジェクトのビルドシステムに関する公式ドキュメント)
- https://cloud.google.com/appengine/docs/standard/go/ (Google App Engine Go Standard Environmentのドキュメント)