-
-
Notifications
You must be signed in to change notification settings - Fork 6
WDIO v10 support (tracking) #297
Copy link
Copy link
Open
Labels
area:dependenciesUpdating dependenciesUpdating dependenciesarea:documentationUpdates to documentationUpdates to documentationscope:dioxusDioxus service, bridge, and driversDioxus service, bridge, and driversscope:electrobunElectrobun serviceElectrobun servicescope:electronElectron service and CDP bridgeElectron service and CDP bridgescope:flutterFlutter service and wdio_flutter Dart contractFlutter service and wdio_flutter Dart contractscope:native-typesNative types packageNative types packagescope:react-nativeReact Native serviceReact Native servicescope:tauriTauri service and pluginsTauri service and pluginsstatus:blockedWork cannot start until something is resolvedWork cannot start until something is resolvedtype:taskTask(s) to completeTask(s) to complete
Description
Activity
Metadata
Metadata
Assignees
Labels
area:dependenciesUpdating dependenciesUpdating dependenciesarea:documentationUpdates to documentationUpdates to documentationscope:dioxusDioxus service, bridge, and driversDioxus service, bridge, and driversscope:electrobunElectrobun serviceElectrobun servicescope:electronElectron service and CDP bridgeElectron service and CDP bridgescope:flutterFlutter service and wdio_flutter Dart contractFlutter service and wdio_flutter Dart contractscope:native-typesNative types packageNative types packagescope:react-nativeReact Native serviceReact Native servicescope:tauriTauri service and pluginsTauri service and pluginsstatus:blockedWork cannot start until something is resolvedWork cannot start until something is resolvedtype:taskTask(s) to completeTask(s) to complete
Summary
Umbrella tracking issue for everything needed to support WebdriverIO v10. This gathers the coordinated breaking changes we've been deferring "until the next major" so they ship together against the v10 floor, rather than drip-fed as ad-hoc bumps.
Blocked on: WDIO v10 being released with a documented Node floor and public API. Work can be staged on a branch beforehand, but nothing ships until v10 is out.
Versioning strategy
The release each package receives depends on where it is in its own lifecycle:
@wdio/electron-service10.x→11.0.0@wdio/tauri-service1.x→2.0.0@wdio/dioxus-service1.x→2.0.0@wdio/electrobun-service0.2.x→ minor (0.3.0)@wdio/react-native-service1.0.0-next.x→ prerelease (-next.N+1)@wdio/flutter-service1.0.0-next.x→ prerelease (-next.N+1)@wdio/*packages (native-core,native-types,native-utils,native-cdp-bridge,native-mobile-core,native-spy) bump per releasekit rules for whatever surface actually changes (e.g. thenative-typesdeprecation removal below is anative-typesmajor).Checklist
1. Align Node version support with the parent project (original scope of this issue)
Stay aligned with parent
webdriverio's Node policy: when v10 formalises its Node floor, match it across all shippedengines.node, and don't drift again outside a coordinated major.Current shipped
engines.node:@wdio/electron-service—>=22.12.0@wdio/tauri-service—>=18.20.0← still on the Node-18 tier@wdio/dioxus-service—>=18.20.0← still on the Node-18 tier@wdio/electrobun-service—>=22.12.0@wdio/react-native-service—>=22.12.0@wdio/flutter-service—>=22.12.0Already in place (from the earlier revert):
puppeteer-coreworkspace override removed,@wdio/electron-serviceruntime deps back at latest, and a brief contributor-vs-end-user Node callout retained inCONTRIBUTING.md+docs/setup.md.engines.nodeto match v10's floor across every shipped service (tauri + dioxus are the ones still on>=18.20.0; confirm the>=22.12.0packages against v10's exact floor)engines, only change it in a coordinated major, no runtime deps that require a newer Node thanenginesallows2. Remove
native-typesdeprecationspackages/native-types/src/electron.tscarries two public API deprecations kept for back-compat — safe to remove only in a major:mock(apiName, funcName, returnValue)overload — callers move to the chained setter(await browser.electron.mock('api', 'fn')).mockReturnValue(value)isMockFunction(target: string)overload (always returnsfalse)@wdio/native-typesmajor bump; downstream services that surface these types re-released3. Remove the
executeTauriCommanddeprecationpackages/tauri-service/src/commands/execute.ts—executeTauriCommand()is@deprecated Use execute() instead, but still called internally byexecuteTauriCommandWithTimeout/executeTauriCommands/executeTauriCommandsParallel/getTauriVersion/getAppInfo.execute()directlyexecuteTauriCommand(and updatetest/commands/execute.spec.ts)@wdio/tauri-service2.0.0major4. Update dependencies
webdriverio+@wdio/*in thedefaultcatalog (pnpm-workspace.yaml, currently9.31.x) to v10; review thenext/latestcatalogspeerDependenciesonwebdriverio(currently>9.0.0) — set the correct v10 rangeenginesmoves (see item 1)5. Docs update / migration doc(s)
docs/(no migration docs exist yet) — Node floor change,native-typesmock-API removals,executeTauriCommandremoval, and per-service version jumpsREADME.mdsupported-frameworks versions,docs/setup.md, andCONTRIBUTING.mdNode callouts6. Chromedriver from Electron releases
WebdriverIO v10 downloads Chromedriver from the Electron release named in
wdio:electronVersion(webdriverio/webdriverio#15871); #693 makes the service set it only for known Electron releases. Once the service'swebdriveriopeer range is v10:chromedriver-v<version>-<platform>-<arch>.zipinstead of looking up the Chromium version on chromedriver.chromium.org.@wdio/session's Electron target can passwdio:electronVersioninstead ofbrowserVersion, so an Electron version the service can't map to Chromium (such as a nightly) uses that release's Chromedriver once the guard is relaxed.Record<string, unknown>casts aroundwdio:electronVersioninlauncher.ts:@wdio/typesv10 declares the capability.Per-package release tracking
@wdio/electron-service→11.0.0(major)@wdio/tauri-service→2.0.0(major)@wdio/dioxus-service→2.0.0(major)@wdio/electrobun-service→ minor (pre-1.0)@wdio/react-native-service→ prerelease (pre-1.0)@wdio/flutter-service→ prerelease (pre-1.0)@wdio/*packages bumped as their surfaces require (native-typesmajor for item 2)