[インデックス 12516] ファイルの概要
このコミットは、Go言語のダッシュボード(misc/dashboard
)における外部パッケージのインストール数を記録する機能を元に戻す(undo)ものです。具体的には、以前のコミットで導入されたインストール数追跡機能が、一時的に見送られることになったため、関連するコードと設定が削除されています。
コミット
commit 52db02bef36de3c39f32cdcf059d6d45477ae449
Author: Andrew Gerrand <adg@golang.org>
Date: Thu Mar 8 22:34:59 2012 +1100
undo CL 5699082 / 6223c9fe432b
We decided not to record installs, for now at least.
««« original CL description
misc/dashboard: record install counts for external packages
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5699082
»»»
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5790044
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/52db02bef36de3c39f32cdcf059d6d45477ae449
元コミット内容
このコミットは、以下の元のコミット(CL 5699082 / 6223c9fe432b)の変更を元に戻すものです。
misc/dashboard: record install counts for external packages
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5699082
元のコミットは、Go言語のダッシュボードに外部パッケージのインストール数を記録する機能を追加することを目的としていました。
変更の背景
コミットメッセージによると、「We decided not to record installs, for now at least.」(少なくとも今のところ、インストール数を記録しないことに決定した)という理由で、以前導入された外部パッケージのインストール数追跡機能が元に戻されました。これは、機能の導入が時期尚早である、あるいは実装方法や必要性について再検討が必要であると判断されたためと考えられます。
前提知識の解説
- Go言語ダッシュボード (misc/dashboard): Goプロジェクトには、ビルドの状態、テスト結果、コミット履歴などを表示するためのダッシュボードが存在します。これは通常、Goの公式リポジトリの一部として管理され、Goのインフラストラクチャの健全性を監視する役割を担っています。このダッシュボードはGoogle App Engine上で動作していました。
- Google App Engine (GAE): Googleが提供するPaaS(Platform as a Service)であり、ウェブアプリケーションやモバイルバックエンドを構築・デプロイするためのプラットフォームです。Go言語もサポートされており、
app.yaml
やcron.yaml
といった設定ファイルを使用してアプリケーションのデプロイやcronジョブの管理を行います。 go get
コマンド: Go言語のパッケージ管理ツールであり、リモートリポジトリからGoパッケージをダウンロードし、ビルドしてインストールするために使用されます。このコミットで削除された機能は、go get
によるパッケージインストール時に、そのインストール数をダッシュボードに報告するメカニズムを導入しようとしていたと考えられます。- CL (Change List): Gerritなどのコードレビューシステムで使われる用語で、一連の変更(コミット)をまとめたものです。GoプロジェクトではGerritがコードレビューに利用されており、
https://golang.org/cl/
の形式で各CLにアクセスできます。
技術的詳細
このコミットは、Goダッシュボードにおける外部パッケージのインストール数追跡機能を完全に削除しています。削除された主な機能と関連ファイルは以下の通りです。
- インストール数記録ロジック:
misc/dashboard/app/build/build.go
から、Package
構造体のInstalls
、InstallsByDay
、InstallsThisWeek
といったインストール数関連のフィールドが削除されました。- これらのフィールドを更新するための
IncrementInstalls()
、UpdateInstallsThisWeek()
、dayCounts()
といったメソッドも削除されました。これらは、日ごとのインストール数を記録し、過去30日間のデータを保持し、週ごとの合計を計算するロジックを含んでいました。
- パッケージインストールハンドラ:
misc/dashboard/app/build/pkg.go
ファイル全体が削除されました。このファイルは、go get
コマンドなどからのインストールリクエストを受け付けるHTTPハンドラ(/install
)と、週次インストール数を更新するためのcronジョブハンドラ(/install/cron
)を含んでいました。appengine/delay
パッケージを使用して、インストール数の更新や週次集計を非同期で実行する機能も含まれていました。- 外部パッケージのインポートパスを検証するための
validPath
関数や、VCS(バージョン管理システム)のパスを解析するためのvcsPath
構造体、およびgoogleCodeVCS
、checkRoot
、checkURL
といったヘルパー関数もこのファイルに含まれていました。これらは、GitHub、Bitbucket、Google Codeなどのリポジトリからパッケージがインストールされた際に、そのパスが有効であるかを確認するために使用されていました。
- App Engine設定:
misc/dashboard/app/app.yaml
から、/install
と/install/cron
へのルーティング設定が削除されました。これにより、これらのURLへのアクセスがアプリケーションレベルで無効化されました。misc/dashboard/app/cron.yaml
から、週次インストール数を更新するためのcronジョブ定義が削除されました。
これらの変更により、Goダッシュボードは外部パッケージのインストール数を追跡・記録する機能を完全に停止しました。
コアとなるコードの変更箇所
このコミットにおける主要な変更は、以下のファイルの削除と内容の変更です。
misc/dashboard/app/app.yaml
:/install
と/install/cron
へのルーティングが削除されました。
misc/dashboard/app/build/build.go
:strconv
パッケージのインポートが削除されました。Package
構造体からInstalls
,InstallsByDay
,InstallsThisWeek
フィールドが削除されました。IncrementInstalls()
,UpdateInstallsThisWeek()
,dayCounts()
関数が削除されました。
misc/dashboard/app/build/pkg.go
:- ファイル全体が削除されました。 このファイルには、インストールハンドラ、cronハンドラ、パッケージパス検証ロジックなどが含まれていました。
misc/dashboard/app/cron.yaml
:/install/cron
を実行するcronジョブの定義が削除されました。
コアとなるコードの解説
削除されたmisc/dashboard/app/build/pkg.go
ファイルは、この機能の中核をなしていました。
installHandler
:http.HandleFunc("/install", installHandler)
として登録され、go get
コマンドなどから送信されるパッケージインストールリクエストを受け付けていました。リクエストに含まれるパッケージパスを検証し、installLater
というappengine/delay
関数を呼び出して、非同期でインストール数をインクリメントしていました。installCronHandler
:http.HandleFunc("/install/cron", installCronHandler)
として登録され、cronジョブによって定期的に呼び出されていました。このハンドラは、すべての外部パッケージのキーを取得し、それぞれのパッケージに対してupdateWeeklyLater
というappengine/delay
関数を呼び出し、週次インストール数を更新していました。install
関数:appengine/delay
によって非同期で実行され、指定されたパッケージパスのインストール数をデータストア(Google App Engineのデータストレージ)上でインクリメントしていました。また、日ごとのインストール数を記録し、過去30日間のデータを保持するロジックも含まれていました。updateWeekly
関数:appengine/delay
によって非同期で実行され、指定されたパッケージの週次インストール数を更新していました。validPath
関数: インストールリクエストで提供されたパッケージパスが有効なGoパッケージのインポートパスであるかを検証していました。GitHub、Bitbucket、Google Codeなどの主要なVCSプロバイダのパターンにマッチするかを確認し、必要に応じてHTTPリクエストを送信してリポジトリの存在を確認していました。
これらのコードの削除により、Goダッシュボードはパッケージのインストール数を追跡する能力を失いました。
関連リンク
- 元のコミット (CL 5699082): https://golang.org/cl/5699082
- このコミット (CL 5790044): https://golang.org/cl/5790044
参考にした情報源リンク
- Google App Engine (GAE) 公式ドキュメント (当時の情報に基づく): https://cloud.google.com/appengine/docs (現在のドキュメントは更新されている可能性があります)
- Go言語の
go get
コマンドに関するドキュメント: https://pkg.go.dev/cmd/go#hdr-Download_and_install_packages_and_dependencies - Go言語の公式リポジトリ: https://github.com/golang/go
- Gerrit Code Review: https://www.gerritcodereview.com/
- Go Dashboard (現在の状態): https://build.golang.org/ (当時のダッシュボードとは異なる可能性があります)
[インデックス 12516] ファイルの概要
このコミットは、Go言語のダッシュボード(misc/dashboard
)における外部パッケージのインストール数を記録する機能を元に戻す(undo)ものです。具体的には、以前のコミットで導入されたインストール数追跡機能が、一時的に見送られることになったため、関連するコードと設定が削除されています。
コミット
commit 52db02bef36de3c39f32cdcf059d6d45477ae449
Author: Andrew Gerrand <adg@golang.org>
Date: Thu Mar 8 22:34:59 2012 +1100
undo CL 5699082 / 6223c9fe432b
We decided not to record installs, for now at least.
««« original CL description
misc/dashboard: record install counts for external packages
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5699082
»»»
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5790044
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/52db02bef36de3c39f32cdcf059d6d45477ae449
元コミット内容
このコミットは、以下の元のコミット(CL 5699082 / 6223c9fe432b)の変更を元に戻すものです。
misc/dashboard: record install counts for external packages
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5699082
元のコミットは、Go言語のダッシュボードに外部パッケージのインストール数を記録する機能を追加することを目的としていました。
変更の背景
コミットメッセージによると、「We decided not to record installs, for now at least.」(少なくとも今のところ、インストール数を記録しないことに決定した)という理由で、以前導入された外部パッケージのインストール数追跡機能が元に戻されました。これは、機能の導入が時期尚早である、あるいは実装方法や必要性について再検討が必要であると判断されたためと考えられます。
前提知識の解説
- Go言語ダッシュボード (misc/dashboard): Goプロジェクトには、ビルドの状態、テスト結果、コミット履歴などを表示するためのダッシュボードが存在します。これは通常、Goの公式リポジトリの一部として管理され、Goのインフラストラクチャの健全性を監視する役割を担っています。このダッシュボードはGoogle App Engine上で動作していました。
- Google App Engine (GAE): Googleが提供するPaaS(Platform as a Service)であり、ウェブアプリケーションやモバイルバックエンドを構築・デプロイするためのプラットフォームです。Go言語もサポートされており、
app.yaml
やcron.yaml
といった設定ファイルを使用してアプリケーションのデプロイやcronジョブの管理を行います。 go get
コマンド: Go言語のパッケージ管理ツールであり、リモートリポジトリからGoパッケージをダウンロードし、ビルドしてインストールするために使用されます。このコミットで削除された機能は、go get
によるパッケージインストール時に、そのインストール数をダッシュボードに報告するメカニズムを導入しようとしていたと考えられます。- CL (Change List): Gerritなどのコードレビューシステムで使われる用語で、一連の変更(コミット)をまとめたものです。GoプロジェクトではGerritがコードレビューに利用されており、
https://golang.org/cl/
の形式で各CLにアクセスできます。
技術的詳細
このコミットは、Goダッシュボードにおける外部パッケージのインストール数追跡機能を完全に削除しています。削除された主な機能と関連ファイルは以下の通りです。
- インストール数記録ロジック:
misc/dashboard/app/build/build.go
から、Package
構造体のInstalls
、InstallsByDay
、InstallsThisWeek
といったインストール数関連のフィールドが削除されました。- これらのフィールドを更新するための
IncrementInstalls()
、UpdateInstallsThisWeek()
、dayCounts()
といったメソッドも削除されました。これらは、日ごとのインストール数を記録し、過去30日間のデータを保持し、週ごとの合計を計算するロジックを含んでいました。
- パッケージインストールハンドラ:
misc/dashboard/app/build/pkg.go
ファイル全体が削除されました。このファイルは、go get
コマンドなどからのインストールリクエストを受け付けるHTTPハンドラ(/install
)と、週次インストール数を更新するためのcronジョブハンドラ(/install/cron
)を含んでいました。appengine/delay
パッケージを使用して、インストール数の更新や週次集計を非同期で実行する機能も含まれていました。- 外部パッケージのインポートパスを検証するための
validPath
関数や、VCS(バージョン管理システム)のパスを解析するためのvcsPath
構造体、およびgoogleCodeVCS
、checkRoot
、checkURL
といったヘルパー関数もこのファイルに含まれていました。これらは、GitHub、Bitbucket、Google Codeなどのリポジトリからパッケージがインストールされた際に、そのパスが有効であるかを確認するために使用されていました。
- App Engine設定:
misc/dashboard/app/app.yaml
から、/install
と/install/cron
へのルーティング設定が削除されました。これにより、これらのURLへのアクセスがアプリケーションレベルで無効化されました。misc/dashboard/app/cron.yaml
から、週次インストール数を更新するためのcronジョブ定義が削除されました。
これらの変更により、Goダッシュボードは外部パッケージのインストール数を追跡・記録する機能を完全に停止しました。
コアとなるコードの変更箇所
このコミットにおける主要な変更は、以下のファイルの削除と内容の変更です。
misc/dashboard/app/app.yaml
:/install
と/install/cron
へのルーティングが削除されました。
misc/dashboard/app/build/build.go
:strconv
パッケージのインポートが削除されました。Package
構造体からInstalls
,InstallsByDay
,InstallsThisWeek
フィールドが削除されました。IncrementInstalls()
,UpdateInstallsThisWeek()
,dayCounts()
関数が削除されました。
misc/dashboard/app/build/pkg.go
:- ファイル全体が削除されました。 このファイルには、インストールハンドラ、cronハンドラ、パッケージパス検証ロジックなどが含まれていました。
misc/dashboard/app/cron.yaml
:/install/cron
を実行するcronジョブの定義が削除されました。
コアとなるコードの解説
削除されたmisc/dashboard/app/build/pkg.go
ファイルは、この機能の中核をなしていました。
installHandler
:http.HandleFunc("/install", installHandler)
として登録され、go get
コマンドなどから送信されるパッケージインストールリクエストを受け付けていました。リクエストに含まれるパッケージパスを検証し、installLater
というappengine/delay
関数を呼び出して、非同期でインストール数をインクリメントしていました。installCronHandler
:http.HandleFunc("/install/cron", installCronHandler)
として登録され、cronジョブによって定期的に呼び出されていました。このハンドラは、すべての外部パッケージのキーを取得し、それぞれのパッケージに対してupdateWeeklyLater
というappengine/delay
関数を呼び出し、週次インストール数を更新していました。install
関数:appengine/delay
によって非同期で実行され、指定されたパッケージパスのインストール数をデータストア(Google App Engineのデータストレージ)上でインクリメントしていました。また、日ごとのインストール数を記録し、過去30日間のデータを保持するロジックも含まれていました。updateWeekly
関数:appengine/delay
によって非同期で実行され、指定されたパッケージの週次インストール数を更新していました。validPath
関数: インストールリクエストで提供されたパッケージパスが有効なGoパッケージのインポートパスであるかを検証していました。GitHub、Bitbucket、Google Codeなどの主要なVCSプロバイダのパターンにマッチするかを確認し、必要に応じてHTTPリクエストを送信してリポジトリの存在を確認していました。
これらのコードの削除により、Goダッシュボードはパッケージのインストール数を追跡する能力を失いました。
関連リンク
- 元のコミット (CL 5699082): https://golang.org/cl/5699082
- このコミット (CL 5790044): https://golang.org/cl/5790044
参考にした情報源リンク
- Google App Engine (GAE) 公式ドキュメント (当時の情報に基づく): https://cloud.google.com/appengine/docs (現在のドキュメントは更新されている可能性があります)
- Go言語の
go get
コマンドに関するドキュメント: https://pkg.go.dev/cmd/go#hdr-Download_and_install_packages_and_dependencies - Go言語の公式リポジトリ: https://github.com/golang/go
- Gerrit Code Review: https://www.gerritcodereview.com/
- Go Dashboard (現在の状態): https://build.golang.org/ (当時のダッシュボードとは異なる可能性があります)