feat(kotlin): publish Kotlin SDK to Maven Central#281
Open
soamdesai-tfh wants to merge 2 commits into
Open
Conversation
Publish com.worldcoin:idkit to Maven Central so consumers no longer need GitHub Packages authentication tokens. GitHub Packages publishing is retained for dev builds. - Adopt the com.vanniktech.maven.publish plugin (0.34.0) for the bindings module, replacing the hand-rolled maven-publish config - Add a production-gated Maven Central publish step to the Kotlin release workflow; keep the GitHub Packages step for dev + prod - Sign publications only when a signing key is supplied, so dev releases remain unsigned - Add a verifyKotlinNativeLibraries preflight that fails publishing if any Android ABI's native library is missing or empty - Validate the publication in CI (publishToMavenLocal + artifact, POM, and bundled native-library checks) - Add a relocation POM script for the renamed idkit-kotlin artifact - Document Maven Central as the primary install path Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@soamdesai-tfh is attempting to deploy a commit to the Worldcoin Team on Vercel. A member of the Team first needs to authorize it. |
The sample app is a separate Gradle build that includes :bindings via a project path. It must declare the com.vanniktech.maven.publish version (apply false) so bindings resolves it, the same way it already does for the Android and Kotlin plugins. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
Publishes the Kotlin SDK (
com.worldcoin:idkit) to Maven Central, alongside the existing GitHub Packages publishing — so consumers can useimplementation("com.worldcoin:idkit:<version>")with no authentication. Thecom.worldcoinnamespace is already verified on the Sonatype Central Portal, so this is release-engineering wiring, not new infrastructure.Changes
com.vanniktech.maven.publishplugin (0.34.0) for thebindingsmodulepublish-kotlin.yml; GitHub Packages publishing is unchangedverifyKotlinNativeLibrariesfails any publish if an Android ABI'slibidkit.sois missing or empty, preventing a broken AAR from reaching the (immutable) registrypublishToMavenLocal(artifact set, POM metadata, native libraries bundled for all four ABIs)idkit-kotlinartifactVerification
publishToMavenLocalproduces a signed, complete publication (AAR + sources + javadoc + POM); the native-lib guard andPKG_VERSIONoverride were confirmedNote
Medium Risk
Touches production release pipelines, Maven Central credentials, and signing; mistakes could publish incomplete or wrong artifacts, though Central-first ordering and native-lib guards reduce blast radius.
Overview
Adds Maven Central as the primary distribution path for
com.worldcoin:idkit, while dev builds still go only to GitHub Packages.The
bindingsmodule now usescom.vanniktech.maven.publish(0.34.0) instead of hand-rolledmaven-publishPOM wiring: Central publication, sources/javadoc jars, POM metadata, and GPG signing only whensigningInMemoryKeyis set. AverifyKotlinNativeLibrariesGradle check blocks any publish if an ABI’slibidkit.sois missing or empty.CI runs
publishToMavenLocalin the Kotlin job and asserts the full artifact set, required POM elements, and all four JNI ABIs inside the AAR. The publish workflow uploads to Maven Central first on production (signed, with Central secrets), then publishes to GitHub Packages viapublishAllPublicationsToGitHubPackagesRepositoryso dev releases don’t hit Central or require signing.Docs now lead with Maven Central;
scripts/publish-relocation-pom.shis a one-time helper for a relocation POM from legacyidkit-kotlincoordinates.Reviewed by Cursor Bugbot for commit cff5e0d. Bugbot is set up for automated code reviews on this repo. Configure here.