Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/r-darwish/topgrade
Upgrade everything
https://github.com/r-darwish/topgrade
automation package-manager rust
Last synced: 4 months ago
JSON representation
Upgrade everything
- Host: GitHub
- URL: https://github.com/r-darwish/topgrade
- Owner: r-darwish
- License: gpl-3.0
- Archived: true
- Created: 2018-05-29T20:48:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-10-12T12:04:33.000Z (over 2 years ago)
- Last Synced: 2024-09-21T19:03:41.363Z (4 months ago)
- Topics: automation, package-manager, rust
- Language: Rust
- Homepage:
- Size: 2.94 MB
- Stars: 3,350
- Watchers: 36
- Forks: 160
- Open Issues: 67
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tools - r-darwish/topgrade - Upgrade everything (Command Line / Dependency Management)
- awesome-starred-test - r-darwish/topgrade - Upgrade everything (Rust)
- awesome-opensource-israel - Topgrade - A single command to upgrade multiple package managers. ![GitHub last commit](https://img.shields.io/github/last-commit/r-darwish/topgrade?style=flat-square) ![GitHub top language](https://img.shields.io/github/languages/top/r-darwish/topgrade?style=flat-square) (Projects by main language / rust)
- links - topgrade
- awesome-devtools - Topgrade - A full command line update system ![ossoft][oss] (Command line - Linux / Learning resources)
- jimsghstars - r-darwish/topgrade - Upgrade everything (Rust)
README
![Topgrade](doc/topgrade.png)
# No longer maintained
This repository is no longer maintained. An effort was made by the community to keep maintaining the project at https://github.com/topgrade-rs/topgrade. I am not involved in this effort nor do I know the people behind it, so I encourage you to inspect their work before using the fork.
I'm not the owner of the packages that ship Topgrade for various package managers, so their maintainers will need to decide what to do. I'm only the owner of the package in creates.io, which will no longer be updated.
[![Travis](https://api.travis-ci.org/r-darwish/topgrade.svg?branch=master)](https://travis-ci.org/r-darwish/topgrade)
[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/r-darwish/topgrade?svg=true)](https://ci.appveyor.com/project/r-darwish/topgrade)
![GitHub release](https://img.shields.io/github/release/r-darwish/topgrade.svg)
[![Crates.io](https://img.shields.io/crates/v/topgrade.svg)](https://crates.io/crates/topgrade)
[![AUR](https://img.shields.io/aur/version/topgrade.svg)](https://aur.archlinux.org/packages/topgrade/)
![homebrew](https://img.shields.io/homebrew/v/topgrade.svg)![Demo](doc/screenshot.gif)
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
- Arch Linux: [AUR](https://aur.archlinux.org/packages/topgrade/) package.
- NixOS: _topgrade_ package in `nixpkgs`.
- macOS: [Homebrew](https://brew.sh/) or [MacPorts](https://www.macports.org/install.php).Other systems users can either use `cargo install` or use the compiled binaries from the release page.
The compiled binaries contain a self-upgrading feature.Topgrade requires Rust 1.51 or above.
## Usage
Just run `topgrade`.
See [the wiki](https://github.com/r-darwish/topgrade/wiki/Step-list) for the list of things Topgrade supports.## Customization
See `config.example.toml` for an example configuration file.### Configuration path
The configuration should be placed in the following paths depending by the operating system:
* **Windows** - `%APPDATA%/topgrade.toml`
* **macOS** and **other Unix systems** - `${XDG_CONFIG_HOME:-~/.config}/topgrade.toml`## 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.