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.

Currently, Topgrade requires Rust 1.65 or above. In general, Topgrade tracks the latest stable toolchain.

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-14.0.1.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-14.0.1-py3-none-win_amd64.whl (2.2 MB view details)

Uploaded Python 3Windows x86-64

topgrade-14.0.1-py3-none-win32.whl (1.9 MB view details)

Uploaded Python 3Windows x86

topgrade-14.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ i686

topgrade-14.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

topgrade-14.0.1-py3-none-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for topgrade-14.0.1.tar.gz
Algorithm Hash digest
SHA256 1562d60f569f1058981e981172ef50d2ec3efb0017dbf649754d5cfcab91813d
MD5 0c4d74eb4e6d21d364537b7086a2d228
BLAKE2b-256 fb24eabacbadf62b16030eb591fd1a062c08829dc73a2389ded4c1ce280b6eff

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for topgrade-14.0.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 98e3ba5d2a80cec45563b42b776c47c06cc3c610e2f0acc71d668701508d4080
MD5 23ad223a319c3d8df900aa785037ad46
BLAKE2b-256 e177b4214869b1cd13012caf7e68a460750bbc48fece91fd215a7de59fe64653

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for topgrade-14.0.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 4a373ae368d5f71dfe344015a490c1b8bf1435efaf37b61e54934da64d27b6e7
MD5 7a437cb337b32a8b61dd36bc783cdcba
BLAKE2b-256 9bd177e8b9209e1f1c1903d3d385bc29ad7875cb213d065b6711c9474f9ad8c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-14.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80d26c8742df4878406e64cd242049980a5dac1339157485101bcd45457e5957
MD5 7aa257f716341afa1c0222b440090e83
BLAKE2b-256 da70c71499b33a5619e943a29bf7809504446c7192962d6e851170a7acc645ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-14.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2fad76627d2839889ea40ae3d0c0d612acd7ae2d97c3946f2d2453b3c1c1a45a
MD5 a4e80dcda0419c7870750177df95c29a
BLAKE2b-256 5bc8a7c873d6646b53fd0a5f93497fe442956c7fdb39cc8c4c9d750a0ab31b55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-14.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d915c8aff2c741a9e1487e85f933631addc1531397ce8781329883a9f3ecd08
MD5 77b880d27b25087d81cbb1917b8bbe74
BLAKE2b-256 765a5289e34c7d2a064775bdebf434c1bb6d588321893df422c613ecb3a445a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-14.0.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39329510f0098b83c21e1b5435fd282c4b023853417de255611bb220699be8ee
MD5 15eab6ebc43ccd9338123522b2f8fc04
BLAKE2b-256 b139a1b56eb95e2bde2ef67209e606e7cea0748f14514f0002e81fc852b70721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for topgrade-14.0.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 868ff0fa1b029d929af2b7f07682e45c681f5877d52fdc805d710f863e626a14
MD5 26dd57b4e59e5a1d33746ed0d28fb149
BLAKE2b-256 2406aa4597206c38734f6f569976ff49155492593d7453b80ead96a87f2d7762

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