Skip to content

feat: support installing the latest beta release via version: beta#441

Closed
avallete wants to merge 1 commit into
mainfrom
feat/add-latest-beta-channel-pointer
Closed

feat: support installing the latest beta release via version: beta#441
avallete wants to merge 1 commit into
mainfrom
feat/add-latest-beta-channel-pointer

Conversation

@avallete

Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

The latest channel resolves through the GitHub /releases/latest endpoint, which never returns prereleases, so there was no way to track the CLI beta channel — any other value was treated as an exact version.

Add a beta channel that lists releases and installs the most recent beta prerelease. This lets consumers surface (and fix) breakages early.

The `latest` channel resolves through the GitHub `/releases/latest`
endpoint, which never returns prereleases, so there was no way to track
the CLI beta channel — any other value was treated as an exact version.

Add a `beta` channel that lists releases and installs the most recent
beta prerelease. This lets consumers surface (and fix) breakages early.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01APKXLPMGXsnWUSU3i16Lfv
@avallete avallete requested a review from a team as a code owner June 26, 2026 12:56

@jgoux jgoux 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.

Findings

  • P2: src/main.ts fetches only the default first page of GitHub releases when resolving version: beta, despite the comment saying “list all releases.” If the latest beta falls off page 1, version: beta will fail with “no beta release found” even though a beta exists. I’d add per_page=100 at minimum, and ideally follow pagination until a beta is found or the release list is exhausted.

    const response = await fetch(GITHUB_RELEASES_LIST_API, { headers: buildGithubHeaders() });

  • P3: action.yml still says github-token is used to resolve only the latest release. README was updated to say latest/beta, so the action metadata should match.

    setup-cli/action.yml

    Lines 8 to 9 in 3dacd93

    github-token:
    description: GitHub token used to resolve the latest Supabase CLI release without hitting unauthenticated API limits.

Test Gap

The mocked unit coverage is good, but no workflow/e2e path exercises version: beta against the live release API and real archive download. Current matrices still cover only explicit versions and latest; I’d add a small beta smoke case, probably one OS only to keep runtime sane.

Verification

I reviewed PR 441 at 3dacd93e8f53a2229ed8c0a31d18cdfedf851fcf against main, checked the live Supabase CLI releases API, confirmed the current latest beta has the expected archive assets, and ran the repo validation successfully after the CI setup step:

bun install --frozen-lockfile && bun run ci

Result: format, lint, and 27 tests passed.

@avallete avallete closed this Jun 26, 2026
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.

3 participants