Skip to content

docs: add the Kotlin migration playbook and tracker - #846

Merged
nickolas-dimitrakas merged 1 commit into
mainfrom
docs/kotlin-migration-playbook
Oct 7, 2026
Merged

nickolas-dimitrakas merged 1 commit into
mainfrom
docs/kotlin-migration-playbook

Conversation

@nickolas-dimitrakas

Copy link
Copy Markdown
Contributor

Summary

Adds the playbook and tracker for the Java to Kotlin migration of android-core and android-kit-base internals, and points AGENTS.md at them.

  • docs/kotlin-migration/PLAYBOOK.md: the two governing rules (no breaking change; main is always releasable), what converts and what stays Java and why, the compatibility tiers and the check that proves each, the conversion rules that keep the compiled API identical, the per-PR checklist, risk classes and merge rules, the ProGuard protocol, rollback, and the steps to add when a release is cut while migration work is unreleased.
  • docs/kotlin-migration/TRACKER.md: every planned pull request by phase and stack, with line counts, existing-test counts and risk class, plus the QA checkpoints.
  • AGENTS.md: a short pointer to both documents.

Dependencies

The documents refer to tooling introduced by the other Phase 0 pull requests (apiCheck and scripts/check_api_dump.py, scripts/api_compat_report.py, settings-compat.gradle). This pull request should merge after them.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

📦 SDK Size Impact Report

What the SDK adds to a minified release APK.

Measured against an empty baseline app. Unlike the Rokt kit, android-core ships no Compose and no resources, so there is nothing here that a host app would already provide.

mParticle Core SDK

Metric Target branch This PR Change
APK size 119.79 KB 119.79 KB -2 bytes
Download size 117.60 KB 117.60 KB -2 bytes
Dex bytes 213.75 KB 213.75 KB 0 bytes

➡️ SDK size impact change is minimal.

Raw measurements

Target branch:

{"baseline_dex_bytes": 0, "baseline_download_bytes": 2512, "baseline_install_bytes": 7528, "core_dex_bytes": 218884, "core_download_bytes": 122937, "core_install_bytes": 130190}

This PR:

{"baseline_dex_bytes": 0, "baseline_download_bytes": 2513, "baseline_install_bytes": 7529, "core_dex_bytes": 218884, "core_download_bytes": 122936, "core_install_bytes": 130189}

Measured b20a64d merged into 19fef8d

@nickolas-dimitrakas
nickolas-dimitrakas force-pushed the docs/kotlin-migration-playbook branch from a5d2c6f to 362c34e Compare September 24, 2026 04:48
@nickolas-dimitrakas
nickolas-dimitrakas changed the base branch from main to test/consumer-compat-fixtures September 24, 2026 04:48
@nickolas-dimitrakas
nickolas-dimitrakas added this pull request to stack #851 September 24, 2026 05:47
@nickolas-dimitrakas nickolas-dimitrakas self-assigned this Sep 24, 2026
@nickolas-dimitrakas
nickolas-dimitrakas marked this pull request as ready for review October 6, 2026 18:21
@nickolas-dimitrakas
nickolas-dimitrakas requested a review from a team as a code owner October 6, 2026 18:21
@cursor

cursor Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation additions outlining the Java-to-Kotlin migration guidelines and roadmap with no changes to application code.

Overview
Adds documentation and tracking guidelines for the ongoing Java-to-Kotlin migration across android-core and android-kit-base.

Introduces docs/kotlin-migration/PLAYBOOK.md, which defines the rules to prevent breaking API changes, conversion best practices, review checklists, risk classifications, and ProGuard verification protocols.

Introduces docs/kotlin-migration/TRACKER.md to map out the planned migration phases, individual pull request stacks, line count baselines, and milestone checkpoints. Also updates AGENTS.md to direct contributors to these guidelines before modifying core or kit modules.

Reviewed by Cursor Bugbot for commit 5fcb2ae. Bugbot is set up for automated code reviews on this repo. Configure here.

@nickolas-dimitrakas
nickolas-dimitrakas force-pushed the docs/kotlin-migration-playbook branch from 362c34e to 7b3e149 Compare October 6, 2026 18:27
@nickolas-dimitrakas
nickolas-dimitrakas force-pushed the docs/kotlin-migration-playbook branch from 7b3e149 to 4d16a95 Compare October 6, 2026 20:43
@nickolas-dimitrakas
nickolas-dimitrakas force-pushed the docs/kotlin-migration-playbook branch 4 times, most recently from ec5da3a to 5fcb2ae Compare October 6, 2026 21:50
jamesnrokt
jamesnrokt previously approved these changes Oct 7, 2026

@jamesnrokt jamesnrokt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One flag is we need a deeper test before any releases following this process

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

Binary compatibility

  • ✅ android-core is compatible with 6.1.5 (115 classes compared, 1 with additions only).
  • ✅ android-kit-base is compatible with 6.1.5 (44 classes compared, 0 with additions only).

Compares the release AAR against the same artifact at the last version published to Maven Central; R8-renamed classes and members are excluded (see the script docstring). Full japicmp HTML/XML reports are attached as the api-compat-reports workflow artifact. This check is not in the required-check set yet, so a red result here does not block merging.

@jamesnrokt jamesnrokt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving and reran checks - Happy to approve again if checks need a proper fix

Base automatically changed from test/consumer-compat-fixtures to main October 7, 2026 19:06
Adds docs/kotlin-migration/PLAYBOOK.md, which sets out the rules for
converting android-core and android-kit-base internals from Java to Kotlin
without changing the published API: what stays Java and why, the compatibility
tiers and the check that proves each, the conversion rules, the per-PR
checklist, risk classes and merge rules, and the ProGuard protocol. Adds
docs/kotlin-migration/TRACKER.md with every planned pull request by phase and
stack, and points AGENTS.md at both.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@nickolas-dimitrakas
nickolas-dimitrakas force-pushed the docs/kotlin-migration-playbook branch from c2e7df5 to b20a64d Compare October 7, 2026 19:06
@nickolas-dimitrakas
nickolas-dimitrakas merged commit cb83bbf into main Oct 7, 2026
130 of 133 checks passed
@nickolas-dimitrakas
nickolas-dimitrakas deleted the docs/kotlin-migration-playbook branch October 7, 2026 19:49
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.

2 participants