topgrade-rs / topgrade

Upgrade all the things
GNU General Public License v3.0
2.08k stars 141 forks source link

uv: `unrecognized subcommand 'self'` #942

Closed paddyroddy closed 1 month ago

paddyroddy commented 1 month ago

Erroneous Behavior

It's trying to update uv with self update

Expected Behavior

Update uv

Steps to reproduce

topgrade run uv

Possible Cause (Optional)

I don't believe self is an option for uv

Problem persists without calling from topgrade

Did you run topgrade through Remote Execution

If yes, does the issue still occur when you run topgrade directlly in your remote host

Configuration file (Optional)

[brew]
# greedy_cask = true
autoremove = true

[misc]
# Don't ask for confirmations (no default value)
assume_yes = true
# Cleanup temporary or old files (default: false)
cleanup = true
# Disable specific steps - same options as the command line flag
disable = [
    "containers",
]
# Skip sending a notification at the end of a run (default: false)
skip_notify = true

[vim]
# For `vim-plug`, execute `PlugUpdate!` instead of `PlugUpdate`
force_plug_update = true

Additional Details

Verbose Output (topgrade -v)

DEBUG Current system locale is en-GB
DEBUG Configuration at /Users/paddy/.config/topgrade.toml
DEBUG Loaded configuration: ConfigFile { include: None, misc: Some(Misc { pre_sudo: None, sudo_command: None, disable: Some([Containers]), ignore_failures: None, remote_topgrades: None, remote_topgrade_path: None, ssh_arguments: None, tmux_arguments: None, set_title: None, display_time: None, assume_yes: Some(true), no_retry: None, run_in_tmux: None, tmux_session_mode: None, cleanup: Some(true), notify_each_step: None, skip_notify: Some(true), bashit_branch: None, only: None, no_self_update: None, log_filters: None }), pre_commands: None, post_commands: None, commands: None, python: None, composer: None, brew: Some(Brew { greedy_cask: None, greedy_latest: None, greedy_auto_updates: None, autoremove: Some(true), fetch_head: None }), linux: None, git: None, containers: None, windows: None, npm: None, yarn: None, vim: Some(Vim { force_plug_update: Some(true) }), firmware: None, vagrant: None, flatpak: None, distrobox: None, lensfun: None }
DEBUG Version: 16.0.1
DEBUG OS: aarch64-apple-darwin
DEBUG Args { inner: ["topgrade", "-v"] }
DEBUG Binary path: Ok("/opt/homebrew/bin/topgrade")
DEBUG self-update Feature Enabled: false
DEBUG Configuration: Config { opt: CommandLineArgs { edit_config: false, show_config_reference: false, run_in_tmux: false, cleanup: false, dry_run: false, no_retry: false, disable: [], only: [], custom_commands: [], env: [], verbose: true, keep_at_end: false, skip_notify: false, yes: None, disable_predefined_git_repos: false, config: None, remote_host_limit: None, show_skipped: false, log_filter: "warn", gen_completion: None, gen_manpage: false, no_self_update: false }, config_file: ConfigFile { include: None, misc: Some(Misc { pre_sudo: None, sudo_command: None, disable: Some([Containers]), ignore_failures: None, remote_topgrades: None, remote_topgrade_path: None, ssh_arguments: None, tmux_arguments: None, set_title: None, display_time: None, assume_yes: Some(true), no_retry: None, run_in_tmux: None, tmux_session_mode: None, cleanup: Some(true), notify_each_step: None, skip_notify: Some(true), bashit_branch: None, only: None, no_self_update: None, log_filters: None }), pre_commands: None, post_commands: None, commands: None, python: None, composer: None, brew: Some(Brew { greedy_cask: None, greedy_latest: None, greedy_auto_updates: None, autoremove: Some(true), fetch_head: None }), linux: None, git: None, containers: None, windows: None, npm: None, yarn: None, vim: Some(Vim { force_plug_update: Some(true) }), firmware: None, vagrant: None, flatpak: None, distrobox: None, lensfun: None }, allowed_steps: [AM, AppMan, Asdf, Atom, Aqua, Audit, AutoCpufreq, Bin, Bob, BrewCask, BrewFormula, Bun, BunPackages, Cargo, Certbot, Chezmoi, Chocolatey, Choosenim, ClamAvDb, Composer, Conda, ConfigUpdate, CustomCommands, DebGet, Deno, Distrobox, DkpPacman, Dotnet, Elan, Emacs, Firmware, Flatpak, Flutter, Fossil, Gcloud, Gem, Ghcup, GithubCliExtensions, GitRepos, GnomeShellExtensions, Go, Guix, Haxelib, Helm, HomeManager, Jetpack, Julia, Juliaup, Kakoune, Helix, Krew, Lure, Lensfun, Macports, Mamba, Miktex, Mas, Maza, Micro, Mise, Myrepos, Nix, Node, Opam, Pacdef, Pacstall, Pearl, Pip3, PipReview, PipReviewLocal, Pipupgrade, Pipx, Pixi, Pkg, Pkgin, PlatformioCore, Pnpm, Poetry, Powershell, Protonup, Pyenv, Raco, Rcm, Remotes, Restarts, Rtcl, RubyGems, Rustup, Rye, Scoop, Sdkman, SelfUpdate, Sheldon, Shell, Snap, Sparkle, Spicetify, Stack, Stew, System, Tldr, Tlmgr, Tmux, Toolbx, Uv, Vagrant, Vcpkg, Vim, VoltaPackages, Vscode, Waydroid, Winget, Wsl, WslUpdate, Xcodes, Yadm, Yarn, Zvm] }
DEBUG Cannot find "pwsh"
DEBUG Cannot find "powershell"
DEBUG Path "/Users/paddy/.config/emacs" doesn't exist
DEBUG Path "/Users/paddy/.emacs.d" doesn't exist
DEBUG Cannot find "doas"
DEBUG Detected "/usr/bin/sudo" as "sudo"
DEBUG Step "Brew (ARM)"
DEBUG Detected "/opt/homebrew/bin/brew" as "/opt/homebrew/bin/brew"

