upgrade-browser

Обновить браузеры в проверках Flutter

flutter/flutterОт разработчика платформы
179 716звёзд33 668форковУ всего репозитория

Что получите

Обновлённые версии браузеров в выбранных настройках Flutter и согласованная конфигурация проверок; при подтверждённых правах — загруженные пакеты CIPD.

Что передать

Браузер, нужная версия или запрос на последнюю стабильную и область обновления.

Автопроверка файлов

Проверен состав файлов. Запуск не тестировался. Что проверено

Оценки пользователей

Загрузка оценок…
Ваш опыт
Обсудить →

Как использовать

Помогает разработчикам Flutter обновить версии Chrome и Firefox, используемые веб-движком и проверками фреймворка. Позволяет выбрать разные версии для разных мест.

  1. Укажите, где обновлять браузер: в веб-движке, проверках фреймворка или обоих местах.
  2. Выберите версию и подтвердите её существование.
  3. Обновите настройки, синхронизируйте конфигурацию непрерывной интеграции и выполните локальные проверки перед загрузкой пакетов.

Условия работы

  • В веб-движке поддерживаются Chrome и Firefox; в настройках проверок фреймворка таким способом управляется только Chrome.
  • При неуспешной проверке версии работа останавливается; продолжение допускается по подтверждению пользователя, а пропуск проверки — по его явному запросу.
  • Перед загрузкой в CIPD обязательны локальные тесты и подтверждение специальных временных прав.

Пример запроса после установки

Обнови Firefox в веб-движке Flutter до последней стабильной версии, проверь её существование и подготовь изменения с синхронизацией настроек и локальными проверками.

Пример составлен по инструкции автора; результат запуска не проверялся.

Основание: инструкция закреплённой версии

Для установки

Node.js, npm и Git для команды выше. Подключения и инструменты для работы скилла настраиваются отдельно.

Совместимые агенты

Совместимость указана для инструкций. Запуск в каждом приложении не тестировался; для веб-чата способ подключения может отличаться.

Файлы скилла

GitHub
Читать инструкцию SKILL.md

Исходный текст закреплённой версии.

---
name: upgrade-browser
description: Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests. Use when asked to roll or upgrade Chrome or Firefox to a newer version.
---

# Upgrade Browser

This skill automates the process of upgrading Chrome and Firefox versions in the Flutter Web Engine and the Framework tests.

## Workflow

### 1. Identify and Verify the New Version

Before updating any files, find and verify the existence of the version you want to use.

- **To find the latest stable version:**
  ```bash
  dart scripts/fetch_versions.dart latest <chrome|firefox>
  ```
- **To verify a specific version exists:**
  ```bash
  dart scripts/fetch_versions.dart verify <chrome|firefox> <version>
  ```
  This command will return `true` or `false`.

**Verification Rules:**
- **Enforced by default:** If the command returns `false`, do not proceed.
- **Optional if requested:** If the user explicitly asks to skip verification (e.g., "Upgrade to version X without verification"), you may skip this step.
- **Failed verification:** If verification fails but the user confirms they want to proceed anyway, you may continue.

### 2. Update Local Files

The user may request to upgrade one or both locations. They may also use different versions for each location.

#### Flutter Web Engine (`engine/src/flutter/lib/web_ui/dev/package_lock.yaml`)
Update the `version` field for `chrome` or `firefox`.

```yaml
chrome:
  version: 'NEW_VERSION'

firefox:
  version: 'NEW_VERSION'
```

#### Framework Tests (`.ci.yaml`)
Update all occurrences of `chrome_and_driver` with the new version.

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

Use `replace` with `allow_multiple: true` to ensure all instances are updated. Note: Currently, only Chrome is managed this way in `.ci.yaml`.

### 3. CI Config Sync

After updating the browser versions, synchronize the CI configurations. This step updates `engine/src/flutter/ci/builders/linux_web_engine_test.json`.

