mcpField
U
upgrade-browser

upgrade-browser

github.com/flutter開発180.5k99 回インストール今日更新
リポジトリ

upgrade-browser について

Flutter 開発向けに、Web Engine とフレームワークテストの Chrome または Firefox を更新するスキルです。バージョン確認、CI 同期、ローカルテスト、任意の CIPD アップロードを案内します。

主な機能

  1. 01ブラウザーバージョンの確認
  2. 02Web Engine と CI のバージョン更新
  3. 03CI ビルダー設定の再生成
  4. 04Web Engine のローカルテスト実行
  5. 05CIPD アップロードの案内

活用シーン

  1. 01Flutter Web テストの Chrome 更新
  2. 02Web Engine の Firefox 更新
  3. 03ブラウザーパッケージのアップロード前の変更確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/flutter/flutter --skill upgrade-browser

インストール後、Claude Code で/upgrade-browserを入力して読み込まれたか確認します。

同梱ファイルscripts/fetch_versions.dart

詳細

ブラウザーのアップグレード

このスキルは、Flutter Web Engine と Framework のテストで使用する Chrome および Firefox のバージョンをアップグレードするプロセスを自動化します。

ワークフロー

1. 新しいバージョンの特定と確認

ファイルを更新する前に、使用するバージョンを見つけて、そのバージョンが存在することを確認してください。

  • 最新の安定版を見つけるには:
    dart scripts/fetch_versions.dart latest <chrome|firefox>
    
  • 特定のバージョンが存在することを確認するには:
    dart scripts/fetch_versions.dart verify <chrome|firefox> <version>
    
    このコマンドは true または false を返します。

確認ルール:

  • デフォルトで必須: コマンドが false を返した場合は、先に進まないでください。
  • 依頼があれば省略可能: ユーザーが確認を省略するよう明示的に依頼した場合(例:「確認せずにバージョン X にアップグレードして」)、この手順を省略してもかまいません。
  • 確認に失敗した場合: 確認に失敗しても、ユーザーが続行を希望すると確認できた場合は、続行してもかまいません。
2. ローカルファイルの更新

ユーザーは、片方または両方の場所のアップグレードを依頼できます。また、場所ごとに異なるバージョンを指定することもできます。

Flutter Web Engine(engine/src/flutter/lib/web_ui/dev/package_lock.yaml)

chrome または firefox の version フィールドを更新します。

chrome:
  version: 'NEW_VERSION'

firefox:
  version: 'NEW_VERSION'
Framework のテスト(.ci.yaml)

chrome_and_driver のすべての出現箇所を新しいバージョンに更新します。

- {"dependency": "chrome_and_driver", "version": "version:NEW_VERSION"}

すべてのインスタンスが更新されるように、allow_multiple: true を指定して replace を使用します。注:現在、.ci.yaml では Chrome のみがこの方法で管理されています。

3. CI 設定の同期

ブラウザーのバージョンを更新した後、CI 設定を同期します。この手順では engine/src/flutter/ci/builders/linux_web_engine_test.json を更新します。

実行は一度だけにしてください。 実行が必要かどうかを確認するには、ファイルの更新日時を確認します。

ls -l engine/src/flutter/ci/builders/linux_web_engine_test.json

engine/src/flutter/lib/web_ui から、次を実行します。

dev/felt generate-builder-json

検証: コマンドの完了後に engine/src/flutter/ci/builders/linux_web_engine_test.json のタイムスタンプが新しくなっていることを確認します。

4. ローカルでの検証

CIPD にアップロードする前に、回帰がないことを確認するため、ローカルでテストを実行します。engine/src/flutter/lib/web_ui から、次を実行します。

dev/felt test

注:--browser <chrome|firefox> を使用すると、対象を限定できます。

5. CIPD へのアップロード(Package Roller)

これはバイナリを CIPD にアップロードする最終手順であり、一時的な特別権限が必要です。

  1. ユーザーに確認します。 必要な CIPD 権限があるか尋ねてください(不明な場合は Discord の #hackers-infra に問い合わせてください)。
  2. 確認できた場合は、engine/src/flutter/lib/web_ui から次を実行します。
    dart dev/package_roller.dart
    
    注:ユーザーが先にテストしたい場合は、--dry-run を使用してください。

例

  • ユーザー:「Chrome と Firefox を、すべての箇所で最新の安定版にアップグレードしてください。」

  • エージェント:

    1. dart scripts/fetch_versions.dart latest を実行して、最新バージョンを取得します。
    2. engine/src/flutter/lib/web_ui/dev/package_lock.yaml と .ci.yaml を更新します。
    3. dev/felt generate-builder-json を実行して、CI 設定を同期します。
    4. ローカルテストの実行を提案します。
    5. 最後に、CIPD 権限について確認します。
  • ユーザー:「Chrome をすべての箇所でバージョン 135.0.0.0 に更新してください。確認は省略してください。」

  • エージェント:

    1. ユーザーが依頼したため、dart scripts/fetch_versions.dart verify の実行を省略します。
    2. package_lock.yaml と .ci.yaml を直接 135.0.0.0 に更新します。
    3. 残りのワークフロー(同期、テスト、CIPD)を進めます。
  • ユーザー:「Web エンジンの Firefox をバージョン 130.0 に更新してください。」

  • エージェント:

    1. dart scripts/fetch_versions.dart verify firefox 130.0 を使用して、Firefox のバージョン 130.0 を確認します。
    2. 確認に失敗した場合は、ユーザーに「Mozilla の公式リリース履歴で Firefox のバージョン 130.0 を確認できませんでした。これが正しいバージョン番号であることを確認していますか?」と伝えます。
    3. ユーザーが確認するか、バージョンの確認に成功した場合は、package_lock.yaml を更新します。
    4. 残りのワークフロー(同期、テスト、CIPD)を進めます。

コメント