Skip to content

chore: enable Kotlin explicitApi() and Binary Compatibility Validator (.api dumps) #1794

Description

@dkhawk

Background & Context

During the review of #1716 (feat!: migrate android-maps-ktx into android-maps-utils (v6.0.0), comment), @kikoso noted that android-maps-utils v6.0.0 introduces ~200 new public Kotlin symbols (canonical extensions plus the @Deprecated com.google.maps.android.ktx.* compatibility shim layer), and all new Kotlin code already declares explicit visibility modifiers.

To prevent accidental public API leakage and guarantee binary compatibility across the 6.x release series (especially for the ktx compatibility shims), we should enable explicitApi() and binary compatibility validation as a fast-follow after #1716 merges.

Tasks

  • Enable kotlin { explicitApi() } across published library modules (:library, :clustering, :data, :heatmaps, :ui) and add any missing visibility/return-type declarations on existing Kotlin classes.
  • Configure org.jetbrains.kotlinx.binary-compatibility-validator (or Kotlin's built-in abiValidation) and commit baseline .api dumps for each published module.
  • Add apiCheck to the CI Pull Request workflow so binary-breaking signature changes or unintended public declarations are caught automatically.

Activity

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

Metadata

Metadata

Assignees

Labels

priority: p2Moderately-important priority. Fix may not be included in next release.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions