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

Uploaded Source

Built Distributions

topgrade-16.0.4-py3-none-win_amd64.whl (2.4 MB view details)

Uploaded Python 3Windows x86-64

topgrade-16.0.4-py3-none-win32.whl (2.2 MB view details)

Uploaded Python 3Windows x86

topgrade-16.0.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

topgrade-16.0.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (4.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

topgrade-16.0.4-py3-none-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

topgrade-16.0.4-py3-none-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for topgrade-16.0.4.tar.gz
Algorithm Hash digest
SHA256 24134f860a349200fc283387f9d8a84484a3fa70c36037cb7b7635d39ca0f2ec
MD5 9619136b1dd36d24ffbcbcfb9652d6c6
BLAKE2b-256 92b6212c6699c72e8eedf533428728ec187863ced4f6da5523f3acd3cbbb856d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: topgrade-16.0.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.7

File hashes

Hashes for topgrade-16.0.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c0e2de92979ed51dff4b9cb7afc3af4edd75660919324a249b38c42dc17052d8
MD5 26d1489d76bbadcc88af481cc8660051
BLAKE2b-256 18e9e7224015a43d033c489183ecefb7659f5c3ff8aa182bd0f938ac7540c2f1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for topgrade-16.0.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 50185c4d2b1924b9065cf151ab24d5c830fc77a216a93813da0eec6efb3c3410
MD5 8dc41cf1302b717df196dcb351b7ff7a
BLAKE2b-256 ca7c4cd8555204e563223ac735721d25b72010e544772d6317eebaec74e0192e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a733273575af2cd5090d0fa6c5a6cb17b84a7d37f46add791c33a34311d44f7
MD5 caa51a41f175e8cdf01d0a917c01ca1c
BLAKE2b-256 add5dfcf8b4b26fc5dc6e3d0dc594dfd52f2d9b2492e76798bf6a2a7e9ec052a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b2e895915c85f0bd897655624a3af7cb8e8c33794e282b35912f6a8fb400ef48
MD5 7fc19064074cf65dbc6b6e643c435ed5
BLAKE2b-256 12469ddee10dcd86d4f46824ccf5142f11fbfa5847fc844eb71212a4834d0672

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8aa2038af08149d044fdafc11e460a082f49c4e37fac79c757b6d73b0db06928
MD5 0591be53e976219fba1cee4fe9fb9b37
BLAKE2b-256 2d56c772a4ab116095fec43f5691b3ff2c8db74eae98bb365cbbc9aa797831f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e4032ab651fc7ae543b30120149ecabdfb600ca45b4495ea9fdb8149bf169d2
MD5 4d3f4d7c91c5ad514db425536499768e
BLAKE2b-256 476542c4922491fd790d6b52cf6f5c8fafb173abe5509bb6deefa018fdbf6d80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a1fd19f96bf1ffc5894bd4b645cf5de69a56d1d2ca1e6556a48494b6ac7c87fc
MD5 8e15bb5c3d650533ddc443ae88a20dfc
BLAKE2b-256 c86b8c1133812f8644a66ce825837164a8169fc0fb5133348075abe85abae1d4

See more details on using hashes here.

Supported by

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