Skip to content

Publish the Kotlin client to Maven Central on release - #81

Merged
windischb merged 1 commit into
developfrom
claude/maven-central-publish
Sep 26, 2026
Merged

windischb merged 1 commit into
developfrom
claude/maven-central-publish

Conversation

@windischb

Copy link
Copy Markdown
Collaborator

Summary

  • The Kotlin docs point at dev.cocoar:signalarrr / dev.cocoar:signalarrr-ksp, but the release workflow only published NuGet and npm.
  • Gradle: com.vanniktech.maven.publish (0.37.0) replaces the bare maven-publish setup. Shared config in the root build.gradle.kts: Central Portal target, sources + (empty) javadoc jars, full POM including developer and SCM connection, and signing when signingInMemoryKey is present — so publishToMavenLocal still works locally without a key.
  • cd-deploy-stable.yml: new publish-kotlin job — builds and tests at the release version, checks that all four Maven secrets are set, then runs publishAndReleaseToMavenCentral. deploy-docs now waits for it.
  • CONTRIBUTING.md documents the secrets and that Maven Central versions can't be deleted or overwritten.

Secrets (already set on the repo)

MAVEN_CENTRAL_USERNAME, MAVEN_CENTRAL_PASSWORD (Central Portal user token), MAVEN_SIGNING_KEY, MAVEN_SIGNING_KEY_PASSWORD (RSA 4096 key 764EE0353B4BB400, published on keys.openpgp.org).

Test plan

  • ./gradlew build passes
  • publishToMavenLocal produces jar, sources, javadoc and a complete POM for both modules
  • publishAndReleaseToMavenCentral --dry-run includes both modules
  • Signing and upload are only exercised by the first real release

🤖 Generated with Claude Code

The docs already tell Kotlin users to install dev.cocoar:signalarrr, but
the release workflow published only to NuGet and npm. The Kotlin modules
now use the vanniktech maven-publish plugin for the Central Portal:
sources and javadoc jars, a complete POM (developer, SCM connection),
and signing with an in-memory key when one is provided, so
publishToMavenLocal keeps working without it.

The release workflow gains a publish-kotlin job that builds and tests
the client at the release version, fails early when a Maven secret is
missing, and then publishes and releases both modules. The docs deploy
waits for it, since they advertise the package.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@windischb windischb changed the title Publish the Kotlin client to Maven Central on release Publish the Kotlin client to Maven Central on release, and stamp 5.2.0 Sep 25, 2026
@windischb
windischb force-pushed the claude/maven-central-publish branch from 142119a to fcf1106 Compare September 26, 2026 05:37
@windischb windischb changed the title Publish the Kotlin client to Maven Central on release, and stamp 5.2.0 Publish the Kotlin client to Maven Central on release Sep 26, 2026
@windischb
windischb merged commit 30c48d1 into develop Sep 26, 2026
26 checks passed
@windischb
windischb deleted the claude/maven-central-publish branch September 26, 2026 05:48
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.

1 participant