Skip to content

chore(deps): move the workspace to WebdriverIO 10 - #434

Merged
vishnuv688 merged 4 commits into
mainfrom
chore/wdio-10
Oct 19, 2026
Merged

vishnuv688 merged 4 commits into
mainfrom
chore/wdio-10

Conversation

@vishnuv688

@vishnuv688 vishnuv688 commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Stacked on #433 (WDIO conformance scenario); base is feat/300-wdio-scenario.

What

The toolchain the workspace builds and tests with moves to the 10.x line: the root CLI and webdriverio, examples/wdio, packages/app (browser runner, mocha framework, protocols, reporter, globals), packages/conformance, packages/elements, and the service's and backend's development dependencies. Peers that were auto-installed before (webdriverio for the service and elements, @wdio/cli for the backend, @wdio/allure-reporter for the service) are declared, so no development dependency resolves a 9.x copy. expect-webdriverio moves to 8.0.0 beside the globals that require it.

The published packages' runtime dependencies stay on their 9.x lines (@wdio/logger in the backend and both protocol adapters, webdriverio in the adapters): @wdio/logger 10 and webdriverio 10 require Node 22.19, while the 9.x lines run on Node 18.20, which the Python adapter's README promises for the backend it launches and which a service user on WebdriverIO 9 still has. Published peer ranges are unchanged (^9 || ^10), and the wdio-peer job keeps running the service under both majors.

Source changes the new types required

  • packages/app/src/components/workbench/logs.ts: @wdio/protocols 10 removed the MJSONWP table, so the Log tab's command definitions no longer spread it.
  • packages/service/src/utils.ts getBrowserObject: WebdriverIO 10 can parent an element with a held browsing context, which carries its browser, so the walk up the parent chain now resolves that case as @wdio/utils does. Regression test added.

Changesets: service (the context walk-up), app (the dropped table). No runtime dependency line changes, so the backend and the protocol adapters carry none.

Verification

  • pnpm build, pnpm lint, pnpm test are green, including the conformance suite for all four adapters in both modes; the WDIO scenario now runs under WebdriverIO 10.
  • pnpm install --frozen-lockfile reproduces the lockfile.
  • Needs a browser, so left to CI and a manual run: pnpm test:ui (browser runner 10 under the workspace's vite 8 override) and pnpm demo:wdio, pnpm demo:wdio:mocha.

Registry note

pnpm's registry metadata for expect-webdriverio still lacked 8.0.0 on this machine while the registry's document had it (published 2026-10-10), so the lockfile was resolved from the registry's current document. The frozen install, which only needs the package tarballs, verifies the result.

@greptile-apps

greptile-apps Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The PR appears safe to merge; no new actionable issues were found.

Summary

Moves the workspace to WebdriverIO 10 and raises the published backend, service, and adapter requirements to Node 22.19+.

  • Workspace tools and examples use WebdriverIO 10.
  • Affected packages and the Python adapter require Node 22.19.
  • The service finds the browser behind held browsing contexts.
  • The Log tab leaves MJSONWP commands out of its details.

Reviews (5) · Last reviewed commit: "feat!: require Node 22.19 across the pub..." · Reviewed by Greptile

Comment thread packages/backend/package.json
@wdio/protocols 10 removes the Mobile JSON Wire Protocol table, which
no current driver speaks. The Log tab spread it into the command
definitions it describes a selected command with; every other table is
still read, so a command's description is unchanged for anything a
session can issue today.
Every WebdriverIO dependency moves to its 10.x line: the root CLI and
webdriverio, the examples, the app's browser runner and framework, the
conformance scenario, elements, the backend's logger and the adapters'
logger and webdriverio. Peers that pnpm used to auto-install at the
locked 9.x versions (webdriverio for the service and elements, @wdio/cli
for the backend, @wdio/allure-reporter for the service) are declared, so
no package resolves a 9.x copy; expect-webdriverio moves to 8.0.0 beside
the globals that require it. Published peer ranges stay at ^9 || ^10 and
the wdio-peer job keeps covering both.

The new types parent an element with a held browsing context, which
carries its browser, so the service's walk up to the browser resolves
that case as @wdio/utils does.
@wdio/logger 10 and webdriverio 10 require Node 22.19, where the 9.x
lines run on Node 18.20. The backend is what the Python adapter launches
on a Node its README promises can be 18, and the service installs that
backend for a project that may still run WebdriverIO 9 on Node 20, so
moving those runtime dependencies would have raised every consumer's
Node floor without saying so. The 10.x toolchain stays for building and
testing; the runtime dependency lines go back, and the changesets that
announced them with it.
The backend's and the protocol adapters' runtime dependencies move to the
WebdriverIO 10 lines, which declare Node 22.19 in their engines, so the
packages declare that floor themselves instead of implying 18.20 through
the 9.x lines. Node 18 and 20 are past end of life and CI never ran on
them; a WebdriverIO 9 project on Node 22 is unaffected, and the service's
peer range stays ^9 || ^10. The Python adapter checks the minor as well
as the major up front, since a Node 22.0 would otherwise fail later as a
backend spawn timeout, and both READMEs state the new floor.
@vishnuv688
vishnuv688 force-pushed the feat/300-wdio-scenario branch from f3eb951 to 1693dcc Compare October 19, 2026 12:08
@vishnuv688
vishnuv688 changed the base branch from feat/300-wdio-scenario to main October 19, 2026 12:33
@vishnuv688
vishnuv688 merged commit 6419925 into main Oct 19, 2026
9 checks passed
@vishnuv688
vishnuv688 deleted the chore/wdio-10 branch October 19, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant