Skip to content

feat!: add Appium 4 support - #204

Merged
mykola-mokhnach merged 1 commit into
appium:masterfrom
mykola-mokhnach:feat/appium4
Nov 9, 2026
Merged

mykola-mokhnach merged 1 commit into
appium:masterfrom
mykola-mokhnach:feat/appium4

Conversation

@mykola-mokhnach

Copy link
Copy Markdown
Contributor

Bumps the Appium monorepo packages to the Appium 4 line, the same way appium-mac2-driver did in appium/appium-mac2-driver#442 and appium-espresso-driver in appium/appium-espresso-driver#1248. This triggers a major release.

Breaking changes

  • Requires Appium ^4.0.0-beta.6 (peer dependency). No longer compatible with Appium 3.
  • Drops Node 20. The minimum is now ^22.22.2 || ^24.15.0 || >=26.0.0, matching Appium 4's engine range.
  • Driver API: createSession takes a single w3cCapabilities argument, following the Appium 4 base driver. This only matters to anyone subclassing the driver.
  • Default exports removed: the package no longer has a default export. Use the named export instead: import {SafariDriver} from 'appium-safari-driver'.
  • Logger: the internal logger module and safari.ts now use named exports (log, SafariDriverServer).
  • Command methods live on the prototype: deleteCookies, findElOrEls, startRecordingScreen and stopRecordingScreen are attached to SafariDriver.prototype (with declare module typings) rather than being instance fields, so subclasses can call super for them.

Dependency bumps

Package To
appium (peer) ^4.0.0-beta.6
@appium/docutils ^4.0.0-beta.5
@appium/oxc-config ^2.0.0-beta.2
@appium/semantic-release-config ^2.0.0-beta.1
@appium/tsconfig ^2.0.0-beta.1
@appium/types ^2.0.0-beta.5
webdriverio (dev) ^10.1.0
engines.node ^22.22.2 || ^24.15.0 || >=26.0.0

Other changes

  • Timeouts: no timeouts override is needed, since the commands are proxied to Safari Driver.
  • Docs: README and getting-started compatibility notes now say Appium 4 from 6.0.0 and Appium 3 for 4.0.0 - 5.0.11.

Testing

  • tsc -b, npm run lint (no errors) and npm run format:check are clean.
  • Unit tests pass.
  • Not run locally: e2e tests.

BREAKING CHANGE: requires Appium ^4.0.0-beta.6 and Node ^22.22.2 || ^24.15.0 || >=26.0.0. createSession takes a single w3cCapabilities argument, and the default exports are removed (use the named export).
@mykola-mokhnach
mykola-mokhnach merged commit bff1052 into appium:master Nov 9, 2026
9 checks passed
@mykola-mokhnach
mykola-mokhnach deleted the feat/appium4 branch November 9, 2026 21:34
github-actions Bot pushed a commit that referenced this pull request Nov 9, 2026
## [6.0.0](v5.0.11...v6.0.0) (2026-11-09)

### ⚠ BREAKING CHANGES

* Requires Appium ^4.0.0-beta.6 (peer dependency). No longer compatible with Appium 3.
* Drops Node 20. The minimum is now ^22.22.2 || ^24.15.0 || >=26.0.0, matching Appium 4's engine range.
* Driver API: createSession takes a single w3cCapabilities argument, following the Appium 4 base driver. This only matters to anyone subclassing the driver.
* Default exports removed: the package no longer has a default export. Use the named export instead: import {SafariDriver} from 'appium-safari-driver'.
* Command methods live on the prototype: deleteCookies, findElOrEls, startRecordingScreen and stopRecordingScreen are attached to SafariDriver.prototype (with declare module typings) rather than being instance fields, so subclasses can call super for them.

### Features

* add Appium 4 support ([#204](#204)) ([bff1052](bff1052))

### Code Refactoring

* use ConditionUnmetError instead of message matching ([#203](#203)) ([3206a56](3206a56))
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 6.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants