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

Uploaded Source

Built Distributions

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

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ i686

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.7+ x86-64

File details

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

File metadata

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

File hashes

Hashes for topgrade-12.0.1.tar.gz
Algorithm Hash digest
SHA256 f6750a95966e41ada4d3e06166482f2ccdffb68d67d37e89b98d4052467b3a85
MD5 0668856516619bf7b4752281b7c01582
BLAKE2b-256 fe624861a134752cbf1cfb22c36b6e6e1f40b7d7b085cc386ea4f6415975eaa4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for topgrade-12.0.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 81bdff683dc9a9fad5afaeec7d8b7ad02e3024490bc348a94b30d2a942df0ee7
MD5 f44104670b5b8ad13ac394dbcc7732a4
BLAKE2b-256 1af6d50e3eedc86919735a77497df5defd3458ff5645c8f78e53c2a3457dccc2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: topgrade-12.0.1-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.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 ea0e52cc26f841bc41d5b1d7863d8ada2b1e5387a24c0ec511be9615177f46c7
MD5 d9b03cfbf17b48a021ee41dc3f2ce83b
BLAKE2b-256 8199c44cbfc169720b503438f3ccd5f8d58ac9de0a3f9d911ca1603074a5e336

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1450ff5af380f658642009c78db8d006731d1064907c9b6995ff3fd56adff707
MD5 1fc5379e0548734c68c47ad13e47b083
BLAKE2b-256 4b9f0426cca448bfb4d88b2b4922fb6a27927042a7798003badbbfd879654aef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e52aacadd2c03e62d00e76ba3384bccd2dd2792c09b5a21e2cce02e195a3426b
MD5 90f2ad64f9a6eefb3a9aad3aacc71384
BLAKE2b-256 c63cd42ae620878acd7233002359aaf855af57240549ab6f99c75c843e8db6e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 953668e93663c729dcd43037f742fe98679a783f202a43a8065e9ac77739b16e
MD5 240e3cfbdc3c39f958c11748bb399e97
BLAKE2b-256 ee852823b4bc51d2e4e1dd6467be06e44eb8e30531d685a7c98ac6049554403c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab5138c5724a8fe0f19c3386e2627694b6b8851587054a2ea32695de7a83eabc
MD5 4ae29c9a189a3655a894ba3614813225
BLAKE2b-256 3b2b4523ddf52bf20ac8120b9f3399338e5bd95542c211c3aaa6493652d9d2bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-12.0.1-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 4294e8d241d5c1aacdfd0870c37624782dfc397b378c06ca66344d1777de2613
MD5 f7f5af09ac9681855d8150b5d8836f60
BLAKE2b-256 66a0b9ab80461fc24e25fc410721ef2459daa58621ed5756cb915e1bd020ca3e

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