── 10:59:40 - Brew ─────────────────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/brew update`
==> Updating Homebrew...
Already up-to-date.
DEBUG Executing command `/opt/homebrew/bin/brew upgrade --formula`
DEBUG Executing command `/opt/homebrew/bin/brew cleanup`
DEBUG Executing command `/opt/homebrew/bin/brew autoremove`
DEBUG Step "Brew (Intel)"
DEBUG Step "Brew"
DEBUG Detected "/opt/homebrew/bin/brew" as "brew"
DEBUG Step "Brew Cask (ARM)"
DEBUG Detected "/opt/homebrew/bin/brew" as "/opt/homebrew/bin/brew"

── 10:59:54 - Brew - Cask ──────────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/brew --repository buo/cask-upgrade`
DEBUG Executing command `/opt/homebrew/bin/brew upgrade --cask`
DEBUG Executing command `/opt/homebrew/bin/brew cleanup`
DEBUG Step "Brew Cask (Intel)"
DEBUG Step "Brew Cask"
DEBUG Detected "/opt/homebrew/bin/brew" as "brew"
DEBUG Step "MacPorts"
DEBUG Step "Xcodes"
DEBUG Step "Sparkle"
DEBUG Step "App Store"
DEBUG Detected "/opt/homebrew/bin/mas" as "mas"

── 11:00:03 - macOS App Store ──────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/mas upgrade`
Warning: Nothing found to upgrade
DEBUG Step "System upgrade"

── 11:00:03 - macOS system update ──────────────────────────────────────────────
DEBUG Executing command `softwareupdate --install --all`
Software Update Tool

Finding available software
No updates are available.
DEBUG Step "yadm"
DEBUG Detected "/opt/homebrew/bin/yadm" as "yadm"

── 11:00:11 - yadm ─────────────────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/yadm pull`
Fetching submodule .config/alacritty-theme
Fetching submodule .config/tmux
Already up to date.
DEBUG Step "nix"
DEBUG Step "nix upgrade-nix"
DEBUG Step "guix"
DEBUG Step "home-manager"
DEBUG Step "asdf"
DEBUG Step "mise"
DEBUG Detected "/opt/homebrew/bin/mise" as "mise"

