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 install
command thatgo-global-update
runs 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-update
itself 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
--force
flag (alias:-f
) #23.The
--force
flag 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-run
and--verbose
flags (#16).There are new alases for some of the options that the tools accepts:
-n
is an alias for--dry-run
-v
is 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
-v
flag was
previously an alias for--version
and now is an alias for--verbose
.
Runninggo-global-update -v
will run the update process instead of only
printing the version. To print the version, use the-V
flag (or the full
--version
flag).
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
--colors
flag to the CLI. In the following example,less -r
will render the colors even though the command did not print to the terminal directly.go-global-update --colors > output.txt less -r output.txt
Colors will not be shown if the
NO_COLOR
environment 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-update
in the README #11.Describe their advantages and disadvantages.
Maintenance
-
Add
npm
scripts 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 [email protected] 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 themod
information 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.go
orgo install
in 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.go
havecommand-line-arguments
set as theirpath
ingo 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.