Skip to content

chore: migrate to Rokt release process#663

Open
jamesnrokt wants to merge 8 commits intoworkstation/6.0-Releasefrom
chore/standardize-release-process
Open

chore: migrate to Rokt release process#663
jamesnrokt wants to merge 8 commits intoworkstation/6.0-Releasefrom
chore/standardize-release-process

Conversation

@jamesnrokt
Copy link
Collaborator

@jamesnrokt jamesnrokt commented Mar 10, 2026

Background

  • The existing release pipeline relied on semantic-release, a legacy scripts/maven.gradle apply-from pattern, and per-module maven-publish/signing configuration. Upgrading AGP from 8.1.4 → 8.3.2 (required by vanniktech 0.31.0 + Gradle 8.5) exposed two publish blockers, and the overall release process was fragile and difficult to maintain.

What Has Changed

  • Replaced scripts/maven.gradle + per-module publish setup with a buildSrc convention plugin (mparticle.android.library.publish) powered by vanniktech gradle-maven-publish-plugin:0.31.0, centralising POM metadata, signing, and Sonatype coordinates across all modules.
  • Replaced semantic-release / release.config.js / scripts/release.sh with two GitHub Actions workflows: release-draft.yml (bumps VERSION, runs a publish smoke-test, opens a PR) and release-publish.yml (publishes to Maven Central when the VERSION file change lands on main).
  • Fixed afterEvaluate ordering bug in KitPlugin.groovy — kit description and artifactId now propagate to POMs correctly via lazy convention() providers.
  • Fixed Apache license URL typo in POM metadata (/license//licenses/).
  • Added ValidatePomTask to validate all required Maven Central POM fields at build time before publish.

Screenshots/Video

  • N/A

Checklist

  • I have performed a self-review of my own code.
  • I have made corresponding changes to the documentation.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have tested this locally.

Additional Notes

  • Signing is opt-in: publications are only signed when signingInMemoryKey is present, so local and non-release CI builds never fail with a missing-key error.
  • The empty javadoc jar is a known workaround for the Dokka/ASM8 incompatibility; it satisfies Maven Central's file-format validator. A follow-up to restore real javadoc (via a Dokka upgrade) is needed.
  • Kit standalone builds are not affected by this PR — all kits currently build within the monorepo context where buildSrc provides the convention plugin.

Reference Issue (For employees only. Ignore if you are an outside contributor)

  • N/A

@jamesnrokt jamesnrokt requested a review from a team as a code owner March 10, 2026 13:54
@jamesnrokt jamesnrokt changed the base branch from main to workstation/6.0-Release March 10, 2026 13:55
@sonarqubecloud
Copy link

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