docs(appium): add FAQ to 1.x EOL plan

This commit is contained in:
Jonathan Lipps
2021-08-17 15:06:05 -07:00
parent 5c962965e4
commit b671d0cef3

View File

@@ -1,12 +1,11 @@
# Appium version 1 End Of Life (EOL) Plan
Appium 1 has been around for quite a while and now is the time to move
project development forward and to provide even better automation
experience with Appium version 2.
Appium 1 has been around for quite a while and now is the time to move project development forward
and to provide even better automation experience with Appium version 2.
## Upgrading to Appium 2.x
While Appium 2.0 leaves most of the fundamental automation behaviors from the various platfrom
While Appium 2.0 leaves most of the fundamental automation behaviors from the various platform
drivers untouched, it does rework the way that drivers are installed and accessed, and enforces
stricter protocol usage, among other changes. For that reason, it's important to fully read,
understand, and implement the steps discussed in the [Appium 1.x to 2.x Migration
@@ -29,8 +28,8 @@ release of Appium 2.0 (until March 15, 2022):
* Bug fixes to the Appium 1.x server.
Once the 6 months of transition have passed, we will publish new versions of the core drivers that
will only be compatible with Appium 2.x. From that point forward, no features, platform support, or
patches will be added to 1.x.
will only be guaranteed to be compatible with Appium 2.x. From that point forward, no features,
platform support, or patches will be added to 1.x.
Based on the current release schedule, it is likely that Appium 1.22.x will be the last in the set
of Appium 1.x releases.
@@ -39,3 +38,72 @@ of Appium 1.x releases.
Since Appium 2.0's documentation may not be published on the website until its release, you may
want to check out the `docs` folders in this repo, under the `2.0` git branch.
## FAQ
<b>Will Appium 1.x stop working for me after the EOL date?</b>
No. Appium is not a service. Existing versions of Appium will continue to work just fine. You
can keep using Appium 1.x for years if you want. However, bugs found in Appium 1.x will not be
fixed after the EOL date, and updates to make drivers compatible with new OS/platform updates may
not be compatible with Appium 1.x after the EOL date, so older versions of Appium are not
guaranteed to support, for example, new versions of iOS or Android.
<b>What is Appium's existing "support" strategy?</b>
With Appium 1.x (and with 2.x moving forward), no patches are made to existing versions or
backported to previous version lines. Changes are always only released in new versions. If you
discover a bug in, say, Appium 1.22.1, and it is fixed, that fix would be released in Appium
1.22.2, or Appium 1.23.0. The fix will not be retroactively applied to Appium 1.21 or any earlier
version. For this reason, it's important to always be using the latest version of Appium. The
only exception to this rule will be the transition period before the 1.x EOL date, wherein the
team will release new versions of Appium 1.x if necessary, while also releasing the 2.x line.
<b>How will Appium 1.x receive updates between the release of 2.0 and the 1.x EOL date? What kind
of updates will they be?</b>
With Appium 1.x, there were basically two kinds of updates:
1. Updates to Appium core code, including the Appium server, internal libraries, etc...
2. Updates to platform drivers (like the XCUITest driver, where many updates happened in the
WebDriverAgent project, or like the UiAutomator2 driver).
All of these updates were bundled haphazardly together in the course of an
Appium 1.x release. With Appium 2.x, these kinds of updates are appropriately disentangled. Appium
2.x core updates will be released as new versions of Appium 2.x, but these updates will not be
related at all to changes in platform driver code. Instead, drivers will maintain their own release
schedules, and new versions of drivers can be used without necessarily upgrading the Appium server
version (see the migration doc for more information on how to do this). With that context, we can
say that Appium 1.x will continue to receive the two types of updates mentioned, with the caveat
that the core Appium 1.x code will only see important bugfixes, and no feature development. So to
summarize, during the transition period, Appium 1.x will receive the following kinds of updates:
1. Important bugfixes to the core 1.x code (server, etc...)
2. All updates to platform driver code (this is made possible because the Appium team will ensure
that platform drivers are compatible with both Appium 1.x and 2.x, until the EOL period, after
which they will only be guaranteed to be compatible with 2.x).
<b>I use Appium via a cloud service. How will that work moving forward with Appium 2.0? Will cloud
providers stop supporting Appium 1.x at the same time the Appium team does?</b>
Appium cloud providers can support as much or as little of Appium 2.0's ecosystem as they want.
They might choose to make available only the most recent versions of the Appium 2.x server, and the
most recent versions of a few popular drivers. Or, they might have a predetermined list of drivers,
plugins, and versions that can be selected via capabilities. They might even allow for arbitrary
installation of any drivers or plugins from anywhere on the Internet. All of these factors are left
to the policy of the provider in question, though the Appium team makes some recommendations about
appropriate capabilities for Appium 2.x frontends, in the migration document.
Cloud providers are of course free to make their own plans for Appium 1.x EOL, and could choose to
support Appium 1.x for years to come. If you have any questions about your cloud provider's plan
for Appium 2.0 support or 1.x EOL, reach out to them directly. They should be familiar with this
document as well as the migration guide and should be able to assist.
<b>Why is there not a longer deprecation period for Appium 1.x? Why only 6 months?</b>
* The extent of the user-facing breaking changes is quite small, as you can see in the migration
doc. The necessary changes are mostly superficial, and some are handled automatically by newer
Appium clients.
* Appium 2.0 has been in beta for well over a year.
* Supporting incompatible versions of Appium for an extended period of time is not possible for
a small, part-time team of core committers.