Akeshihiro 09673297db Drop the Go step (#660)
* Drop the Go step

With the release of Go 1.16 the behavior of `go get` has been changed.
In previous Go versions `go get` was used not only to add module
dependencies but also to install Go tools.
As of Go 1.16 `go get` can only add and upgrade module dependencies.
To install Go tools now the `go install` command has to be used.

Further on Go 1.16 enabled the GOMODULE mode by default and will drop
the GOPATH mode completly in Go 1.17.
So the package definition `all` like in `go get -u all` does not work
anymore if the PWD is outside of a Go module project.
Because of this `go list all` also does not work for the same reason.
That being said it seems that currently there is no way to get a list of
all installed Go tools or packages at the GOPATH level.

So the only possible solution to determine the installed Go tools and
also to update them would be by inspecting the `go env GOBIN` directory
as well as the `go env GOMODCACHE` sub-directories and to filter the
results according to their possible name-to-package boundaries.
As this approach seems to be very ugly and also not to be very safe or
stable and Go currently does not support any kind of automated upgrades
of installed Go tools it is best to drop the Go step for now until Go
implements some kind of Go tool upgrade feature.

Fixes #659

* Remove Go from Step enum
2021-02-24 12:17:03 +02:00
2020-02-27 20:58:09 +02:00
2020-07-09 21:35:18 +03:00
2021-02-24 12:17:03 +02:00
2018-05-29 23:48:30 +03:00
2019-11-19 10:15:13 +02:00
2019-05-14 15:57:27 +03:00
2019-02-09 21:27:42 +02:00
2020-02-26 15:33:06 +02:00
2021-02-22 13:03:42 +02:00
2021-02-22 13:02:09 +02:00
2018-11-21 07:56:41 +02:00
2018-07-03 14:33:48 +03:00
2020-02-29 16:08:07 +02:00

Topgrade

Travis AppVeyor GitHub release Crates.io AUR homebrew

Demo

Keeping your system up to date mostly involves invoking more than a single package manager. This usually results in big shell one-liners saved in your shell history. Topgrade tries to solve this problem by detecting which tools you use and run their appropriate package managers.

Installation

Arch Linux users can use the AUR package.

On NixOS, use the topgrade package in nixpkgs.

macOS users can install topgrade via Homebrew or MacPorts.

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 isn't guaranteed to work on Rust versions older than the latest stable release. If you intend to install Topgrade using Cargo then you should either install Rust using rustup or use a distribution which ships the latest version of Rust, such as Arch Linux.

Usage

Just run topgrade. See the wiki 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:

  • macOS - ~/.config/topgrade.toml
  • Windows - %APPDATA%/topgrade.toml
  • Other Unix systems - ~/.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 execute Topgrades on these remote hosts. To limit the execution only to specific hosts use the --remote-host-limit parameter.

Languages
Rust 99%
Shell 0.7%
Vim Script 0.2%