── 11:00:15 - mise ─────────────────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/mise upgrade`
mise All tools are up to date
DEBUG Executing command `/opt/homebrew/bin/mise plugins update`
mise plugin:usage ✓ https://github.com/jdx/mise-usage.git#fe3888a
mise plugin:maven ✓ https://github.com/halcyon/asdf-maven.git#83fb4db                                                                     DEBUG Step "pkgin"
DEBUG Step "bun-packages"
DEBUG Step "zr"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Step "antibody"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Step "antidote"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Step "antigen"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Path "/Users/paddy/.zshrc" exists
DEBUG Step "zgenom"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Path "/Users/paddy/.zshrc" exists
DEBUG Step "zplug"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Path "/Users/paddy/.zshrc" exists
DEBUG Step "zinit"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Path "/Users/paddy/.zshrc" exists
DEBUG Step "zi"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Path "/Users/paddy/.zshrc" exists
DEBUG Step "zim"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Executing command `zsh -c '[[ -n ${ZIM_HOME} ]] && print -n ${ZIM_HOME}'`
DEBUG Command failed: Err(
   0: Command failed: `zsh -c '[[ -n ${ZIM_HOME} ]] && print -n ${ZIM_HOME}'`
   1: `zsh` failed: exit status: 1 with

Location:
   src/steps/zsh.rs:153)
DEBUG Step "oh-my-zsh"
DEBUG Detected "/opt/homebrew/bin/zsh" as "zsh"
DEBUG Path "/Users/paddy/.oh-my-zsh" exists

── 11:00:16 - oh-my-zsh ────────────────────────────────────────────────────────
DEBUG Executing command `zsh -c 'test $ZSH_CUSTOM && echo -n $ZSH_CUSTOM'`
DEBUG Command failed: Err(
   0: Command failed: `zsh -c 'test $ZSH_CUSTOM && echo -n $ZSH_CUSTOM'`
   1: `zsh` failed: exit status: 1 with

Location:
   src/steps/zsh.rs:206)
DEBUG Running zsh returned Command failed: `zsh -c 'test $ZSH_CUSTOM && echo -n $ZSH_CUSTOM'`. Using default path: /Users/paddy/.oh-my-zsh/custom
DEBUG oh-my-zsh custom dir: /Users/paddy/.oh-my-zsh/custom
DEBUG Detected "/opt/homebrew/bin/git" as "git"
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/plugins is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/plugins/zsh-autosuggestions is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/plugins/zsh-autocomplete is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/plugins/example is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG /Users/paddy/.oh-my-zsh/custom/example.zsh is a file. Checking /Users/paddy/.oh-my-zsh/custom
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/themes is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG /Users/paddy/.oh-my-zsh/custom/themes/example.zsh-theme is a file. Checking /Users/paddy/.oh-my-zsh/custom/themes
DEBUG Checking if /Users/paddy/.oh-my-zsh/custom/themes is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Executing command `zsh /Users/paddy/.oh-my-zsh/tools/upgrade.sh`
Updating Oh My Zsh
         __                                     __
  ____  / /_     ____ ___  __  __   ____  _____/ /_
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                        /____/

Oh My Zsh is already at the latest version.

To keep up with the latest news and updates, follow us on X: https://x.com/ohmyzsh
Want to get involved in the community? Join our Discord: https://discord.gg/ohmyzsh
Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh
DEBUG Step "oh-my-bash"
DEBUG Detected "/opt/homebrew/bin/bash" as "bash"
DEBUG Step "fisher"
DEBUG Step "bash-it"
DEBUG Step "oh-my-fish"
DEBUG Step "fish-plug"
DEBUG Step "fundle"
DEBUG Step "tmux"
DEBUG Step "TLDR"
DEBUG Detected "/opt/homebrew/bin/tldr" as "tldr"

── 11:00:17 - TLDR ─────────────────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/tldr --update`
Successfully updated local database
DEBUG Step "pearl"
DEBUG Step "pyenv"
DEBUG Step "SDKMAN!"
DEBUG Detected "/opt/homebrew/bin/bash" as "bash"
DEBUG Step "rcm"
DEBUG Step "maza"
DEBUG Step "apm"
DEBUG Step "fossil"
DEBUG Step "elan"
DEBUG Step "rye"
DEBUG Step "rustup"
DEBUG Detected "/Users/paddy/.cargo/bin/rustup" as "rustup"

