Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

refactor(provider-webdriver): ship BrowserStack as the `@agent-device/browserstack` plugin

オープン
#3,309 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
リファクタリング
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
node.js, typescript
領域
devtools

調査の方向性

First confirm #3312 has landed on main, then read the existing BrowserStack implementation in packages/provider-webdriver and the packaging template in packages/provider-testmu. Move the named modules and tests into packages/provider-browserstack, update core, docs, and provider-scenario tests as specified, and run the listed checks plus a live session. Done when the package check and affected checks pass, the default install shrinks without budget exceptions, and the live session is recorded in the PR.

索引モデルが issue の本文から書いたものです。

説明

needs-triage refactor

Purpose and evidence

0.22 stops bundling hosted device providers with the default installation. BrowserStack already presents the plugin factory shape inside core: packages/provider-webdriver/src/browserstack-provider.ts returns { webDriver, connection } next to a manifest-shaped declaration (CLOUD_WEBDRIVER_PROVIDER_DECLARATIONS in providers.ts), composed through the same route an installed WebDriver plugin uses (PR #3312). TestMu (packages/provider-testmu, #3118) is the packaging template: bundled ESM, agentDevicePlugin manifest, ./connection-verification subpath, test/package-smoke.mjs, release through scripts/release-workspace.mjs.

Required behavior and boundary

  • New workspace package packages/provider-browserstack publishing @agent-device/browserstack, versioned with core, built with tsdown like TestMu. Its default export is (host: ProviderPluginHost) => { webDriver, connection }; the manifest declares provider: "browserstack", the connection capabilities and credentialVariables: ["BROWSERSTACK_USERNAME", "BROWSERSTACK_ACCESS_KEY"] exactly as CLOUD_WEBDRIVER_PROVIDER_DECLARATIONS does today.
  • Move the BrowserStack modules out of provider-webdriver (browserstack.ts, browserstack-provider.ts, browserstack-connection.ts, browserstack-connection-verification.ts, browserstack-device-features.ts, their tests, and the bs:// helpers from providers.ts). provider-webdriver keeps the shared engine and the ./plugin surface only.
  • Core drops browserstack from BUNDLED_CLOUD_WEBDRIVER_PROVIDERS and from RESERVED_PLUGIN_PROVIDERS; the connect route, credential fingerprint, and daemon composition keep working through the plugin manifest with no provider-name branch left in src/.
  • agent-device connect browserstack without the plugin fails with the existing unknown-provider error naming plugins add @agent-device/browserstack; help, website/docs/docs/browserstack.md, device-clouds.md, plugins.md ("remain bundled"), and the README move the provider to the plugin install flow.
agent-device plugins add @agent-device/browserstack
export BROWSERSTACK_USERNAME=... BROWSERSTACK_ACCESS_KEY=...
agent-device connect browserstack --platform android --device "Google Pixel 8" --provider-os-version 14.0 --provider-app bs://app-id

Completion and validation

  • node scripts/check-provider-plugin.mjs packages/provider-browserstack passes (packed install, host-recognized errors, CLI connect).
  • Provider-scenario integration tests that today build the BrowserStack runtime through createBundledCloudWebDriverRuntimes run the plugin factory through createCloudWebDriverRuntime the way the TestMu scenarios do.
  • pnpm check:affected --run passes; the Size report shows the default install shrinking by the BrowserStack modules; eager-closure budgets need no approval row.
  • One live BrowserStack session (connect, open, snapshot, close, artifacts) with the packed plugin, recorded in the PR.

Dependencies and readiness

Blocked by: #3312 landing on main. Sibling: the AWS Device Farm and Limrun extractions in this milestone; land this one first, it needs no plugin-host change.

Effort: M. Risk: low (shape already proven by TestMu; user-visible change is the install step).

主要言語
TypeScript
スター
4.9k
フォーク
328
平均マージ
12時間 13分
マージ済み PR(30日)
541

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

callstack/agent-device のほかの issue

callstack/agent-device の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。