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

[インデックス 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へと移行したことを意味します。これにより、ビルドシステムのクライアント側が、最新かつ推奨されるインフラストラクチャに自動的に誘導されるようになります。

関連リンク

参考にした情報源リンク