Skip to content

feat!: target Appium 4 beta - #1104

Merged
mykola-mokhnach merged 3 commits into
appium:betafrom
mykola-mokhnach:v0
Sep 30, 2026
Merged

mykola-mokhnach merged 3 commits into
appium:betafrom
mykola-mokhnach:v0

Conversation

@mykola-mokhnach

Copy link
Copy Markdown
Contributor

Targets the recently released Appium 4 beta (4.0.0-beta.2). Bumps the appium
peer dependency and lockstep @appium/* packages (support, oxc-config,
semantic-release-config, tsconfig, types) to their Appium 4 beta releases,
and updates driver code for the resulting API removals/changes.

  • @appium/types drops its Location interface (along with the legacy
    getGeoLocation/setGeoLocation JSONWP surface it backed); replaced with a
    local GeoLocation interface in lib/commands/types.ts
  • @appium/support is now published as pure ESM: its tempDir/util
    sub-namespaces (unlike fs, which stays a plain object) are real ES module
    namespace objects and can no longer be stubbed in place with sinon.
    test/unit/commands/file-actions.spec.ts now swaps tempDir.path/
    util.toInMemoryBase64 via node:test's t.mock.module() (the pattern
    already used elsewhere in this suite for ESM modules), re-importing
    file-actions.js fresh per test so it resolves the mocked module graph
  • AndroidDriver doesn't override driverData/createSession/reset/timeouts, so
    none of those Appium 3-to-4 BaseDriver removals needed driver-side changes
  • Updates the release script to enable beta releases

BREAKING CHANGE: requires Appium >=4.0.0-beta.0 and drops Node 20 support
(minimum is now ^22.22.2 || ^24.15.0 || >=26.0.0), matching Appium 4's own
minimum supported Node engine.

mykola-mokhnach and others added 2 commits September 30, 2026 19:26
Adds workflow_dispatch inputs (dry_run, dist_tag) to the release workflow so a
manual run can opt this branch into semantic-release's beta prerelease channel,
mirroring appium-xcuitest-driver's beta pipeline.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Targets the recently released Appium 4 beta (4.0.0-beta.2). Bumps the appium
peer dependency and lockstep @appium/* packages (support, oxc-config,
semantic-release-config, tsconfig, types) to their Appium 4 beta releases,
and updates driver code for the resulting API removals/changes.

- @appium/types drops its `Location` interface (along with the legacy
  getGeoLocation/setGeoLocation JSONWP surface it backed); replaced with a
  local `GeoLocation` interface in lib/commands/types.ts
- @appium/support is now published as pure ESM: its `tempDir`/`util`
  sub-namespaces (unlike `fs`, which stays a plain object) are real ES module
  namespace objects and can no longer be stubbed in place with sinon.
  test/unit/commands/file-actions.spec.ts now swaps `tempDir.path`/
  `util.toInMemoryBase64` via node:test's `t.mock.module()` (the pattern
  already used elsewhere in this suite for ESM modules), re-importing
  file-actions.js fresh per test so it resolves the mocked module graph
- AndroidDriver doesn't override driverData/createSession/reset/timeouts, so
  none of those Appium 3-to-4 BaseDriver removals needed driver-side changes

BREAKING CHANGE: requires Appium >=4.0.0-beta.0 and drops Node 20 support
(minimum is now ^22.22.2 || ^24.15.0 || >=26.0.0), matching Appium 4's own
minimum supported Node engine.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mykola-mokhnach
mykola-mokhnach changed the base branch from master to beta September 30, 2026 17:41
… export

@appium/support's namespace object carries a `default` key alongside its
named exports; spreading it into t.mock.module()'s namedExports triggers a
Node 22 bug ("Unexpected token 'default'") when file-actions.js is
re-imported, fixed by Node 24.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mykola-mokhnach
mykola-mokhnach merged commit fcc3cb1 into appium:beta Sep 30, 2026
5 checks passed
github-actions Bot pushed a commit that referenced this pull request Sep 30, 2026
## [15.0.0-beta.1](v14.2.2...v15.0.0-beta.1) (2026-09-30)

### ⚠ BREAKING CHANGES

* requires Appium >=4.0.0-beta.0 and drops Node 20 support
(minimum is now ^22.22.2 || ^24.15.0 || >=26.0.0), matching Appium 4's own
minimum supported Node engine.

### Features

* target Appium 4 beta ([#1104](#1104)) ([fcc3cb1](fcc3cb1))
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.

2 participants