r-darwish / topgrade

Upgrade everything
GNU General Public License v3.0
3.35k stars 160 forks source link

topgrade won't update any more #783

Closed kringalf closed 3 years ago

kringalf commented 3 years ago

If topgrade tries to update itself via cargo-update i get error like this:

   Compiling toml v0.5.8
error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/main.rs:413:30
    |
413 |                 Ok(Key::Char('s' | 'S')) => run_shell(),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

OS is:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

cargo version is:

cargo --version
cargo 1.51.0

What did you expect to happen? I executed topgrade and it should update itself and the system

What actually happened? it couldn't update itself using cargo

Additional details: I installed topgrade via cargo

 2021-10-26T13:50:07.633Z DEBUG topgrade::config > Configuration at /home/sagu/.config/topgrade.toml
 2021-10-26T13:50:07.633Z DEBUG topgrade::config > Loaded configuration: ConfigFile { pre_commands: Some({}), post_commands: Some({"autoremove": "sudo apt autoremove"}), commands: Some({}), git_repos: None, predefined_git_repos: None, disable: None, ignore_failures: None, remote_topgrades: None, remote_topgrade_path: None, ssh_arguments: None, git_arguments: None, tmux_arguments: None, set_title: None, assume_yes: None, yay_arguments: None, no_retry: None, run_in_tmux: None, cleanup: None, notify_each_step: None, accept_all_windows_updates: None, bashit_branch: None, only: None, composer: Some(Composer { self_update: None }), brew: Some(Brew { greedy_cask: None }), linux: Some(Linux { yay_arguments: None, trizen_arguments: None, dnf_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: None, pull_predefined: None }), windows: Some(Windows { accept_all_updates: None, self_rename: None, open_remotes_in_new_terminal: None }), npm: Some(NPM { use_sudo: None }), firmware: Some(Firmware { upgrade: None }), vagrant: None, flatpak: Some(Flatpak { use_sudo: None }) }
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Cannot find "notify-send"
 2021-10-26T13:50:07.633Z DEBUG topgrade         > Version: 7.1.0
 2021-10-26T13:50:07.633Z DEBUG topgrade         > OS: x86_64-unknown-linux-gnu
 2021-10-26T13:50:07.633Z DEBUG topgrade         > Args { inner: ["topgrade", "-v"] }
 2021-10-26T13:50:07.633Z DEBUG topgrade         > Binary path: Ok("/home/sagu/.cargo/bin/topgrade")
 2021-10-26T13:50:07.633Z DEBUG topgrade         > Self Update: false
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Detected "/usr/bin/git" as "git"
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Cannot find "doas"
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Detected "/usr/bin/sudo" as "sudo"
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Cannot find "pwsh"
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Cannot find "powershell"
 2021-10-26T13:50:07.633Z DEBUG topgrade::runner > Step "System update"
―― 15:50:07 - System update ――
 2021-10-26T13:50:07.633Z DEBUG topgrade::utils  > Cannot find "apt-fast"
 2021-10-26T13:50:07.633Z DEBUG topgrade::executor > Running "/usr/bin/sudo" "/usr/bin/apt-get" "update"
