Broken ABI with appium-dotnet-driver with release 3.11.1
See original GitHub issueContext -
Selenium version: 3.11.1 Appium driver version: 3.0.0.2
The commit https://github.com/SeleniumHQ/selenium/commit/b337a82699e29776119fb89d50812cfd28d8cb8a#diff-2a14338d24c37ab68b826b6102ef12eeR26 makes ICommandExecutor
inherit from IDisposable
. This interface is implemented in appium dotnet driver (https://github.com/appium/appium-dotnet-driver/blob/6c14399041c5a94c537048c1d098157fa7457f7e/appium-dotnet-driver/Appium/Service/AppiumCommandExecutor.cs).
Therefore, the change in selenium breaks appium-dotnet-driver build (as Dispose
is not implemented) and breaks the runtime linking.
Since this change has been released with a patch version of selenium, it seems to be an unexpected breaking change.
Related issue: appium/appium-dotnet-driver#217
Expected Behavior -
Should be able to use the appium extension with selenium 3.11.1
Actual Behavior -
Throws a runtime linking error
Method 'Dispose' in type 'OpenQA.Selenium.Appium.Service.AppiumCommandExecutor' from assembly 'appium-dotnet-driver, Version=3.0.0.2, Culture=neutral, PublicKeyToken=null' does not have an implementation.
Void .ctor(System.Uri, OpenQA.Selenium.ICapabilities, System.TimeSpan)
at OpenQA.Selenium.Appium.AppiumDriver`1..ctor(Uri remoteAddress, ICapabilities desiredCapabilities, TimeSpan commandTimeout)
at OpenQA.Selenium.Appium.AppiumDriver`1..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Appium.Android.AndroidDriver`1..ctor(Uri remoteAddress, DesiredCapabilities desiredCapabilities)
at appiumUnitTests.testLogic.runTests(device de) in C:\Users\sjaroch\Desktop\android-test-lib\appiumAndroidUnitTests\appiumUnitTests\testLogic.cs:line 230
Steps to reproduce -
See appium/appium-dotnet-driver#217
Issue Analytics
- State:
- Created 5 years ago
- Comments:10 (4 by maintainers)
This change has been pushed to the official drop site and to NuGet.
@backmask Y’know what? I tried to apologize for the inconvenience, and I’d just as soon avoid being beaten up on anymore today. I was unclear in my previous response in that I should have said “long term, reverting is the incorrect approach.” I’m sorry I gave the impression that the issue wasn’t serious. I understand your frustration, and I apologize for being the cause of it.
Now, is there anything else I need to apologize for? Anyone else wanna pile on? As long as I’m gonna get told how horrible I make people’s lives, we might as well get it all over with in one day so that I can feel better by tomorrow.