Skip to content

fix(prerelease-setup): never resolve a pre-release from an abandoned line - #323

Draft
anvesh-loft wants to merge 3 commits into
mainfrom
engqa-1777/resolver-ignore-abandoned-prereleases
Draft

anvesh-loft wants to merge 3 commits into
mainfrom
engqa-1777/resolver-ignore-abandoned-prereleases

Conversation

@anvesh-loft

@anvesh-loft anvesh-loft commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

What this fixes

A manual run of the vCluster + AI Cloud pre-release workflow with an empty upgrade version can resolve a 2023 alpha and die on a missing asset.

The resolver keeps pre-releases whose final release never shipped. Once every current line has gone GA, the abandoned ones from years ago are all that is left. Run 35222301790 resolved 0.18.2-alpha.0 that way.

This matters for the platform side on every run, not only manual ones: the auto trigger from vcluster-pro sends only the vCluster upgrade version, so the platform fallback always runs. The platform list has 75 unreleased pre-releases from dead lines (4.8.3-rc.2, 4.7.3-rc.2, ...), and the asset check only covers vCluster.

What changes

  • A candidate pre-release must be on or above the previous stable minor line. Today that is 0.36+ for vCluster and 4.11+ for the platform.
  • A maintenance RC on the previous line, a patch RC on the current line, and an alpha of the next major all still resolve.
  • When nothing qualifies, the step fails and says which input to pass instead of picking something old.
  • action.yml and the README describe the rule.

How it was tested

  • 5 new bats tests, including the exact fixture from run 35222301790. It fails on main and passes here.

  • bats suite: 38/38 pass locally with GNU coreutils and in CI. shellcheck clean.

  • Ran the script against the live GitHub API with all four inputs empty (2026-10-19): exit 0, vCluster 0.37.3 to 0.37.4-rc.2, platform 4.12.3 to 4.12.4-rc.1. Same answer the old resolver gives today; the change only matters once every current line has gone GA.

  • Ran the real composite end to end from a throwaway loft-enterprise branch that pointed uses: at this PR's branch, with all four version inputs empty: run 39305841481. Resolve, asset check and CLI download all passed; the suite then skipped on its platform version gate as expected for a 4.12.3 base. The branch is deleted.

After merge

Move the prerelease-setup/v1 tag to the merge commit, or loft-enterprise keeps running the old resolver.

Part of ENGQA-1777

🤖 Generated with Claude Code

anvesh-loft and others added 3 commits October 19, 2026 13:09
…line

An empty upgrade target picks the most recently published pre-release whose
final release has not shipped. Once every current line has gone GA, nothing
recent qualifies and the resolver fell through to the newest pre-release left
on the list, a 2023 alpha of a line that was never finished. The run then died
in Verify release assets because install-standalone.sh predates it
(loft-enterprise run 35222301790).

Only pre-releases on or above the previous stable minor line qualify now. A
maintenance RC on the previous line and an alpha of the next major still
resolve. When nothing qualifies the step fails and names the input to pass.

Part of ENGQA-1777.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…st the current line

previous_stable_line is the term the README uses; line_of replaces the two
ways the script computed a version's minor line. One more bats test: a patch
pre-release on the current line resolves.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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