-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Open
Labels
v3Appium v3Appium v3
Description
This issue will be used to keep track of issues related to Appium 3.
We see Appium 3 as more of an evolution of Appium 2, rather than a complete overhaul. It will keep the same architecture as Appium 2, but we want to clean up some older code and update various dependencies (such as dropping old NodeJS versions, bumping up Express version to 5, and so on). Each driver such as UIA2/XCUITest etc will keep their responsibility in their repositories, so their functionalities won't be affected by this change.
Working branch: https://github.com/appium/appium/tree/appium3
Items
Dev Process
- Create Appium 3 branch and
npm
channel- https://github.com/appium/appium/tree/appium3
- Update beta channel
- Umbrella drivers
- Select a primary driver to check Appium 3 compatibility, to avoid keeping track of multiple release channels in multiple drivers
- XCUITest driver - Android-related drivers require more changes (Androiddriver + UiA2 driver), so they will be the next target
- Other drivers after that
- Not directly related, but related to the deprecations
- Select a primary driver to check Appium 3 compatibility, to avoid keeping track of multiple release channels in multiple drivers
Functionality
- Support NodeJS 20+ (npm 10+) (NodeJS v18 will be EOL in April 2025)
- Dependency changes
- Express v5 - fix(base-driver): Make it work with Express5 #20789
- Drop validate.js - feat(base-driver): Remove dependency to validate.js #21175
- Drop driver-specific handling from the main core
- Drop old deprecated non-w3c endpoints
- feat: add /appium/sessions, /session/:sessionId/appium/capabilities and deprecated marks will be removed in the future #20936 (add deprecated marks)
- feat(base-driver): Remove deprecated routes #21134
- feat(appium): implement GET /appium/sessions and deprecate GET /sessions #21233
- Adjust drivers & Inspector to not use the old endpoints
- Make security flags driver-specific to prevent unwanted reuse by other drivers/plugins
- Better Appium Inspector integration
- Create migration guide for the above changes
Drop/Low Priority
- Switch
node.http
tonode.http2
for Express, get rid of the third-partyspdy
dependency- Cannot do this yet since Express v5 still doesn't support it
- Investigate the possibility of moving to ESM
- This is not so beneficial right now. We would need to update a lot of tests to achieve this, so this would depend on our capacity
RC Target
- April 2025 (by following NodeJS v18 EOL)
Concerns
- How to treat backward compatibility AFTER releasing Appium 3 RC?
- The worst case is if Appium 3 based modules (especially base-driver) have no compatibility with Appium 2. Should we somehow keep Appium 2 backward compatibility for individual drivers? etc.
eglitise, SrinivasanTarget, pradeipp, lin72h, arniu and 2 morecerjsitkhanz, lin72h and arniuDor-bl and arniu
Metadata
Metadata
Assignees
Labels
v3Appium v3Appium v3