From ecbaf52156142832e9c742eeeae7db0626156412 Mon Sep 17 00:00:00 2001 From: Pascal Jufer Date: Tue, 15 Nov 2022 08:41:35 +0100 Subject: [PATCH] Enhance the README (#186) --- README.md | 57 +++++++++++++++++------------------ doc/topgrade_transparent.png | Bin 0 -> 35141 bytes 2 files changed, 27 insertions(+), 30 deletions(-) create mode 100644 doc/topgrade_transparent.png diff --git a/README.md b/README.md index ad5b0bda..583cf882 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@
- Topgrade +

+ Topgrade +

- Demo
@@ -22,49 +22,53 @@ To remedy this, **Topgrade** detects which tools you use and runs the appropriat ## Installation -- Arch Linux: [AUR](https://aur.archlinux.org/packages/topgrade) package. -- NixOS: _topgrade_ package in `nixpkgs`. -- Void Linux: _topgrade_ package -- macOS: [Homebrew](https://formulae.brew.sh/formula/topgrade) or [MacPorts](https://ports.macports.org/port/topgrade/). +- Arch Linux: [AUR](https://aur.archlinux.org/packages/topgrade) +- NixOS: [Nixpkgs](https://search.nixos.org/packages?show=topgrade) +- Void Linux: [XBPS](https://voidlinux.org/packages/?arch=x86_64&q=topgrade) +- macOS: [Homebrew](https://formulae.brew.sh/formula/topgrade) or [MacPorts](https://ports.macports.org/port/topgrade/) -Other systems users can either use `cargo install` or use the compiled binaries from the release page. +Other systems users can either use `cargo install` or the compiled binaries from the release page. The compiled binaries contain a self-upgrading feature. Topgrade requires Rust 1.51 or above. -## Documentation - -> **Warning** -> Work in Progress - -You can visit the documentation at [topgrade-rs.github.io](https://topgrade-rs.github.io/) . - ## Usage Just run `topgrade`. -See [the documentation](https://topgrade-rs.github.io/) for the list of things Topgrade supports. + +Visit the documentation at [topgrade-rs.github.io](https://topgrade-rs.github.io/) for more information. + +> **Warning** +> Work in Progress ## Customization See `config.example.toml` for an example configuration file. -### Configuration path +### Configuration Path -The configuration should be placed in the following paths depending by the operating system: +The configuration should be placed in the following paths depending on 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. + ## Contribution ### Problems or missing features? -Open a new Issue describing your problem and if possible with a possible solution. +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. +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? @@ -74,16 +78,9 @@ Just fork the repository and start coding. - Check if your code passes `cargo fmt` and `cargo clippy`. - Check if your code is self explanatory, if not it should be documented by comments. -- Make a Pull Request to the dev branch for new features or to the bug-fixes branch for bug fixes. +- Make a pull request to the `dev` branch for new features or to the `bug-fixes` branch for bug fixes. -## 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. - -## ToDo +## Roadmap - [ ] Add a proper testing framework to the code base. - [ ] Add unit tests for package managers. diff --git a/doc/topgrade_transparent.png b/doc/topgrade_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..e44aa40c6042f62132898e6b923c5eb90a7a57ea GIT binary patch literal 35141 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 dh~RM%5don?f*Og