Hit:1 http://ftp2.de.debian.org/debian buster InRelease
Hit:2 http://packages.azlux.fr/debian buster InRelease
Hit:3 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:4 http://ppa.launchpad.net/gezakovacs/ppa/ubuntu focal InRelease
Hit:5 http://deb.debian.org/debian-security buster/updates InRelease
Hit:6 http://download.virtualbox.org/virtualbox/debian focal InRelease
Hit:7 https://download.docker.com/linux/ubuntu focal InRelease
Get:8 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [1.738 B]
Hit:13 http://ftp2.de.debian.org/debian buster-updates InRelease
Hit:14 https://downloads.1password.com/linux/debian/amd64 stable InRelease
Hit:15 http://ppa.launchpad.net/phoerious/keepassxc/ubuntu focal InRelease
Hit:16 https://updates.signal.org/desktop/apt xenial InRelease
Hit:17 https://gitsecret.jfrog.io/artifactory/git-secret-deb git-secret InRelease
Hit:18 http://ppa.launchpad.net/tomtomtom/woeusb/ubuntu focal InRelease
Hit:19 https://packages.microsoft.com/repos/ms-teams stable InRelease
Get:12 http://mirror.stw-aachen.de/ubuntu focal-security InRelease [114 kB]
Hit:9 https://ftp.uni-stuttgart.de/ubuntu focal InRelease
Hit:10 http://linux.darkpenguin.net/distros/ubuntu-archive focal-updates InRelease
Get:11 http://linux.darkpenguin.net/distros/ubuntu-archive focal-backports InRelease [101 kB]
Hit:20 https://packages.gitlab.com/runner/gitlab-runner/ubuntu focal InRelease
Fetched 216 kB in 2s (120 kB/s)
Reading package lists...
 2021-10-26T13:50:10.954Z DEBUG topgrade::executor > Running "/usr/bin/sudo" "/usr/bin/apt-get" "dist-upgrade"
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 2021-10-26T13:50:11.867Z DEBUG topgrade::runner   > Step "etc-update"
 2021-10-26T13:50:11.867Z DEBUG topgrade::runner   > Step "Brew"
 2021-10-26T13:50:11.867Z DEBUG topgrade::runner   > Step "yadm"
 2021-10-26T13:50:11.867Z DEBUG topgrade::runner   > Step "nix"
 2021-10-26T13:50:11.867Z DEBUG topgrade::runner   > Step "home-manager"
 2021-10-26T13:50:11.867Z DEBUG topgrade::runner   > Step "asdf"
 2021-10-26T13:50:11.867Z DEBUG topgrade::utils    > Path "/home/sagu/.config/emacs" doesn't exist
 2021-10-26T13:50:11.867Z DEBUG topgrade::utils    > Path "/home/sagu/.emacs.d" doesn't exist
 2021-10-26T13:50:11.867Z DEBUG topgrade::steps::git > /home/sagu/.doom.d does not exists
 2021-10-26T13:50:11.867Z DEBUG topgrade::steps::git > Checking if /home/sagu/.vim is a git repository
 2021-10-26T13:50:11.868Z TRACE topgrade::executor   > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(ExitStatus(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.config/nvim does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.ideavimrc does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.intellimacs does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.zshrc does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.tmux does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.config/fish does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.config/openbox does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.config/bspwm does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.config/i3 does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::steps::git > /home/sagu/.config/sway does not exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "Git repositories"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "zr"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "antibody"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "antigen"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "zplug"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "zinit"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "zim"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "oh-my-zsh"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "fisher"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "bash-it"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "oh-my-fish"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "fish-plug"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "tmux"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "TLDR"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "pearl"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "SDKMAN!"
 2021-10-26T13:50:11.868Z DEBUG topgrade::utils      > Detected "/usr/bin/bash" as "bash"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "apm"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "fossil"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "rustup"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step ".NET"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "choosenim"
 2021-10-26T13:50:11.868Z DEBUG topgrade::runner     > Step "cargo"
 2021-10-26T13:50:11.868Z DEBUG topgrade::utils      > Path "/home/sagu/.cargo" exists
 2021-10-26T13:50:11.868Z DEBUG topgrade::utils      > Detected "/usr/bin/cargo" as "cargo"
 2021-10-26T13:50:11.868Z DEBUG topgrade::utils      > Path "/home/sagu/.cargo/.crates.toml" exists
―― 15:50:11 - Cargo ――
 2021-10-26T13:50:11.868Z DEBUG topgrade::utils      > Detected "/home/sagu/.cargo/bin/cargo-install-update" as "cargo-install-update"
 2021-10-26T13:50:11.868Z DEBUG topgrade::executor   > Running "/home/sagu/.cargo/bin/cargo-install-update" "install-update" "--git" "--all"
    Updating registry 'https://github.com/rust-lang/crates.io-index'

Package       Installed  Latest  Needs update
topgrade      v7.1.0     v8.0.0  Yes
cargo-update  v7.0.1     v7.0.1  No

Updating topgrade
    Updating crates.io index
  Installing topgrade v8.0.0
   Compiling libc v0.2.105
   Compiling autocfg v1.0.1
   Compiling proc-macro2 v1.0.30
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.80
   Compiling cfg-if v1.0.0
   Compiling memchr v2.4.1
   Compiling version_check v0.9.3
   Compiling log v0.4.14
   Compiling proc-macro-hack v0.5.19
   Compiling futures-core v0.3.17
   Compiling ppv-lite86 v0.2.15
   Compiling proc-macro-nested v0.1.7
   Compiling futures-task v0.3.17
   Compiling unicode-segmentation v1.8.0
   Compiling futures-channel v0.3.17
   Compiling unicode-width v0.1.9
   Compiling pin-project-lite v0.2.7
   Compiling serde_derive v1.0.130
   Compiling regex-syntax v0.6.25
   Compiling futures-sink v0.3.17
   Compiling bitflags v1.3.2
   Compiling serde v1.0.130
   Compiling ahash v0.4.7
   Compiling pin-utils v0.1.0
   Compiling slab v0.4.5
   Compiling futures-io v0.3.17
   Compiling quick-error v1.2.3
   Compiling once_cell v1.8.0
   Compiling vec_map v0.8.2
   Compiling strsim v0.8.0
   Compiling ansi_term v0.11.0
   Compiling anyhow v1.0.44
   Compiling termcolor v1.1.2
   Compiling either v1.6.1
   Compiling remove_dir_all v0.5.3
   Compiling same-file v1.0.6
   Compiling topgrade v8.0.0
   Compiling bytes v1.1.0
   Compiling lazy_static v1.4.0
   Compiling glob v0.3.0
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling futures-macro v0.3.17
   Compiling futures-util v0.3.17
   Compiling num-traits v0.2.14
   Compiling memoffset v0.6.4
   Compiling num-integer v0.1.44
   Compiling tokio v1.12.0
   Compiling textwrap v0.11.0
   Compiling heck v0.3.3
   Compiling humantime v1.3.0
   Compiling hashbrown v0.9.1
   Compiling walkdir v2.3.2
   Compiling aho-corasick v0.7.18
   Compiling quote v1.0.10
   Compiling regex v1.5.4
   Compiling getrandom v0.2.3
   Compiling atty v0.2.14
   Compiling dirs-sys-next v0.1.2
   Compiling num_cpus v1.13.0
   Compiling terminal_size v0.1.17
   Compiling signal-hook-registry v1.4.0
   Compiling mio v0.7.14
   Compiling dirs-sys v0.3.6
   Compiling time v0.1.44
   Compiling which v4.2.2
   Compiling nix v0.23.0
   Compiling rand_core v0.6.3
   Compiling clap v2.33.3
   Compiling env_logger v0.7.1
   Compiling dirs-next v2.0.0
   Compiling console v0.15.0
   Compiling directories v4.0.1
   Compiling chrono v0.4.19
   Compiling rand_chacha v0.3.1
   Compiling pretty_env_logger v0.4.0
   Compiling shellexpand v2.1.0
   Compiling rand v0.8.4
   Compiling dlv-list v0.2.3
   Compiling tempfile v3.2.0
   Compiling ordered-multimap v0.3.1
   Compiling rust-ini v0.17.0
   Compiling thiserror-impl v1.0.30
   Compiling strum_macros v0.22.0
   Compiling structopt-derive v0.4.18
   Compiling thiserror v1.0.30
   Compiling structopt v0.3.25
   Compiling strum v0.22.0
   Compiling futures-executor v0.3.17
   Compiling futures v0.3.17
   Compiling toml v0.5.8
error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/main.rs:413:30
    |
413 |                 Ok(Key::Char('s' | 'S')) => run_shell(),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/main.rs:414:30
    |
414 |                 Ok(Key::Char('r' | 'R')) => reboot(),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/main.rs:415:30
    |
415 |                 Ok(Key::Char('q' | 'Q')) => (),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:49:18
   |
49 |             Some("centos" | "rhel" | "ol") => Distribution::CentOS,
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:53:18
   |
53 |             Some("debian" | "pureos") => Distribution::Debian,
   |                  ^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:54:18
   |
54 |             Some("arch" | "anarchy" | "manjaro-arm" | "garuda" | "artix") => Distribution::Arch,
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/terminal.rs:232:30
    |
232 |                 Ok(Key::Char('y' | 'Y')) => break Ok(true),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/terminal.rs:233:30
    |
233 |                 Ok(Key::Char('s' | 'S')) => {
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/terminal.rs:238:30
    |
238 |                 Ok(Key::Char('n' | 'N') | Key::Enter) => break Ok(false),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/terminal.rs:238:20
    |
238 |                 Ok(Key::Char('n' | 'N') | Key::Enter) => break Ok(false),
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0658]: or-patterns syntax is experimental
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/terminal.rs:243:30
    |
243 |                 Ok(Key::Char('q' | 'Q')) => return Err(io::Error::from(io::ErrorKind::Interrupted)),
    |                              ^^^^^^^^^
    |
    = note: see issue #54883  for more information

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/git.rs:56:15
   |
56 |         .args(["pull", "--ff-only"]);
   |               ^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["pull", "--ff-only"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/git.rs:64:15
   |
64 |         .args(["submodule", "update", "--recursive"])
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["submodule", "update", "--recursive"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 5]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/git.rs:84:27
   |
84 |                       .args([
   |  ___________________________^
85 | |                         "--no-pager",
86 | |                         "log",
87 | |                         "--no-decorate",
88 | |                         "--oneline",
89 | |                         &format!("{}..{}", before, after),
90 | |                     ])
   | |_____________________^ expected an implementor of trait `IntoIterator`
   |
   = note: the trait bound `[&str; 5]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 5]`
help: consider borrowing here
   |
84 |                     .args(&[
85 |                         "--no-pager",
86 |                         "log",
87 |                         "--no-decorate",
88 |                         "--oneline",
89 |                         &format!("{}..{}", before, after),
 ...

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/emacs.rs:61:37
   |
61 |         run_type.execute(doom).args(["-y", "upgrade"]).check_run()
   |                                     ^^^^^^^^^^^^^^^^^
   |                                     |
   |                                     expected an implementor of trait `IntoIterator`
   |                                     help: consider borrowing here: `&["-y", "upgrade"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/emacs.rs:79:19
   |
79 |             .args(["--batch", "--debug-init", "-l"])
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                   |
   |                   expected an implementor of trait `IntoIterator`
   |                   help: consider borrowing here: `&["--batch", "--debug-init", "-l"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:52:15
   |
52 |         .args(["install-update", "--git", "--all"])
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["install-update", "--git", "--all"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:109:43
    |
109 |     ctx.run_type().execute(&sheldon).args(["lock", "--update"]).check_run()
    |                                           ^^^^^^^^^^^^^^^^^^^^
    |                                           |
    |                                           expected an implementor of trait `IntoIterator`
    |                                           help: consider borrowing here: `&["lock", "--update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:117:36
    |
117 |     run_type.execute(&fossil).args(["all", "sync"]).check_run()
    |                                    ^^^^^^^^^^^^^^^
    |                                    |
    |                                    expected an implementor of trait `IntoIterator`
    |                                    help: consider borrowing here: `&["all", "sync"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:125:48
    |
125 |     let stdout = run_type.execute(µ).args(["-plugin", "update"]).string_output()?;
    |                                                ^^^^^^^^^^^^^^^^^^^^^
    |                                                |
    |                                                expected an implementor of trait `IntoIterator`
    |                                                help: consider borrowing here: `&["-plugin", "update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:146:33
    |
146 |     run_type.execute(&apm).args(["upgrade", "--confirm=false"]).check_run()
    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                 |
    |                                 expected an implementor of trait `IntoIterator`
    |                                 help: consider borrowing here: `&["upgrade", "--confirm=false"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:155:40
    |
155 |         run_type.execute(&rustup).args(["self", "update"]).check_run()?;
    |                                        ^^^^^^^^^^^^^^^^^^
    |                                        |
    |                                        expected an implementor of trait `IntoIterator`
    |                                        help: consider borrowing here: `&["self", "update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:167:39
    |
167 |     run_type.execute(&choosenim).args(["update", "self"]).check_run()?;
    |                                       ^^^^^^^^^^^^^^^^^^
    |                                       |
    |                                       expected an implementor of trait `IntoIterator`
    |                                       help: consider borrowing here: `&["update", "self"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:168:39
    |
168 |     run_type.execute(&choosenim).args(["update", "stable"]).check_run()
    |                                       ^^^^^^^^^^^^^^^^^^^^
    |                                       |
    |                                       expected an implementor of trait `IntoIterator`
    |                                       help: consider borrowing here: `&["update", "stable"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 1]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:176:34
    |
176 |     run_type.execute(&krew).args(["upgrade"]).check_run()
    |                                  ^^^^^^^^^^^
    |                                  |
    |                                  expected an implementor of trait `IntoIterator`
    |                                  help: consider borrowing here: `&["upgrade"]`
    |
    = note: the trait bound `[&str; 1]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 1]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:186:15
    |
186 |         .args(["components", "update", "--quiet"])
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["components", "update", "--quiet"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:195:37
    |
195 |     run_type.execute(&jetpack).args(["global", "update"]).check_run()
    |                                     ^^^^^^^^^^^^^^^^^^^^
    |                                     |
    |                                     expected an implementor of trait `IntoIterator`
    |                                     help: consider borrowing here: `&["global", "update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:219:35
    |
219 |     run_type.execute(&vcpkg).args(["upgrade", "--no-dry-run"]).check_run()
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                   |
    |                                   expected an implementor of trait `IntoIterator`
    |                                   help: consider borrowing here: `&["upgrade", "--no-dry-run"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 4]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:239:15
    |
239 |         .args(["install", "--upgrade", "--user", "pip"])
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["install", "--upgrade", "--user", "pip"]`
    |
    = note: the trait bound `[&str; 4]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 4]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:290:18
    |
290 |     command.args(["update", "--self", "--all"]);
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                  |
    |                  expected an implementor of trait `IntoIterator`
    |                  help: consider borrowing here: `&["update", "--self", "--all"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 5]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:332:15
    |
332 |         .args(["global", "config", "--absolute", "--quiet", "home"])
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["global", "config", "--absolute", "--quiet", "home"]`
    |
    = note: the trait bound `[&str; 5]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 5]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:370:47
    |
370 |     let output = Command::new(&composer).args(["global", "update"]).output()?;
    |                                               ^^^^^^^^^^^^^^^^^^^^
    |                                               |
    |                                               expected an implementor of trait `IntoIterator`
    |                                               help: consider borrowing here: `&["global", "update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:391:44
    |
391 |     let output = Command::new(dotnet).args(["tool", "list", "--global"]).output()?;
    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                            |
    |                                            expected an implementor of trait `IntoIterator`
    |                                            help: consider borrowing here: `&["tool", "list", "--global"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 4]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:414:19
    |
414 |             .args(["tool", "update", package_name, "--global"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["tool", "update", package_name, "--global"]`
    |
    = note: the trait bound `[&str; 4]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 4]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/generic.rs:426:34
    |
426 |     run_type.execute(&raco).args(["pkg", "update", "--all"]).check_run()
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                  |
    |                                  expected an implementor of trait `IntoIterator`
    |                                  help: consider borrowing here: `&["pkg", "update", "--all"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/git.rs:110:15
    |
110 |         .args(["rev-parse", "HEAD"])
    |               ^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["rev-parse", "HEAD"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/git.rs:125:15
    |
125 |         .args(["remote", "show"])
    |               ^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["remote", "show"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/git.rs:168:31
    |
168 |                         .args(["rev-parse", "--show-toplevel"])
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                               |
    |                               expected an implementor of trait `IntoIterator`
    |                               help: consider borrowing here: `&["rev-parse", "--show-toplevel"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/node.rs:30:19
   |
30 |             .args(["root", "-g"])
   |                   ^^^^^^^^^^^^^^
   |                   |
   |                   expected an implementor of trait `IntoIterator`
   |                   help: consider borrowing here: `&["root", "-g"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/node.rs:40:23
   |
40 |                 .args(["update", "-g"])
   |                       ^^^^^^^^^^^^^^^^
   |                       |
   |                       expected an implementor of trait `IntoIterator`
   |                       help: consider borrowing here: `&["update", "-g"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/node.rs:43:50
   |
43 |             run_type.execute(&self.command).args(["update", "-g"]).check_run()?;
   |                                                  ^^^^^^^^^^^^^^^^
   |                                                  |
   |                                                  expected an implementor of trait `IntoIterator`
   |                                                  help: consider borrowing here: `&["update", "-g"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/node.rs:101:19
    |
101 |             .args(["update", "-g"])
    |                   ^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["update", "-g"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/node.rs:104:44
    |
104 |         ctx.run_type().execute(&pnpm).args(["update", "-g"]).check_run()
    |                                            ^^^^^^^^^^^^^^^^
    |                                            |
    |                                            expected an implementor of trait `IntoIterator`
    |                                            help: consider borrowing here: `&["update", "-g"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:182:19
    |
182 |             .args(["/usr/bin/zypper", "refresh"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/zypper", "refresh"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:187:19
    |
187 |             .args(["/usr/bin/zypper", "dist-upgrade"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/zypper", "dist-upgrade"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:200:19
    |
200 |             .args(["/usr/bin/xbps-install", "-Su", "xbps"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/xbps-install", "-Su", "xbps"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:205:19
    |
205 |             .args(["/usr/bin/xbps-install", "-u"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/xbps-install", "-u"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:219:54
    |
219 |             run_type.execute(&sudo).arg(layman).args(["-s", "ALL"]).check_run()?;
    |                                                      ^^^^^^^^^^^^^
    |                                                      |
    |                                                      expected an implementor of trait `IntoIterator`
    |                                                      help: consider borrowing here: `&["-s", "ALL"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:225:19
    |
225 |             .args(["/usr/bin/emerge", "--sync"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/emerge", "--sync"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:291:19
    |
291 |             .args(["/usr/bin/eopkg", "upgrade"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/eopkg", "upgrade"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:313:19
    |
313 |             .args(["/usr/bin/swupd", "update"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/swupd", "update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:326:19
    |
326 |             .args(["/usr/bin/cave", "sync"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/cave", "sync"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 8]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:331:19
    |
331 |             .args(["/usr/bin/cave", "resolve", "world", "-c1", "-Cs", "-km", "-Km", "-x"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/cave", "resolve", "world", "-c1", "-Cs", "-km", "-Km", "-x"]`
    |
    = note: the trait bound `[&str; 8]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 8]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:337:23
    |
337 |                 .args(["/usr/bin/cave", "purge", "-x"])
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                       |
    |                       expected an implementor of trait `IntoIterator`
    |                       help: consider borrowing here: `&["/usr/bin/cave", "purge", "-x"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 5]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:343:19
    |
343 |             .args(["/usr/bin/cave", "fix-linkage", "-x", "--", "-Cs"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/cave", "fix-linkage", "-x", "--", "-Cs"]`
    |
    = note: the trait bound `[&str; 5]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 5]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:348:19
    |
348 |             .args(["/usr/bin/eclectic", "config", "interactive"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/usr/bin/eclectic", "config", "interactive"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:361:19
    |
361 |             .args(["/run/current-system/sw/bin/nixos-rebuild", "switch", "--upgrade"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["/run/current-system/sw/bin/nixos-rebuild", "switch", "--upgrade"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:367:23
    |
367 |                 .args(["/run/current-system/sw/bin/nix-collect-garbage", "-d"])
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                       |
    |                       expected an implementor of trait `IntoIterator`
    |                       help: consider borrowing here: `&["/run/current-system/sw/bin/nix-collect-garbage", "-d"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:453:15
    |
453 |         .args(["update", "--user", "-y"])
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["update", "--user", "-y"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:461:19
    |
461 |             .args(["update", "--system", "-y"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["update", "--system", "-y"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/linux.rs:466:19
    |
466 |             .args(["update", "--system", "-y"])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&["update", "--system", "-y"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:78:34
   |
78 |     run_type.execute(&fish).args(["-c", "fisher update"]).check_run()
   |                                  ^^^^^^^^^^^^^^^^^^^^^^^
   |                                  |
   |                                  expected an implementor of trait `IntoIterator`
   |                                  help: consider borrowing here: `&["-c", "fisher update"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:88:15
   |
88 |         .args(["-lic", &format!("bash-it update {}", ctx.config().bashit_branch())])
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["-lic", &format!("bash-it update {}", ctx.config().bashit_branch())]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:101:40
    |
101 |     ctx.run_type().execute(&fish).args(["-c", "omf update"]).check_run()
    |                                        ^^^^^^^^^^^^^^^^^^^^
    |                                        |
    |                                        expected an implementor of trait `IntoIterator`
    |                                        help: consider borrowing here: `&["-c", "omf update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:131:40
    |
131 |     ctx.run_type().execute(&fish).args(["-c", "plug update"]).check_run()
    |                                        ^^^^^^^^^^^^^^^^^^^^^
    |                                        |
    |                                        expected an implementor of trait `IntoIterator`
    |                                        help: consider borrowing here: `&["-c", "plug update"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:161:15
    |
161 |         .args(["upgrade", "--ignore-pinned", "--formula"])
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["upgrade", "--ignore-pinned", "--formula"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:228:42
    |
228 |             run_type.execute(&sudo).args(["-i", "nix", "upgrade-nix"]).check_run()?;
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                          |
    |                                          expected an implementor of trait `IntoIterator`
    |                                          help: consider borrowing here: `&["-i", "nix", "upgrade-nix"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:258:34
    |
258 |     run_type.execute(&asdf).args(["plugin", "update", "--all"]).check_run()
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                  |
    |                                  expected an implementor of trait `IntoIterator`
    |                                  help: consider borrowing here: `&["plugin", "update", "--all"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:296:34
    |
296 |     run_type.execute(&bash).args(["-c", &cmd_selfupdate]).check_run()?;
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^
    |                                  |
    |                                  expected an implementor of trait `IntoIterator`
    |                                  help: consider borrowing here: `&["-c", &cmd_selfupdate]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:299:34
    |
299 |     run_type.execute(&bash).args(["-c", &cmd_update]).check_run()?;
    |                                  ^^^^^^^^^^^^^^^^^^^
    |                                  |
    |                                  expected an implementor of trait `IntoIterator`
    |                                  help: consider borrowing here: `&["-c", &cmd_update]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:302:34
    |
302 |     run_type.execute(&bash).args(["-c", &cmd_upgrade]).check_run()?;
    |                                  ^^^^^^^^^^^^^^^^^^^^
    |                                  |
    |                                  expected an implementor of trait `IntoIterator`
    |                                  help: consider borrowing here: `&["-c", &cmd_upgrade]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:306:38
    |
306 |         run_type.execute(&bash).args(["-c", &cmd_flush_archives]).check_run()?;
    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                      |
    |                                      expected an implementor of trait `IntoIterator`
    |                                      help: consider borrowing here: `&["-c", &cmd_flush_archives]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/os/unix.rs:309:38
    |
309 |         run_type.execute(&bash).args(["-c", &cmd_flush_temp]).check_run()?;
    |                                      ^^^^^^^^^^^^^^^^^^^^^^^
    |                                      |
    |                                      expected an implementor of trait `IntoIterator`
    |                                      help: consider borrowing here: `&["-c", &cmd_flush_temp]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/powershell.rs:26:23
   |
26 |                 .args(["-NoProfile", "-Command", "Split-Path $profile"])
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                       |
   |                       expected an implementor of trait `IntoIterator`
   |                       help: consider borrowing here: `&["-NoProfile", "-Command", "Split-Path $profile"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/powershell.rs:79:19
   |
79 |             .args(["-NoProfile", "-Command", &cmd.join(" ")])
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                   |
   |                   expected an implementor of trait `IntoIterator`
   |                   help: consider borrowing here: `&["-NoProfile", "-Command", &cmd.join(" ")]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 5]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/remote/ssh.rs:20:17
   |
20 |     args.extend(["env", &env, "$SHELL", "-lc", topgrade]);
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                 |
   |                 expected an implementor of trait `IntoIterator`
   |                 help: consider borrowing here: `&["env", &env, "$SHELL", "-lc", topgrade]`
   |
   = note: the trait bound `[&str; 5]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 5]`

error[E0277]: `[&str; 5]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/remote/ssh.rs:48:21
   |
48 |         args.extend(["env", &env, "$SHELL", "-lc", topgrade]);
   |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                     |
   |                     expected an implementor of trait `IntoIterator`
   |                     help: consider borrowing here: `&["env", &env, "$SHELL", "-lc", topgrade]`
   |
   = note: the trait bound `[&str; 5]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 5]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/remote/vagrant.rs:113:19
    |
113 |             .args([subcommand, &vagrant_box.name])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&[subcommand, &vagrant_box.name]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/remote/vagrant.rs:140:19
    |
140 |             .args([subcommand, &self.vagrant_box.name])
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                   |
    |                   expected an implementor of trait `IntoIterator`
    |                   help: consider borrowing here: `&[subcommand, &self.vagrant_box.name]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/remote/vagrant.rs:198:15
    |
198 |         .args(["ssh", "-c", &command])
    |               ^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["ssh", "-c", &command]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/tmux.rs:52:19
   |
52 |             .args(["has-session", "-t", session_name])
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                   |
   |                   expected an implementor of trait `IntoIterator`
   |                   help: consider borrowing here: `&["has-session", "-t", session_name]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 6]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/tmux.rs:61:19
   |
61 |             .args(["new-session", "-d", "-s", session_name, "-n", "dummy"])
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                   |
   |                   expected an implementor of trait `IntoIterator`
   |                   help: consider borrowing here: `&["new-session", "-d", "-s", session_name, "-n", "dummy"]`
   |
   = note: the trait bound `[&str; 6]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 6]`

error[E0277]: `[&str; 4]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/tmux.rs:69:19
   |
69 |             .args(["new-window", "-t", "topgrade", command])
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                   |
   |                   expected an implementor of trait `IntoIterator`
   |                   help: consider borrowing here: `&["new-window", "-t", "topgrade", command]`
   |
   = note: the trait bound `[&str; 4]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 4]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/tmux.rs:97:15
   |
97 |         .args(["kill-window", "-t", "topgrade:dummy"])
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["kill-window", "-t", "topgrade:dummy"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/tmux.rs:102:37
    |
102 |         let err = tmux.build().args(["attach", "-t", "topgrade"]).exec();
    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                     |
    |                                     expected an implementor of trait `IntoIterator`
    |                                     help: consider borrowing here: `&["attach", "-t", "topgrade"]`
    |
    = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 5]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/tmux.rs:113:15
    |
113 |         .args(["new-window", "-a", "-t", "topgrade:1", command])
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               expected an implementor of trait `IntoIterator`
    |               help: consider borrowing here: `&["new-window", "-a", "-t", "topgrade:1", command]`
    |
    = note: the trait bound `[&str; 5]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 5]`

error[E0277]: `[&str; 4]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/vim.rs:53:15
   |
53 |         .args(["-U", "NONE", "-V1", "-nNesS"])
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["-U", "NONE", "-V1", "-nNesS"]`
   |
   = note: the trait bound `[&str; 4]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 4]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:22:32
   |
22 |     run_type.execute(zsh).args(["-l", "-c", &cmd]).check_run()
   |                                ^^^^^^^^^^^^^^^^^^
   |                                |
   |                                expected an implementor of trait `IntoIterator`
   |                                help: consider borrowing here: `&["-l", "-c", &cmd]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:51:32
   |
51 |     run_type.execute(zsh).args(["-l", "-c", &cmd]).check_run()
   |                                ^^^^^^^^^^^^^^^^^^
   |                                |
   |                                expected an implementor of trait `IntoIterator`
   |                                help: consider borrowing here: `&["-l", "-c", &cmd]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:65:32
   |
65 |     run_type.execute(zsh).args(["-i", "-c", "zplug update"]).check_run()
   |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                                |
   |                                expected an implementor of trait `IntoIterator`
   |                                help: consider borrowing here: `&["-i", "-c", "zplug update"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:80:32
   |
80 |     run_type.execute(zsh).args(["-i", "-c", &cmd]).check_run()
   |                                ^^^^^^^^^^^^^^^^^^
   |                                |
   |                                expected an implementor of trait `IntoIterator`
   |                                help: consider borrowing here: `&["-i", "-c", &cmd]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:88:23
   |
88 |                 .args(["-c", "[[ -n ${ZIM_HOME} ]] && print -n ${ZIM_HOME}"])
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |                       |
   |                       expected an implementor of trait `IntoIterator`
   |                       help: consider borrowing here: `&["-c", "[[ -n ${ZIM_HOME} ]] && print -n ${ZIM_HOME}"]`
   |
   = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 3]` is not an iterator
  --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:99:15
   |
99 |         .args(["-i", "-c", "zimfw upgrade && zimfw update"])
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |               |
   |               expected an implementor of trait `IntoIterator`
   |               help: consider borrowing here: `&["-i", "-c", "zimfw upgrade && zimfw update"]`
   |
   = note: the trait bound `[&str; 3]: IntoIterator` is not satisfied
   = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 3]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/steps/zsh.rs:112:23
    |
112 |                 .args(["-c", "test $ZSH_CUSTOM && echo -n $ZSH_CUSTOM"])
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                       |
    |                       expected an implementor of trait `IntoIterator`
    |                       help: consider borrowing here: `&["-c", "test $ZSH_CUSTOM && echo -n $ZSH_CUSTOM"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error[E0277]: `[&str; 2]` is not an iterator
   --> /home/sagu/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-8.0.0/src/terminal.rs:100:38
    |
100 |                         command.args(["-a", "Topgrade"]);
    |                                      ^^^^^^^^^^^^^^^^^^
    |                                      |
    |                                      expected an implementor of trait `IntoIterator`
    |                                      help: consider borrowing here: `&["-a", "Topgrade"]`
    |
    = note: the trait bound `[&str; 2]: IntoIterator` is not satisfied
    = note: required because of the requirements on the impl of `IntoIterator` for `[&str; 2]`

error: aborting due to 95 previous errors

Some errors have detailed explanations: E0277, E0658.
For more information about an error, try `rustc --explain E0277`.
error: failed to compile `topgrade v8.0.0`, intermediate artifacts can be found at `/tmp/cargo-installidDolH`

Caused by:
  could not compile `topgrade`

To learn more, run the command again with --verbose.

Updated 0 packages.
Failed to update topgrade.

Package  Installed  Latest  Needs update

No git packages need updating.
Overall updated 0 packages.
Overall failed to update 1 package: topgrade.
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "cargo" failed: exit code: 101
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "Flutter"
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "Emacs"
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "opam"
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "vcpkg"
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "pipx"
 2021-10-26T13:51:15.423Z DEBUG topgrade::runner     > Step "pip3"
 2021-10-26T13:51:15.423Z DEBUG topgrade::utils      > Detected "/home/sagu/.local/bin/pip3" as "pip3"
―― 15:51:15 - pip3 ――
 2021-10-26T13:51:15.423Z DEBUG topgrade::executor   > Running "/home/sagu/.local/bin/pip3" "install" "--upgrade" "--user" "pip"
Requirement already satisfied: pip in /home/sagu/.local/lib/python3.8/site-packages (21.3.1)
 2021-10-26T13:51:16.165Z DEBUG topgrade::runner     > Step "stack"
 2021-10-26T13:51:16.165Z DEBUG topgrade::runner     > Step "tlmgr"
 2021-10-26T13:51:16.165Z DEBUG topgrade::runner     > Step "myrepos"
 2021-10-26T13:51:16.165Z DEBUG topgrade::runner     > Step "jetpack"
 2021-10-26T13:51:16.165Z DEBUG topgrade::runner     > Step "vim"
 2021-10-26T13:51:16.165Z DEBUG topgrade::utils      > Detected "/usr/bin/vim" as "vim"
 2021-10-26T13:51:16.170Z TRACE topgrade::executor   > Output of "/usr/bin/vim" "--version": Output { status: ExitStatus(ExitStatus(0)), stdout: "VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 20 2021 11:42:42)\nIncluded patches: 1-2269\nModified by team+vim@tracker.debian.org\nCompiled by team+vim@tracker.debian.org\nHuge version without GUI.  Features included (+) or not (-):\n+acl               -farsi             -mouse_sysmouse    -tag_any_white\n+arabic            +file_in_path      +mouse_urxvt       -tcl\n+autocmd           +find_in_path      +mouse_xterm       +termguicolors\n+autochdir         +float             +multi_byte        +terminal\n-autoservername    +folding           +multi_lang        +terminfo\n-balloon_eval      -footer            -mzscheme          +termresponse\n+balloon_eval_term +fork()            +netbeans_intg     +textobjects\n-browse            +gettext           +num64             +textprop\n++builtin_terms    -hangul_input      +packages          +timers\n+byte_offset       +iconv             +path_extra        +title\n+channel           +insert_expand     -perl              -toolbar\n+cindent           +job               +persistent_undo   +user_commands\n-clientserver      +jumplist          +postscript        +vartabs\n-clipboard         +keymap            +printer           +vertsplit\n+cmdline_compl     +lambda            +profile           +virtualedit\n+cmdline_hist      +langmap           -python            +visual\n+cmdline_info      +libcall           +python3           +visualextra\n+comments          +linebreak         +quickfix          +viminfo\n+conceal           +lispindent        +reltime           +vreplace\n+cryptv            +listcmds          +rightleft         +wildignore\n+cscope            +localmap          -ruby              +wildmenu\n+cursorbind        -lua               +scrollbind        +windows\n+cursorshape       +menu              +signs             +writebackup\n+dialog_con        +mksession         +smartindent       -X11\n+diff              +modify_fname      +sound             -xfontset\n+digraphs          +mouse             +spell             -xim\n-dnd               -mouseshape        +startuptime       -xpm\n-ebcdic            +mouse_dec         +statusline        -xsmp\n+emacs_tags        +mouse_gpm         -sun_workshop      -xterm_clipboard\n+eval              -mouse_jsbterm     +syntax            -xterm_save\n+ex_extra          +mouse_netterm     +tag_binary        \n+extra_search      +mouse_sgr         -tag_old_static    \n   system vimrc file: \"$VIM/vimrc\"\n     user vimrc file: \"$HOME/.vimrc\"\n 2nd user vimrc file: \"~/.vim/vimrc\"\n      user exrc file: \"$HOME/.exrc\"\n       defaults file: \"$VIMRUNTIME/defaults.vim\"\n  fall-back for $VIM: \"/usr/share/vim\"\nCompilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-RjZCd2/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       \nLinking: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lcanberra -lacl -lattr -lgpm -ldl     -L/usr/lib/python3.8/config-3.8-x86_64-linux-gnu -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm      \n", stderr: "" }
 2021-10-26T13:51:16.170Z DEBUG topgrade::utils      > Path "/home/sagu/.vimrc" exists
―― 15:51:16 - Vim ――
 2021-10-26T13:51:16.170Z DEBUG topgrade::steps::vim > Wrote vim script to "/tmp/.tmpkFfONJ"
not found in 'runtimepath': "ftdetect/*.vim"
not found in 'packpath': "pack/*/start/*"
not found in 'packpath': "pack/*/start/*"
not found in 'runtimepath': "plugin/**/*.vim"
Reading viminfo file "/home/sagu/.viminfo" info oldfiles 
Writing viminfo file "/home/sagu/.viminfo"Plugins upgraded
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "Neovim"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "voom"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "npm"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "pnpm"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "deno"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "composer"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "krew"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "gem"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "sheldon"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "rtcl"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "bin"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "gcloud"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "micro"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "raco"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "Flatpak"
 2021-10-26T13:51:16.191Z DEBUG topgrade::runner     > Step "snap"
 2021-10-26T13:51:16.191Z DEBUG topgrade::utils      > Detected "/usr/bin/snap" as "snap"
―― 15:51:16 - snap ――
 2021-10-26T13:51:16.191Z DEBUG topgrade::executor   > Running "/usr/bin/sudo" "/usr/bin/snap" "refresh"
All snaps up to date.
 2021-10-26T13:51:18.065Z DEBUG topgrade::runner     > Step "pihole"
 2021-10-26T13:51:18.065Z DEBUG topgrade::runner     > Step "Firmware upgrades"
 2021-10-26T13:51:18.065Z DEBUG topgrade::utils      > Detected "/usr/bin/fwupdmgr" as "fwupdmgr"
 2021-10-26T13:51:18.065Z TRACE topgrade::executor   > Output of "uname" "-r": Output { status: ExitStatus(ExitStatus(0)), stdout: "5.11.0-38-generic\n", stderr: "" }
 2021-10-26T13:51:18.065Z DEBUG topgrade::steps::os::linux > Uname output: 5.11.0-38-generic

―― 15:51:18 - Firmware upgrades ――
 2021-10-26T13:51:18.065Z DEBUG topgrade::executor         > Running "/usr/bin/fwupdmgr" "refresh"
Firmware metadata last refresh: 4 minutes ago. Use --force to refresh again.
 2021-10-26T13:51:18.079Z DEBUG topgrade::executor         > Running "/usr/bin/fwupdmgr" "get-updates"
Devices with no available firmware updates: 
 • Integrated Camera
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI dbx
 • VMM5322
Devices with the latest available firmware version:
 • Embedded Controller
 • SAMSUNG MZVLB512HBJQ-000L7
 • System Firmware
 • Unifying Receiver
No updates available for remaining devices
 2021-10-26T13:51:18.153Z DEBUG topgrade::runner           > Step "Restarts"
―― 15:51:18 - Summary ――
System update: OK
etc-update: SKIPPED: Cannot find "etc-update" in PATH
Brew: SKIPPED: Cannot find "brew" in PATH
yadm: SKIPPED: Cannot find "yadm" in PATH
nix: SKIPPED: Cannot find "nix" in PATH
home-manager: SKIPPED: Cannot find "home-manager" in PATH
asdf: SKIPPED: Cannot find "asdf" in PATH
Git repositories: SKIPPED: No repositories to pull
zr: SKIPPED: Cannot find "zsh" in PATH
antibody: SKIPPED: Cannot find "zsh" in PATH
antigen: SKIPPED: Cannot find "zsh" in PATH
zplug: SKIPPED: Cannot find "zsh" in PATH
zinit: SKIPPED: Cannot find "zsh" in PATH
zim: SKIPPED: Cannot find "zsh" in PATH
oh-my-zsh: SKIPPED: Cannot find "zsh" in PATH
fisher: SKIPPED: Cannot find "fish" in PATH
bash-it: SKIPPED: Path "/home/sagu/.bash_it" doesn't exist
oh-my-fish: SKIPPED: Cannot find "fish" in PATH
fish-plug: SKIPPED: Cannot find "fish" in PATH
tmux: SKIPPED: Path "/home/sagu/.tmux/plugins/tpm/bin/update_plugins" doesn't exist
TLDR: SKIPPED: Cannot find "tldr" in PATH
pearl: SKIPPED: Cannot find "pearl" in PATH
SDKMAN!: SKIPPED: Path "/home/sagu/.sdkman/bin/sdkman-init.sh" doesn't exist
apm: SKIPPED: Cannot find "apm" in PATH
fossil: SKIPPED: Cannot find "fossil" in PATH
rustup: SKIPPED: Cannot find "rustup" in PATH
.NET: SKIPPED: Cannot find "dotnet" in PATH
choosenim: SKIPPED: Cannot find "choosenim" in PATH
cargo: FAILED
Flutter: SKIPPED: Cannot find "flutter" 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
pip3: OK
stack: SKIPPED: Cannot find "stack" in PATH
tlmgr: SKIPPED: tlmgr must be explicity enabled in the configuration to run in Linux
myrepos: SKIPPED: Cannot find "mr" in PATH
jetpack: SKIPPED: Cannot find "jetpack" in PATH
vim: OK
Neovim: SKIPPED: Cannot find "nvim" in PATH
voom: SKIPPED: Cannot find "voom" in PATH
npm: SKIPPED: Cannot find "npm" in PATH
pnpm: SKIPPED: Cannot find "pnpm" in PATH
deno: SKIPPED: Cannot find "deno" in PATH
composer: SKIPPED: Cannot find "composer" in PATH
krew: SKIPPED: Cannot find "kubectl-krew" in PATH
gem: SKIPPED: Cannot find "gem" in PATH
sheldon: SKIPPED: Cannot find "sheldon" 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
Flatpak: SKIPPED: Cannot find "flatpak" in PATH
snap: OK
pihole: SKIPPED: Cannot find "pihole" in PATH
Firmware upgrades: OK
Restarts: SKIPPED: Cannot find "needrestart" in PATH
―― 15:51:18 - autoremove ――
 2021-10-26T13:51:18.153Z DEBUG topgrade::executor         > Running "/bin/bash" "-c" "sudo apt autoremove"

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 2021-10-26T13:51:19.002Z DEBUG topgrade::terminal         > Desktop notification: Topgrade finished with errors
MCOfficer commented 3 years ago

You need at least Rust 1.53 for this release, due to or-patterns being stabilized. (in case someone other than OP reads this: you can check your rust version using rustc --version).

If the ubuntu repos do not have 1.53 yet, you can either install rust using rustup or place the binaries from the release page somewhere in your path, where it will self-update. Conventionally that would be in /usr/local/bin/.

Note that 8.0.0 doesn't yet have linux binaries, see #780 for that.

MCOfficer commented 3 years ago

Fixed by #789, which will be part of the next release (not 8.0.1, the one after).

Edit: 8.0.2 is out.