**Only run this once.** To verify if it needs to run, check the modification time of the file:
```bash
ls -l engine/src/flutter/ci/builders/linux_web_engine_test.json
```

From `engine/src/flutter/lib/web_ui`, run:
```bash
dev/felt generate-builder-json
```

**Validation:** Confirm the file `engine/src/flutter/ci/builders/linux_web_engine_test.json` has a new timestamp after the command finishes.

### 4. Local Verification

Before uploading to CIPD, run tests locally to ensure no regressions. From `engine/src/flutter/lib/web_ui`, run:

```bash
dev/felt test
```
*Note: You can use `--browser <chrome|firefox>` to limit the scope.*

### 5. CIPD Upload (Package Roller)

This is the final step as it uploads binaries to CIPD and requires special, temporary permissions.

1. **Ask the user** if they have the necessary CIPD permissions (contact #hackers-infra on Discord if unsure).
2. If confirmed, from `engine/src/flutter/lib/web_ui`, run:
   ```bash
   dart dev/package_roller.dart
   ```
   *Note: Use `--dry-run` if the user wants to test first.*

## Examples

- **User:** "Upgrade Chrome and Firefox to the latest stable versions everywhere."
- **Agent:**
  1. Runs `dart scripts/fetch_versions.dart latest` to get the latest versions.
  2. Updates `engine/src/flutter/lib/web_ui/dev/package_lock.yaml` and `.ci.yaml`.
  3. Runs `dev/felt generate-builder-json` to sync CI configs.
  4. Suggests running local tests.
  5. Finally, asks about CIPD permissions.

- **User:** "Roll Chrome to version 135.0.0.0 everywhere. Skip verification."
- **Agent:**
  1. Skips `dart scripts/fetch_versions.dart verify` because the user requested it.
  2. Updates `package_lock.yaml` and `.ci.yaml` directly with `135.0.0.0`.
  3. Follows the rest of the workflow (Sync, Test, CIPD).

- **User:** "Update Firefox in the web engine to 130.0."
- **Agent:**
  1. Verifies version `130.0` for Firefox using `dart scripts/fetch_versions.dart verify firefox 130.0`.
  2. If verification fails, informs the user: "I was unable to verify Firefox version 130.0 through Mozilla's official release history. Are you sure this is the correct version number?"
  3. If user confirms or verification succeeds, updates `package_lock.yaml`.
  4. Follows the rest of the workflow (Sync, Test, CIPD).

Проверка и особенности

Автоматическая проверка источника и файлов

Автоматически проверены публичный репозиторий, лицензия, заголовок SKILL.md, состав текстового пакета и Git-хеш каждого файла. Пакеты с исполняемым кодом и срабатываниями применённых статических правил не включены. Ручной аудит всех инструкций и функциональный запуск не проводились. Внешние инструменты и сервисы не проверялись. Проверка не гарантирует безопасность.

У репозитория было 179,128 звёзд GitHub при проверке 2026-09-27. Порог добавления — строго больше 100 000. Звёзды относятся ко всему репозиторию, а не к качеству или установкам скилла.

Проверка состава
27.09.2026
Проверенная версия
8db55268667c
Файлы с кодом
Не указаны в данных проверки
Изменения на GitHub
Нужна повторная проверкаПоследняя проверка: 11.10.2026
Как мы проверяем скиллы

Репозиторий и лицензия

flutter/flutter
179 716 звёзд33 668 форков

Это показатели всего репозитория, а не установки скилла. Снимок требует обновления.

Последняя активность GitHub
11.10.2026
Лицензия
BSD-3-Clause
Добавлен в каталог
27.09.2026
Полный текст лицензии
Copyright 2014 The Flutter Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of Google Inc. nor the names of its
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Ещё в этой категории

Все в категории

Обсуждение

Правила

Пользовались этим скиллом? Делитесь опытом без регистрации. Все комментарии проверяет модератор.

Мои комментарии