2.3 KiB
2.3 KiB
Public APIs
The SDK has a variety of public APIs that should be kept stable for SDK consumers, unless an explicit decision is made to introduce a breaking API change. To reduce the introduction of incompatible changes, these test cases covers how to verify our own apps don't break.
Compile Compatibility
- Publish the SDK to mavenLocal
- Bump the SDK version in gradle.properties
- Navigate to the root of the SDK checkout
- Run the Gradle task
./gradlew publishToMavenLocal
- Modify the wallet app to build against the new SDK
- Check out the Zcash Android Wallet
- Modify settings.gradle to additionally include
mavenLocal()
in thedependencyResolutionManagement
block - Modify Dependencies.kt to use the new SDK version defined in the first step
- Navigate to the root of the wallet app checkout
- Build the wallet app and unit tests with the task
./gradlew assembleAndroidTest
- Verify the build completes successfully
Upgrade Compatibility
- Install the wallet app using the old SDK
- Ensure that no version of the Android wallet is currently installed on your test Android device or emulator
- Build the unmodified version of the wallet app
- Run the wallet app and create a new wallet
- Publish the SDK to mavenLocal
- Bump the SDK version in gradle.properties
- Navigate to the root of the SDK checkout
- Run the Gradle task
./gradlew publishToMavenLocal
- Modify the wallet app to build against the new SDK
- Check out the Zcash Android Wallet
- Modify settings.gradle to additionally include
mavenLocal()
in thedependencyResolutionManagement
block - Modify Dependencies.kt to use the new SDK version defined in the first step
- Install the wallet app using the new SDK
- Verify that the wallet behaves correctly (it should not act as if it is starting fresh; user data persisted by the old version of the SDK should still be present after SDK upgrade)