Skip to content

chore(publish): cut Maven Central file and release counts#50

Merged
rossdanderson merged 1 commit into
mainfrom
chore/reduce-maven-central-footprint
Jul 1, 2026
Merged

chore(publish): cut Maven Central file and release counts#50
rossdanderson merged 1 commit into
mainfrom
chore/reduce-maven-central-footprint

Conversation

@rossdanderson

Copy link
Copy Markdown
Collaborator

Maven Central's Central Portal enforces per-organisation monthly publishing limits (file count, release size, release count) as three-month rolling averages, with hard rate-limiting from 2026-08-11. We were publishing ~380 files per release and counting every RC tag as a full release, putting us over the file-count and release-count thresholds. Two independent levers:

File count — bump vanniktech-maven-publish 0.31.0 → 0.37.0. Its defaults publish only md5/sha1 checksums and drop the redundant checksums-of-.asc-signatures and sha256/sha512 (none of which Central reads). Cuts each artifact from 10 published files to 4 — ~380 → ~152 files per release. Also fixes the removed SonatypeHost API (publishToMavenCentral() no-arg).

Release count — derive the publish version from the git tag: a pre-release tag (X.Y.Z-rcN, case-insensitive) publishes an overwriting X.Y.Z-SNAPSHOT to the separate, quota-exempt snapshot repository; a clean X.Y.Z tag still releases. Turns a version that previously cost 3–4 counted releases into 1.

Notes

  • No public .api change; no CI change (publish job still fires on every tag — RC tags now publish a snapshot live, final tags stage a release for the usual manual "Publish").
  • 0.37.0's prerequisites (Gradle 9.5.1, Kotlin 2.2.21, Dokka v2 2.2.0) were already met, so the only breaking change that applied was the SonatypeHost rename.
  • Requires SNAPSHOTs enabled for the com.caplin.integration.datasourcex namespace (already done).
  • Follow-up: port the same two edits to springboot-3.5.x (identical toolchain, clean cherry-pick).

Verification

  • ./gradlew classes — BUILD SUCCESSFUL (fixes the current SonatypeHost CI compile failure)
  • spotlessApply clean
  • Version mapping confirmed: 3.1.0-rc2/3.1.0-RC13.1.0-SNAPSHOT, 3.1.03.1.0, devdev

Upgrade vanniktech-maven-publish to 0.37.0, whose defaults publish only
md5/sha1 checksums and drop the redundant signature checksums and
sha256/sha512 (~380 -> ~152 files per release). Fix the removed
SonatypeHost API by calling publishToMavenCentral() with no argument.

Derive the publish version from the git tag so pre-release tags
(X.Y.Z-rcN) publish an overwriting X.Y.Z-SNAPSHOT to the separate,
quota-exempt snapshot repository instead of a full release; clean X.Y.Z
tags still release.
@rossdanderson rossdanderson merged commit 8f8e867 into main Jul 1, 2026
6 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.

1 participant