Skip to content

fix(release): prepend container-image header to release notes#319

Merged
icebergai-review-bot[bot] merged 1 commit into
mainfrom
fix/release-notes-image-blurb
Jul 21, 2026
Merged

fix(release): prepend container-image header to release notes#319
icebergai-review-bot[bot] merged 1 commit into
mainfrom
fix/release-notes-image-blurb

Conversation

@richardmhope

Copy link
Copy Markdown
Collaborator

Why: the IcebergEBS v0.1.0-beta.1 release notes didn't reference the published image at all, and looked nothing like the sibling IcebergTTX releases. Root cause: release.yml's Create GitHub Release step used only --generate-notes, whereas IcebergTTX's step prepends a terse container-image header via --notes-file.

This mirrors IcebergTTX so the family's releases read as one system — a 3-line header (image ref by its normalized OCI tag + a pointer to docs/RELEASING.md) above the auto-generated "What's Changed":

Container image published to GHCR — SBOM + SLSA provenance attested, cosign-signed:

    ghcr.io/icebergai/icebergebs:<tag>

Pull, verify (cosign / attestation), and deploy instructions: docs/RELEASING.md.
  • The image tag comes from steps.meta.outputs.version (docker/metadata-action's normalized SemVer — no v), passed through an env: var rather than interpolated into the shell (zizmor-clean).
  • I already re-edited the existing v0.1.0-beta.1 release body to this format by hand; this makes every future release match automatically.

The other visible difference — beta.1's huge full-history "What's Changed" — is inherent to it being the first release (--generate-notes has no prior tag to diff against) and self-corrects at beta.2, which will produce a short compare/… list like IcebergTTX. No change needed for that.

🤖 Generated with Claude Code

The release step used only `--generate-notes`, so the GitHub Release never
referenced the published image — inconsistent with the sibling IcebergTTX, whose
release.yml prepends a terse image header. Mirror that: write a `--notes-file`
header (image ref by its normalized OCI tag + pointer to docs/RELEASING.md) above
the auto-generated notes so every future release surfaces the image and the family
reads as one system.

The image tag comes from steps.meta.outputs.version (docker/metadata-action's
normalized SemVer, no `v`) via an env var — not interpolated into the shell.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@icebergai-review-bot icebergai-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

IcebergAutoReview

Verdict: approve

The release workflow correctly prepends the container image reference while retaining generated notes. The normalized metadata version matches the published SemVer tag, shell inputs are safely passed through environment variables, and existing security/pinning conventions remain intact.

Findings

  • No blocking findings.

Validation

  • Inspected the complete main...HEAD diff and surrounding release workflow
  • Verified clean ancestry and single-file scope
  • git diff --check main...HEAD passed
  • timeout 120s actionlint .github/workflows/release.yml passed
  • Bash syntax probe for the modified release script passed
  • Confirmed via gh release create --help that supplied notes are prepended when --generate-notes is used

Residual risks / optional notes

  • The tag-triggered publishing step was not executed locally because it would create external release artifacts; current-head CI provides the broad validation baseline.

Automated review by Codex 51e043bfd03a using IcebergAutoReview.

@icebergai-review-bot
icebergai-review-bot Bot merged commit 62eae62 into main Jul 21, 2026
11 checks passed
@icebergai-review-bot
icebergai-review-bot Bot deleted the fix/release-notes-image-blurb branch July 21, 2026 00:20
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