Skip to main content

Upgrade all the things

Project description

Topgrade

GitHub Release crates.io AUR Homebrew

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

Other systems users can either use cargo install or the compiled binaries from the release page. The compiled binaries contain a self-upgrading feature.

Currently, Topgrade requires Rust 1.65 or above. In general, Topgrade tracks the latest stable toolchain.

Usage

Just run topgrade.

Visit the documentation at topgrade-rs.github.io for more information.

Warning Work in Progress

Configuration

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

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 it is valid or not, the other configuration files will be ignored.

On the first run(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 config 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. But 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 to the code?

Just fork the repository and start coding.

Contribution Guidelines

See CONTRIBUTING.md

Roadmap

  • Add a proper testing framework to the code base.
  • Add unit tests for package managers.
  • Split up code into more maintainable parts, eg. putting every linux package manager in a own submodule of linux.rs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topgrade-13.0.0.tar.gz (4.4 MB view details)

Uploaded Source

Built Distributions

topgrade-13.0.0-py3-none-win_amd64.whl (1.8 MB view details)

Uploaded Python 3 Windows x86-64

topgrade-13.0.0-py3-none-win32.whl (1.6 MB view details)

Uploaded Python 3 Windows x86

topgrade-13.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

topgrade-13.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ i686

topgrade-13.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

topgrade-13.0.0-py3-none-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

topgrade-13.0.0-py3-none-macosx_10_7_x86_64.whl (2.2 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

Details for the file topgrade-13.0.0.tar.gz.

File metadata

  • Download URL: topgrade-13.0.0.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.3.0

File hashes

Hashes for topgrade-13.0.0.tar.gz
Algorithm Hash digest
SHA256 99767499e8a581837a58f5ffe8b22f2fdf216175857e39ebef750a1b5f0358b6
MD5 ef002abeb83c6e4989eac8222eb4aba6
BLAKE2b-256 6a5d5d3f390c4e70e16767e3dd5a1d6afa279f6f3002bd788f6af8a1984e5d3f

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for topgrade-13.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0658b427d3d44abe37f6c31a24c4f61a2ae2c1600efefad53a42702cdcf1c8af
MD5 393d4906d49191d64e68ace3bc40c891
BLAKE2b-256 c6a34e5f4da665fae346bdd8baaef94203e38740f6baf66c846c9b17c8b697d5

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-win32.whl.

File metadata

  • Download URL: topgrade-13.0.0-py3-none-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.3.0

File hashes

Hashes for topgrade-13.0.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 108ded6f592ba8642a8fbbf0719f2da1d580820bad696a7a4f1676cd1d6b4dbd
MD5 6aafec7ee058eac64db90ad772fa172b
BLAKE2b-256 fb84057e4926033d28a15a1ed1d9d93b76e173453dcb85e203112fcd80d740c3

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topgrade-13.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b0e8971a53101fec559b9b61d62a1c4b4bf5904cec0cbe6b18bf76f8fc381b32
MD5 6d3f69999b5bc08e454790b43862cb26
BLAKE2b-256 cd44c3e7b819b0eb37bb559574b8b995abb9c646c07f413e48a0bdc3580cf8a2

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for topgrade-13.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1b3821d010fe9a05dd0ddf78cf9db9acb13ac72faa8e805e7f9adacc68f75d90
MD5 c0af34e06496f97e8b63bd9d2ad51bc8
BLAKE2b-256 484e4ec1a885da2388fa423408753b0f12007e948878cfcfb00e6e7d042c891c

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topgrade-13.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 da3aa3f27ef59ddb5af19fd4d8b5dee943f63633f33d7a0f8ae0dc923ab073c9
MD5 8b82bcfcad527ecbf6c7ceb479d13784
BLAKE2b-256 ff98384b8e03c1b643346a34cf204869ac52005de331e26c769e93577fb54a57

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for topgrade-13.0.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34a4eb14864a247407cf6a4c86828455cfa5c7258855edeeb61db9ea4b8041cf
MD5 56889e9810b20f265f9094f51e05e143
BLAKE2b-256 1a9b3d8f54d1315e041d34164a9ac08022608068b2697c5246804fb7fe1a865f

See more details on using hashes here.

File details

Details for the file topgrade-13.0.0-py3-none-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for topgrade-13.0.0-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 a37c88ea3c77f27565bba6c9bc1ffe87b08db9ace1fda165afabbd528a397d4f
MD5 1c1364557e2a13d55e9b6e8533bbdd97
BLAKE2b-256 8776017f2d13d42f39f0773ab829536af5a3eeb9f5d9995fd47fac899e992b7c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page