Skip to content

feat: Maven Central publishing for v0.1.0#2

Closed
ClankerGuru wants to merge 3 commits into
mainfrom
feature/publish-setup
Closed

feat: Maven Central publishing for v0.1.0#2
ClankerGuru wants to merge 3 commits into
mainfrom
feature/publish-setup

Conversation

@ClankerGuru

@ClankerGuru ClankerGuru commented Mar 18, 2026

Copy link
Copy Markdown
Owner

Publishing Setup

Adds Maven Central publishing to the :gort library module.

Changes

  • maven-publish + signing plugins on :gort module
  • POM metadata: MIT license, SCM links, developer info
  • Android: publishLibraryVariants("release") — only release variant published
  • Signing: GPG via useGpgCmd(), only in CI when GPG_PASSPHRASE is set
  • Empty javadoc JAR: Sonatype compliance
  • Release workflow: ./gradlew :gort:publishAllPublicationsToMavenCentralRepository

Secrets Configured

  • GPG_PRIVATE_KEY, GPG_PASSPHRASE — same key as openspec-gradle (5E94CD91)
  • SONATYPE_USERNAME, SONATYPE_PASSWORD — same Sonatype token

Published Targets (all from macOS runner)

  • Android (release AAR)
  • Desktop (JVM JAR)
  • WASM (browser)
  • JS (browser + Node)
  • iOS (arm64, simulatorArm64)
  • macOS (arm64)

After Merge

  1. gh release create v0.1.0 → CI builds + publishes to Maven Central
  2. Group: zone.clanker, Artifact: gort
  3. Consumers: implementation("zone.clanker:gort:0.1.0")

Summary by CodeRabbit

  • Chores

    • Improved release automation and JVM resource settings for more reliable builds.
    • Configured secure publishing to Maven Central with GPG signing and tightened release artifact selection.
    • Refined test-result publishing conditions for more accurate CI reporting.
  • Documentation

    • Expanded README with detailed introduction, installation examples, a 52-component catalog, theme system, accessibility notes, platform targets, and a Catalog App guide.

- maven-publish + signing plugins on :gort module
- POM with MIT license, SCM, developer info
- publishLibraryVariants(release) for Android
- Signing only when GPG_PASSPHRASE present (CI only)
- Release workflow publishes all KMP targets to Maven Central
- Empty javadoc JAR for Sonatype compliance
@coderabbitai

coderabbitai Bot commented Mar 18, 2026

Copy link
Copy Markdown
ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: 4ece706c-0293-43cf-b514-2b49994d41ca

📥 Commits

Reviewing files that changed from the base of the PR and between aea48eb and 99af570.

📒 Files selected for processing (1)
  • README.md

📝 Walkthrough

Walkthrough

This PR adds Maven Central publishing for the gort module, including maven-publish and signing plugin configuration, publication POM metadata, conditional GPG signing, and CI workflow updates to build, publish, and attach gort-specific artifacts.

Changes

Cohort / File(s) Summary
CI/CD Workflow
.github/workflows/release.yml
Adjusts CI: sets GRADLE_OPTS for increased JVM memory; tightens test-results publishing condition; changes Gradle publish task to target :gort:publishAllPublicationsToMavenCentralRepository; restricts release artifact glob to */gort/build/libs/*.jar.
gort Gradle Publishing
gort/build.gradle.kts
Adds maven-publish and signing plugins; publishes only release variant; adds javadocJar artifact; configures Maven publication POM (name, description, URL, license, developers, SCM); sets Maven Central repository with credential lookup; configures conditional GPG signing (only if GPG_PASSPHRASE present).
Documentation / README
README.md
Extensive README expansion: badges, rewritten intro describing 52 components, detailed installation & examples, comprehensive components catalog and theme system, platform targets table, accessibility notes, and Catalog App run instructions.

Sequence Diagram(s)

sequenceDiagram
    participant Dev as Developer
    participant CI as CI (GitHub Actions)
    participant Gradle as Gradle (gort module)
    participant GPG as GPG Signing
    participant Maven as Maven Central

    Dev->>CI: Push release workflow
    CI->>Gradle: Run build & tests (with GRADLE_OPTS)
    Gradle->>Gradle: Produce artifacts (`gort/build/libs/*.jar`) and javadocJar
    Gradle->>GPG: Request signing (if GPG_PASSPHRASE present)
    GPG-->>Gradle: Signed artifacts
    Gradle->>Maven: Publish publications to Maven Central (`:gort:publishAllPublicationsToMavenCentralRepository`)
    CI->>CI: Attach gort-specific JARs to release
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through CI with a jittery twitch,
I packed up my docs and a small javadoc stitch,
With a GPG nibble and a signed little squeak,
Gort flew to Central atop a release-peak! 🚀

📝 Coding Plan
  • Generate coding plan for human review comments

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands and usage tips.

@ClankerGuru
ClankerGuru deleted the feature/publish-setup branch March 19, 2026 04:02
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