io.seatlayer:seatlayer-java is published to Maven Central through the Central
Portal by .github/workflows/release.yml. A tag push publishes all the way to
Central: pom.xml sets <autoPublish>true</autoPublish>, so there is no manual
approval step in the Portal.
A version on Maven Central can never be replaced, edited or deleted. A bad
release is fixed only by publishing a newer version. The workflow gate (tests, a
tag-versus-<version> check and GPG signing) runs before anything is uploaded,
and any failure means nothing is sent. Do not weaken it.
These are already in place and only need revisiting when a credential changes.
-
Namespace.
io.seatlayeris verified in the Central Portal by a DNS TXT record onseatlayer.io. It covers every artifact underio.seatlayer. -
Signing key. Central checks each
.ascsignature against the public key on the public keyserver network, so the public key must be published (for example tokeyserver.ubuntu.comandkeys.openpgp.org) and retrievable withgpg --recv-keysbefore a release. -
Actions secrets used by the workflow:
Secret Purpose MAVEN_CENTRAL_USERNAMECentral Portal user token name MAVEN_CENTRAL_PASSWORDCentral Portal user token password MAVEN_GPG_PRIVATE_KEYArmored private signing key MAVEN_GPG_PASSPHRASEPassphrase for the signing key Central has no Trusted Publishing (OIDC) option, so these are the only stored release secrets across the SeatLayer server SDKs.
-
Bump
<version>inpom.xml(never a-SNAPSHOT). -
Add a dated entry at the top of
CHANGELOG.md. -
Run the gate locally:
mvn -B clean verify
-
Merge the release commit to
main, then tag it and push the tag:git tag v0.8.1 && git push origin v0.8.1
The workflow runs mvn -B verify, refuses to publish if the tag and the pom
version disagree, then runs mvn -B -Prelease deploy, which signs the jar,
sources jar, javadoc jar and pom and uploads them to the Central Portal.
The artifact appears on repo1.maven.org within minutes; search indexing can lag
by up to a few hours.
curl -sI https://repo1.maven.org/maven2/io/seatlayer/seatlayer-java/0.8.1/seatlayer-java-0.8.1.pomThen resolve it from a clean local repository in a scratch project:
mvn -Dmaven.repo.local=/tmp/m2-clean dependency:get -Dartifact=io.seatlayer:seatlayer-java:0.8.1