topgrade-rs / topgrade

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

custom commands stopped and topgrade exited #380

Closed reini-1 closed 1 year ago

reini-1 commented 1 year ago

What did you expect to happen?

Topgrade runs all custom commands

What actually happened?

Topgrade stops after the first custom command when starting the second one and send itself in the background without continuing the scripts.

Topgrade hangs then in the background without continuing.

Downgrading to an older version did also not work, because it is automatically updated and I could not find an option to disable self-update.

So topgrade could not be used anymore.

Additional Details

Ubuntu-22.04> reini@ubuntu:~$ topgrade --only custom_commands -v
DEBUG Configuration at /home/reini/.config/topgrade.toml
DEBUG Path .config/PrusaSlicer expanded to .config/PrusaSlicer
DEBUG Loaded configuration: ConfigFile { pre_sudo: None, pre_commands: Some({}), post_commands: None, commands: Some({"01 Update downloaded apps": "~/bin/update_downloaded-apps.sh", "12 Create/update ~/.ssh/config.known_hosts": "~/.config/topgrade-ssh_config.known-hosts", "13 Create/update ~/.ssh/pssh_lists": "~/.config/topgrade-pssh_lists", "14 Clone/update Git repositories (with MyRepos)": "~/.config/topgrade-myrepos", "20 Sync home with git": "~/bin/sync-home-with-git.sh", "50 Backup": "~/bin/backup-user", "90 Update & backup home routers": "~/.config/topgrade-update_routers", "99 Status of Git repositories (with MyRepo)": "~/.config/topgrade-myrepos --status"}), git_repos: None, predefined_git_repos: None, disable: Some([Myrepos]), ignore_failures: None, remote_topgrades: Some(["octoprint.lan"]), remote_topgrade_path: None, ssh_arguments: Some("-o ConnectTimeout=2"), git_arguments: None, tmux_arguments: None, set_title: None, display_time: None, display_preamble: None, assume_yes: Some(true), yay_arguments: None, aura_aur_arguments: None, aura_pacman_arguments: None, python: None, no_retry: Some(true), run_in_tmux: None, cleanup: Some(true), notify_each_step: None, accept_all_windows_updates: None, skip_notify: None, bashit_branch: None, only: None, composer: Some(Composer { self_update: None }), brew: Some(Brew { greedy_cask: Some(true), autoremove: None }), linux: Some(Linux { yay_arguments: None, aura_aur_arguments: None, aura_pacman_arguments: None, arch_package_manager: None, show_arch_news: None, garuda_update_arguments: None, trizen_arguments: None, pikaur_arguments: None, pamac_arguments: None, dnf_arguments: None, nix_arguments: None, apt_arguments: None, enable_tlmgr: None, redhat_distro_sync: None, rpm_ostree: None, emerge_sync_flags: None, emerge_update_flags: None }), git: Some(Git { max_concurrency: None, arguments: None, repos: Some([".config/PrusaSlicer"]), pull_predefined: None }), windows: Some(Windows { accept_all_updates: None, self_rename: None, open_remotes_in_new_terminal: None, enable_winget: None, wsl_update_pre_release: None, wsl_update_use_web_download: None }), npm: Some(NPM { use_sudo: None }), yarn: None, vim: None, firmware: Some(Firmware { upgrade: None }), vagrant: None, flatpak: Some(Flatpak { use_sudo: None }), distrobox: None }
DEBUG Detected "/usr/bin/notify-send" as "notify-send"
DEBUG Version: 10.3.1
DEBUG OS: x86_64-unknown-linux-gnu
DEBUG Args { inner: ["topgrade", "--only", "custom_commands", "-v"] }
DEBUG Binary path: Ok("/home/reini/bin/topgrade")
DEBUG Self Update: true
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.
DEBUG Detected "/usr/bin/git" as "git"
DEBUG Cannot find "doas"
DEBUG Detected "/usr/bin/sudo" as "sudo"

