Skip to content

build: add axion-release versioning, Spotless formatter, GHCR publish workflow#17

Merged
ex172000 merged 1 commit into
mainfrom
build/release-and-spotless
May 28, 2026
Merged

build: add axion-release versioning, Spotless formatter, GHCR publish workflow#17
ex172000 merged 1 commit into
mainfrom
build/release-and-spotless

Conversation

@ex172000
Copy link
Copy Markdown
Collaborator

Summary

Closes the three open-source readiness gaps before the public switchover:

  • Versioning — adds pl.allegro.tech.build.axion-release (1.18.16). Version is derived from git tags; the hard-coded 1.0.0-SNAPSHOT is removed. ./gradlew currentVersion reports 0.1.0-SNAPSHOT today; the first official release pins 1.0.0 via ./gradlew release -Prelease.version=1.0.0.
  • Publishing — new .github/workflows/release.yml triggered on v*.*.* tags. Builds + pushes a multi-arch (linux/amd64, linux/arm64) Docker image to ghcr.io/uber/ugroup with tags :X.Y.Z, :X.Y, :X, :latest, and creates a GitHub Release with the boot jar attached.
  • Formatter — adds com.diffplug.spotless (6.25.0) with googleJavaFormat('1.22.0'), removeUnusedImports, trailing-whitespace + newline normalization, and an Apache 2.0 license header (gradle/license-header.txt). spotlessCheck runs as part of ./gradlew build.
  • README rewrite — lean, with Quick Start, REST examples, the verified ugroup_consumer_lag PromQL, and the three watchlist modes. Deep dives stay on the Wiki.
  • CONTRIBUTING — adds the ./gradlew spotlessApply step and .git-blame-ignore-revs setup note.

Merge order

This PR adds spotlessCheck to the default build but the existing Java code is not yet formatted. Merge #style/spotless-reformat first to avoid a temporarily red main, then merge this. After both land, fill the reformat commit SHA into .git-blame-ignore-revs in a follow-up commit.

Test plan

  • ./gradlew currentVersion0.1.0-SNAPSHOT
  • ./gradlew build -x integrationTest passes (Spotless + Spotbugs + JaCoCo + unit tests)
  • Tag-triggered release workflow dry-run with a throwaway v0.0.1-rc1 tag pushes to GHCR (verify before the real v1.0.0)

🤖 Generated with Claude Code

@ex172000 ex172000 force-pushed the build/release-and-spotless branch 2 times, most recently from 397f571 to f5f5e5e Compare May 26, 2026 21:48
Comment thread gradle/license-header.txt
@@ -0,0 +1,15 @@
/*
* Copyright $YEAR Uber Technologies, Inc.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exact year missing

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$YEAR is a placeholder Spotless's licenseHeaderFile recognizes. It tells Spotless where the year sits in the template so it can match existing headers and decide how to fill it in based on yearMode.

Comment thread .git-blame-ignore-revs
@@ -0,0 +1,6 @@
# Commits listed here are skipped by `git blame`.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need this file, nothing is included

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It exists so git blame doesn't attribute every line in the codebase to the Spotless reformat commit.

@ex172000 ex172000 force-pushed the build/release-and-spotless branch from f5f5e5e to 49c2420 Compare May 28, 2026 20:13
@ex172000 ex172000 merged commit 32500e0 into main May 28, 2026
5 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.

2 participants