Skip to content

Feature/android toolchain migration#115

Open
ostfrost wants to merge 2 commits intoSiftScience:masterfrom
ostfrost:feature/android-toolchain-migration
Open

Feature/android toolchain migration#115
ostfrost wants to merge 2 commits intoSiftScience:masterfrom
ostfrost:feature/android-toolchain-migration

Conversation

@ostfrost
Copy link

@ostfrost ostfrost commented Mar 4, 2026

Purpose

Upgrade the Android toolchain to a modern, supported stack (Gradle/AGP/JDK/SDK), remove legacy build/publish configuration, and keep SDK compatibility at minSdk 19.

Summary

  • Migrated build system to Gradle 8.13 and Android Gradle Plugin 8.13.2.
  • Updated Android SDK levels to compileSdk 36 / targetSdk 36 while keeping minSdk 19.
  • Modernized Gradle setup:
    • moved to plugins {} in root/module build files,
    • switched to tasks.register('clean', ...),
    • added pluginManagement and dependencyResolutionManagement in settings.gradle.
  • Updated daemon/toolchain setup (including gradle-daemon-jvm.properties and foojay resolver convention).
  • Refreshed full Gradle wrapper set (gradle-wrapper.properties, gradle-wrapper.jar, gradlew, gradlew.bat).
  • Removed legacy/deprecated config:
    • jcenter(),
    • old buildscript plugin declarations,
    • legacy uploadArchives,
    • legacy AWS Device Farm integration in sample app.
  • Migrated publishing to maven-publish and Sonatype publish tasks.
  • Updated CI and publish workflows to JDK 17 + Android SDK 36.
  • Added stronger CI coverage: lint + build/test + connected smoke test for hello-sift.
  • Updated dependencies (Gson, JUnit, Mockito, WireMock, AndroidX Test, etc.).
  • Migrated generated model usage to getters/setters and aligned SDK code/tests accordingly.
  • Updated docs (README) and release notes (CHANGELOG) with compatibility and breaking-change notes.

Testing

  • Local:
    • ./gradlew clean test :sift:assembleRelease :hello-sift:assembleDebug
    • ./gradlew :sift:lint :hello-sift:lintDebug
  • CI:
    • lint + unit tests + assembly
    • connected smoke test: :hello-sift:connectedDebugAndroidTest
  • Publish path:
    • ./gradlew :sift:publishReleasePublicationToSonatypeRepository (via workflow)

Checklist

  • The change was thoroughly tested manually
  • The change was covered with unit tests
  • The change was tested with the integration example
  • Necessary changes were made in the integration example (if applicable)
  • New functionality is reflected in README (if applicable)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant