chore: merge master into 2.0 and added mac2 in lib/drivers.js (#14928)

* fix: fix urls in docs (#14910)

* docs: Update generated docs [ci skip] (#14913)

Co-authored-by: runner <runner@Mac-1606273407156.local>

* feat: Add Mac2Driver (#14911)

* docs: Add Mac2Driver documentation (#14914)

* chore: add scripts for doing releases (#14918)

* docs: Update push-file.yml (#14920)

* add appium-mac2-driver

Co-authored-by: Appium Triager <maintainers@appium.io>
Co-authored-by: runner <runner@Mac-1606273407156.local>
Co-authored-by: Mykola Mokhnach <mokhnach@gmail.com>
Co-authored-by: Dan Graham <dpgraham.85@gmail.com>
Co-authored-by: Ilija Boshkov <ilija.boshkov@gmail.com>
This commit is contained in:
Kazuaki Matsuo
2020-12-03 15:44:34 -08:00
committed by GitHub
parent 8b68b1fbf6
commit f877df6fb5
26 changed files with 111 additions and 46 deletions
@@ -5,7 +5,7 @@ short_description: Place a file onto the device in a particular place
example_usage:
java:
|
driver.pushFile("/path/to/device/foo.bar", new File("/Users/johndoe/files/foo.bar"));
driver.pushFile("/data/local/tmp/foo.bar", new File("/Users/johndoe/files/foo.bar"));
python:
|
dest_path = '/data/local/tmp/test_push_file.txt'
@@ -13,23 +13,23 @@ example_usage:
self.driver.push_file(dest_path, base64.b64encode(data).decode('utf-8'))
javascript_wd:
|
await driver.pushFileToDevice('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
await driver.pushFileToDevice('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
javascript_wdio:
|
let data = new Buffer("Hello World").toString('base64');
driver.pushFile('/data/local/tmp/file.txt', data);
ruby:
|
push_file('/path/to/device/foo.bar', File.read('path/to/file.png'))
push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
ruby_core:
|
@driver.push_file('/path/to/device/foo.bar', File.read('path/to/file.png'))
@driver.push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
php:
|
$driver->pushFile('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
$driver->pushFile('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
csharp:
|
driver.PushFile("/path/to/device/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
driver.PushFile("/data/local/tmp/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/PushesFiles.html#pushFile-java.lang.String-java.io.File-"
@@ -42,8 +42,8 @@ example_usage:
action.Perform();
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#doubleTap-org.openqa.selenium.WebElement-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.double_tap"
java: "https://www.selenium.dev/selenium/docs/api/java/overview-summary.html"
python: "https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.double_tap"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L425"
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchdoubleclick"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:double_tap"
@@ -38,7 +38,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#flick-org.openqa.selenium.WebElement-int-int-int-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element"
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element"
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchflick"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1513"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:flick"
@@ -45,7 +45,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#longPress-org.openqa.selenium.WebElement-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.long_press"
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.long_press"
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#touchperform"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1531"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:long_press"
@@ -52,7 +52,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.move"
python: "https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.touch_actions"
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#multitouchperform"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1531"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:move"
@@ -39,7 +39,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#scroll-int-int-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.scroll"
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.scroll"
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchscroll"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L425"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:scroll"
@@ -48,7 +48,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold"
python: "https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold"
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchdown"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1546"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/TouchActionBuilder#down-instance_method"
@@ -48,7 +48,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#up-int-int-"
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.release"
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.release"
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchup"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1546"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:up"
+3 -3
View File
@@ -90,12 +90,12 @@ example_usage:
AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723"), appiumOptions);
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/DefaultSession.html#createSession-org.openqa.selenium.remote.server.DriverFactory-org.openqa.selenium.remote.server.Clock-org.openqa.selenium.remote.SessionId-org.openqa.selenium.Capabilities-"
java: "https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html"
python: "http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.WebElement.clear"
javascript_wdio: "https://webdriver.io/docs/api/webdriver.html#newsession"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1780"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
+1 -1
View File
@@ -29,7 +29,7 @@ example_usage:
ICapabilities caps = driver.Capabilities;
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/ActiveSessions.html#get-org.openqa.selenium.remote.SessionId-"
java: "https://www.selenium.dev/selenium/docs/api/java/overview-summary.html"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.session.Session.session"
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#getsession"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L227"
@@ -85,8 +85,8 @@ action.Perform();
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#doubleTap-org.openqa.selenium.WebElement-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.double_tap) |
|[Java](https://github.com/appium/java-client/releases/latest)| All | [www.selenium.dev](https://www.selenium.dev/selenium/docs/api/java/overview-summary.html) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.double_tap) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L425) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:double_tap) |
+1 -1
View File
@@ -81,7 +81,7 @@ action.Perform();
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#flick-org.openqa.selenium.WebElement-int-int-int-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1513) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:flick) |
@@ -88,7 +88,7 @@ touchAction.LongPress(element).Perform();
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#longPress-org.openqa.selenium.WebElement-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.long_press) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.long_press) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1531) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:long_press) |
+1 -1
View File
@@ -98,7 +98,7 @@ As of Appium 1.8.0 all move actions take coordinates that are absolute.
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.move) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.touch_actions) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1531) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:move) |
@@ -82,7 +82,7 @@ action.Perform();
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#scroll-int-int-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.scroll) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.scroll) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L425) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:scroll) |
@@ -91,7 +91,7 @@ action.Perform();
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1546) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/TouchActionBuilder#down-instance_method) |
@@ -91,7 +91,7 @@ action.Perform();
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#up-int-int-) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.release) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.release) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1546) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:up) |
+2 -2
View File
@@ -133,11 +133,11 @@ Please do not forget to call [delete command](/docs/en/commands/session/delete.m
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/DefaultSession.html#createSession-org.openqa.selenium.remote.server.DriverFactory-org.openqa.selenium.remote.server.Clock-org.openqa.selenium.remote.SessionId-org.openqa.selenium.Capabilities-) |
|[Java](https://github.com/appium/java-client/releases/latest)| All | [www.selenium.dev](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.WebElement.clear) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1780) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear) |
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver) |
|[PHP](https://github.com/appium/php-client/releases/latest)| All | [github.com](https://github.com/appium/php-client/) |
|[C#](https://github.com/appium/appium-dotnet-driver/releases/latest)| All | [github.com](https://github.com/appium/appium-dotnet-driver/) |
+1 -1
View File
@@ -72,7 +72,7 @@ ICapabilities caps = driver.Capabilities;
|Language|Support|Documentation|
|--------|-------|-------------|
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/ActiveSessions.html#get-org.openqa.selenium.remote.SessionId-) |
|[Java](https://github.com/appium/java-client/releases/latest)| All | [www.selenium.dev](https://www.selenium.dev/selenium/docs/api/java/overview-summary.html) |
|[Python](https://github.com/appium/python-client/releases/latest)| All | [appium.github.io](https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.session.Session.session) |
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L227) |
@@ -139,7 +139,7 @@ for e2e test files to end in `-e2e-specs.js`.
The release process for any Appium module other than the main Appium package is
pretty straightforward (note that you will need to be an NPM owner for the
package if you want to publish it. Ownership is managed by the Appium
committers; talk to @jlipps or @imurchie if you believe you should be an owner
committers; talk to @jlipps, @kazucocoa, @dang, @mykola-mokhnach if you believe you should be an owner
and are not):
1. `rm -rf node_modules && rm -rf package-lock.json && npm install` and run tests to make sure a clean install works.
@@ -149,7 +149,7 @@ and are not):
1. Push the appropriate branch to GitHub, and don't forget to include the `--tags` flag to include the tag just created by `npm version`.
1. Run `npm publish` (with `--tag beta` if this isn't an official release).
For the main Appium packages, all the above steps must be taken, but with
For the main Appium package, all the above steps must be taken, but with
several changes. One reason is that for the main package we use NPM shrinkwrap
to ensure dependencies don't change between installations. Another reason is
that we develop on master and release on various branches. The way it works is
@@ -177,18 +177,4 @@ checked in to GitHub along with changes to `package.json`. With npm 5+ there is
also a `package-lock.json` file produced. During the shrinkwrap process this is
converted into the `npm-shrinkwrap.json` file.
1. Remove the NPM shrinkwrap and package-lock JSON files if they exists.
1. `rm -rf node_modules && npm install` and run tests to make sure a clean install works.
1. Determine whether we have a `patch` (bugfix), `minor` (feature), or `major` (breaking) release according to the principles of SemVer.
1. Update `package.json` with the appropriate new version.
1. Update the CHANGELOG/README with appropriate changes and submit for review as a PR, along with shrinkwrap and `package.json` changes. Wait for it to be merged, then pull it into the release branch.
1. Run `npm shrinkwrap` to generate the `npm-shrinkwrap.json`
1. Create a tag of the form `v<version>` on the release branch (usually a minor branch like `1.5` or `1.4`), with: `git tag -a v<version>`, e.g., `git tag -a v1.5.0`, `git tag -a v1.5.0-rc.1`. This is not necessary for beta versions.
1. Push the tag to upstream: `git push --tags <remote> <branch>`
1. Run `npm publish` (with `--tag rc` if this isn't a GA release).
1. Remove the NPM shrinkwrap JSON file from Git and push the changes
1. Update the site docs by going to https://github.com/appium/appium.io/pulls and merging the latest pull request that was opened by the Triager bot. Close any other pull requests opened by Triager bot.
1. Create a new release on GitHub: go to `https://github.com/appium/appium/releases/tag/v<VERSION>` and hit "Edit Tag". Make the release name `<VERSION>` (e.g., `2.0.5`), then paste in the changelog (but not the changelog header for this version). If it's a beta release, mark as pre-release.
1. Create a new post on discuss.appium.io announcing the release. Post it in the "News" category. Paste in the changelog and any choice comments. Pin it and unpin the previous release post.
1. Begin process of releasing `appium-desktop`.
1. Notify @jlipps to so he can tweet a link to the discuss post.
Follow directions in [Release Appium Doc](docs/release-appium.md)
@@ -0,0 +1,23 @@
# Releasing Appium
Appium follows the GitLab flow approach. Releases are made on release branches that have the format `releases/x.y` where `x` is a major version and `y` is a minor version. The main Appium repository doesn't strictly follow semver (unlike the dependencies of Appium). A minor release (e.g.: `1.20.0`) means that we're creating a new release that has a newly created set of dependencies that are shrinkwrapped to the latest. A patch release (e.g.: `1.20.4`) isn't strictly a "patch", but just means that we're making an intermediary release that brings in small changes. For example, suppose I have a new version of `appium-xcuitest-driver` that I want to publish and it can't wait until the next minor release. To bring in that change, I would checkout the release branch (e.g.: `git checkout releases/1.20`); install the dependency (`npm install appium-xcuitest-driver@version && git commit -a -m 'bump appium-xcuitest-driver to version $version`); release a "release candidate" (see below) and then when it's ready, graduate the "release candidate" to general availability
## Create a release branch
1. `bash ./scripts/release-branch.sh x.y` where `x` is the major version and `y` is the minor version (example: `bash ./scripts/release-branch.sh 1.20`)
* This will create:
* A release branch `releases/1.20`
* A git tag `v1.20.0-rc.0`
* Publish a NPM package `1.20.0-rc.0` as a release candidate
1. Create a changelog pull request
## Create a release candidate
1. Checkout the release branch (e.g.: `git checkout releases/1.21 && git pull origin releases/1.21`)
1. `bash ./scripts/release-candidate.sh rc`
## Publish to GA
1. Checkout the release branch (e.g.: `git checkout releases/1.21 && git pull origin releases/1.21`)
1. `bash ./scripts/release-candidate.sh latest`
1. Update the site docs by going to https://github.com/appium/appium.io/pulls and merging the latest pull request that was opened by the Triager bot. Close any other pull requests opened by Triager bot.
1. Create a new release on GitHub: go to `https://github.com/appium/appium/releases/tag/v<VERSION>` and hit "Edit Tag". Make the release name `<VERSION>` (e.g., `2.0.5`), then paste in the changelog (but not the changelog header for this version). If it's a beta release, mark as pre-release.
1. Create a new post on discuss.appium.io announcing the release. Post it in the "News" category. Paste in the changelog and any choice comments. Pin it and unpin the previous release post.
1. Begin process of releasing `appium-desktop`.
1. Notify @jlipps to so he can tweet a link to the discuss post.
+37
View File
@@ -0,0 +1,37 @@
## The Mac2Driver
Mac2Driver has been added to Appium since version 1.20.
This driver is for automating macOS applications using Apple's [XCTest](https://developer.apple.com/documentation/xctest) framework.
It provides more flexibility and features in comparison to the legacy
[MacDriver](mac.md) and is better compatible with operating system internals.
The driver operates in scope of [W3C WebDriver protocol](https://www.w3.org/TR/webdriver/) with several custom extensions to cover operating-system specific scenarios.
The original idea and parts of the source code are borrowed from the Facebook's [WebDriverAgent](https://github.com/facebookarchive/WebDriverAgent) project.
Development of the Mac2Driver happens at the
[appium-mac2-driver](https://github.com/appium/appium-mac2-driver) repo.
### Requirements and Support
In addition to Appium's general requirements:
- macOS 10.15 or later
- Xcode 12 or later should be installed
- Xcode Helper app should be enabled for Accessibility access. The app itself could be usually found at `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Agents/Xcode Helper.app`. In order to enable Accessibility access for it simply open the parent folder in Finder: `open /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Agents/` and drag & drop the `Xcode Helper` app to `Security & Privacy -> Privacy -> Accessibility` list of your `System Preferences`. This action must only be done once.
- [Carthage](https://github.com/Carthage/Carthage) should be present. On macOS the utility could be installed via [Brew](https://brew.sh/): `brew install carthage`
### Usage
The way to start a session using the Mac2Driver is to include the
`automationName` capability in your new session request, with
the value `Mac2`. Of course, you must also include appropriate
`platformName` (only `Mac` is supported). Read
[Mac2Driver documentation](https://github.com/appium/appium-mac2-driver/blob/master/README.md)
for more details.
### Capabilities
The list of available driver capabilities could be found in
the driver [README](https://github.com/appium/appium-mac2-driver/blob/master/README.md) file.
+1
View File
@@ -21,6 +21,7 @@ module.exports = {
['Safari (Mac/iOS)', 'safari.md'],
['Gecko (Firefox)', 'gecko.md'],
['Mac', 'mac.md'],
['Mac2', 'mac2.md'],
]],
['Commands', ['commands',
['Status', 'status.md'],
+1
View File
@@ -12,6 +12,7 @@ const KNOWN_DRIVERS = {
youiengine: 'appium-youiengine-driver',
windows: 'appium-windows-driver',
mac: 'appium-mac-driver',
mac2: 'appium-mac2-driver',
espresso: 'appium-espresso-driver',
tizen: 'appium-tizen-driver',
flutter: 'appium-flutter-driver',
+13
View File
@@ -0,0 +1,13 @@
git fetch
echo "* Creating release branch $1"
git checkout -b releases/$1
rm -rf node_modules/ npm-shrinkwrap.json package-lock.json
npm install
npm shrinkwrap
echo "* git add ."
git add npm-shrinkwrap.json package.json
git commit -m 'add shrinkwrap'
echo "* npm version $1.0-rc.0"
npm version $1.0-rc.0
git push origin releases/$1
bash ./scripts/release-candidate.sh
+4
View File
@@ -0,0 +1,4 @@
npm version prerelease --preid=$1
git push
git push --tags
npm publish --tag $1