── 11:17:39 - Self update ──────────────────────────────────────────────────────
DEBUG starting new connection: https://api.github.com/    
DEBUG resolving host="api.github.com"
DEBUG connecting to 140.82.121.6:443
DEBUG connected to 140.82.121.6:443
DEBUG No cached session for DnsName(DnsName(DnsName("api.github.com")))    
DEBUG Not resuming any session    
DEBUG Using ciphersuite TLS13_AES_128_GCM_SHA256    
DEBUG Not resuming    
DEBUG TLS1.3 encrypted extensions: [ServerNameAck, Protocols([6832])]    
DEBUG ALPN protocol is Some(b"h2")    
DEBUG binding client connection
DEBUG client connection bound
DEBUG send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
DEBUG Connection{peer=Client}: new
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
DEBUG pooling idle connection for ("https", api.github.com)
DEBUG Connection{peer=Client}: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG Connection{peer=Client}: Ticket saved    
DEBUG Connection{peer=Client}: Ticket saved    
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x0), max_concurrent_streams: 100, initial_window_size: 67108864, max_frame_size: 65536 }
DEBUG Connection{peer=Client}: send frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
DEBUG Connection{peer=Client}: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
DEBUG Connection{peer=Client}: close
DEBUG starting new connection: https://api.github.com/    
DEBUG resolving host="api.github.com"
DEBUG connecting to 140.82.121.6:443
DEBUG connected to 140.82.121.6:443
DEBUG No cached session for DnsName(DnsName(DnsName("api.github.com")))    
DEBUG Not resuming any session    
DEBUG Using ciphersuite TLS13_AES_128_GCM_SHA256    
DEBUG Not resuming    
DEBUG TLS1.3 encrypted extensions: [ServerNameAck, Protocols([6832])]    
DEBUG ALPN protocol is Some(b"h2")    
DEBUG binding client connection
DEBUG client connection bound
DEBUG send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
DEBUG Connection{peer=Client}: new
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
DEBUG pooling idle connection for ("https", api.github.com)
DEBUG Connection{peer=Client}: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG Connection{peer=Client}: Ticket saved    
DEBUG Connection{peer=Client}: Ticket saved    
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x0), max_concurrent_streams: 100, initial_window_size: 67108864, max_frame_size: 65536 }
DEBUG Connection{peer=Client}: send frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
DEBUG Connection{peer=Client}: received frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG redirecting 'https://api.github.com/repos/topgrade-rs/topgrade/releases/assets/99107741' to 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/549714010/deb90ec7-3b37-4434-b118-cf5e3f77547e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230313%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230313T101739Z&X-Amz-Expires=300&X-Amz-Signature=e3ee9109c773c309feeb101cb59197897a1ca88896c8476e6b8fe4ac134052cd&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=549714010&response-content-disposition=attachment%3B%20filename%3Dtopgrade-v10.3.2-x86_64-unknown-linux-gnu.tar.gz&response-content-type=application%2Foctet-stream'    
DEBUG starting new connection: https://objects.githubusercontent.com/    
DEBUG resolving host="objects.githubusercontent.com"
DEBUG connecting to 185.199.111.133:443
DEBUG connected to 185.199.111.133:443
DEBUG No cached session for DnsName(DnsName(DnsName("objects.githubusercontent.com")))    
DEBUG Not resuming any session    
DEBUG Using ciphersuite TLS13_AES_128_GCM_SHA256    
DEBUG Not resuming    
DEBUG TLS1.3 encrypted extensions: [ServerNameAck, Protocols([6832])]    
DEBUG ALPN protocol is Some(b"h2")    
DEBUG Ticket saved    
DEBUG binding client connection
DEBUG client connection bound
DEBUG send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
DEBUG Connection{peer=Client}: new
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
DEBUG pooling idle connection for ("https", objects.githubusercontent.com)
DEBUG Connection{peer=Client}: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x0), max_concurrent_streams: 100 }
DEBUG Connection{peer=Client}: send frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 16711681 }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
DEBUG Connection{peer=Client}: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [>---------------------------------------] 8.00KiB/4.42MiB (1s) 
[00:00:00] [>---------------------------------------] 23.37KiB/4.42MiB (7s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [>---------------------------------------] 55.37KiB/4.42MiB (10s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [>---------------------------------------] 103.37KiB/4.42MiB (11s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [=>--------------------------------------] 199.37KiB/4.42MiB (9s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [===>------------------------------------] 343.37KiB/4.42MiB (6s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [====>-----------------------------------] 551.37KiB/4.42MiB (4s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(1), size_increment: 703865 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [=======>--------------------------------] 855.37KiB/4.42MiB (3s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [===========>----------------------------] 1.24MiB/4.42MiB (2s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(1), size_increment: 714972 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 1752441 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [================>-----------------------] 1.82MiB/4.42MiB (1s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(1), size_increment: 711083 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:00] [=====================>------------------] 2.40MiB/4.42MiB (1s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(1), size_increment: 703865 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:01] [==========================>-------------] 2.92MiB/4.42MiB (1s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 1736704 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(1), size_increment: 704512 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:01] [===============================>--------] 3.52MiB/4.42MiB (1s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:01] [====================================>---] 4.01MiB/4.42MiB (0s) 
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(1), size_increment: 714107 }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1) }
[00:00:01] [========================================] 4.42MiB/4.42MiB (0s) Done
DEBUG Connection{peer=Client}: close
DEBUG Connection{peer=Client}: close
DEBUG Detecting archive type using extension: Some("gz")    
DEBUG Detected .tar.gz archive    
DEBUG Detected archive type: Ok(Tar(Some(Gz)))    
DEBUG Attempting to extract "topgrade" file from "/home/reini/bin/topgrade_downloadT0H4Jz/topgrade-v10.3.2-x86_64-unknown-linux-gnu.tar.gz"    
DEBUG Extracting from tar    
DEBUG Archive path: Ok("topgrade")    

Topgrade upgraded to 10.3.2:

## What's Changed
* use documented way of updating by @vzze in https://github.com/topgrade-rs/topgrade/pull/344
* Add support for please (access elevation) by @dsully in https://github.com/topgrade-rs/topgrade/pull/310
* run_custom_command: use interactive shell on unix by @utkarshgupta137 in https://github.com/topgrade-rs/topgrade/pull/347
* ruby_gems: Fixes asdf by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/350
* vim: Adds Astrovim support by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/352
* CI: Update cross to v0.2.5 by @guihkx in https://github.com/topgrade-rs/topgrade/pull/354
* Silence misleading warning on other platforms. by @jstelzer in https://github.com/topgrade-rs/topgrade/pull/353
* apt: Recognise mist by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/351
* pip3: Check for EXTERNALLY-MANAGED (PEP 668) by @TGRCdev in https://github.com/topgrade-rs/topgrade/pull/367
* pacdef: support new version 1.x by @arctic-penguin in https://github.com/topgrade-rs/topgrade/pull/364
* Support antidote by @r-darwish in https://github.com/topgrade-rs/topgrade/pull/368
* cargo: add cleanup step (using cargo-cache) by @IsaacTay in https://github.com/topgrade-rs/topgrade/pull/371
* skip skip-notify warning on Win by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/362
* 10.3.2 patch by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/378

## New Contributors
* @dsully made their first contribution in https://github.com/topgrade-rs/topgrade/pull/310
* @utkarshgupta137 made their first contribution in https://github.com/topgrade-rs/topgrade/pull/347
* @TGRCdev made their first contribution in https://github.com/topgrade-rs/topgrade/pull/367
* @IsaacTay made their first contribution in https://github.com/topgrade-rs/topgrade/pull/371

**Full Changelog**: https://github.com/topgrade-rs/topgrade/compare/v10.3.1...v10.3.2
Respawning...
DEBUG Configuration at /home/reini/.config/topgrade.toml
DEBUG Path .config/PrusaSlicer expanded to .config/PrusaSlicer
DEBUG Loaded configuration: ConfigFile { pre_sudo: None, pre_commands: Some({}), post_commands: None, commands: Some({"01 Update downloaded apps": "~/bin/update_downloaded-apps.sh", "12 Create/update ~/.ssh/config.known_hosts": "~/.config/topgrade-ssh_config.known-hosts", "13 Create/update ~/.ssh/pssh_lists": "~/.config/topgrade-pssh_lists", "14 Clone/update Git repositories (with MyRepos)": "~/.config/topgrade-myrepos", "20 Sync home with git": "~/bin/sync-home-with-git.sh", "50 Backup": "~/bin/backup-user", "90 Update & backup home routers": "~/.config/topgrade-update_routers", "99 Status of Git repositories (with MyRepo)": "~/.config/topgrade-myrepos --status"}), git_repos: None, predefined_git_repos: None, disable: Some([Myrepos]), ignore_failures: None, remote_topgrades: Some(["octoprint.lan"]), remote_topgrade_path: None, ssh_arguments: Some("-o ConnectTimeout=2"), git_arguments: None, tmux_arguments: None, set_title: None, display_time: None, display_preamble: None, assume_yes: Some(true), yay_arguments: None, aura_aur_arguments: None, aura_pacman_arguments: None, python: None, no_retry: Some(true), run_in_tmux: None, cleanup: Some(true), notify_each_step: None, accept_all_windows_updates: None, skip_notify: None, bashit_branch: None, only: None, composer: Some(Composer { self_update: None }), brew: Some(Brew { greedy_cask: Some(true), autoremove: None }), linux: Some(Linux { yay_arguments: None, aura_aur_arguments: None, aura_pacman_arguments: None, arch_package_manager: None, show_arch_news: None, garuda_update_arguments: None, trizen_arguments: None, pikaur_arguments: None, pamac_arguments: None, dnf_arguments: None, nix_arguments: None, apt_arguments: None, enable_tlmgr: None, redhat_distro_sync: None, rpm_ostree: None, emerge_sync_flags: None, emerge_update_flags: None }), git: Some(Git { max_concurrency: None, arguments: None, repos: Some([".config/PrusaSlicer"]), pull_predefined: None }), windows: Some(Windows { accept_all_updates: None, self_rename: None, open_remotes_in_new_terminal: None, enable_winget: None, wsl_update_pre_release: None, wsl_update_use_web_download: None }), npm: Some(NPM { use_sudo: None }), yarn: None, vim: None, firmware: Some(Firmware { upgrade: None }), vagrant: None, flatpak: Some(Flatpak { use_sudo: None }), distrobox: None }
DEBUG Detected "/usr/bin/notify-send" as "notify-send"
DEBUG Version: 10.3.2
DEBUG OS: x86_64-unknown-linux-gnu
DEBUG Args { inner: ["/home/reini/bin/topgrade", "--only", "custom_commands", "-v"] }
DEBUG Binary path: Ok("/home/reini/bin/topgrade")
DEBUG Self Update: true
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.
DEBUG Detected "/usr/bin/git" as "git"
DEBUG Cannot find "doas"
DEBUG Cannot find "please"
DEBUG Detected "/usr/bin/sudo" as "sudo"
DEBUG Detected "/usr/bin/pwsh" as "pwsh"
DEBUG Executing command `/usr/bin/pwsh -NoProfile -Command 'Split-Path $profile'`
DEBUG Path "/home/reini/.config/powershell" exists
DEBUG Path "/home/reini/.config/emacs" doesn't exist
DEBUG Path "/home/reini/.emacs.d" doesn't exist
DEBUG /home/reini/.ideavimrc does not exists
DEBUG /home/reini/.intellimacs does not exists
DEBUG /home/reini/.zshrc is a file. Checking /home/reini
DEBUG Checking if /home/reini is a git repository
DEBUG Executing command `/usr/bin/git rev-parse --show-toplevel`
DEBUG Command failed: Err(
   0: Command failed: `/usr/bin/git rev-parse --show-toplevel`

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

Location:
   src/steps/git.rs:167

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.)
DEBUG /home/reini/.config/fish does not exists
DEBUG /home/reini/.config/openbox does not exists
DEBUG /home/reini/.config/bspwm does not exists
DEBUG /home/reini/.config/i3 does not exists
DEBUG /home/reini/.config/sway does not exists
DEBUG Checking if /home/reini/.config/powershell is a git repository
DEBUG Executing command `/usr/bin/git rev-parse --show-toplevel`
DEBUG Command failed: Err(
   0: Command failed: `/usr/bin/git rev-parse --show-toplevel`

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

Location:
   src/steps/git.rs:167

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.)
DEBUG Step "01 Update downloaded apps"

── 11:17:42 - 01 Update downloaded apps ────────────────────────────────────────
DEBUG Executing command `/bin/bash -i -c ~/bin/update_downloaded-apps.sh`
2023-03-13 11:17:42: Update as-tree
2023-03-13 11:17:43: Update bat
2023-03-13 11:17:43: Update delta
2023-03-13 11:17:44: Update fd
2023-03-13 11:17:44: Update fzf
2023-03-13 11:17:45: Update gitui
2023-03-13 11:17:45: Update hexyl
2023-03-13 11:17:45: Update lnav
ERROR: Download URL for lnav not available
2023-03-13 11:17:46: Update pandoc
2023-03-13 11:17:46: Update rclone
2023-03-13 11:17:47: Update ripgrep
2023-03-13 11:17:47: Update shellcheck
DEBUG Step "12 Create/update ~/.ssh/config.known_hosts"

── 11:17:48 - 12 Create/update ~/.ssh/config.known_hosts ───────────────────────
DEBUG Executing command `/bin/bash -i -c ~/.config/topgrade-ssh_config.known-hosts`

[1]+  Stopped                 topgrade --only custom_commands -v

Ubuntu-22.04> reini@ubuntu:~$ jobs -l
[1]+ 36581 Stopped (tty input)     topgrade --only custom_commands -v

Ubuntu-22.04> reini@ubuntu:~$ topgrade --version
Topgrade 10.3.2

See also my comment in pull request #347 (https://github.com/topgrade-rs/topgrade/pull/347#issuecomment-1465850005)

reini-1 commented 1 year ago

You can test this with the following simple configuration:

Ubuntu-22.04> reini@ubuntu:~$ grep -vE '^#|^$' ~/tmp/topgrade/topgrade.toml 
assume_yes = true
disable = ["myrepos"]
no_retry = true
ssh_arguments = "-o ConnectTimeout=2"
cleanup = true
[git]
[composer]
[pre_commands]
[commands]
"01 Custom command 01" = "~/tmp/topgrade/command01.sh"
"02 Custom command 02" = "~/tmp/topgrade/command02.sh"
"03 Custom command 03" = "~/tmp/topgrade/command03.sh"
[brew]
greedy_cask = true
[linux]
[windows]
[npm]
[firmware]
[flatpak]

Ubuntu-22.04> reini@ubuntu:~$ more ~/tmp/topgrade/command0*
::::::::::::::
/home/reini/tmp/topgrade/command01.sh
::::::::::::::
#!/usr/bin/env sh
echo "Custom command 01"
::::::::::::::
/home/reini/tmp/topgrade/command02.sh
::::::::::::::
#!/usr/bin/env sh
echo "Custom command 02"
::::::::::::::
/home/reini/tmp/topgrade/command03.sh
::::::::::::::
#!/usr/bin/env sh
echo "Custom command 03"

Ubuntu-22.04> reini@ubuntu:~$ topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.

── 11:51:31 - Self update ──────────────────────────────────────────────────────
Topgrade is up-to-date

── 11:51:32 - 01 Custom command 01 ─────────────────────────────────────────────
Custom command 01

── 11:51:33 - 02 Custom command 02 ─────────────────────────────────────────────

[1]+  Stopped                 topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands

Ubuntu-22.04> reini@ubuntu:~$ jobs
[1]+  Stopped                 topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands
reini-1 commented 1 year ago

I can confirm that it works on Mac with zsh here.

It also works in a multipass Ubuntu 22.04 vm (aarch64) on my Mac with similar .bashrc settings, but not on a real Linux machine (x86_64/amd64).

topgrade with the above test config:

Multipass~Ubuntu-22.04> [ssh] ubuntu@mac:~$ topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands

―― 12:29:55 - Self update ――――――――――――――――――――――――――――――――――――――――――――――――――――――
Topgrade is up-to-date

―― 12:29:56 - 01 Custom command 01 ―――――――――――――――――――――――――――――――――――――――――――――
Custom command 01

―― 12:29:56 - 02 Custom command 02 ―――――――――――――――――――――――――――――――――――――――――――――
Custom command 02

―― 12:29:56 - 03 Custom command 03 ―――――――――――――――――――――――――――――――――――――――――――――
Custom command 03

―― 12:29:56 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
01 Custom command 01: OK
02 Custom command 02: OK
03 Custom command 03: OK

So maybe this is only a problem on x86_64/amd64 machines.

Please fix this urgent, as topgrade did not work on Linux now when you use custom commands.

ealap commented 1 year ago

I think I have this same issue after the upgrade as well. Replicating this by doing

zsh -i -c 'custom_cmd_here' prints the prompt instead of waiting for the command to finish, while zsh -c and bash does not have this problem at all.

Tested on both Ubuntu and MacOS.

reini-1 commented 1 year ago

Sorry, on the Mac vm I tested it with an old topgrade 9.0.1 that works.

With a new version it also did not work:

Multipass~Ubuntu-22.04> [ssh] ubuntu@mac:~/tmp/topgrade$ topgrade --version; topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands; topgrade --version
Topgrade 10.3.2
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.

── 12:39:23 - Self update ──────────────────────────────────────────────────────
Topgrade is up-to-date

── 12:39:23 - 01 Custom command 01 ─────────────────────────────────────────────
Custom command 01

── 12:39:23 - 02 Custom command 02 ─────────────────────────────────────────────

[2]+  Stopped                 topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands
Topgrade 10.3.2
reini-1 commented 1 year ago

So I think testing this only on a Mac with zsh is not enough ...

Please fix it or revert the patch or add an option (in config) to disable this behavior.

Thanks in advance.

utkarshgupta137 commented 1 year ago

Have you guys set $PS1 in any of your bash/zsh dotfiles?

ealap commented 1 year ago

I use starship prompt which I'm sure does that for me.

utkarshgupta137 commented 1 year ago

Do you use tmux/zellij or something like that?

reini-1 commented 1 year ago

PS1 is set in a default Ubuntu installation and I also set it to something different and PROMPT_COMMAND is also used. I did not use tmux/zellij for this.

Multipass~Ubuntu-22.04> [ssh] ubuntu@mac:~$ set|grep -E '^PS1|^PROMPT_COMMAND'
PROMPT_COMMAND='history -a;history -c;history -r;__ps1_long_path;'
PS1='\[\e[1;37m\]Multipass~Ubuntu-22.04>\[\e[0;0m\] $(_show_virtual_env)[ssh] \[\e]0;\u@\h:\w\a\]\[\e[0;32m\]\u\[\e[0m\]@\[\e[0;34m\]\h\[\e[0m\]:\[\e[0;36m\]\w\[\e[0m\]$(__git_ps1 '\''\[\033[0;33m\] (%s)\[\033[0m\]'\'')$ '
reini-1 commented 1 year ago

Without PS1 and PROMPT_COMMAND set it did also not work:

Multipass~Ubuntu-22.04> [ssh] ubuntu@MBP-009:~$ unset PS1
unset PROMPT_COMMAND
topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands; topgrade --version
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.

── 14:06:33 - Self update ──────────────────────────────────────────────────────
Topgrade is up-to-date

── 14:06:34 - 01 Custom command 01 ─────────────────────────────────────────────
Custom command 01

── 14:06:34 - 02 Custom command 02 ─────────────────────────────────────────────

[1]+  Stopped                 topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands
Topgrade 10.3.2
reini-1 commented 1 year ago

On Raspian GNU/Linux 11 (armv7l) does it now also not work:

Raspbian-11> [ssh] pi@octoprint:~$ topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.

── 14:13:10 - Self update ──────────────────────────────────────────────────────
[00:00:00] [========================================] 4.35MiB/4.35MiB (0s) Done

Topgrade upgraded to 10.3.2:

## What's Changed
* use documented way of updating by @vzze in https://github.com/topgrade-rs/topgrade/pull/344
* Add support for please (access elevation) by @dsully in https://github.com/topgrade-rs/topgrade/pull/310
* run_custom_command: use interactive shell on unix by @utkarshgupta137 in https://github.com/topgrade-rs/topgrade/pull/347
* ruby_gems: Fixes asdf by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/350
* vim: Adds Astrovim support by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/352
* CI: Update cross to v0.2.5 by @guihkx in https://github.com/topgrade-rs/topgrade/pull/354
* Silence misleading warning on other platforms. by @jstelzer in https://github.com/topgrade-rs/topgrade/pull/353
* apt: Recognise mist by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/351
* pip3: Check for EXTERNALLY-MANAGED (PEP 668) by @TGRCdev in https://github.com/topgrade-rs/topgrade/pull/367
* pacdef: support new version 1.x by @arctic-penguin in https://github.com/topgrade-rs/topgrade/pull/364
* Support antidote by @r-darwish in https://github.com/topgrade-rs/topgrade/pull/368
* cargo: add cleanup step (using cargo-cache) by @IsaacTay in https://github.com/topgrade-rs/topgrade/pull/371
* skip skip-notify warning on Win by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/362
* 10.3.2 patch by @DottoDev in https://github.com/topgrade-rs/topgrade/pull/378

## New Contributors
* @dsully made their first contribution in https://github.com/topgrade-rs/topgrade/pull/310
* @utkarshgupta137 made their first contribution in https://github.com/topgrade-rs/topgrade/pull/347
* @TGRCdev made their first contribution in https://github.com/topgrade-rs/topgrade/pull/367
* @IsaacTay made their first contribution in https://github.com/topgrade-rs/topgrade/pull/371

**Full Changelog**: https://github.com/topgrade-rs/topgrade/compare/v10.3.1...v10.3.2
Respawning...
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.

── 14:13:13 - 01 Custom command 01 ─────────────────────────────────────────────
Custom command 01

── 14:13:14 - 02 Custom command 02 ─────────────────────────────────────────────

[1]+  Stopped                 topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands
Raspbian-11> [ssh] pi@octoprint:~$ topgrade --version
Topgrade 10.3.2
reini-1 commented 1 year ago

I would vote to revoke this change, test successfully on all topgrade supported platforms before merging it again!

ealap commented 1 year ago

@utkarshgupta137 An alternative to zsh -i -c 'custom_cmd is to invoke it via zsh built-in emulate, e.g.

emulate zsh -c 'custom_cmd'

which executes the command on the foreground (tested in my Ubuntu and MacOS machines) while still being able to expand the user's aliases and functions.

reini-1 commented 1 year ago

I found in the source code (https://github.com/topgrade-rs/topgrade/blob/master/src/main.rs#L119) when setting environment variable TOPGRADE_NO_SELF_UPGRADE the self update is skipped:

Multipass~Ubuntu-22.04> [ssh] ubuntu@mac:~$ TOPGRADE_NO_SELF_UPGRADE=true topgrade --config ~/tmp/topgrade/topgrade.toml --only custom_commands; topgrade --version
Due to a design issue with notify-send it could be that topgrade hangs when it's finished.
If this is the case on your system add the --skip-notify flag to the topgrade command or set skip_notify = true in the config file.
If you don't want this message to appear any longer set display_preamble = false in the config file.
For more information about this issue see https://askubuntu.com/questions/110969/notify-send-ignores-timeout and https://github.com/topgrade-rs/topgrade/issues/288.

── 16:26:26 - 01 Custom command 01 ─────────────────────────────────────────────
Custom command 01

── 16:26:26 - 02 Custom command 02 ─────────────────────────────────────────────
Custom command 02

── 16:26:26 - 03 Custom command 03 ─────────────────────────────────────────────
Custom command 03

── 16:26:26 - Summary ──────────────────────────────────────────────────────────
01 Custom command 01: OK
02 Custom command 02: OK
03 Custom command 03: OK
Topgrade 10.3.1

I think this can be used as a workaround in conjunction with an old version of topgrade.

s34m commented 1 year ago

Should work now

ealap commented 1 year ago

thank you @DottoDev! Hopefully it can be published in crates.io soon.

s34m commented 1 year ago

The crate is also updated now