KMP-IMPACT

kmp-impact analyze

Run the full pipeline against a single dependency bump.

Synopsis

kmp-impact analyze \
  --repo PATH \
  --dependency NAME \
  --before-version A \
  --after-version B \
  [--output-dir OUT] \
  [--skip-dynamic] \
  [--before-apk PATH] \
  [--after-apk PATH] \
  [--droidbot-before-output PATH] \
  [--droidbot-after-output PATH]

Flags

Flag Required Default Description
--repo yes Path or URL to the KMP project repository.
--dependency yes Dependency group (e.g. io.ktor, org.jetbrains.compose).
--before-version yes Version before the change.
--after-version yes Version after the change.
--output-dir no output Directory where shadow copies, phase outputs, and the HTML report are written.
--skip-dynamic no off Skip Phase 3 (DroidBot). The report still publishes; the dynamic tab shows skipped.
--before-apk no Path to a pre-built APK for the BEFORE state. Skips the Gradle build for that side.
--after-apk no Path to a pre-built APK for the AFTER state. Skips the Gradle build for that side.
--droidbot-before-output no Path to a pre-generated DroidBot output directory for the BEFORE APK. Skips the DroidBot run for that side.
--droidbot-after-output no Path to a pre-generated DroidBot output directory for the AFTER APK. Skips the DroidBot run for that side.

The four optional dynamic-phase shortcuts (--*-apk, --droidbot-*-output) are useful for two cases:

Behaviour

Example

kmp-impact analyze \
  --repo ~/projects/pokedex-kmp \
  --dependency io.ktor \
  --before-version 2.3.8 \
  --after-version 2.3.11 \
  --output-dir output \
  --skip-dynamic
open output/report/index.html

See also