topgrade-rs / topgrade Goto Github PK
View Code? Open in Web Editor NEWUpgrade all the things
License: GNU General Public License v3.0
Upgrade all the things
License: GNU General Public License v3.0
tlmgr
to succeed updating all the TeXLive stuff upon invocation.
―― 07:28:34 - TeX Live package manager ―――――――――――――――――――――――――――――――――――――――――
Enter PIN for 'Certificate For PIV Authentication xxxxxxxx':
/Library/TeX/texbin/tlmgr: signature verification error of /usr/local/texlive/2022/tlpkg/texlive.tlpdb.main.2fdb20874d4fe1a3267a99dbbf353926 from https://mirror.ctan.org/systems/texlive/tlnet/tlpkg/texlive.tlpdb: cryptographic signature verification of
/tmp/BQmzF5UvJT/6ox4ZGeQ7I
against
https://mirror.ctan.org/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
failed. Output was:
gpg: Signature made Thu Sep 29 19:53:42 2022 EDT
gpg: using RSA key 4CE1877E19438C70
gpg: BAD signature from "TeX Live Distribution <[email protected]>" [ultimate]
Please try from a different mirror and/or wait a few minutes
and try again; usually this is because of transient updates.
If problems persist, feel free to report to [email protected].
Occasionally (only within tlmgr
- other stuff gets updated OK), a couple of packages would fail to update. And all the packages seem to take a long time to download, as if network had a problem - except that other apps don't seem to notice.
cargo install topgrade
(don't want to use Macports version)What did you expect to happen?
Executing my upgrades for other machines works, unless I start using them inside tmux.
Having them as a dry-run exposes (for example):
/usr/bin/ssh -t flexo env TOPGRADE_PREFIX=flexo $SHELL -lc topgrade
What actually happened?
The remote side gives back an error:
env: ‘/usr/local/bin/fish’: No such file or directory
But of course that cannot be executed like that: Although locally there is a /usr/local/bin/fish
- no such thing exists remotely. The remote shell would be /usr/bin/fish
(and is set as a default anyway).
So I guess $SHELL
shouldn't be evaluated locally - so if I escape it manually (on the commandline) to be...
/usr/bin/ssh -t flexo env TOPGRADE_PREFIX=flexo '$SHELL' -lc topgrade
(pay attention to the single quotes around $SHELL
)
... it works.
Now another error occurs if we have the yes
flag activated, as it tries to run, but fails being unable to parse the commandline correctly. Weird.
Again, if I escape the given commandline to:
(Before)
/usr/bin/ssh -t flexo env TOPGRADE_PREFIX=flexo $SHELL -lc topgrade -y
(After)
/usr/bin/ssh -t flexo env TOPGRADE_PREFIX=flexo '$SHELL' -lc topgrade\ -y
it works.
Additional details:
Which operating system or Linux distribution are you using?
macOS, from here trying to connect to multiple Linux hosts of different flavors. They all behave the same.
How did you install Topgrade?
* Manually downloaded and placed in /usr/local/bin (linux) or ~/bin/topgrade (macos)
* Installting via Homebrew
* Manually compiling
Run topgrade --dry-run to see which commands Topgrade is running. If the command seems wrong and you know why pleaes tell us so.
If the command seems fine try to run it yourself and tell us if you got a different result from Topgrade.
Additional information:
Adding a '-v' to tmux for debbuging purposes outputs the called commands for tmux:
==> tmux-client-22626.log <==
1618514975.156154 sending message 106 to peer 0x7fc150008000 (0 bytes)
1618514975.156174 cmd_pack_argv: argv[0]=new-window
1618514975.156181 cmd_pack_argv: argv[1]=-a
1618514975.156188 cmd_pack_argv: argv[2]=-t
1618514975.156194 cmd_pack_argv: argv[3]=topgrade:1
1618514975.156201 cmd_pack_argv: argv[4]=ssh -t flexo env TOPGRADE_PREFIX=flexo $SHELL -lc topgrade --keep
1618514975.156216 sending message 200 to peer 0x7fc150008000 (98 bytes)
1618514975.156225 client loop enter
1618514975.166874 peer 0x7fc150008000 message 203
1618514975.166907 client loop exit
Even activating assume_yes
without activating tmux generates an error - but it does not do so if I use -y
.
I would assume the problem lies in using fish as the default shell for my machines
It used to work in a quite old version (This broke around 2021)
Topgrade should integrate with protonup for Linux gaming
https://github.com/AUNaseef/protonup
I would like to transfer the ownership of the original create.io package. @DottoDev what is your username in creates.io?
Topgrade can update itself on this repository.
In the source code I see that r-darwish is still used: https://github.com/topgrade-rs/topgrade/blob/master/src/self_update.rs#L18 . So this probably needs to be changed?
topgrade.exe would succeed at self renaming, or it would rename falling back to a different directory.
It fails with OSError 17: CrossedDevices
cargo install topgrade-rs
Here's the offending line of code in self_renamer.rs
impl SelfRenamer {
pub fn create() -> Result<Self> {
let tempdir = tempfile::tempdir()?;
let temp_path = tempdir.path().join("topgrade.exe");
let exe_path = current_exe()?;
debug!("Current exe in {:?}. Moving it to {:?}", exe_path, temp_path);
fs::rename(&exe_path, &temp_path)?; // <-- this line
Ok(SelfRenamer { exe_path, temp_path })
}
}
Looking at the fs::rename
docs, the reason seems to be this:
This function currently corresponds to the rename function on Unix and the MoveFileEx function with the MOVEFILE_REPLACE_EXISTING flag on Windows.
Because of this, the behavior when both from and to exist differs. On Unix, if from is a directory, to must also be an (empty) directory. If from is not a directory, to must also be not a directory. In contrast, on Windows, from can be anything, but to must not be a directory.
I could make a pull request to resolve this. I have some ideas below, but I don't really know what should be done.
PS> topgrade-rs -nv 2022-10-20T01:51:32.102Z DEBUG topgrade_rs::config > Configuration at ~\AppData\Roaming\topgrade.toml 2022-10-20T01:51:32.103Z DEBUG topgrade_rs::config > Path ~\Home\Applications\hydrus\hydownloader expanded to ~\Home\Applications\hydrus\hydownloader 2022-10-20T01:51:32.103Z DEBUG topgrade_rs::config > Loaded configuration: ConfigFile { pre_commands: Some({}), post_commands: None, commands: Some({"Hydownloader Python Environment": "pwsh.exe -WorkingDirectory ~\\Home\\Applications\\hydrus\\hydownloader -Command 'poetry install --sync --without=dev'", "tinynvidiaupdate": "tinynvidiaupdatechecker.exe --quiet --confirm-dl"}), 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, display_time: Some(true), assume_yes: None, yay_arguments: None, no_retry: None, run_in_tmux: None, cleanup: None, 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: None, autoremove: None }), linux: Some(Linux { yay_arguments: None, arch_package_manager: None, show_arch_news: None, trizen_arguments: None, pikaur_arguments: None, pamac_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: Some(5), arguments: None, repos: Some(["~\\Home\\Applications\\hydrus\\hydownloader"]), pull_predefined: None }), windows: Some(Windows { accept_all_updates: None, self_rename: Some(true), open_remotes_in_new_terminal: None, enable_winget: None }), npm: Some(NPM { use_sudo: None }), yarn: None, vim: None, firmware: Some(Firmware { upgrade: Some(true) }), vagrant: None, flatpak: Some(Flatpak { use_sudo: None }) } 2022-10-20T01:51:32.103Z DEBUG topgrade_rs > Version: 9.1.0 2022-10-20T01:51:32.103Z DEBUG topgrade_rs > OS: x86_64-pc-windows-msvc 2022-10-20T01:51:32.103Z DEBUG topgrade_rs > Args { inner: ["~\\.cargo\\bin\\topgrade-rs.exe", "-nv"] } 2022-10-20T01:51:32.103Z DEBUG topgrade_rs > Binary path: Ok("~\\.cargo\\bin\\topgrade-rs.exe") 2022-10-20T01:51:32.104Z DEBUG topgrade_rs > Self Update: false 2022-10-20T01:51:32.108Z DEBUG topgrade_rs::utils > Detected "~\\scoop\\shims\\git.exe" as "git" 2022-10-20T01:51:32.116Z DEBUG topgrade_rs::utils > Cannot find "doas" 2022-10-20T01:51:32.121Z DEBUG topgrade_rs::utils > Detected "~\\scoop\\shims\\sudo.cmd" as "sudo" 2022-10-20T01:51:32.121Z DEBUG topgrade_rs::self_renamer > Current exe in "~\\.cargo\\bin\\topgrade-rs.exe". Moving it to "~\\AppData\\Local\\Temp\\.tmpTAfK4D\\topgrade.exe" Error: The system cannot move the file to a different disk drive. (os error 17)
I'm not sure what the best way to fix this is. I noticed that MoveFileEx supports moving files across mount points.
When moving a file, the destination can be on a different file system or volume. If the destination is on another drive, you must set the MOVEFILE_COPY_ALLOWED flag in dwFlags.
When moving a directory, the destination must be on the same drive.
diff --git a/src/self_renamer.rs b/src/self_renamer.rs
index ef55639..3649455 100644
--- a/src/self_renamer.rs
+++ b/src/self_renamer.rs
@@ -2,7 +2,8 @@
use anyhow::Result;
use log::{debug, error};
-use std::{env::current_exe, fs, path::PathBuf};
+use std::{env::current_exe, fs, io, iter::once, os::windows::prelude::OsStrExt, path::PathBuf};
+use winapi::um::winbase::{MoveFileExW, MOVEFILE_COPY_ALLOWED, MOVEFILE_REPLACE_EXISTING};
pub struct SelfRenamer {
exe_path: PathBuf,
@@ -17,9 +18,29 @@ impl SelfRenamer {
debug!("Current exe in {:?}. Moving it to {:?}", exe_path, temp_path);
- fs::rename(&exe_path, &temp_path)?;
+ // ref 3f80bee53a5f3acb273c01fdf98fccaf877793e3
+ // Previously used fs::rename which doesn't permit renaming files across mount points despite using MoveFileEx internally.
+ // MoveFileEx with flag MOVEFILE_COPY_ALLOWED lets us transfer files across volumes.
+ // See:
+ // * https://doc.rust-lang.org/std/fs/fn.rename.html
+ // * https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-movefileexw
+ // * https://github.com/retep998/winapi-rs/tree/796a8e6c2971dc2ff1bcff166e6671284f9b5b6b/#example
+ let temp_path_copy: Vec<u16> = temp_path.as_os_str().clone().encode_wide().chain(once(0)).collect();
+ let exe_path_copy: Vec<u16> = exe_path.as_os_str().clone().encode_wide().chain(once(0)).collect();
- Ok(SelfRenamer { exe_path, temp_path })
+ let ret = unsafe {
+ MoveFileExW(
+ exe_path_copy.as_ptr(),
+ temp_path_copy.as_ptr(),
+ MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED,
+ )
+ };
+
+ if ret == 0 {
+ Err(anyhow::Error::from(io::Error::last_os_error()))
+ } else {
+ Ok(SelfRenamer { exe_path, temp_path })
+ }
}
}
MoveFileEx with the MOVEFILE_REPLACE_EXISTING just copies then deletes the original file. So it'd be possible to implement that using fs::copy
and fs::remove_file
, though fs::remove_file
will error out trying to delete the running executable.
Another approach could be to fallback to renaming the file in the local directory. But this obviously has some other drawbacks.
diff --git a/src/self_renamer.rs b/src/self_renamer.rs
index ef55639..efee194 100644
--- a/src/self_renamer.rs
+++ b/src/self_renamer.rs
@@ -1,6 +1,6 @@
#![cfg(windows)]
-use anyhow::Result;
+use anyhow::{Result, bail};
use log::{debug, error};
use std::{env::current_exe, fs, path::PathBuf};
@@ -17,9 +17,26 @@ impl SelfRenamer {
debug!("Current exe in {:?}. Moving it to {:?}", exe_path, temp_path);
- fs::rename(&exe_path, &temp_path)?;
-
- Ok(SelfRenamer { exe_path, temp_path })
+ match fs::rename(&exe_path, &temp_path) {
+ Ok(_) => {
+ Ok(SelfRenamer { exe_path, temp_path })
+ }
+ Err(e) => {
+ // TODO: use io::ErrorKind::CrossesDevices when stable
+ // e.kind() == io::ErrorKind::CrossesDevices
+ // ref https://github.com/rust-lang/rust/issues/86442
+ if e.raw_os_error().unwrap_or_default() == 0x11 {
+ debug!("When moving {:?} to {:?} caught {:?}", exe_path, temp_path, e);
+ let temp_path = exe_path.with_extension("exe.bak");
+ debug!("Moving {:?} to {:?}", exe_path, temp_path);
+ fs::rename(&exe_path, &temp_path)?;
+ Ok(SelfRenamer { exe_path, temp_path })
+ }
+ else {
+ bail!(e);
+ }
+ }
+ }
}
}
See r-darwish/topgrade issue for details.
For many users, English isn't their first language. It'll be cool if topgrade can be translated in other languages using a library called i18n-embed and fluent language
brew install topgrade
should install version 9.1.0 from this repository.
brew install topgrade
installs the old 9.0.1 version
Can you take over maintainership over the Homebrew formulae?
$ cargo run -- --tmux
create window failed: index 0 in use
thread 'main' panicked at 'Error running Topgrade in tmux: exit status: 1', src/steps/tmux.rs:95:35
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
On latest master
(a7c2262)
Distrobox is a tool to integrate other linux distros into your system.
https://github.com/89luca89/distrobox
If its installed.
distrobox upgrade -a
I can add it (Assuming there are no extra steps)
Snap handles upgrades of snaps. Topgrade should ignore snap-install gcloud.
―― 23:06:18 - gcloud ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Beginning update. This process may take several minutes.
ERROR: (gcloud.components.update) You cannot perform this action because this Google Cloud CLI installation is managed by an external package manager.
Please consider using a separate installation of the Google Cloud CLI created through the default mechanism described at: https://cloud.google.com/sdk/
Retry? (y)es/(N)o/(s)hell/(q)uit
➜ ~ topgrade -V
Topgrade 10.0.1
―― 23:07:24 - gcloud ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /snap/bin/gcloud components update --quiet
The GH-Action for publishing to the AUR require that each version to follow some rules:
==> ERROR: pkgver is not allowed to contain colons, forward slashes, hyphens or whitespace.
Is it possiible to replace the -
with a .
?
For example : 10.1.0-cd5
will be 10.1.0.cd5
Topgrade to update OpenMandriva Lx 4.90 (Nickel) Cooker (openmandriva.org)
Error detecting current distribution: Unknown Linux Distribution
Everything runs fine, except the distro update.
Rustup, Cargo, pip3, Vim, Containers, Flatpak, Firmware run ok.
topgrade --dry-run Error detecting current distribution: Unknown Linux Distribution―― 09:03:35 - rustup ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /home/technical/.cargo/bin/rustup self update
Dry running: /home/technical/.cargo/bin/rustup update―― 09:03:35 - Cargo ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /home/technical/.cargo/bin/cargo-install-update install-update --git --all
Dry running: /usr/bin/go env GOPATH―― 09:03:35 - pip3 ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/python3 -m pip install --upgrade --user pip―― 09:03:35 - Vim ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/vim -u /home/technical/.vimrc -U NONE -V1 -nNesS /tmp/.tmpyagdEz―― 09:03:35 - Containers ―――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/docker pull ubuntu:22.04
Dry running: /usr/bin/docker pull portainer/portainer-ce:latest―― 09:03:35 - Flatpak User Packages ――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/flatpak update --user -y―― 09:03:35 - Flatpak System Packages ――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/flatpak update --system -y―― 09:03:35 - Firmware upgrades ――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/fwupdmgr refresh
Dry running: /usr/bin/fwupdmgr get-updates―― 09:03:35 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
config-update: OK
rustup: OK
cargo: OK
pip3: OK
vim: OK
Containers: OK
Flatpak: OK
Firmware upgrades: OK
―― 09:21:35 - Git repositories ――――――――――――――――――――――――――――――――――――――――――――――――― Pulling /home/x/.config/nvim Up-to-date /home/x/.config/nvim thread 'main' panicked at 'called
Option::unwrap()on a
None value', /home/x/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-10.0.0/src/steps/git.rs:234:15
after that it stops working
Topgrade version 10.0.0
armv7 version for e.g. raspberry pi is missing as it existed before in the r-darwish repo.
Topgrade should allow the user to specify (in topgrade.toml) what port to use for each host.
Currently users may only specify port in the ssh arguments that are used for every host.
This means that if the user wants to update multiple hosts with SSH running on different ports (such as behind a NAT) this is not possible.
I would be comfortable helping test this feature.
I would also be willing to work on this feature, but it's a coinflip as to whether I will have the time in the next couple of months, so don't wait on me.
I would suggest to use mdbook and GitHub pages for adding documentation.
So, user will just be able to go to the documentation website instead of the wiki. Maybe a repo in the org for a short URL. I'll glad to work on that if you approve
I expect it would detect that Distrobox is not installed and bypass that section entirely. Instead it gives a "Retry? (y)es/(N)o/(s)hell/(q)uit" message
I am running topgrade update on my Fedora 37 based system and it gives this error message when it gets to the Distrobox section and shows Distrobox Failure at the end.
All commands look fine. It appears that it is just failing when it tries to run "distrobox upgrade --all" because distrobox is not installed.
When I download and extract https://github.com/topgrade-rs/topgrade/releases/download/v10.0.0/topgrade-10.0.0-x86_64-linux-gnu.tar.gz I should directly have the topgrade binary without any subfolders.
When I extract topgrade-10.0.0-x86_64-linux-gnu.tar.gz then I have the directory structure target/x86_64-unknown-linux-gnu/release/topgrade
.
Can you remove all the subdirectories so that the topgrade binary is in the root of the archive?
Hi, first of all many thanks for keeping this project updated 👍
With the standalone binaries at self updating step show a message that Topgrade has been updated or that Topgrade is up to date
With the standalone binaries at self updating step an error message is shown at each execution of Topgrade :
------------- Self update ------------------------------------------------------
[00:00:00] [========================================] 3.60MiB/3.60MiB (0s) Done
Self update error: UpdateError: Could not find the required path in the archive: "topgrade-rs"
Which operating system or Linux distribution are you using?
Tried on OpenSUSE Tumbleweed and Linux Mint 21
How did you install Topgrade?
By extracting topgrade-v10.1.1-x86_64-unknown-linux-gnu.tar.gz or topgrade-v10.1.1-x86_64-unknown-linux-musl.tar.gz to ~/.local/bin
Which version are you running?
Show Topgrade 10.1.0 but the binaries are tagged 10.1.1
user@localhost:~> topgrade --version
Topgrade 10.1.0
A successful update
There's a debug_assert!()
call in src/steps/git.rs:311:9
that fails on popping $HOME/.oh-my-zsh
from the repositories HashSet. I added a couple debug assert's to determine which path causes the panic:
[src/steps/git.rs:309] "{:#?}" = "{:#?}"
[src/steps/git.rs:309] &self.repositories = {
"/Users/nagybotond/.omzcustom/plugins/evalcache",
"/Users/nagybotond/.omzcustom/plugins/msfvenom",
"/Users/nagybotond/.dotfiles",
"/Users/nagybotond/.omzcustom/plugins/zsh-autosuggestions",
}
[src/steps/git.rs:310] "{:#?}" = "{:#?}"
this one >>>>> [src/steps/git.rs:310] path = "/Users/nagybotond/.oh-my-zsh"
thread 'main' panicked at 'assertion failed: _removed', src/steps/git.rs:311:9
stack backtrace:
0: rust_begin_unwind
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/std/src/panicking.rs:575:5
1: core::panicking::panic_fmt
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/core/src/panicking.rs:65:14
2: core::panicking::panic
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/core/src/panicking.rs:115:5
3: topgrade::steps::git::Repositories::remove
at ./src/steps/git.rs:311:9
4: topgrade::steps::zsh::run_oh_my_zsh
at ./src/steps/zsh.rs:161:5
5: topgrade::run::{{closure}}
at ./src/main.rs:289:53
6: topgrade::runner::Runner::execute
at ./src/runner.rs:37:19
7: topgrade::run
at ./src/main.rs:289:9
8: topgrade::main
at ./src/main.rs:489:11
9: core::ops::function::FnOnce::call_once
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/core/src/ops/function.rs:251:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
cargo install topgrade
at first, then I realised it's unmaintained and I ended up here, so I installed it from this repo's main branchDry running finishes the update successfully
cargo run -- --verbose Finished dev [unoptimized + debuginfo] target(s) in 0.08s Running `target/debug/topgrade --verbose` 2022-10-25T23:00:42.725Z DEBUG topgrade::config > Configuration at /Users/nagybotond/.config/topgrade.toml 2022-10-25T23:00:42.727Z DEBUG topgrade::config > Loaded configuration: ConfigFile { pre_commands: Some({}), post_commands: None, commands: Some({}), git_repos: None, predefined_git_repos: None, disable: Some([Mas, Vim, System, GithubCliExtensions, Containers, Pip3, Node, Gem, GitRepos]), ignore_failures: None, remote_topgrades: None, remote_topgrade_path: None, ssh_arguments: None, git_arguments: None, tmux_arguments: None, set_title: None, display_time: None, assume_yes: Some(true), yay_arguments: None, aura_aur_arguments: None, aura_pacman_arguments: None, no_retry: None, 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: None, autoremove: None }), linux: Some(Linux { yay_arguments: None, aura_aur_arguments: None, aura_pacman_arguments: None, arch_package_manager: None, show_arch_news: None, trizen_arguments: None, pikaur_arguments: None, pamac_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, enable_winget: None }), npm: Some(NPM { use_sudo: None }), yarn: None, vim: None, firmware: Some(Firmware { upgrade: None }), vagrant: None, flatpak: Some(Flatpak { use_sudo: None }) } 2022-10-25T23:00:42.728Z DEBUG topgrade > Version: 10.0.0 2022-10-25T23:00:42.728Z DEBUG topgrade > OS: aarch64-apple-darwin 2022-10-25T23:00:42.728Z DEBUG topgrade > Args { inner: ["target/debug/topgrade", "--verbose"] } 2022-10-25T23:00:42.728Z DEBUG topgrade > Binary path: Ok("/Users/nagybotond/dev/forks/topgrade/target/debug/topgrade") 2022-10-25T23:00:42.728Z DEBUG topgrade > Self Update: false 2022-10-25T23:00:42.729Z DEBUG topgrade::utils > Detected "/opt/homebrew/bin/git" as "git" 2022-10-25T23:00:42.729Z DEBUG topgrade::utils > Cannot find "doas" 2022-10-25T23:00:42.729Z DEBUG topgrade::utils > Detected "/usr/bin/sudo" as "sudo" 2022-10-25T23:00:42.730Z DEBUG topgrade::utils > Cannot find "pwsh" 2022-10-25T23:00:42.730Z DEBUG topgrade::utils > Cannot find "powershell" 2022-10-25T23:00:42.730Z DEBUG topgrade::runner > Step "Brew (ARM)" 2022-10-25T23:00:42.730Z DEBUG topgrade::utils > Detected "/opt/homebrew/bin/brew" as "/opt/homebrew/bin/brew"―― 02:00:42 - Brew ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-25T23:00:42.731Z DEBUG topgrade::executor > Running "/opt/homebrew/bin/brew" "update"
Already up-to-date.
2022-10-25T23:00:43.983Z DEBUG topgrade::executor > Running "/opt/homebrew/bin/brew" "upgrade" "--ignore-pinned" "--formula"
2022-10-25T23:00:45.166Z DEBUG topgrade::executor > Running "/opt/homebrew/bin/brew" "cleanup"
2022-10-25T23:00:54.580Z DEBUG topgrade::runner > Step "Brew (Intel)"
2022-10-25T23:00:54.580Z DEBUG topgrade::runner > Step "Brew"
2022-10-25T23:00:54.580Z DEBUG topgrade::utils > Detected "/opt/homebrew/bin/brew" as "brew"
2022-10-25T23:00:54.580Z DEBUG topgrade::runner > Step "Brew Cask (ARM)"
2022-10-25T23:00:54.580Z DEBUG topgrade::utils > Detected "/opt/homebrew/bin/brew" as "/opt/homebrew/bin/brew"―― 02:00:54 - Brew - Cask ――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-25T23:00:55.242Z DEBUG topgrade::executor > Running "/opt/homebrew/bin/brew" "upgrade" "--cask"
2022-10-25T23:00:55.938Z DEBUG topgrade::executor > Running "/opt/homebrew/bin/brew" "cleanup"
2022-10-25T23:01:05.550Z DEBUG topgrade::runner > Step "Brew Cask (Intel)"
2022-10-25T23:01:05.550Z DEBUG topgrade::runner > Step "Brew Cask"
2022-10-25T23:01:05.550Z DEBUG topgrade::utils > Detected "/opt/homebrew/bin/brew" as "brew"
2022-10-25T23:01:05.550Z DEBUG topgrade::runner > Step "MacPorts"
2022-10-25T23:01:05.551Z DEBUG topgrade::runner > Step "yadm"
2022-10-25T23:01:05.551Z DEBUG topgrade::runner > Step "nix"
2022-10-25T23:01:05.551Z DEBUG topgrade::runner > Step "guix"
2022-10-25T23:01:05.551Z DEBUG topgrade::runner > Step "home-manager"
2022-10-25T23:01:05.551Z DEBUG topgrade::runner > Step "asdf"
2022-10-25T23:01:05.552Z DEBUG topgrade::runner > Step "pkgin"
2022-10-25T23:01:05.552Z DEBUG topgrade::runner > Step "bun"
2022-10-25T23:01:05.552Z DEBUG topgrade::utils > Detected "/Users/nagybotond/.bun/bin/bun" as "bun"―― 02:01:05 - Bun ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-25T23:01:05.552Z DEBUG topgrade::executor > Running "/Users/nagybotond/.bun/bin/bun" "upgrade"
Congrats! You're already on the latest version of bun (which is v0.2.1)
2022-10-25T23:01:05.987Z DEBUG topgrade::utils > Path "/Users/nagybotond/.config/emacs" doesn't exist
2022-10-25T23:01:05.987Z DEBUG topgrade::utils > Path "/Users/nagybotond/.emacs.d" doesn't exist
2022-10-25T23:01:05.987Z DEBUG topgrade::steps::git > /Users/nagybotond/.doom.d does not exists
2022-10-25T23:01:05.987Z DEBUG topgrade::steps::git > /Users/nagybotond/.ideavimrc does not exists
2022-10-25T23:01:05.987Z DEBUG topgrade::steps::git > /Users/nagybotond/.intellimacs does not exists
2022-10-25T23:01:05.987Z DEBUG topgrade::steps::git > /Users/nagybotond/.dotfiles/zshrc is a file. Checking /Users/nagybotond/.dotfiles
2022-10-25T23:01:05.987Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.dotfiles is a git repository
2022-10-25T23:01:05.998Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.dotfiles\n", stderr: "" }
2022-10-25T23:01:05.998Z DEBUG topgrade::steps::git > /Users/nagybotond/.tmux does not exists
2022-10-25T23:01:05.998Z DEBUG topgrade::steps::git > /Users/nagybotond/.config/fish does not exists
2022-10-25T23:01:05.999Z DEBUG topgrade::steps::git > /Users/nagybotond/Library/Application Support/openbox does not exists
2022-10-25T23:01:05.999Z DEBUG topgrade::steps::git > /Users/nagybotond/Library/Application Support/bspwm does not exists
2022-10-25T23:01:05.999Z DEBUG topgrade::steps::git > /Users/nagybotond/Library/Application Support/i3 does not exists
2022-10-25T23:01:05.999Z DEBUG topgrade::steps::git > /Users/nagybotond/Library/Application Support/sway does not exists
2022-10-25T23:01:05.999Z DEBUG topgrade::runner > Step "zr"
2022-10-25T23:01:05.999Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.000Z DEBUG topgrade::runner > Step "antibody"
2022-10-25T23:01:06.000Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.001Z DEBUG topgrade::runner > Step "antigen"
2022-10-25T23:01:06.001Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.001Z DEBUG topgrade::utils > Path "/Users/nagybotond/.zshrc" exists
2022-10-25T23:01:06.001Z DEBUG topgrade::runner > Step "zgenom"
2022-10-25T23:01:06.001Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.001Z DEBUG topgrade::utils > Path "/Users/nagybotond/.zshrc" exists
2022-10-25T23:01:06.001Z DEBUG topgrade::runner > Step "zplug"
2022-10-25T23:01:06.001Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.001Z DEBUG topgrade::utils > Path "/Users/nagybotond/.zshrc" exists
2022-10-25T23:01:06.002Z DEBUG topgrade::runner > Step "zinit"
2022-10-25T23:01:06.002Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.002Z DEBUG topgrade::utils > Path "/Users/nagybotond/.zshrc" exists
2022-10-25T23:01:06.002Z DEBUG topgrade::runner > Step "zi"
2022-10-25T23:01:06.002Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.002Z DEBUG topgrade::utils > Path "/Users/nagybotond/.zshrc" exists
2022-10-25T23:01:06.002Z DEBUG topgrade::runner > Step "zim"
2022-10-25T23:01:06.002Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.013Z TRACE topgrade::executor > Output of "zsh" "-c" "[[ -n ${ZIM_HOME} ]] && print -n ${ZIM_HOME}": Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }
2022-10-25T23:01:06.013Z DEBUG topgrade::runner > Step "oh-my-zsh"
2022-10-25T23:01:06.013Z DEBUG topgrade::utils > Detected "/bin/zsh" as "zsh"
2022-10-25T23:01:06.013Z DEBUG topgrade::utils > Path "/Users/nagybotond/.oh-my-zsh" exists―― 02:01:06 - oh-my-zsh ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-25T23:01:06.014Z DEBUG topgrade::steps::zsh > oh-my-zsh custom dir: /Users/nagybotond/.omzcustom/
2022-10-25T23:01:06.014Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom is a git repository
2022-10-25T23:01:06.022Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
2022-10-25T23:01:06.022Z DEBUG topgrade::steps::git > /Users/nagybotond/.dotfiles/omzcustom/aliases.zsh is a file. Checking /Users/nagybotond/.dotfiles/omzcustom
2022-10-25T23:01:06.022Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.dotfiles/omzcustom is a git repository
2022-10-25T23:01:06.029Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.dotfiles\n", stderr: "" }
2022-10-25T23:01:06.029Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/plugins is a git repository
2022-10-25T23:01:06.035Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
2022-10-25T23:01:06.035Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/plugins/evalcache is a git repository
2022-10-25T23:01:06.040Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.omzcustom/plugins/evalcache\n", stderr: "" }
2022-10-25T23:01:06.040Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/plugins/zsh-autosuggestions is a git repository
2022-10-25T23:01:06.045Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.omzcustom/plugins/zsh-autosuggestions\n", stderr: "" }
2022-10-25T23:01:06.045Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/plugins/msfvenom is a git repository
2022-10-25T23:01:06.049Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.omzcustom/plugins/msfvenom\n", stderr: "" }
2022-10-25T23:01:06.049Z DEBUG topgrade::steps::git > /Users/nagybotond/.dotfiles/omzcustom/environment.zsh is a file. Checking /Users/nagybotond/.dotfiles/omzcustom
2022-10-25T23:01:06.049Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.dotfiles/omzcustom is a git repository
2022-10-25T23:01:06.053Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.dotfiles\n", stderr: "" }
2022-10-25T23:01:06.053Z DEBUG topgrade::steps::git > /Users/nagybotond/.omzcustom/example.zsh is a file. Checking /Users/nagybotond/.omzcustom
2022-10-25T23:01:06.053Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom is a git repository
2022-10-25T23:01:06.056Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
2022-10-25T23:01:06.057Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/zcompdump is a git repository
2022-10-25T23:01:06.060Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
2022-10-25T23:01:06.061Z DEBUG topgrade::steps::git > /Users/nagybotond/.dotfiles/omzcustom/path.zsh is a file. Checking /Users/nagybotond/.dotfiles/omzcustom
2022-10-25T23:01:06.061Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.dotfiles/omzcustom is a git repository
2022-10-25T23:01:06.065Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.dotfiles\n", stderr: "" }
2022-10-25T23:01:06.065Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/themes is a git repository
2022-10-25T23:01:06.068Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
2022-10-25T23:01:06.068Z DEBUG topgrade::steps::git > /Users/nagybotond/.omzcustom/themes/example.zsh-theme is a file. Checking /Users/nagybotond/.omzcustom/themes
2022-10-25T23:01:06.068Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.omzcustom/themes is a git repository
2022-10-25T23:01:06.071Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n" }
2022-10-25T23:01:06.071Z DEBUG topgrade::steps::git > /Users/nagybotond/.dotfiles/omzcustom/themes/apple_custom.zsh-theme is a file. Checking /Users/nagybotond/.dotfiles/omzcustom/themes
2022-10-25T23:01:06.071Z DEBUG topgrade::steps::git > Checking if /Users/nagybotond/.dotfiles/omzcustom/themes is a git repository
2022-10-25T23:01:06.074Z TRACE topgrade::executor > Output of "/opt/homebrew/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/Users/nagybotond/.dotfiles\n", stderr: "" }
[src/steps/git.rs:309] "{:#?}" = "{:#?}"
[src/steps/git.rs:309] &self.repositories = {
"/Users/nagybotond/.omzcustom/plugins/evalcache",
"/Users/nagybotond/.omzcustom/plugins/msfvenom",
"/Users/nagybotond/.dotfiles",
"/Users/nagybotond/.omzcustom/plugins/zsh-autosuggestions",
}
[src/steps/git.rs:310] "{:#?}" = "{:#?}"
[src/steps/git.rs:310] path = "/Users/nagybotond/.oh-my-zsh"
thread 'main' panicked at 'assertion failed: _removed', src/steps/git.rs:311:9
stack backtrace:
0: rust_begin_unwind
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/std/src/panicking.rs:575:5
1: core::panicking::panic_fmt
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/core/src/panicking.rs:65:14
2: core::panicking::panic
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/core/src/panicking.rs:115:5
3: topgrade::steps::git::Repositories::remove
at ./src/steps/git.rs:311:9
4: topgrade::steps::zsh::run_oh_my_zsh
at ./src/steps/zsh.rs:161:5
5: topgrade::run::{{closure}}
at ./src/main.rs:289:53
6: topgrade::runner::Runner::execute
at ./src/runner.rs:37:19
7: topgrade::run
at ./src/main.rs:289:9
8: topgrade::main
at ./src/main.rs:489:11
9: core::ops::function::FnOnce::call_once
at /rustc/758f19645b8ebce61ea52d1f6672fd057bc8dbee/library/core/src/ops/function.rs:251:5
note: Some details are omitted, run withRUST_BACKTRACE=full
for a verbose backtrace.
It seems to me that even though the update happens for oh-my-zsh, for some reason it's not present in topgrade::steps::git::repositories, so the remove
call on `repositories returns false:
#[cfg(unix)]
pub fn remove(&mut self, path: &str) {
let _removed = self.repositories.remove(path);
debug_assert!(_removed);
}
I expect an upgrade utility not to alter my recentf-entries. If I do not need these entries, I turn of rencentf-mode.
Topgrade's emacs step removes such entries
topgrade --only=emacs―― 19:43:55 - Emacs ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Loading /home/haawda/.emacs.d/recentf...
Cleaning up the recentf list...
Cleaning up the recentf list...done (0 removed)―― 19:44:00 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Emacs: OK
Nothing, since I already have GE-Proton7-37 installed.
It tried to download the same version and failed. It appears to be an unresolved upstream issue:
AUNaseef/protonup#25
AUNaseef/protonup#37
2022-10-17T22:07:03.196Z DEBUG topgrade_rs::runner > Step "protonup" 2022-10-17T22:07:03.196Z DEBUG topgrade_rs::utils > Detected "/usr/bin/protonup" as "protonup"―― 16:07:03 - protonup ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-17T22:07:03.196Z DEBUG topgrade_rs::executor > Running "/usr/bin/protonup"
Ready to download Proton-GE-Proton7-37
Size : 397.0 MiB
Published : 2022-10-05
Continue? (Y/n):
Downloaded 100.00% - 397.1 MiB / 397.0 MiB
Traceback (most recent call last):
File "/usr/bin/protonup", line 8, in
sys.exit(main())
File "/usr/lib/python3.10/site-packages/protonup/init.py", line 4, in main
return main()
File "/usr/lib/python3.10/site-packages/protonup/cli.py", line 33, in main
get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
File "/usr/lib/python3.10/site-packages/protonup/api.py", line 151, in get_proton
tarfile.open(destination, "r:gz").extractall(install_directory())
File "/usr/lib/python3.10/tarfile.py", line 2059, in extractall
self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.10/tarfile.py", line 2100, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.10/tarfile.py", line 2173, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.10/tarfile.py", line 2214, in makefile
with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/yochanan/.steam/root/compatibilitytools.d/GE-Proton7-37/files/lib64/wine/vkd3d-proton/libvkd3d-proton-utils-3.dll'
2022-10-17T22:07:18.685Z DEBUG topgrade_rs::runner > Step "protonup" failed: exit status: 1
2022-10-17T22:07:18.685Z DEBUG topgrade_rs::terminal > Desktop notification: protonup failed
Please disable functionality for now until upstream resolves the issue.
It's giving package maintainers a bit of an annoyance. At least make sure the stuff works lmao
Topgrade should run Fisher even if .config/fish/functions/fisher.fish doesn't exist. This is e.g. the case for Homebrew installations of Fisher.
Based on discussion started in #82.
Consistent casing for the name of this project would be great, primarily concerning the README, documentation and outputs of the tool.
The question is whether to use Topgrade
or topgrade
.
This is how the discussion has gone so far:
@DottoDev
Consistency would be great, but I don't really know if topgrade or Topgrade should be used. But probably would be topgrade the better option.
Thanks for your feedback! I'm not sure either... I would probably have said "topgrade" too.
However, "Topgrade" is currently used a little more in the source code:❯ grep " Topgrade " * -r | wc -l 16 ❯ grep " topgrade " * -r | wc -l 6Should we just go with
"topgrade""Topgrade"? I mean we can always change it back at a later time.
I'd happy to provide a PR for this.Edit: Okay, I briefly tested how the documentation looks when "topgrade" is used everywhere and I must say IMO it looks better with "Topgrade". I think same goes for the README.
I installed Garuda yesterday and have been slowly building it up. Shortly after installing I installed you version of Topgrade. Everytime it's run it gets to a tool called Distrobox and won't do anything with it, it just fails and I'm asked if I want to try again. I looked for Distrobox using Pamac and of the 3 versions listed according to Pamac none are installed. I contacted Garuda to see if it was something they added and according to them no. I'm at a lost on how to either fix Distrobox or remove it since it's not liusted as installed. Any help with this would be greatly appreciated. Thanks
╭─locutus@Unimatrix in ~
╰─λ topgrade
―― 07:06:53 - System update ――――――――――――――――――――――――――――――――――――――――――――――――――――
[sudo] password for locutus:
:: Synchronizing package databases...
garuda is up to date
core is up to date
extra is up to date
community is up to date
multilib is up to date
chaotic-aur 2.3 MiB 4.89 MiB/s 00:00 [-------------------------------------] 100%
arcolinux_repo 131.7 KiB 775 KiB/s 00:00 [-------------------------------------] 100%
arcolinux_repo_3party 283.3 KiB 1445 KiB/s 00:00 [-------------------------------------] 100%
arcolinux_repo_xlarge 34.6 KiB 324 KiB/s 00:00 [-------------------------------------] 100%
nemesis_repo is up to date
endeavouros is up to date
xerolinux_repo is up to date
xerolinux_repo_xl is up to date
:: Starting full system upgrade...
warning: topgrade-git: local (10.0.1.r1163.5a6f0d2-1) is newer than arcolinux_repo_3party (r1080.57f38a0-1)
there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
-> topgrade-git: local (10.0.1.r1163.5a6f0d2-1) is newer than arcolinux_repo_3party (r1080.57f38a0-1)
-> Flagged Out Of Date AUR Packages: komga
there is nothing to do
―― 07:07:05 - Configuration update ―――――――――――――――――――――――――――――――――――――――――――――
==> pacnew file found for /etc/pamac.conf
:: (V)iew, (M)erge, (S)kip, (R)emove pacnew, (O)verwrite with pacnew, (Q)uit: [v/m/s/r/o/q] s
―― 07:07:09 - oh-my-zsh ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Pulling custom plugins and themes
Pulling /home/locutus/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
Pulling /home/locutus/.oh-my-zsh/custom/themes/powerlevel10k
Pulling /home/locutus/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Pulling /home/locutus/.oh-my-zsh/custom/plugins/zsh-completions
Up-to-date /home/locutus/.oh-my-zsh/custom/themes/powerlevel10k
Up-to-date /home/locutus/.oh-my-zsh/custom/plugins/zsh-completions
Up-to-date /home/locutus/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
Up-to-date /home/locutus/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Updating Oh My Zsh
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/
Oh My Zsh is already at the latest version.
To keep up with the latest news and updates, follow us on Twitter: https://twitter.com/ohmyzsh
Want to get involved in the community? Join our Discord: https://discord.gg/ohmyzsh
Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh
―― 07:07:10 - TLDR ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Successfully updated cache.
―― 07:07:10 - micro ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Checking for plugin updates
Nothing to install / update
―― 07:07:11 - Flatpak User Packages ――――――――――――――――――――――――――――――――――――――――――――
Looking for updates…
Nothing to do.
―― 07:07:11 - Flatpak System Packages ――――――――――――――――――――――――――――――――――――――――――
Looking for updates…
Nothing to do.
―― 07:07:11 - Distrobox ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Retry? (y)es/(N)o/(s)hell/(q)uit
―― 07:07:13 - Firmware upgrades ――――――――――――――――――――――――――――――――――――――――――――――――
Firmware metadata last refresh: 18 hours ago. Use --force to refresh again.
Devices with no available firmware updates:
• System Firmware
• Unifying Receiver
• Unifying Receiver
• WD Blue SN570 500GB
Devices with the latest available firmware version:
• UEFI dbx
No updates available
―― 07:07:13 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
System update: OK
config-update: OK
oh-my-zsh: OK
TLDR: OK
micro: OK
Flatpak: OK
distrobox: FAILED
Firmware upgrades: OK
Pacman backup configuration files found:
/etc/pamac.conf.pacnew
/etc/paru.conf.pacsave
╭─locutus@Unimatrix in ~ as 🧙 took 1ms
╰─λ topgrade --dry-run
―― 07:09:36 - System update ――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/yay --pacman pacman -Syu
―― 07:09:37 - Configuration update ―――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/sudo --preserve-env=DIFFPROG /usr/bin/pacdiff
―― 07:09:37 - oh-my-zsh ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Pulling custom plugins and themes
Would pull /home/locutus/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Would pull /home/locutus/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
Would pull /home/locutus/.oh-my-zsh/custom/plugins/zsh-completions
Would pull /home/locutus/.oh-my-zsh/custom/themes/powerlevel10k
Dry running: zsh /home/locutus/.oh-my-zsh/tools/upgrade.sh
―― 07:09:37 - TLDR ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/tldr --update
―― 07:09:37 - micro ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/micro -plugin update
―― 07:09:37 - Flatpak User Packages ――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/flatpak update --user
―― 07:09:37 - Flatpak System Packages ――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/flatpak update --system
―― 07:09:37 - Distrobox ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: distrobox upgrade --all
―― 07:09:37 - Firmware upgrades ――――――――――――――――――――――――――――――――――――――――――――――――
Dry running: /usr/bin/fwupdmgr refresh
Dry running: /usr/bin/fwupdmgr get-updates
―― 07:09:37 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
System update: OK
config-update: OK
oh-my-zsh: OK
TLDR: OK
Flatpak: OK
distrobox: OK
Firmware upgrades: OK
Pacman backup configuration files found:
/etc/pamac.conf.pacnew
/etc/paru.conf.pacsave
Hey
I was wondering how to build package from this fork. PKGBUILD on AUR still points to old Git repo... Am not good at making PKGBUILD files...
Thanks...
Thanks a lot for taking over maintainership of Topgrade, highly appreciated!
Can you make a Github release? The README currently refers to Github releases, but there are none here. That way we indicate to users that this project will continue to be maintained.
I ran the git step via topgrade targeting a repo where I recently created a local branch for some work in progress. This branch was never pushed to the remote. I expected topgrade to 1) fetch all other branches and 2) consider this branch up-to-date, as there can be no more recent refs for a branch that only exists locally.
Topgrade fails with an error, where git complains that my local branch has no tracking information.
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> bence/my-local-branch
In followup to r-darwish/topgrade#1023
I was trying out topgrade and getting polkit errors, preventing topgrade from running.
Installing sudo solved the issue - but not sure topgrade should depend on sudo
(FreeBSD 13.1-RELEASE-p2)
I do not have doas installed!
desinstalled sudo to reproduce error:
root#: topgrade
―― 13:57:08 - FreeBSD Packages
Error checking for authorization org.freedesktop.policykit.exec: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: get_kinfo_proc() failed for pid 3001: No such process
Retry? (y)es/(N)o/(s)hell/(q)uit
―― 13:57:16 - Composer
Changed current directory to /root/.composer
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
―― 13:57:17 - FreeBSD Update
Error checking for authorization org.freedesktop.policykit.exec: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: get_kinfo_proc() failed for pid 3001: No such process
Retry? (y)es/(N)o/(s)hell/(q)uit
―― 13:57:21 - Summary
FreeBSD Packages: FAILED
composer: OK
FreeBSD Upgrade: FAILED
Error checking for authorization org.freedesktop.policykit.exec: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: get_kinfo_proc() failed for pid 3001: No such process
Not to have Distrobox enabled by default as it's erroring out every time..
System update: OK
nix: OK
oh-my-zsh: OK
rustup: OK
pip3: OK
Flatpak: OK
distrobox: FAILED
Firmware upgrades: OK
Dry run going fine Distrobox
says ok but not actually...
―― 11:50:29 - Distrobox ―――――――――――――――――――――――――――――――――――――――――――――――――――――――― 2022-11-05T09:50:29.183Z DEBUG topgrade::executor > Running "distrobox" "upgrade" "--all" 2022-11-05T09:50:29.183Z DEBUG topgrade::runner > Step "distrobox" failed: No such file or directory (os error 2) 2022-11-05T09:50:29.183Z DEBUG topgrade::terminal > Desktop notification: distrobox failedRetry? (y)es/(N)o/(s)hell/(q)uit
For the script to just continue if there is nothing to update.
This step always fails.
--dry-run doesn't show me that yarn is being run. The last visible step is pnpm which seems to finish fine.
―― 08:12:42 - Node Package Manager ――――――――――――――――――――――――――――――――――――――――――――― 2022-11-02T07:12:42.593Z TRACE topgrade_rs::executor > Output of "/usr/local/bin/pnpm" "--version": Output { status: ExitStatus(unix_wait_status(0)), stdout: "7.5.2\n", stderr: "" } 2022-11-02T07:12:42.593Z DEBUG topgrade_rs::executor > Running "/usr/local/bin/pnpm" "update" "-g" Already up-to-date Progress: resolved 36, reused 36, downloaded 0, added 0, done 2022-11-02T07:12:43.849Z DEBUG topgrade_rs::runner > Step "yarn" 2022-11-02T07:12:43.849Z DEBUG topgrade_rs::utils > Detected "/usr/local/bin/yarn" as "yarn" 2022-11-02T07:12:43.849Z DEBUG topgrade_rs::utils > Detected "/usr/local/bin/yarn" as "yarn" 2022-11-02T07:12:44.174Z TRACE topgrade_rs::executor > Output of "/usr/local/bin/yarn" "global" "dir": Output { status: ExitStatus(unix_wait_status(256)), stdout: "\u{1b}[31m\u{1b}[1mUsage Error\u{1b}[22m\u{1b}[39m: No project found in /home/\n\n\u{1b}[1m$ \u{1b}[22myarn run [--inspect] [--inspect-brk] [-T,--top-level] [-B,--binaries-only] ...\n", stderr: "" } 2022-11-02T07:12:44.174Z DEBUG topgrade_rs::runner > Step "yarn" failed: exit status: 1: 2022-11-02T07:12:44.174Z DEBUG topgrade_rs::terminal > Desktop notification: yarn failedRetry? (y)es/(N)o/(s)hell/(q)uit
aura is an AUR helper and can be used for all regular pacman commands
Arch Linux and its derivatives
check if it is installed and the user has set arch_package_manager to aura
sudo aura -Akux (for aur packages)(this step has a hard dependency on sudo)
sudo aura -Syu (for pacman packages)
https://bedrocklinux.org/ -> Linux
Topgrade needs to invoke pmm
(package manager manger) and upgrade all strats with (brl
)
sudo pmm -Syu
and sudo brl update
I would like to work on that (i'm going to submit a PR soon)
I have both npm
and pnpm
installed, I use npm
for global installs and pnpm
for projects.
I upgraded topgrade and since this commit 27349b1 it's now using pnpm
for global upgrades.
pnpm
should not be considered an alternative to npm
as most users will have both installed (I don't think you can actually have pnpm
and not have npm
)
Additionally, topgrade
created a ~
directory in my HOME directory with empty Library/pnpm
directories
―― 09:57:13 - Node Package Manager ―――――――――――――――――――――――――――――――――――――――――――――
Dry running: /opt/homebrew/bin/pnpm update -g
This should remain as npm update -g
Release needs to be updated in 10.0.1
Line 8 in 2861044
Topgrade performs upgrade sucsessfuly
Topgrade panics during upgrade
―― 11:03:56 - System update ――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-26T08:03:56.400Z DEBUG topgrade::executor > Running "/usr/bin/sudo" "zypper" "refresh"
Repository 'Visual Studio Code' is up to date.
Repository 'nVidia Graphics Drivers' is up to date.
Repository 'Main Repository (NON-OSS)' is up to date.
Repository 'Main Repository (OSS)' is up to date.
Repository 'Main Update Repository' is up to date.
Repository 'Packman Repository' is up to date.
Repository 'Rancher stable packages (rpm)' is up to date.
All repositories have been refreshed.
2022-10-26T08:03:57.531Z DEBUG topgrade::executor > Running "/usr/bin/sudo" "zypper" "dist-upgrade"
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
Nothing to do.
2022-10-26T08:03:58.615Z DEBUG topgrade::runner > Step "config-update"
2022-10-26T08:03:58.615Z DEBUG topgrade::runner > Step "Brew"
2022-10-26T08:03:58.616Z DEBUG topgrade::utils > Detected "/home/linuxbrew/.linuxbrew/bin/brew" as "brew"
―― 11:03:58 - Brew ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-26T08:03:58.616Z DEBUG topgrade::executor > Running "brew" "update"
Already up-to-date.
2022-10-26T08:04:00.587Z DEBUG topgrade::executor > Running "brew" "upgrade" "--ignore-pinned" "--formula"
2022-10-26T08:04:01.898Z DEBUG topgrade::runner > Step "yadm"
2022-10-26T08:04:01.898Z DEBUG topgrade::runner > Step "nix"
2022-10-26T08:04:01.898Z DEBUG topgrade::runner > Step "guix"
2022-10-26T08:04:01.898Z DEBUG topgrade::runner > Step "home-manager"
2022-10-26T08:04:01.898Z DEBUG topgrade::runner > Step "asdf"
2022-10-26T08:04:01.899Z DEBUG topgrade::utils > Detected "/home/mark/.asdf/bin/asdf" as "asdf"
―― 11:04:01 - asdf ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-26T08:04:01.899Z DEBUG topgrade::executor > Running "/home/mark/.asdf/bin/asdf" "update"
HEAD is now at 7e7a1fa chore: release 0.10.2 (#1233)
Updated asdf to release v0.10.2
2022-10-26T08:04:02.566Z DEBUG topgrade::executor > Running "/home/mark/.asdf/bin/asdf" "plugin" "update" "--all"
Updating golang to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating nodejs to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating java to master
Already on 'master'
Your branch is up to date with 'origin/master'.
2022-10-26T08:04:03.744Z DEBUG topgrade::runner > Step "pkgin"
2022-10-26T08:04:03.744Z DEBUG topgrade::runner > Step "bun"
2022-10-26T08:04:03.744Z DEBUG topgrade::utils > Path "/home/mark/.config/emacs" doesn't exist
2022-10-26T08:04:03.744Z DEBUG topgrade::utils > Path "/home/mark/.emacs.d" doesn't exist
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > /home/mark/.doom.d does not exists
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > /home/mark/.vim does not exists
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > /home/mark/.config/nvim does not exists
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > /home/mark/.ideavimrc does not exists
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > /home/mark/.intellimacs does not exists
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > /home/mark/.zshrc is a file. Checking /home/mark
2022-10-26T08:04:03.744Z DEBUG topgrade::steps::git > Checking if /home/mark is a git repository
2022-10-26T08:04:03.745Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any parent up to mount point /)\nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n" }
2022-10-26T08:04:03.745Z DEBUG topgrade::steps::git > /home/mark/.tmux does not exists
2022-10-26T08:04:03.745Z DEBUG topgrade::steps::git > Checking if /home/mark/.config/fish is a git repository
2022-10-26T08:04:03.747Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(32768)), stdout: "", stderr: "fatal: not a git repository (or any parent up to mount point /)\nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n" }
2022-10-26T08:04:03.747Z DEBUG topgrade::steps::git > /home/mark/.config/openbox does not exists
2022-10-26T08:04:03.747Z DEBUG topgrade::steps::git > /home/mark/.config/bspwm does not exists
2022-10-26T08:04:03.747Z DEBUG topgrade::steps::git > /home/mark/.config/i3 does not exists
2022-10-26T08:04:03.747Z DEBUG topgrade::steps::git > /home/mark/.config/sway does not exists
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "Git repositories"
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "zr"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "antibody"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "antigen"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Path "/home/mark/.zshrc" exists
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "zgenom"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Path "/home/mark/.zshrc" exists
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "zplug"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Path "/home/mark/.zshrc" exists
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "zinit"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Path "/home/mark/.zshrc" exists
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "zi"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Path "/home/mark/.zshrc" exists
2022-10-26T08:04:03.747Z DEBUG topgrade::runner > Step "zim"
2022-10-26T08:04:03.747Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.750Z TRACE topgrade::executor > Output of "zsh" "-c" "[[ -n ${ZIM_HOME} ]] && print -n ${ZIM_HOME}": Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }
2022-10-26T08:04:03.750Z DEBUG topgrade::runner > Step "oh-my-zsh"
2022-10-26T08:04:03.750Z DEBUG topgrade::utils > Detected "/usr/bin/zsh" as "zsh"
2022-10-26T08:04:03.750Z DEBUG topgrade::utils > Path "/home/mark/.oh-my-zsh" exists
―― 11:04:03 - oh-my-zsh ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-10-26T08:04:03.753Z TRACE topgrade::executor > Output of "zsh" "-c" "test $ZSH_CUSTOM && echo -n $ZSH_CUSTOM": Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }
2022-10-26T08:04:03.753Z DEBUG topgrade::steps::zsh > Running zsh returned exit status: 1: . Using default path: /home/mark/.oh-my-zsh/custom
2022-10-26T08:04:03.753Z DEBUG topgrade::steps::zsh > oh-my-zsh custom dir: /home/mark/.oh-my-zsh/custom
2022-10-26T08:04:03.754Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom is a git repository
2022-10-26T08:04:03.755Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh\n", stderr: "" }
2022-10-26T08:04:03.755Z DEBUG topgrade::steps::git > /home/mark/.oh-my-zsh/custom/example.zsh is a file. Checking /home/mark/.oh-my-zsh/custom
2022-10-26T08:04:03.755Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom is a git repository
2022-10-26T08:04:03.756Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh\n", stderr: "" }
2022-10-26T08:04:03.756Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins is a git repository
2022-10-26T08:04:03.757Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh\n", stderr: "" }
2022-10-26T08:04:03.757Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/example is a git repository
2022-10-26T08:04:03.759Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh\n", stderr: "" }
2022-10-26T08:04:03.759Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/zsh-completions is a git repository
2022-10-26T08:04:03.760Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/plugins/zsh-completions\n", stderr: "" }
2022-10-26T08:04:03.760Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting is a git repository
2022-10-26T08:04:03.762Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting\n", stderr: "" }
2022-10-26T08:04:03.762Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/zsh-autosuggestions is a git repository
2022-10-26T08:04:03.763Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/plugins/zsh-autosuggestions\n", stderr: "" }
2022-10-26T08:04:03.763Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/nerdctl is a git repository
2022-10-26T08:04:03.764Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/plugins/nerdctl\n", stderr: "" }
2022-10-26T08:04:03.764Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/telepresence is a git repository
2022-10-26T08:04:03.765Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/plugins/telepresence\n", stderr: "" }
2022-10-26T08:04:03.765Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/plugins/epinio is a git repository
2022-10-26T08:04:03.766Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/plugins/epinio\n", stderr: "" }
2022-10-26T08:04:03.766Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/themes is a git repository
2022-10-26T08:04:03.767Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh\n", stderr: "" }
2022-10-26T08:04:03.767Z DEBUG topgrade::steps::git > /home/mark/.oh-my-zsh/custom/themes/example.zsh-theme is a file. Checking /home/mark/.oh-my-zsh/custom/themes
2022-10-26T08:04:03.767Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/themes is a git repository
2022-10-26T08:04:03.769Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh\n", stderr: "" }
2022-10-26T08:04:03.769Z DEBUG topgrade::steps::git > Checking if /home/mark/.oh-my-zsh/custom/themes/powerlevel10k is a git repository
2022-10-26T08:04:03.770Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "--show-toplevel": Output { status: ExitStatus(unix_wait_status(0)), stdout: "/home/mark/.oh-my-zsh/custom/themes/powerlevel10k\n", stderr: "" }
Pulling custom plugins and themes
2022-10-26T08:04:03.771Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.772Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.773Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.774Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.775Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.777Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.778Z TRACE topgrade::executor > Output of "/usr/bin/git" "remote" "show": Output { status: ExitStatus(unix_wait_status(0)), stdout: "origin\n", stderr: "" }
2022-10-26T08:04:03.780Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "655576f336f4c956b59a5f4424c5ffd361964b35\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/plugins/zsh-completions
2022-10-26T08:04:03.782Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "122dc464392302114556b53ec01a1390c54f739f\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
2022-10-26T08:04:03.784Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "dd46501b9c838ad7424569f98c0194fc0e808bed\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/plugins/telepresence
2022-10-26T08:04:03.785Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "81adf993a1baeaea503fa9d187f97ef6b86e763a\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/plugins/epinio
2022-10-26T08:04:03.786Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "a411ef3e0992d4839f0732ebeb9823024afaaaa8\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/plugins/zsh-autosuggestions
2022-10-26T08:04:03.787Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "6f153508a932e25cca2b914ffcddb73eb2f98de9\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/plugins/nerdctl
2022-10-26T08:04:03.789Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "8091c8a3a8a845c70046684235a01cd500075def\n", stderr: "" }
Pulling /home/mark/.oh-my-zsh/custom/themes/powerlevel10k
2022-10-26T08:04:04.268Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "122dc464392302114556b53ec01a1390c54f739f\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
2022-10-26T08:04:04.271Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "6f153508a932e25cca2b914ffcddb73eb2f98de9\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/plugins/nerdctl
2022-10-26T08:04:04.284Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "655576f336f4c956b59a5f4424c5ffd361964b35\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/plugins/zsh-completions
2022-10-26T08:04:04.294Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "a411ef3e0992d4839f0732ebeb9823024afaaaa8\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/plugins/zsh-autosuggestions
2022-10-26T08:04:04.324Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "8091c8a3a8a845c70046684235a01cd500075def\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/themes/powerlevel10k
2022-10-26T08:04:05.425Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "dd46501b9c838ad7424569f98c0194fc0e808bed\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/plugins/telepresence
2022-10-26T08:04:05.497Z TRACE topgrade::executor > Output of "/usr/bin/git" "rev-parse" "HEAD": Output { status: ExitStatus(unix_wait_status(0)), stdout: "81adf993a1baeaea503fa9d187f97ef6b86e763a\n", stderr: "" }
Up-to-date /home/mark/.oh-my-zsh/custom/plugins/epinio
thread 'main' panicked at 'called Option::unwrap()
on a None
value', /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/topgrade-10.0.0/src/steps/git.rs:234:15
For it to work....
Failed for Paru and Distrobox..
― 18:02:55 - Distrobox ―――――――――――――――――――――――――――――――――――――――――――――――――――――――― 2022-11-06T16:02:55.916Z DEBUG topgrade::executor > Running "/usr/bin/distrobox" "upgrade" "--all" Missing dependency: we need a container manager. Please install one of podman or docker. You can follow the documentation on: man distrobox-compatibility or: https://github.com/89luca89/distrobox/blob/main/docs/compatibility.mdAn error occurred
2022-11-06T16:02:55.923Z DEBUG topgrade::runner > Step "distrobox" failed: exit status: 127
2022-11-06T16:02:55.923Z DEBUG topgrade::terminal > Desktop notification: distrobox failed―― 18:02:46 - System update ――――――――――――――――――――――――――――――――――――――――――――――――――――
2022-11-06T16:02:46.641Z DEBUG topgrade::utils > Cannot find "powerpill"
2022-11-06T16:02:46.641Z DEBUG topgrade::utils > Detected "/usr/bin/paru" as "paru"
/usr/bin/paru: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
2022-11-06T16:02:46.641Z DEBUG topgrade::executor > Running "/usr/bin/paru" "--pacman" "pacman" "-Syu" "--nodevel" "--noconfirm"
/usr/bin/paru: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
2022-11-06T16:02:46.641Z DEBUG topgrade::runner > Step "System update" failed: exit status: 127
2022-11-06T16:02:46.641Z DEBUG topgrade::terminal > Desktop notification: System update failed
Just for you to know, there is a corrupt topgrade-10.0.0-x86_64-linux-gnu.tar.gz download listed in the release assets of the last 10.0.1 version.
When you install new kernel or kernel module or something, zypper (OpenSUSE pm) may request to reboot
Also, GNOME Shell extensions expect shell restart to be reapplied (there are enough to logout)
zypper needs-rebooting
returns true, ask for reboot (probably, /usr/sbin/reboot
)gnome-session-quit
busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")'
or if Shell version >= 41 logout tooI run tmux with below option.
tmux -y -t
At the end I get below option
(R)eboot
(S)hell
(Q)uit
Is it possible to add an option to quit automatically after the update and write the updates to a log file. This can then be used to run using cron job.
topgrade already runs nala
instead of apt
if it's installed on debian based distros, but on termux it doesn't
That would be awesome if we can have a logo. I create this issue as a tracker, feel free to comment your ideas.
Hi, in the AUR I get the following error message:
url: (22) The requested URL returned error: 404
==> ERROR: Failure while downloading https://github.com/topgrade-rs/topgrade/archive/v10.1.0.tar.gz
Using nix profile
will obsolete/break nix-env
Nix upgrade uses nix profile
when the profile contains manifest.json
(like nix-env does the check):
/nix/var/nix/profiles/per-user/manu/profile/manifest.json
The command that is applicable then is:
nix profile upgrade '.*'
―― 15:28:57 - Nix ―――――――――
this derivation will be built:
/nix/store/bc8p7vjvhpfrgv3h12h767yv4kbw1prm-home-manager.drv
building '/nix/store/bc8p7vjvhpfrgv3h12h767yv4kbw1prm-home-manager.drv'...
unpacking channels...
error: profile '/nix/var/nix/profiles/per-user/manu/profile' is incompatible with 'nix-env'; please use 'nix profile' instead
cargo install topgrade-rs
Topgrade 9.1.0
Dry running: /nix/var/nix/profiles/default/bin/nix-channel --update Dry running: /nix/var/nix/profiles/default/bin/nix-env --upgrade
copying the file to the bin folder is not safe as the user needs root and may end up deleting files from the system
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.