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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ i686

topgrade-16.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

topgrade-16.0.2-py3-none-macosx_10_12_x86_64.whl (2.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for topgrade-16.0.2.tar.gz
Algorithm Hash digest
SHA256 a9e882e537ba8013e0f3753396f6c22b1e8332bac382d59e84eda186822e93f2
MD5 e9bcc2d6c19790fd26997fafbc3a2fb5
BLAKE2b-256 6856afb28adedad3f7afc147d807c581c8aa10a18ad0c19d574ada0dd84aa12c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c10323a5225101403bf9611e95fa005a0107f3d29f124bc927808f1dce3f2443
MD5 fa802ff5b7a5f541ef9937f71f7c4c1d
BLAKE2b-256 99c8d8dfed1cede5a362540a3671d0e0ebd1493a0b4ee0e4511828bfcac47ce4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: topgrade-16.0.2-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.8

File hashes

Hashes for topgrade-16.0.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 561e63920606faf7ae51756b620f8e72343ca18065db771bcd55ac76e0f030c1
MD5 f141ff254bd7081e709f29d88cd22074
BLAKE2b-256 95fb2d075156f6e6d6d5291105a48870f9fc522a4d8c6feb8cc4e5015444d174

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 623a7b6907a6cd43250a02e47ddface4fc4ec1ad001164e11d0d568e993e39c5
MD5 6ed76e4ba44f9b53536acfe3f9053245
BLAKE2b-256 b714704535b08f2a7d0639a2ab7042704559bf76973cd49fca7a71a24484d71f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 10c2e4e09f87301444d2e2fd14750b370579465b05e8284cfb077157e7cdfc3c
MD5 09167dc7adffe57812d843bb36988f29
BLAKE2b-256 a7082930ab587d4cbe1051230510fa9bcc9faac36c92b535434b48550b0cd976

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 31f98c6ad462feea2ba6b1172c2c814e88da9301e25f43ed520ba241367e4355
MD5 311b953a0ce2b1dba1df36bb1c65e4e9
BLAKE2b-256 a30cab5c57c4ef83a07e21aa7ca14c07e780ff80650fd611849c571bb36393df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5ed73fdb255637ed1642344420ecde8775162fd5a466d270bde9051199c4b0b
MD5 d28cab062f9966e1cc6e0ac0edb3f977
BLAKE2b-256 72129d462dbe6128ffcfcf03ac18b3c030804ef06b59eec1b614ed23e1dea7d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-16.0.2-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 50168f81ddc5daccf52ad39cff48b949e60ae21487a7661a558738d275c02f6b
MD5 fcf805c88b16ee8c2419c47e4fb0d842
BLAKE2b-256 bdb3656364a7d68a7d09028be262a3846b3bcdb32bd9714a7bee09583d264aaf

See more details on using hashes here.

Supported by

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