Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 1.84 KB

File metadata and controls

71 lines (51 loc) · 1.84 KB

Release Guide

TimerButton publishes to Maven Central as:

implementation("com.goeslocal:timerbutton-compose:<version>")
implementation("com.goeslocal:timerbutton-view:<version>")
implementation("com.goeslocal:timerbutton:<version>") // compatibility bundle

One-Time Setup

  1. Create a Central Portal account at https://central.sonatype.com/.
  2. Register and verify the com.goeslocal namespace with the DNS TXT record Central gives you.
  3. Generate a Central Portal user token.
  4. Install GPG, create a signing key, and publish the public key to a keyserver.
brew install gnupg
gpg --full-generate-key
gpg --list-secret-keys --keyid-format LONG
gpg --keyserver keyserver.ubuntu.com --send-keys <KEY_ID>
gpg --armor --export-secret-keys <KEY_ID>

Local Secrets

Put secrets in ~/.gradle/gradle.properties, not in this repository:

mavenCentralUsername=<central-token-username>
mavenCentralPassword=<central-token-password>
signingInMemoryKey=<ascii-armored-private-key>
signingInMemoryKeyPassword=<gpg-key-password>

GitHub Actions Secrets

For tag-based publishing, add these repository secrets:

MAVEN_CENTRAL_USERNAME
MAVEN_CENTRAL_PASSWORD
SIGNING_KEY
SIGNING_PASSWORD

Verify Locally

./gradlew clean :timerbutton-core:testDebugUnitTest :timerbutton-compose:assembleRelease :timerbutton-view:assembleRelease :timerbutton:publishToMavenLocal

Publish Manually

./gradlew publishAndReleaseToMavenCentral

Maven Central can take 10 to 30 minutes before a published artifact is available.

Publish From GitHub Actions

Update the version and CHANGELOG.md, commit the release, then tag it:

git tag v<version>
git push origin v<version>

Do not create a tag for a version that has already been published to Maven Central. Maven Central versions are immutable.