No description
  • Rust 99.5%
  • Vim Script 0.4%
Find a file
renovate[bot] 78dc1b2ad2
Some checks failed
Check i18n / check_locale (push) Has been cancelled
Check Security Vulnerability / DevSkim (push) Has been cancelled
Rust CI / Format (cargo fmt) (push) Has been cancelled
Rust CI / Custom checks (push) Has been cancelled
Release-plz / Release-plz release (push) Has been cancelled
Release-plz / Release-plz PR (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Rust CI / MSRV check (macOS-x86_64) (push) Has been cancelled
Rust CI / MSRV check (macOS-aarch64) (push) Has been cancelled
Rust CI / MSRV check (Linux) (push) Has been cancelled
Rust CI / MSRV check (Windows) (push) Has been cancelled
Rust CI / macOS-x86_64 (push) Has been cancelled
Rust CI / macOS-aarch64 (push) Has been cancelled
Rust CI / Android (push) Has been cancelled
Rust CI / FreeBSD (push) Has been cancelled
Rust CI / Linux (push) Has been cancelled
Rust CI / NetBSD (push) Has been cancelled
Rust CI / Windows (push) Has been cancelled
chore(deps): lock file maintenance (#2061)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 19:14:24 +02:00
.github chore(deps): update vmactions/openbsd-vm action to v1.4.2 (#2054) 2026-06-02 19:13:17 +02:00
doc docs: new demo video (#584) 2023-10-18 09:33:37 +08:00
locales fix(powershell): handle unavailable Update-Module (#1993) 2026-05-16 15:32:28 +02:00
src feat(vim): add opt-in vim.pack pruning (#2044) 2026-05-25 14:26:36 +02:00
.gitignore Add GitHub Actions Workflow for Build and Test (#717) 2024-02-25 10:35:56 +08:00
.pre-commit-config.yaml chore(pre-commit): autoupdate (#2064) 2026-06-02 19:09:18 +02:00
build.rs refactor: improve path handling in config, node steps, and build (#2015) 2026-05-25 08:31:25 +02:00
Cargo.lock chore(deps): lock file maintenance (#2061) 2026-06-02 19:14:24 +02:00
Cargo.toml chore: release v17.5.1 (#2025) 2026-05-20 09:19:01 +02:00
CHANGELOG.md chore: release v17.5.1 (#2025) 2026-05-20 09:19:01 +02:00
clippy.toml chore(clippy): ban Command::new via clippy disallowed-methods rule 2026-02-10 20:34:49 +01:00
CODE_OF_CONDUCT.md feat: add coc (#140) 2022-11-04 12:08:23 +00:00
config.example.toml feat(vim): add opt-in vim.pack pruning (#2044) 2026-05-25 14:26:36 +02:00
CONTRIBUTING.md refactor: remove unnecessary cfgs from default_steps (#1944) 2026-04-09 20:52:34 +02:00
LICENSE Rename LICENCE to LICENSE (#96) 2018-11-21 07:56:41 +02:00
pyproject.toml chore(pyproject): remove deprecated license classifier (#1889) 2026-03-26 14:30:13 +01:00
README.md docs(readme): use GFM note (#1910) 2026-04-04 16:48:04 +02:00
release-plz.toml ci(release): enable immutable releases (#1857) 2026-03-13 12:47:23 +01:00
RELEASE_PROCEDURE.md feat: improve breaking changes notifications (#1827) 2026-03-06 19:59:30 +01:00
rust-toolchain.toml chore(deps): update rust to v1.96.0 (#2058) 2026-06-02 19:13:09 +02:00
rustfmt.toml Increase the maximum line size 2018-07-03 14:33:48 +03:00
SECURITY.md docs: Update SECURITY.md (#1421) 2025-11-02 15:59:45 +01:00
translate.sh feat: add damp run type (#1217) 2025-11-02 15:06:35 +01:00

Topgrade

GitHub Release crates.io AUR Homebrew
Discord

Demo

Introduction

Note

This is a fork of topgrade by r-darwish to keep it maintained.

Keeping your system up-to-date usually involves invoking multiple package managers. This results in big, non-portable shell one-liners saved in your shell. To remedy this, Topgrade detects which tools you use and runs the appropriate commands to update them.

Installation

Packaging status

Official

Community-maintained

Usage

Just run topgrade.

Configuration

See config.example.toml for an example configuration file.

MSRV

Find the current MSRV in Cargo.toml under rust-version. This MSRV will only be bumped in a major release.

Migration and Breaking Changes

Whenever there is a breaking change, the major version number will be bumped, and we will document these changes in the release note, please take a look at it when updated to a major release.

Got a question? Feel free to open an issue or discussion!

Configuration Path

CONFIG_DIR on each platform

  • Windows: %APPDATA%
  • macOS and other Unix systems: ${XDG_CONFIG_HOME:-~/.config}

topgrade will look for the configuration file in the following places, in order of priority:

  1. CONFIG_DIR/topgrade.toml
  2. CONFIG_DIR/topgrade/topgrade.toml

If the file with higher priority is present, no matter if it is valid or not, the other configuration files will be ignored.

On the first run (provided that no configuration file exists), topgrade will create a configuration file at CONFIG_DIR/topgrade.toml for you.

Custom Commands

Custom commands can be defined in the configuration file, which can be run before, during, or after the inbuilt commands, as required. By default, the custom commands are run using a new shell according to the $SHELL environment variable on Unix (falls back to sh) or pwsh on Windows (falls back to powershell).

On Unix, if you want to run your command using an interactive shell, for example to source your shell's RC files, you can add -i at the start of your custom command. Although note that this requires the command to exit the shell correctly, or else the shell will hang indefinitely.

Remote Execution

You can specify a key called remote_topgrades in the configuration file. This key should contain a list of hostnames that have Topgrade installed on them. Topgrade will use ssh to run topgrade on remote hosts before acting locally. To limit the execution only to specific hosts use the --remote-host-limit parameter.

Contribution

Problems or missing features?

Open a new issue describing your problem and if possible provide a solution.

Missing a feature or found an unsupported tool/distro?

Just let us now what you are missing by opening an issue. For tools, please open an issue describing the tool, which platforms it supports and if possible, give us an example of its usage.

Want to contribute?

See CONTRIBUTING.md

Discord server

You're welcome to join our Discord server if you want to discuss Topgrade!