── 11:00:21 - rustup ───────────────────────────────────────────────────────────
DEBUG Executing command `/Users/paddy/.cargo/bin/rustup update`
info: syncing channel updates for 'stable-aarch64-apple-darwin'

  stable-aarch64-apple-darwin unchanged - rustc 1.81.0 (eeb90cda1 2024-09-04)

info: cleaning up downloads & tmp directories
info: self-update is disabled for this build of rustup
info: any updates to rustup will need to be fetched with your system package manager
DEBUG Step "juliaup"
DEBUG Step ".NET"
DEBUG Step "choosenim"
DEBUG Step "cargo"
DEBUG Path "/Users/paddy/.cargo" exists
DEBUG Detected "/Users/paddy/.cargo/bin/cargo" as "cargo"
DEBUG Step "Flutter"
DEBUG Step "go-global-update"
DEBUG Step "gup"
DEBUG Step "Emacs"
DEBUG Step "opam"
DEBUG Step "vcpkg"
DEBUG Step "pipx"
DEBUG Step "Visual Studio Code extensions"
DEBUG Detected "/opt/homebrew/bin/code" as "code"
DEBUG Executing command `/opt/homebrew/bin/code --version`

── 11:00:22 - Visual Studio Code extensions ────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/code --update-extensions`
No extension to update
DEBUG Step "conda"
DEBUG Step "mamba"
DEBUG Step "pixi"
DEBUG Step "miktex"
DEBUG Step "pip3"
DEBUG Detected "/opt/homebrew/bin/python" as "python"
DEBUG Executing command `/opt/homebrew/bin/python -V`
DEBUG Detected "/opt/homebrew/bin/python3" as "python3"
DEBUG Executing command `/opt/homebrew/bin/python3 -V`
DEBUG Executing command `/opt/homebrew/bin/python -m pip`
DEBUG Executing command `/opt/homebrew/bin/python -c 'import sysconfig; from os import path; print('\''Y'\'') if path.isfile(path.join(sysconfig.get_path('\''stdlib'\''), '\''EXTERNALLY-MANAGED'\'')) else print('\''N'\'')'`
DEBUG Executing command `/opt/homebrew/bin/python -m pip config get global.break-system-packages`
DEBUG Command failed: Err(
   0: Command failed: `/opt/homebrew/bin/python -m pip config get global.break-system-packages`

      Stderr:
      ERROR: No such key - global.break-system-packages
   1: `/opt/homebrew/bin/python` failed: exit status: 1 with ERROR: No such key - global.break-system-packages
   1:

Location:
   src/steps/generic.rs:512)
DEBUG pip3 externally managed: true
DEBUG pip3 global.break-system-packages: false
DEBUG Step "pip-review"
DEBUG Step "pip-review (local)"
DEBUG Step "pipupgrade"
DEBUG Step "ghcup"
DEBUG Step "stack"
DEBUG Step "tlmgr"
DEBUG Detected "/Users/paddy/texlive/2024/bin/universal-darwin/tlmgr" as "tlmgr"
DEBUG Detected "/Users/paddy/texlive/2024/bin/universal-darwin/kpsewhich" as "kpsewhich"
DEBUG Executing command `/Users/paddy/texlive/2024/bin/universal-darwin/kpsewhich '-var-value=SELFAUTOPARENT'`
DEBUG Path "/Users/paddy/texlive/2024/tlpkg" exists
DEBUG "/Users/paddy/texlive/2024/tlpkg" writable: true

── 11:00:26 - TeX Live package manager ─────────────────────────────────────────
DEBUG Executing command `/Users/paddy/texlive/2024/bin/universal-darwin/tlmgr update --self --all`
tlmgr: package repository https://mirror.ox.ac.uk/sites/ctan.org/systems/texlive/tlnet (verified)
tlmgr: saving backups to /Users/paddy/texlive/2024/tlpkg/backups
tlmgr: no self-updates for tlmgr available
tlmgr: no updates available
DEBUG Step "myrepos"
DEBUG Step "chezmoi"
DEBUG Step "jetpack"
DEBUG Step "vim"
DEBUG Detected "/usr/bin/vim" as "vim"
DEBUG Executing command `/usr/bin/vim --version`
DEBUG Step "Neovim"
DEBUG Detected "/opt/homebrew/bin/nvim" as "nvim"
DEBUG Path "/Users/paddy/.config/nvim/init.vim" exists

