Class ReleaseReport

java.lang.Object
network.ike.plugin.release.report.ReleaseReport

public final class ReleaseReport extends Object
Renders the markdown report body and the cascade-preview/footer log lines for ike:release-draft and ike:release-publish.

The report body is the markdown payload of the GoalReportSpec returned by ReleaseDraftMojo.runGoal(); the IKE goal-report aggregator collects it for the workspace-level run report. The cascade log lines are advisory output emitted directly through ctx.log().

Carved out of ReleaseDraftMojo during the Phase 4 Commit 6 (IKE-Network/ike-issues#489). The companion DraftRenderer wraps this class for the draft-mode short-circuit.

  • Constructor Details

    • ReleaseReport

      public ReleaseReport(ReleaseContext ctx)
      Creates a new report renderer bound to the given context.
      Parameters:
      ctx - the per-invocation release context
  • Method Details

    • reportCascade

      public void reportCascade(boolean draft)
      Prints the foundation release cascade section (IKE-Network/ike-issues#402, #420).

      When the releasing repository version-controls its own src/main/cascade/release-cascade.yaml it is a cascade member: this surfaces the downstream repos the release affects — a preview in draft mode, a "what's next" footer in publish mode. A repository with no such file (an ordinary consumer) or an unreadable manifest is silently skipped — cascade reporting is purely advisory and never fails or blocks a release.

      Parameters:
      draft - true for the draft preview, false for the post-publish footer
    • build

      public String build(boolean draft, String oldVersion, String releaseBranch, String projectId, String releaseTimestamp, NexusOutcome nexus, CentralOutcome central, List<CascadeBump> foundationUpgrades)
      Builds the markdown body for an ike:release-* session report.
      Parameters:
      draft - true for draft preview, false for a completed publish run
      oldVersion - the pre-release POM version
      releaseBranch - the release branch that was (or would be) created
      projectId - the artifactId of the project being released
      releaseTimestamp - the reproducible build timestamp stamped into project.build.outputTimestamp
      nexus - the Nexus deploy outcome (use NexusOutcome.initial() for draft)
      central - the Central deploy outcome (use CentralOutcome.initial() for draft)
      foundationUpgrades - the upstream-version bumps the release applied; rendered as a "Foundation upgrades" section when non-empty (#706)
      Returns:
      the markdown body