Skip to main content

Upgrade all the things

Project description

Topgrade

GitHub Release crates.io AUR Homebrew

Demo

Maintainers Wanted

I currently have not enough time to maintain this project on the level required and which the project deserves. For this reason I'm asking the community to help supporting the project, to help and work on resolving issues and create new features. Thanks for all your help.

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-12.0.2.tar.gz (194.8 kB view details)

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

topgrade-12.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3 manylinux: glibc 2.17+ i686

topgrade-12.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3 macOS 11.0+ ARM64

topgrade-12.0.2-py3-none-macosx_10_7_x86_64.whl (2.1 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

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

File metadata

  • Download URL: topgrade-12.0.2.tar.gz
  • Upload date:
  • Size: 194.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.1.0

File hashes

Hashes for topgrade-12.0.2.tar.gz
Algorithm Hash digest
SHA256 1bedbab52db7edfb66fc20cb1fb20f16cc6a381c0d9285211f3bca56856a3e48
MD5 32a5f2c69294d6337594418d6150be6b
BLAKE2b-256 f319a9d89bb22f295fd82b4e8bce62546f5bfcfa7f55f3b0412370039086ea4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b60f2a2947f52d5369b94e2b682febc99cc9523a5ff516d622cab9ce204d8c1c
MD5 6c33d5a0054032a8e81c028a242a8b87
BLAKE2b-256 f90407682ebfe0376fcf3c307e8d13cc8a93f290dfdc6e272722903b6ba95d7c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for topgrade-12.0.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 6f107279617a0eb961fe6e372a94cf28083d3559c11a4483bbccedf3f8bd183d
MD5 fdd77a92c95a133ccbcf6b5bd7ec210f
BLAKE2b-256 18c40064b83be27a16aef7ff1ff018030536ce28a5ff602eb665f99bf544896b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 37fa4faa9ee24a394b84b7f5808093d5c7e2f5faf8fbcc0643713c06d6e27c80
MD5 a11abc523ec3ced643c86c276e4f1011
BLAKE2b-256 92703bc525ae25571e438c2d6e17f24a586a7219168d267a541f8eb2ff720df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e712af7d42e3f4eb8c9fee22b2cb2c92e995b78944d95d12bb4602508601c8e6
MD5 00d86aee5f705d1fb0c0442ed067c694
BLAKE2b-256 8fb1ec9f894c089a6e5dfbebfaf6b5b9d915b66e23e2cbfd65cb4c872a82f7d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 487ad41715064384d72b59b714db652e591ec59bc17d8ab183e943552bb0ffd9
MD5 bf5540442792aabd969e17e016201632
BLAKE2b-256 0b20bacafd684e800f51bbfe36cd1f3548b76e1af16599799227230a327bda4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4eaffece76eecd4f7f541f1de4402ef9019b15846c664c943543bb94a6a1d70a
MD5 e29d631dc10191a16f6e9e8b725b1af2
BLAKE2b-256 489dff308d6d35a9f2bda64588e7d3922582597da6e43bb86f65a82485237837

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.2-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 63b954298c5780a8a7e30ebb072ff8efd4963d3ddbff849f195938a76eecb668
MD5 e1fd8fadbb03e0e51979370e438758cb
BLAKE2b-256 0012fa9281373a0b7c452ba9fe8c82940843e60c1abfbce01ba99a9bda529501

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