Skip to content

fix(helm-deploy-eks): makeLatest legacy → true (legacy semver broken on rc tags)#156

Merged
pdodgen-revparts merged 1 commit into
mainfrom
devex-1655-make-latest-true
Jul 13, 2026
Merged

fix(helm-deploy-eks): makeLatest legacy → true (legacy semver broken on rc tags)#156
pdodgen-revparts merged 1 commit into
mainfrom
devex-1655-make-latest-true

Conversation

@pdodgen-revparts

Copy link
Copy Markdown
Contributor

Follow-up to #155. Tested legacy against encodium/batch rc.9 vs rc.12 today — it did NOT re-designate. Diagnosis:

GH's semver comparator treats 2026-07-09 in the prerelease identifier as an alphanumeric segment (hyphens present), then compares subsequent segments incorrectly. So -rc.2026-07-09.12 does not rank above -rc.2026-07-09.9 in GH's implementation.

Verified: PATCH with make_latest: legacy → rc.9 stayed latest. PATCH with make_latest: true → rc.12 became latest.

Semantic change

  • Before (legacy): GH re-evaluates via semver. Broken for our tag shape.
  • After (true): every successful prod deploy re-designates as latest.

Rollback behavior changes: under true, rolling back to an older rc makes THAT rc latest (accurately reflecting what's live). Under legacy we'd have kept the newer rc as latest despite older code running. true is the more useful semantic during incidents.

Not affected

  • Main-branch clean tags (vX.Y.Z) go through mathieudutour/ncipollo on release CREATE, not PATCH. Normal semver ordering applies there — no impact.

…broken)

Follow-up to #155. Tested `legacy` against encodium/batch rc.9 vs
rc.12 on 2026-07-13 and it did NOT re-designate. GH's semver
comparator appears to treat `2026-07-09` in the prerelease identifier
as an alphanumeric segment (hyphens present), then compares subsequent
segments incorrectly — so `-rc.2026-07-09.12` does not rank above
`-rc.2026-07-09.9` in its impl.

Switching to `make_latest: true`. Semantic under RT v2: 'latest
release' = whatever is currently running in prod. Every successful
prod deploy re-designates latest. Rollback deploys of older rc's
correctly move latest backwards to reflect what's actually deployed —
which is what you want during an incident anyway (latest = truth of
what's live).

Main-branch clean tags (`vX.Y.Z`) go through a different action on
create (not PATCH) and use normal semver ordering — not affected by
this change.
@pdodgen-revparts
pdodgen-revparts marked this pull request as ready for review July 13, 2026 17:50
@pdodgen-revparts
pdodgen-revparts requested a review from a team as a code owner July 13, 2026 17:50
@cursor

cursor Bot commented Jul 13, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
CI-only change to GitHub release metadata after prod deploys; no runtime or auth impact, with intentional rollback semantics for the “latest” label.

Overview
Prod deploys that PATCH GitHub releases via ncipollo/release-action now pass makeLatest: true instead of legacy, so each successful promotion re-marks that tag as GitHub’s “latest release.”

Comments document why legacy failed for RT v2 rc tags (hyphenated prerelease segments break GitHub’s semver comparison) and why omitting the field still leaves an old rc pinned. Rollback behavior shifts: deploying an older rc will move “latest” backward to match what’s actually in prod. Clean vX.Y.Z releases created elsewhere are unchanged.

Reviewed by Cursor Bugbot for commit 39c1dfa. Bugbot is set up for automated code reviews on this repo. Configure here.

@pdodgen-revparts
pdodgen-revparts merged commit 7bedf93 into main Jul 13, 2026
2 checks passed
@pdodgen-revparts
pdodgen-revparts deleted the devex-1655-make-latest-true branch July 13, 2026 17:50
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