Releases: Gelio/go-global-update
v0.2.5
Added
-
Preserve build tags when updating/reinstalling binaries #29
Binaries installed with
go install -tags a,b,c ...(build tags) will have the build tags preserved when updating them. This means that thego installcommand thatgo-global-updateruns internally will also include the same build tags.This behavior is enabled by default and there is no flag to disable it.
This only affects binaries that were installed with build tags.
See Customizing Go Binaries with Build Tags for more information about build tags.
Fixes #28.
Internal
-
Include go 1.23 and drop versions earlier than 1.21 in CI #30
The versions in CI now are closer to the Go release policy. Go 1.21 is also tested right now, even though it is no longer supported anymore.
This is mostly because the latest version of shfmt (v3.9.0) no longer supports Go older than 1.21, and this breaks a lot of integration tests.
go-global-updateitself should still work on earlier versions of Go, but they are no longer tested in CI, and thus, no longer officially supported.
v0.2.4
What's Changed
Added
-
A new
--forceflag (alias:-f) #23.The
--forceflag forces reinstalling binaries that are already up-to-date and would otherwise be skipped when upgrading the versions.This can be used to reinstall all binaries after a new version of go is installed, especially when it fixes security vulnerabilities.
Thanks to @thejan2009 for suggesting this feature.
Internal
- Include go 1.22 in CI #24.
Full Changelog: v0.2.3...v0.2.4
v0.2.3
v0.2.2
v0.2.1
This minor release adds short aliases to some existing options.
Added
-
Short aliases for
--dry-runand--verboseflags (#16).There are new alases for some of the options that the tools accepts:
-nis an alias for--dry-run-vis an alias for--verbose
This should make it easier to use the tool for experienced users.
BREAKING CHANGE: a potential breaking change is that the
-vflag was
previously an alias for--versionand now is an alias for--verbose.
Runninggo-global-update -vwill run the update process instead of only
printing the version. To print the version, use the-Vflag (or the full
--versionflag).
v0.2.0
This minor release brings a couple of improvements to the usability of the tool. Commonly encountered problems now link to the troubleshooting guide and the command output is more readable thanks to using colors and improved formatting.
The release does not introduce any known breaking changes.
As usual, the tool should auto-update itself during the next run of go-global-update.
Improved
-
Improve output by formatting the binary versions summary in a table and adding colors #10.
This should make the output easier and faster to understand.
Colors are enabled when the output is a TTY (for example if the command is run directly in the terminal and the output is shown in the terminal). They will be disabled if the output is saved to a file or in some temporary buffer.
Colors can be force-enabled by passing the
--colorsflag to the CLI. In the following example,less -rwill render the colors even though the command did not print to the terminal directly.go-global-update --colors > output.txt less -r output.txtColors will not be shown if the
NO_COLORenvironment variable is defined, regardless of its value (abides by https://no-color.org/).
Added
-
TROUBLESHOOTING.md containing a description of common problems faced while updating binaries with
go-global-update. -
Include detecting common binary update problems right into
go-global-update.Additional messages will be printed in the output when updating a binary fails due to a known reason.
-
List alternative tools to
go-global-updatein the README #11.Describe their advantages and disadvantages.
Maintenance
-
Add
npmscripts to format Markdown documents using prettier and generate table of contents using markdown-toc.Those scripts are run CI for more static verification.
-
Only verify formatting once in CI (for one matrix build). This is because gofumpt@v0.3.1 cannot be installed on go 1.16 and it does not make sense to verify formatting multiple times. This also slightly speeds up the CI.
-
Add more context in test output if an assertion fails.
v0.1.2
A patch release adding support for go 1.18.
Fixed
-
Support go 1.18 #7
Go 1.18 changed the format of the
go version -m [binary-name]command to no longer include themodinformation for binaries built from source usinggo build main.go.go-global-update now parses such outputs and does not attempt to check for the latest version of such binaries.
v0.1.1
A patch release containing fixes for some of the edge cases found in #3.
Fixed
-
Skip updating binaries built from source.
Binaries built from source (either using
go build main.goorgo installin the cloned repository) likely have been modified prior to being built. Updating them would likely throw away these changes and end up being annoying for engineers who want to keep their modified versions.Moreover, packages built using
go build main.gohavecommand-line-argumentsset as theirpathingo version -m binary-name. This makes it impossible to update automatically. -
Filesystem path handling on Windows.
Use correct separator for filesystem paths on Windows. This allows using this tool on Windows.

