Skip to content

Publish to Maven Central as com.siliconcircuits:toaststack (#70) - #71

Merged
zeevy merged 1 commit into
mainfrom
feat/70-maven-central
Oct 13, 2026
Merged

zeevy merged 1 commit into
mainfrom
feat/70-maven-central

Conversation

@zeevy

@zeevy zeevy commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Publishes the library to Maven Central as com.siliconcircuits:toaststack, starting with 1.4.1. Fixes #70.

Changes

  • release.yml: a new last step signs the publication, zips the version folder, uploads it to the Central Portal API (publishingType=AUTOMATIC) and polls the status. The run fails with Central's error text if Central rejects the bundle, or if it has not finished its checks after 20 minutes.
  • toaststack/build.gradle.kts: Gradle's own signing plugin, and a centralBundle repository in build/central-bundle. Signing switches on only when SIGNING_KEY is set, so CI, JitPack and local builds stay unsigned. POM url and scm now point at zeevy/toast-stack. Version 1.4.1.
  • ci.yml: builds the Central bundle (unsigned) on every PR.
  • README installs from mavenCentral() and has a Maven Central badge. CHANGELOG, SECURITY.md and the bug template use the new coordinates. JitPack keeps working.

No new plugin or dependency. The four secrets (MAVEN_CENTRAL_USERNAME, MAVEN_CENTRAL_PASSWORD, SIGNING_KEY, SIGNING_PASSWORD) are already set on the repo.

How it was tested

  • Built the bundle unsigned, and signed with a throwaway key. All 5 files (AAR, POM, .module, sources, javadoc) have a .asc, gpg --verify reports a good signature, and each file has md5 and sha1. The zip holds only the 1.4.1 folder.
  • The POM has every field Central checks: name, description, url, license, developer, scm.
  • The upload and status calls match the Central Portal API docs. The error path prints Central's reply (checked with a local stand-in).
  • :toaststack:testDebugUnitTest (318 tests), :toaststack:lintDebug, publishReleasePublicationToMavenLocal, actionlint.

After merge

Publish GitHub Release v1.4.1 from main. The release run uploads to Central. The version shows on central.sonatype.com within about 30 minutes.

- release.yml signs the publication with the SIGNING_KEY secret,
  zips the version folder and uploads it to the Central Portal API,
  then waits and fails the run if Central rejects it.
- Core Gradle signing plugin only; builds without SIGNING_KEY
  (CI, JitPack, local) publish unsigned.
- CI builds the Central bundle on every PR.
- README installs from mavenCentral(); POM url and scm point at
  zeevy/toast-stack. Version 1.4.1.

Fixes #70
@zeevy
zeevy merged commit 7a3e34f into main Oct 13, 2026
4 checks passed
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.

Publish to Maven Central

1 participant