── 11:00:28 - Neovim ───────────────────────────────────────────────────────────
DEBUG Wrote vim script to "/var/folders/19/h6m4mbcx7rv1yg8w3nwzrnmm0000gn/T/.tmpiIxl41"
DEBUG Executing command `/opt/homebrew/bin/nvim -u /Users/paddy/.config/nvim/init.vim --headless -V1 -nS /var/folders/19/h6m4mbcx7rv1yg8w3nwzrnmm0000gn/T/.tmpiIxl41`
Plug
Downloading the latest version of vim-plugvim-plug is already up-to-datePlugins upgraded
DEBUG Step "The Ultimate vimrc"
DEBUG Step "voom"
DEBUG Step "Kakoune"
DEBUG Step "helix"
DEBUG Step "npm"
DEBUG Step "yarn"
DEBUG Step "pnpm"
DEBUG Step "volta packages"
DEBUG Step "deno"
DEBUG Step "composer"
DEBUG Step "krew"
DEBUG Step "helm"
DEBUG Step "gem"
DEBUG Detected "/Users/paddy/.local/share/mise/installs/ruby/3.3.4/bin/gem" as "gem"
DEBUG Path "/Users/paddy/.gem" exists

── 11:00:30 - Gems ─────────────────────────────────────────────────────────────
DEBUG Detected rbenv. Avoiding --user-install
DEBUG Executing command `/Users/paddy/.local/share/mise/installs/ruby/3.3.4/bin/gem update --user-install`
Updating installed gems
Nothing to update
DEBUG Step "rubygems"
DEBUG Path "/Users/paddy/.gem" exists
DEBUG Detected "/Users/paddy/.local/share/mise/installs/ruby/3.3.4/bin/gem" as "gem"

── 11:00:36 - RubyGems ─────────────────────────────────────────────────────────
DEBUG Executing command `/Users/paddy/.local/share/mise/installs/ruby/3.3.4/bin/gem update --system`
Latest version already installed. Done.
DEBUG Step "julia"
DEBUG Step "haxelib"
DEBUG Step "sheldon"
DEBUG Step "stew"
DEBUG Step "rtcl"
DEBUG Step "bin"
DEBUG Step "gcloud"
DEBUG Step "micro"
DEBUG Step "raco"
DEBUG Step "spicetify"
DEBUG Step "GitHub CLI Extensions"
DEBUG Detected "/opt/homebrew/bin/gh" as "gh"
DEBUG Executing command `/opt/homebrew/bin/gh extensions list`

