BlackBerry Dynamics SDK migration toolkit: Supported project shapes

During the bootstrap process (prompt 00pre-bootstrap.md), the toolkit checks your Gradle project and records its shape in module-map.json. The following table describes how the toolkit handles each shape in a single migration run:

Project shape

Behavior

Canonical single-module

An app/ directory at the repository root applies the com.android.application plug-in. No extra flags are required because the toolkit uses app as the primary module.

Multi-module, single application module

One com.android.application module is reachable from settings.gradle or settings.gradle.kts. The toolkit auto-discovers the primary module and proceeds without flags.

Multi-application

Multiple com.android.application modules exist. bootstrap.sh probe exits with code 3 and lists candidates. Use the following command to run with the module that you want to migrate:

bash dynamics-migration-tool/tooling/bootstrap.sh probe --app-module <name>

Only one application module is migrated per run, and other modules are recorded under otherAppModules[] and appear as manual TODOs in the migration report. Run the full migration for each sibling app module on a fresh backup branch.

Convention plugin

Android configuration (compileSdk, minSdk, lint, ProGuard) exists in Kotlin convention plug-in sources. The toolkit discovers and edits those plug-in sources.

Kotlin Multiplatform (KMP)

KMP (Kotlin Multiplatform) modules are recorded in module-map.json under outOfScopeModules[] with reason "kmp-module-ignored".