Skip to content

feat: immutable releases support#54

Draft
zerosnacks wants to merge 3 commits intomasterfrom
feat/immutable-releases
Draft

feat: immutable releases support#54
zerosnacks wants to merge 3 commits intomasterfrom
feat/immutable-releases

Conversation

@zerosnacks
Copy link
Copy Markdown
Member

@zerosnacks zerosnacks commented Apr 24, 2026

Summary

Companion PR to foundry-rs/foundry#14445. Resolves version channels via the GitHub API instead of relying on mutable Git tags (nightly, stable).

Changes

  • latest is now the default channel (was stable)
  • stable is a silent alias for latest
  • latest/stable use the /releases/latest GitHub API endpoint — single API call, always finds the correct release regardless of how many nightlies exist
  • nightly searches the releases listing (per_page=10) for the latest nightly-{SHA} prerelease
  • Specific versions (v1.2.3, nightly-{SHA}) still work directly without API calls
  • Added download_json() to Downloader for GitHub API calls
  • Added reqwest json feature
  • Updated help text and tests
  • Added install_nightly_specific test for pinned nightly installs

User-facing behavior

Command Behavior
foundryup Installs latest release (resolved via /releases/latest)
foundryup -i latest Same as above
foundryup -i stable Silent alias for latest
foundryup -i nightly Installs latest nightly (resolved via API)
foundryup -i nightly-abc123... Installs that specific nightly
foundryup -i v1.6.0 Installs that exact version

Companion PR

zerosnacks and others added 3 commits April 24, 2026 16:33
Resolve version channels via the GitHub API instead of relying on
mutable Git tags:

- 'latest' (default) and 'stable' (alias): use /releases/latest
  endpoint to find the latest non-prerelease release
- 'nightly': search releases listing for the latest nightly-{SHA}
  prerelease
- Specific versions (v1.2.3, nightly-{SHA}) still work directly

Also:
- Add download_json() to Downloader for GitHub API calls
- Add reqwest 'json' feature
- Update help text and tests

Amp-Thread-ID: https://ampcode.com/threads/T-019dbf9e-5115-77b9-a177-1af9d30af00c
Co-authored-by: Amp <amp@ampcode.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