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.

Usage

Just run topgrade.

Configuration

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

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 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-16.0.1.tar.gz (4.4 MB view details)

Uploaded Source

Built Distributions

topgrade-16.0.1-py3-none-win_amd64.whl (2.3 MB view details)

Uploaded Python 3 Windows x86-64

topgrade-16.0.1-py3-none-win32.whl (2.1 MB view details)

Uploaded Python 3 Windows x86

topgrade-16.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

topgrade-16.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (4.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ i686

topgrade-16.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

topgrade-16.0.1-py3-none-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

topgrade-16.0.1-py3-none-macosx_10_12_x86_64.whl (2.6 MB view details)

Uploaded Python 3 macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for topgrade-16.0.1.tar.gz
Algorithm Hash digest
SHA256 719c7aa268223c116583a1c7d88e1035656e4f44ebdc90ce4be402b036cc92af
MD5 feb67c06db0e3a796b2e3784cdbde3b6
BLAKE2b-256 33d56d8c8aef3b905eaea28ad5c0cc8e6a17ef8212282ed2ddde3106e36e75d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d8b57b9c85731e92f2cc46c5194f4a8e2022a52d95ca35a3cad168f8467eadd9
MD5 ec20ff0e573bb6a6ef037c9c3551f753
BLAKE2b-256 46ad8c443e58350df6dcf11594bef1e7bee108714c764152be8ddb4dbc418ea6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for topgrade-16.0.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 c001d6724434233a3daac86155c061bafd54260b55410d7cba8e5ab543000dc4
MD5 8ede50e63e81f34d89a45346fde0da6e
BLAKE2b-256 2fa987f911d22a6ac794673b50cc71f53f8858ce194742c9944cc2fd51db1766

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e94a8feb948838a4ef1a9019caa5debeeb7e2687dd91106dfafcd6af1869428
MD5 7fb38ed106d015b0b1cb047c1f5d76f9
BLAKE2b-256 29b100ceb078d44dfd5d64f677acbf93ac44e887ab69aeba9f23adef8ab455ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0ca4f74088b0e1e70ca95126281ddf48613b4e2fc4ed1e2d2cc1768517b683d9
MD5 feb1e01ffb366e6de0f84f1023311332
BLAKE2b-256 bef450651847723a24d9cfeb723cdce1c1af80f56bdf15ed4fcd5d69468401df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5326bf3427e727088874337ea81e8b0fce917bb4d9c732217268e04540144006
MD5 148be3aa073f3caafc633d0fdf907bb6
BLAKE2b-256 bcb7547e264e940b397a1c9779f2a49d7265a7284e759e90b83465ce28e637d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d91e04edcd0e31e6c1e7f84e86937888e0b7721541d1b273030ff58e5a21c2f
MD5 70ef9797f79fb431dd3234160254ffd5
BLAKE2b-256 acd2bce7b5885a0cba1ea509e6b035b9b648c8615fc20e154c0b3c28f35473cb

See more details on using hashes here.

File details

Details for the file topgrade-16.0.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for topgrade-16.0.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 18b728df91ca412f4e16115a0d23642ea780a2540da4c55a43f0f7a43e18f257
MD5 dbd0fd6335254d7929bcf16a0105c9fa
BLAKE2b-256 0508a9b2765a71713ac1fc25a9902b988498d8a24d4990b2434764d60eedabce

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