Redistribute IAB OMID AAR as so.kontext.iab:omsdk-android (0.0.6) - #9
Merged
Conversation
Adds a thin `:omsdk-android` subproject that republishes the unmodified IAB Tech Lab Open Measurement SDK Android AAR under a Kontext-owned group ID. The main `:kontext-kit-android` module declares the redistribution as a `runtime` dep so consumers (sdk-kotlin, sdk-react-native, sdk-flutter on Android) resolve OMID transitively from Maven Central without vendoring the AAR locally. Redistribution complies with OM License v1.1 Section 4: AAR shipped unmodified in Object form, LICENSE bundled in the source repo and referenced from the published POM. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
Merged
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
:omsdk-android— thin republish of the unmodified IAB Tech Lab Open Measurement SDK Android AAR underso.kontext.iab:omsdk-android:1.6.4. IAB Tech Lab distributes the original AAR off Maven Central via their compliance portal, so consumers of any Kontext SDK on Android (sdk-kotlin, sdk-react-native, sdk-flutter) previously had to vendor it locally. After 0.0.6, the OMID classes resolve transitively from Maven Central.:kontext-kit-androiddeclares the redistribution atruntimescope in its published POM (viaimplementation(project(":omsdk-android"))).OmManagercontinues to access OMID purely via reflection, so consumers don't need OMID on their compile classpath — AGP merges the AAR classes into the final APK at packaging time.License compliance
Redistribution complies with OM License v1.1 Section 4:
omsdk-android/omsdk-android-1.6.4.aaris the byte-for-byte original from the IAB Tech Lab portal.omsdk-android/LICENSEships the full OM License v1.1 text alongside the artifact in the source repo.<licenses>block (visible to anyone resolvingso.kontext.iab:omsdk-androidfrom Maven Central).Section 2(e) (Source-form confidentiality) does not apply — we only ship Object form. Section 2(b) (IVC Certificate for Integrators) is satisfied separately via the ongoing sdk-kotlin OMID compliance certification.
CI / publish wiring
./gradlew publishToMavenCentralfrom the root project transitively publishes both:kontext-kit-androidAND:omsdk-android— verified via--dry-run. No changes to.github/workflows/publish.ymlneeded; the existing secrets and command line flags work for both modules.Local verification (
./gradlew :publishToMavenLocal) confirmed:so.kontext.iab:omsdk-android:1.6.4publishes a 104KB AAR matching the IAB original (5 entries:proguard.txt,R.txt,AndroidManifest.xml,classes.jar, AAR metadata).so.kontext.kit:kontext-kit-android:0.0.6POM declaresso.kontext.iab:omsdk-android:1.6.4at<scope>runtime</scope>.Why a separate subproject (not a classifier artifact on the main module)
Tried wrapping the AAR as a classifier artifact on
:kontext-kit-android— downstream consumers can't transitively resolve classifier deps without explicitartifact { classifier = ... }blocks, which defeats the whole "consume from Maven Central, OMID just works" goal. A separate publication with its own coordinate flows through Gradle's normal transitive resolution.Do not merge
Per release plan, this PR opens against
mainso the user can:release/4.0.1branch (companion PR includesincludeBuildsubstitution).Test plan
./gradlew test spotlessCheck detektpasses locally (verified: BUILD SUCCESSFUL across all three)../gradlew :omsdk-android:publishToMavenLocalproduces a 104KB AAR + POM with<scope>removed (no transitive deps on the redistribution itself)../gradlew :publishToMavenLocalproduces akontext-kit-android-0.0.6.pomlistingso.kontext.iab:omsdk-android:1.6.4at runtime scope.release/4.0.1PR builds against this branch viaincludeBuild ../kontextkit-android.🤖 Generated with Claude Code