── 11:00:43 - GitHub CLI Extensions ────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/gh extension upgrade --all`
no installed extensions found
DEBUG Step "Bob"
DEBUG Step "Certbot"
DEBUG Step "Git Repositories"
DEBUG Detected "/opt/homebrew/bin/git" as "git"
DEBUG Path "/Users/paddy/.config/emacs" doesn't exist
DEBUG Path "/Users/paddy/.emacs.d" doesn't exist
DEBUG /Users/paddy/.doom.d does not exist
DEBUG Checking if /Users/paddy/.vim is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Command failed: Err(
   0: Command failed: `/opt/homebrew/bin/git rev-parse --show-toplevel`

      Stderr:
      fatal: not a git repository (or any of the parent directories): .git
   1: `/opt/homebrew/bin/git` failed: exit status: 128 with fatal: not a git repository (or any of the parent directories): .git
   1:

Location:
   src/steps/git.rs:203)
DEBUG Checking if /Users/paddy/.config/nvim is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Command failed: Err(
   0: Command failed: `/opt/homebrew/bin/git rev-parse --show-toplevel`

      Stderr:
      fatal: not a git repository (or any of the parent directories): .git
   1: `/opt/homebrew/bin/git` failed: exit status: 128 with fatal: not a git repository (or any of the parent directories): .git
   1:

Location:
   src/steps/git.rs:203)
DEBUG /Users/paddy/.ideavimrc does not exist
DEBUG /Users/paddy/.intellimacs does not exist
DEBUG /Users/paddy/.dotfiles does not exist
DEBUG Cannot find "pwsh"
DEBUG Cannot find "powershell"
DEBUG /Users/paddy/.zshrc is a file. Checking /Users/paddy
DEBUG Checking if /Users/paddy is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Command failed: Err(
   0: Command failed: `/opt/homebrew/bin/git rev-parse --show-toplevel`

      Stderr:
      fatal: not a git repository (or any of the parent directories): .git
   1: `/opt/homebrew/bin/git` failed: exit status: 128 with fatal: not a git repository (or any of the parent directories): .git
   1:

Location:
   src/steps/git.rs:203)
DEBUG /Users/paddy/.tmux does not exist
DEBUG Checking if /Users/paddy/.config/fish is a git repository
DEBUG Executing command `/opt/homebrew/bin/git rev-parse --show-toplevel`
DEBUG Command failed: Err(
   0: Command failed: `/opt/homebrew/bin/git rev-parse --show-toplevel`

      Stderr:
      fatal: not a git repository (or any of the parent directories): .git
   1: `/opt/homebrew/bin/git` failed: exit status: 128 with fatal: not a git repository (or any of the parent directories): .git
   1:

Location:
   src/steps/git.rs:203)
DEBUG /Users/paddy/.config/openbox does not exist
DEBUG /Users/paddy/.config/bspwm does not exist
DEBUG /Users/paddy/.config/i3 does not exist
DEBUG /Users/paddy/.config/sway does not exist
DEBUG Step "ClamAV Databases"
DEBUG Step "PlatformIO Core"
DEBUG Step "Lensfun's database update"
DEBUG Step "Poetry"
DEBUG Step "uv"
DEBUG Detected "/opt/homebrew/bin/uv" as "uv"

── 11:00:43 - uv ───────────────────────────────────────────────────────────────
DEBUG Executing command `/opt/homebrew/bin/uv self update`
error: unrecognized subcommand 'self'

Usage: uv [OPTIONS] 

For more information, try '--help'.
DEBUG Command failed: Err(
   0: Command failed: `/opt/homebrew/bin/uv self update`
   1: `/opt/homebrew/bin/uv` failed: exit status: 2

Location:
   src/steps/generic.rs:1038)
DEBUG Executing command `/opt/homebrew/bin/uv tool upgrade --all`
Nothing to upgrade
DEBUG Step "ZVM"
DEBUG Step "aqua"
DEBUG Step "bun"
DEBUG Step "Vagrant boxes"

── 11:00:43 - Summary ──────────────────────────────────────────────────────────
Brew (ARM): OK
Brew (Intel): SKIPPED: Cannot find "/usr/local/bin/brew" in PATH
Brew: SKIPPED: Not a custom brew for macOS
Brew Cask (ARM): OK
Brew Cask (Intel): SKIPPED: Cannot find "/usr/local/bin/brew" in PATH
Brew Cask: SKIPPED: Not a custom brew for macOS
MacPorts: SKIPPED: Cannot find "port" in PATH
Xcodes: SKIPPED: Cannot find "xcodes" in PATH
Sparkle: SKIPPED: Cannot find "sparkle" in PATH
App Store: OK
System upgrade: OK
yadm: OK
nix: SKIPPED: Cannot find "nix" in PATH
nix upgrade-nix: SKIPPED: Cannot find "nix" in PATH
guix: SKIPPED: Cannot find "guix" in PATH
home-manager: SKIPPED: Cannot find "home-manager" in PATH
asdf: SKIPPED: Cannot find "asdf" in PATH
mise: OK
pkgin: SKIPPED: Cannot find "pkgin" in PATH
bun-packages: SKIPPED: Cannot find "bun" in PATH
zr: SKIPPED: Cannot find "zr" in PATH
antibody: SKIPPED: Cannot find "antibody" in PATH
antidote: SKIPPED: Path "/Users/paddy/.antidote" doesn't exist
antigen: SKIPPED: Path "/Users/paddy/antigen.zsh" doesn't exist
zgenom: SKIPPED: Path "/Users/paddy/.zgenom" doesn't exist
zplug: SKIPPED: Path "/Users/paddy/.zplug" doesn't exist
zinit: SKIPPED: Path "/Users/paddy/.local/share/zinit" doesn't exist
zi: SKIPPED: Path "/Users/paddy/.zi" doesn't exist
zim: SKIPPED: Path "/Users/paddy/.zim" doesn't exist
oh-my-zsh: OK
oh-my-bash: SKIPPED: Path "/Users/paddy/.oh-my-bash" doesn't exist
fisher: SKIPPED: Cannot find "fish" in PATH
bash-it: SKIPPED: Path "/Users/paddy/.bash_it" doesn't exist
oh-my-fish: SKIPPED: Cannot find "fish" in PATH
fish-plug: SKIPPED: Cannot find "fish" in PATH
fundle: SKIPPED: Cannot find "fish" in PATH
tmux: SKIPPED: Path "/Users/paddy/.tmux/plugins/tpm/bin/update_plugins" doesn't exist
TLDR: OK
pearl: SKIPPED: Cannot find "pearl" in PATH
pyenv: SKIPPED: Cannot find "pyenv" in PATH
SDKMAN!: SKIPPED: Path "/Users/paddy/.sdkman/bin/sdkman-init.sh" doesn't exist
rcm: SKIPPED: Cannot find "rcup" in PATH
maza: SKIPPED: Cannot find "maza" in PATH
apm: SKIPPED: Cannot find "apm" in PATH
fossil: SKIPPED: Cannot find "fossil" in PATH
elan: SKIPPED: Cannot find "elan" in PATH
rye: SKIPPED: Cannot find "rye" in PATH
rustup: OK
juliaup: SKIPPED: Cannot find "juliaup" in PATH
.NET: SKIPPED: Cannot find "dotnet" in PATH
choosenim: SKIPPED: Cannot find "choosenim" in PATH
cargo: SKIPPED: Path "/Users/paddy/.cargo/.crates.toml" doesn't exist
Flutter: SKIPPED: Cannot find "flutter" in PATH
go-global-update: SKIPPED: Cannot find "go" in PATH
gup: SKIPPED: Cannot find "go" in PATH
Emacs: SKIPPED: Cannot find "emacs" in PATH
opam: SKIPPED: Cannot find "opam" in PATH
vcpkg: SKIPPED: Cannot find "vcpkg" in PATH
pipx: SKIPPED: Cannot find "pipx" in PATH
Visual Studio Code extensions: OK
conda: SKIPPED: Cannot find "conda" in PATH
mamba: SKIPPED: Cannot find "mamba" in PATH
pixi: SKIPPED: Cannot find "pixi" in PATH
miktex: SKIPPED: Cannot find "miktex" in PATH
pip3: SKIPPED: Skip pip3 update as it is externally managed and global.break-system-packages is not true
pip-review: SKIPPED: Cannot find "pip-review" in PATH
pip-review (local): SKIPPED: Cannot find "pip-review" in PATH
pipupgrade: SKIPPED: Cannot find "pipupgrade" in PATH
ghcup: SKIPPED: Cannot find "ghcup" in PATH
stack: SKIPPED: Cannot find "stack" in PATH
tlmgr: OK
myrepos: SKIPPED: Cannot find "mr" in PATH
chezmoi: SKIPPED: Cannot find "chezmoi" in PATH
jetpack: SKIPPED: Cannot find "jetpack" in PATH
vim: SKIPPED: Path "/Users/paddy/.vim/vimrc" doesn't exist
Neovim: OK
The Ultimate vimrc: SKIPPED: Path "/Users/paddy/.vim_runtime" doesn't exist
voom: SKIPPED: Cannot find "voom" in PATH
Kakoune: SKIPPED: Cannot find "kak" in PATH
helix: SKIPPED: Cannot find "hx" in PATH
npm: SKIPPED: Cannot find "npm" in PATH
yarn: SKIPPED: Cannot find "yarn" in PATH
pnpm: SKIPPED: Cannot find "pnpm" in PATH
volta packages: SKIPPED: Cannot find "volta" in PATH
deno: SKIPPED: Cannot find "deno" in PATH
composer: SKIPPED: Cannot find "composer" in PATH
krew: SKIPPED: Cannot find "kubectl-krew" in PATH
helm: SKIPPED: Cannot find "helm" in PATH
gem: OK
rubygems: OK
julia: SKIPPED: Cannot find "julia" in PATH
haxelib: SKIPPED: Cannot find "haxelib" in PATH
sheldon: SKIPPED: Cannot find "sheldon" in PATH
stew: SKIPPED: Cannot find "stew" in PATH
rtcl: SKIPPED: Cannot find "rupdate" in PATH
bin: SKIPPED: Cannot find "bin" in PATH
gcloud: SKIPPED: Cannot find "gcloud" in PATH
micro: SKIPPED: Cannot find "micro" in PATH
raco: SKIPPED: Cannot find "raco" in PATH
spicetify: SKIPPED: Cannot find "spicetify-cli" in PATH
GitHub CLI Extensions: OK
Bob: SKIPPED: Cannot find "bob" in PATH
Certbot: SKIPPED: Cannot find "certbot" in PATH
Git Repositories: SKIPPED: No repositories to pull
ClamAV Databases: SKIPPED: Cannot find "freshclam" in PATH
PlatformIO Core: SKIPPED: Cannot find "/Users/paddy/.platformio/penv/bin/pio" in PATH
Lensfun's database update: SKIPPED: Cannot find "lensfun-update-data" in PATH
Poetry: SKIPPED: Cannot find "poetry" in PATH
uv: OK
ZVM: SKIPPED: Cannot find "zvm" in PATH
aqua: SKIPPED: Cannot find "aqua" in PATH
bun: SKIPPED: Cannot find "bun" in PATH
Vagrant boxes: SKIPPED: Cannot find "vagrant" in PATH
SteveLauC commented 1 month ago

Thanks for the report!

cc @lucaspar, from the doc, looks like the self-update feature is only available if your uv is installed through the official script:

When uv is installed via the standalone installer, it can update itself on-demand

Hopefully, we can find a way to check if an installation is done in such a way, or we have to remove this operation🤔.

SteveLauC commented 1 month ago

This issue is quite similar to #892, see this comment.

SteveLauC commented 1 month ago

Oh, I just realized that even though this issue is similar to that one, but this one is pretty easy to fix, we can simply check if the self update sub-command exists or not, and only involve it if exists

lucaspar commented 1 month ago

You should use the package manager that installed uv to upgrade itself (the brew step in this case). The step is working as expected and your uv installed tools are being upgraded:

DEBUG Executing command /opt/homebrew/bin/uv tool upgrade --all

Nothing to upgrade

See the comment in https://github.com/topgrade-rs/topgrade/blob/main/src/steps/generic.rs#L1034-L1044

SteveLauC commented 1 month ago

Hmm, just found we already ignored the execution result of that command, perhaps we should hide the output as well?

lucaspar commented 1 month ago

I chose to not hide it because

  1. Successful update messages may still be relevant.
  2. In case there are other categories of errors we could miss.

If we're trying to improve UX, maybe we can add a custom log message from topgrade on error to tell the user that this "error" is (probably) ok.

lucaspar commented 1 month ago

A different route is to try uv self --help first - if it succeeds, we call uv self update. Otherwise we skip it to let homebrew (or another manager) handle it.

SteveLauC commented 1 month ago

A different route is to try uv self --help first - if it succeeds, we call uv self update. Otherwise we skip it to let homebrew (or another manager) handle it.

This is what I think, we try the command uv self --help and capture the output, if it fails, then we skip this step. Otherwise, do the self-update.

paddyroddy commented 1 month ago

I think the current solution is good. But personally, I'd rather uv didn't even feature in the list in this case (without manually disabling it).

── 16:07:35 - uv ───────────────────────────────────────────────────────────────
error: uv was installed through an external package manager, and self-update is not available. Please use your package manager to update uv.
Nothing to upgrade
lucaspar commented 1 month ago

It's listed because uv-installed tools are updated regardless of uv's installation mode.

SteveLauC commented 1 month ago
── 16:07:35 - uv ───────────────────────────────────────────────────────────────
error: uv was installed through an external package manager, and self-update is not available. Please use your package manager to update uv.
Nothing to upgrade

This is also feasible as we can check if it is installed through the official scrip via uv self --help