Skip to content

feat(install): install and update devbox from GitHub only - #3048

Merged
mikeland73 merged 4 commits into
mainfrom
claude/interesting-davinci-eb29de
Nov 10, 2026
Merged

mikeland73 merged 4 commits into
mainfrom
claude/interesting-davinci-eb29de

Conversation

@mikeland73

Copy link
Copy Markdown
Collaborator

Summary

Devbox no longer needs a Jetify (or any third-party) domain to install or update. Targets 0.21.0.

Latest stable version comes from GitHub. The installer and launcher download https://github.com/jetify-com/devbox/releases/latest/download/checksums.txt and read the version from the archive name for their platform. GitHub's "latest" is never a draft or prerelease, so publishing a release as latest is the promotion step. This needs no API token or rate limit, no extra release asset, works for all existing releases, and gets the version and checksum in one request.

  • Installer: scripts/install.sh → install.sh at the repo root. New install command:
    curl -fsSL https://raw.githubusercontent.com/jetify-com/devbox/main/install.sh | bash
    Updated in the README, CONTRIBUTING, devbox.md, docgen template, generated Dockerfile templates, vercheck messages, and skills.
  • Launcher (internal/launcher/install.go): a single releasesURL on GitHub. A channel file URL may still return a bare version (like the old S3 files) or a release's checksums.txt.
  • Release flow: release.ts refuses to publish a release without checksums.txt, and cli-release now uploads checksums.txt after the archives so it never points at a missing archive.
  • Legacy S3: devbox 0.20.0 and older, and the bash launcher, have releases.jetify.com hardcoded. The S3 stable/version (cli-post-release) and edge/version (cli-release) updates stay, but as continue-on-error legacy steps. Delete them once those versions are gone.
  • VS Code extension: removed the Devbox Cloud "open in VS Code" URI handler. It called api.devbox.sh and downloaded the old launcher from releases.jetify.com, and relied on devbox generate ssh-config, which no longer exists. Also drops the which dependency.
  • Spec (specs/native-launcher.md) and the release skill's troubleshooting table are updated.

Not changed: docs links to jetify.com/docs, and the DEVBOX_REGION Devbox Cloud checks in the Go CLI (env-var only, no network calls).

How was it tested?

  • Ran the new install.sh end to end against real GitHub (into a scratch install dir). It installed 0.19.0, which is GitHub's current latest (0.20.0 is still a draft) and matches S3.
  • A throwaway Go test ran FetchLatestVersion and download against live GitHub: it found 0.19.0 and downloaded it with the checksum verified.
  • go test ./internal/launcher/ ./internal/vercheck/ ./internal/devbox/generate/... pass, including a new TestParseLatestVersion. go build ./... and golangci-lint on the launcher package are clean. Shellcheck reports nothing new in install.sh.
  • VS Code extension: tsc --noEmit and eslint src are clean.

Community Contribution License

All community contributions in this pull request are licensed to the project
maintainers under the terms of the
Apache 2 License.

By creating this pull request, I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 License as stated in
the
Community Contribution License.

🤖 Generated with Claude Code

mikeland73 and others added 2 commits November 9, 2026 14:48
The installer and launcher no longer use releases.jetify.com or
get.jetify.com. The latest stable version is the GitHub release marked
"latest": both download releases/latest/download/checksums.txt and read
the version from the archive name for their platform. No API token,
rate limit, or extra release asset needed.

- Move scripts/install.sh to install.sh and serve it from
  raw.githubusercontent.com; update README, docs, Dockerfile templates,
  and vercheck messages.
- A channel file URL may return a bare version or a checksums.txt.
- release.ts refuses to publish a release without checksums.txt, and
  cli-release uploads it after the archives.
- Keep the S3 stable/edge version updates as non-blocking legacy steps
  for devbox 0.20.0 and older and the bash launcher.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Devbox Cloud and api.devbox.sh are shut down, and the flow relied on
`devbox generate ssh-config`, which no longer exists. Also drops the old
launcher download from releases.jetify.com and the `which` dependency.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@claude

claude Bot commented Nov 9, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

@greptile-apps

greptile-apps Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The PR appears safe to merge; no new actionable issues were found.

Summary

Devbox now finds and downloads stable releases from GitHub without requiring a Jetify domain.

  • Devbox installs and updates now get releases from GitHub.
  • Release publishing now requires checksums before a release goes live.
  • The VS Code extension no longer opens Devbox Cloud links.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Installer or launcher] --> B[GitHub latest checksums.txt]
  B --> C[Read version for this platform]
  C --> D[Download versioned archive]
  D --> E[Check SHA-256]
  E --> F[Install Devbox]
  G[Release workflow] --> H[Upload archives]
  H --> I[Upload checksums.txt]
  I --> J[Publish as latest]
  J --> B
Loading

Reviews (3) · Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." · Reviewed by Greptile

Comment thread internal/launcher/install.go Resolved
The background version check runs in the front binary, so 1.0.0
launchers (devbox 0.19.0, 0.20.0) would keep reading releases.jetify.com
after updating. Bumping to 1.1.0 makes devbox offer to replace them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
greptile-apps[bot]
greptile-apps Bot previously approved these changes Nov 9, 2026
…vinci-eb29de

# Conflicts:
#	vscode-extension/package.json
#	vscode-extension/yarn.lock
@greptile-apps
greptile-apps Bot dismissed their stale review November 9, 2026 23:27

Dismissed because a newer commit was pushed; Greptile will re-review the current head.

@mikeland73
mikeland73 merged commit e890e94 into main Nov 10, 2026
30 checks passed
@mikeland73
mikeland73 deleted the claude/interesting-davinci-eb29de branch November 10, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant