Skip to content

chore(release): graduate haproxy-operator to 0.3.0 - #12

Merged
kphunter merged 1 commit into
mainfrom
devin/1776737601-graduate-release
Apr 21, 2026
Merged

chore(release): graduate haproxy-operator to 0.3.0#12
kphunter merged 1 commit into
mainfrom
devin/1776737601-graduate-release

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Instructs release-please to cut a clean-stable 0.3.0 release (no -rc suffix) on its next run.

Two per-package overrides added to release-please-config.json:

  • release-as: "0.3.0": pins the next version explicitly. Minor bump from 0.2.0 because feat: commits (scaffold, strict-D CI adoption) have landed since the last release.
  • prerelease: false: overrides the repo-level prerelease: true so prerelease-type: "rc" does not re-append -rc on top of the pinned version.

Flow after this merges:

  1. Merge this PR.
  2. release-please's existing release PR chore: release main #9 (currently proposing 0.3.0-rc) will be rewritten on the next run to propose 0.3.0 (no -rc).
  3. Review + merge that release-please PR.
  4. release-please creates the v0.3.0 tag and GitHub Release.
  5. release-please.yaml re-dispatches ci.yaml against refs/tags/v0.3.0 (via gh workflow run --ref <tag>); the re-dispatch publishes the immutable 0.3.0 image+chart plus moves stable + latest OCI pointers (this will be the highest-stable SemVer for the repo).
  6. Flux on cluster01 (ref.tag: stable) picks up the new revision automatically — once flux-fleet's apps/haproxy-operator/base/ocirepository.yaml is flipped from ref.tag: latest to the proper stable/head pattern (separate follow-up).

Follow-up required: once the v0.3.0 tag is cut and artifacts published, open a second PR that removes the release-as + prerelease: false overrides. Without the removal, release-please will keep proposing 0.3.0 on every run (no-op after the tag exists, but noisy) and block the next normal rc bump.

Review & Testing Checklist for Human

  • Confirm target version 0.3.0 matches your intent (the open release-please PR currently proposes 0.3.0-rc; this forces graduation directly to stable without cutting the rc first).
  • After merging this PR, check release-please PR chore: release main #9 to confirm it's been rewritten to 0.3.0 (no -rc suffix).
  • After merging the release-please PR, confirm GHCR has ghcr.io/bcit-tlu/haproxy-operator/haproxy-operator:0.3.0 and :stable + :latest pointers moved to that digest. Same for the chart: .../charts/haproxy-operator:0.3.0 + :stable + :latest.
  • Remember to land the follow-up PR removing the release-as overrides.

Notes

Skipping the rc step is intentional here — the alternative (merge #9 to cut v0.3.0-rc, wait for bake-time, then file another Release-As for v0.3.0) adds an extra publish+tag cycle without meaningful signal at this stage of adoption. If you'd prefer the two-step path (rc → full) for more conservative rollout, close this PR and merge #9 instead.

Link to Devin session: https://app.devin.ai/sessions/a5e23b4cc3a34f4caa54267af3c1ccc4
Requested by: @kphunter


Open in Devin Review

Force release-please to cut a clean-stable 0.3.0 release (no -rc suffix)
on the next release PR it opens. Adds 'release-as: 0.3.0' + 'prerelease:
false' per-package overrides so the prerelease-type rc logic does not
re-append '-rc' to the pinned version.

After the release-please PR that uses this override merges and the
v0.3.0 tag is created, a follow-up PR will remove these overrides so
normal rc-based bumping resumes for the next cycle.

Co-Authored-By: kyle_hunter@bcit.ca <kyle_hunter@bcit.ca>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

@kphunter
kphunter merged commit 91d1207 into main Apr 21, 2026
6 checks passed
kphunter added a commit that referenced this pull request Apr 21, 2026
)

Follow-up to #12 / #9. Two related cleanups:

1. Remove the temporary graduation overrides that forced release-please
   to cut a clean '0.3.0' instead of '0.3.0-rc':
     - 'release-as': '0.3.0'
     - 'prerelease': false
   With '0.3.0' now on main, leaving these in would make release-please
   keep proposing 0.3.0 on every run (no-op but noisy) and block the
   next normal rc bump.

2. Remove the vestigial 'component': 'haproxy-operator' entry.
   Under strict-D this repo uses 'include-component-in-tag': false, so
   tags are 'vX.Y.Z' (no component prefix). The component field was a
   holdover from pre-strict-D (when the tag was 'haproxy-operator-v*').
   With 'separate-pull-requests': false + no custom title pattern,
   release-please renders the release PR title as 'chore: release main'
   — which contains no ${component} token. On the post-merge run of
   PR #9 this caused release-please to log
     'PR component: undefined does not match configured component:
     haproxy-operator'
   while building the release for path '.', and abort without creating
   the v0.3.0 tag or GitHub release. The follow-up 'dispatch-publish'
   step was therefore skipped, so the 0.3.0 image/chart were never
   published and the moving 'stable'/'latest' OCI pointers were not
   moved.

   Dropping the single-package component brings the config in line
   with a normal single-component strict-D repo (compare tech-ops-docs)
   and lets release-please parse 'chore: release main' correctly on
   future releases.

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: kyle_hunter@bcit.ca <kyle_hunter@bcit.ca>
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