Skip to content

Add bun, deno & uv self-updaters to vo update#2

Merged
fschrhunt merged 1 commit into
mainfrom
claude/more-updaters
Jul 22, 2026
Merged

Add bun, deno & uv self-updaters to vo update#2
fschrhunt merged 1 commit into
mainfrom
claude/more-updaters

Conversation

@fschrhunt

Copy link
Copy Markdown
Owner

Extends vo update (the update-everything command) with three curl-installed dev CLIs that self-update outside any package manager.

What

Tool Update command
bun bun upgrade
deno deno upgrade
uv uv self update (tolerant of pkg-manager-managed installs) + uv tool upgrade --all

How it fits the existing pattern

  • Gated on presence (command -v), so absent tools never appear.
  • No sudo required.
  • Reports an "unknown" pending count like pipx (these have no cheap "what's pending" query), so they're always offered in an update all run — self-update is a no-op when already current.
  • Registered in ALL_KEYS, manager_detected/label/scan/run, plus the help text and README coverage table.

Testing

  • bash -n clean.
  • Exercised end-to-end with stub bun/deno/uv on PATH: all three detect, scan as "unknown — will attempt", and run their upgrade commands (✓).

🤖 Generated with Claude Code

Extends the update-everything command with three curl-installed dev CLIs
that self-update outside any package manager:

  - bun  -> bun upgrade
  - deno -> deno upgrade
  - uv   -> uv self update (tolerant) + uv tool upgrade --all

Each is gated on presence (command -v), needs no sudo, and reports an
"unknown" pending count like pipx — so it's always offered in an
update-all run, where self-update is a no-op when already current.
Docs and the manager help/coverage lists updated to match.

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 66f5534f3c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread bin/update.sh
cargo) command -v cargo-install-update > /dev/null 2>&1 ;;
gem) command -v gem > /dev/null 2>&1 ;;
fwupd) command -v fwupdmgr > /dev/null 2>&1 ;;
bun) command -v bun > /dev/null 2>&1 ;;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Detect only standalone Bun installs

When Bun is installed via Homebrew, command -v bun is still true, so vo update all will include both the Homebrew manager and this Bun manager; after brew upgrade runs, line 210 still invokes bun upgrade. Bun's official upgrade docs say package-manager installs should be upgraded with the package manager instead of bun upgrade to avoid conflicts (https://bun.com/docs/guides/util/upgrade#package-manager-users), so this can break or conflict with common brew-managed Bun setups. Please gate this manager on a standalone Bun install or skip it when Homebrew owns the binary.

Useful? React with 👍 / 👎.

Comment thread bin/update.sh
local key="$1" list_file="$2" count=""
case "$key" in
pipx)
pipx | bun | deno | uv)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Count unknown self-updaters in dry runs

For vo update dry run bun (same for deno/uv), this branch records ?, but TOTAL_PENDING only increments numeric counts and the dry-run gate exits as “Everything is up to date” when the total is 0. I reproduced this with a stubbed bun: it printed “unknown — will attempt” and then exited before the apply prompt, so these newly detected managers cannot be applied from the advertised dry-run flow unless another numeric manager is pending. Please count unknown managers separately or allow dry-run to continue when any ? is present.

Useful? React with 👍 / 👎.

Comment thread bin/update.sh
uv)
# Update uv itself (only meaningful for the standalone installer — tolerate
# the "managed by a package manager" case), then upgrade uv-installed tools.
run_step "Updating uv & tools" "$log" sh -c 'uv self update 2>/dev/null || true; uv tool upgrade --all'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not mask uv self-update failures

In the uv path, uv self update is the only command that updates the uv executable (checked uv self --help: update is “Update uv”), but || true makes every self-update failure look successful as long as uv tool upgrade --all exits 0. For standalone uv installs with a network or permission failure, vo update uv will print success and log history even though uv itself stayed old; only tolerate the known package-manager-managed case or propagate other self-update failures.

Useful? React with 👍 / 👎.

@fschrhunt
fschrhunt merged commit 0848c58 into main Jul 22, 2026
3 checks passed
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