The version history is motivated by https://semver.org/ and https://keepachangelog.com/en/1.0.0/ .
NOTE: This project went from non-standard versioning to semver at some point.
Types of changes that can be seen in the changelog
Added: for new features/functionality.
Changed: for changes in existing features/functionality.
Deprecated: for soon-to-be removed features. Removed in the
Removed: for now removed features.
Fixed: for any bug fixes.
Security: in case of vulnerabilities.
tl;dr 1 minor release stating that the functionality is going to be deprecated. Then in the next major - removed.
Deprecating existing functionality is a normal part of software development and
is often required to make forward progress.
When you deprecate part of your public API, you should do two things:
(1) update your documentation to let users know about the change,
(2) issue a new minor release with the deprecation in place.
Before you completely remove the functionality in a new major
release there should be at least one minor release
that contains the deprecation so that users can smoothly transition to the new API
As per https://semver.org/ .
As per rule-of-thumb, moving the project forward is very important,
but providing stability is the most important thing to anyone using goenv
.
Introducing breaking changes under a feature flag can be ok in some cases where new functionality needs user feedback before being introduced in next major release.
Change line format:
* <Change title/PR title/content> ; Ref: <pr link>
- Add golang installations of 1.12.6 and 1.11.11 ; Ref: go-nv#84
- Add golang installations of 1.12.5 and 1.11.10 ; Ref: go-nv#83
- Add golang installations of 1.12.4 and 1.11.9 ; Ref: go-nv#78
- Golang releases without patch version not being installed ; Ref: go-nv#75
- Add golang installations of 1.12.2, 1.12.3, 1.11.7 and 1.11.8 ; Ref: go-nv#73
- Lack of environment variables configuration documentation after go-nv#70. Also fixed lack of Contributing guidelines ; Ref go-nv#74
- Add golang installations of 1.12.1. and 1.11.6 ; Ref: go-nv#71
- Add management of env variable
GOROOT
that can be disabled with env varGOENV_DISABLE_GOROOT=1
, when callinggoenv-sh-rehash
(goenv rehash
wheneval $(goenv init -)
was previously executed). It does not attempt to manage when version issystem
. ; Ref: go-nv#70 - Add management of env variable
GOPATH
that can be disabled with env varGOENV_DISABLE_GOPATH=1
, when callinggoenv-sh-rehash
(goenv rehash
wheneval $(goenv init -)
was previously executed). It does not attempt to manage when version issystem
. ; Ref: go-nv#70 - Add configurable managed
GOPATH
prefix forgoenv-sh-rehash
(goenv rehash
wheneval $(goenv init -)
was previously executed). Configured viaGOENV_GOPATH_PREFIX=<your prefix>
. E.gGOENV_GOPATH_PREFIX=/tmp
. Default managedGOPATH
is$HOME/go
. ; Ref: go-nv#70 - Add
--only-manage-paths
option togoenv-sh-rehash
(goenv rehash
wheneval $(goenv init -)
was previously executed) to skip callinggoenv-rehash
and update shims. Instead it only updates managedGOPATH
andGOROOT
env variables. It does not attempt to manage when version issystem
. ; Ref: go-nv#70
- Changed
goenv
's bootstrap (eval $(goenv init -)
) now to callgoenv-sh-rehash --only-manage-paths
. This means that it'll export and manageGOROOT
andGOPATH
env vars. It does not attempt to manage when version issystem
. ; Ref: go-nv#70 - Changed
goenv-exec
now to setGOPATH
andGOROOT
environment variables before executing specified cmd and args. Can be disable viaGOENV_DISABLE_GOPATH=1
andGOENV_DISABLE_GOROOT=1
.GOPATH
can be configured withGOENV_GOPATH_PREFIX
. E.gGOENV_GOPATH_PREFIX=/tmp/goenv
. Default managedGOPATH
is$HOME/go
. ; Ref: go-nv#70
- Add installation definitions for Golang 1.12.0. ; Ref: go-nv#68
- Add installation definitions for Golang 1.12rc1. ; Ref: go-nv#66
- Add installation definitions for Golang 1.11.5 and 1.10.8. ; Ref: go-nv#65
- Add installation definitions for Golang 1.12beta2. ; Ref: go-nv#64
make test-goenv-go-build
to test thego-build
plugin. ; Ref: go-nv#62- For tests, fake Python-based HTTP file server to download definitions. ; Ref: go-nv#62
make test=<target_test_suite_path>.bats test-goenv{-go-build,}
functionality to execute a single test suite ; Ref: go-nv#62- Usage instructions for
goenv rehash
viagoenv help --usage rehash
; Ref: go-nv#62 - Usage instructions for
goenv root
viagoenv help --usage root
; Ref: go-nv#62 - Usage instructions for
goenv sh-rehash
viagoenv help --usage sh-rehash
; Ref: go-nv#62 - Usage instructions for
goenv version
viagoenv help --usage version
; Ref: go-nv#62 - Summary for
goenv version-file-read
viagoenv help version-file-read
; Ref: go-nv#62 - Summary for
goenv completions
viagoenv help completions
; Ref: go-nv#62 - Usage instructions for
goenv version-name
viagoenv help --usage version-name
; Ref: go-nv#62 - Usage instructions for
goenv version-origin
viagoenv help --usage version-origin
; Ref: go-nv#62 - Debugging support via
GOENV_DEBUG=1
forgoenv uninstall
; Ref: go-nv#62
goenv shell
now fails and prints more helpful instructions when the former command is run without proper shell setup viaeval $(goenv init -)
. ; Ref: go-nv#56 go-nv#63- Re-enabled, greatly refactored and made the test suite pass again. ; Ref: go-nv#62
- Travis CI test suite to run against
xenial
Ubuntu. ; Ref: go-nv#62 - Use https://github.com/bats-core/bats-core instead of https://github.com/sstephenson/bats for test suite runner and replace links. ; Ref: go-nv#62
- Backfilled the CHANGELOG.md ; Ref: go-nv#62
goenv
error message whenGOENV_NATIVE_EXT=1
, but native extension is not present, to quoterealpath
with single quotes. It's nowfailed to load 'realpath' builtin
goenv
error message whenGOENV_DIR
(e.g/home/syndbg/.goenv
), but it's not writable, to quote$GOENV_DIR
with single quotes. It's nowcannot change working directory to '$GOENV_DIR'
.goenv
error message when unknown command is given (e.ggoenv potato
), to quote$command
with single quotes. It's nowno such command '$command'
. ; Ref: go-nv#62goenv
andgoenv help
is called to quotegoenv help <command>
with single quotes. It's now'goenv help <command>'
. ; Ref: go-nv#62goenv init
andgoenv init <shell>
are more explicit now that the given shell is unknown. E.gprofile="<unknown shell: <shell>, replace with your profile path>"
; Ref: go-nv#62goenv init
andgoenv init <shell>
now return exit status 0. ; Ref: go-nv#62goenv prefix <version>
error message when not installed version is given, to quote$version
with single quotes. It's nowgoenv: version '${version}' not installed
. ; Ref: go-nv#62goenv version-name <version>
error message when not installed version is given, to quote$version
with single quotes. It's nowgoenv: version '${version}' is not installed (set by $(goenv-version-origin))
. ; Ref: go-nv#62goenv versions
error message whenGOENV_NATIVE_EXT=1
, but native extension is not present, to quoterealpath
with single quotes. It's nowgoenv: failed to load 'realpath' builtin
. ; Ref: go-nv#62goenv which <command>
error message when current version (specified byGOENV_VERSION
env var or.go-version
file) is not installed, to quote now with single quotes. It's nowgoenv: version '$version' is not installed (set by $(goenv-version-origin))
. ; Ref: go-nv#62goenv which <command>
error message when$command
is not a binary executable present in current version, but it's found in other versions, to quote$command
in single quotes. It's nowThe '$command' command exists in these Go versions:
. ; Ref: go-nv#62goenv which <command>
error message when$command
is not a binary executable present in $PATH, to quote$command
in single quotes. It's nowgoenv: '$GOENV_COMMAND' command not found
. ; Ref: go-nv#62- Changed
go-build
andgoenv install
's error message when nocurl
orwget
are present to now quote using single quotes. It's nowerror: please install 'curl' or 'wget' and try again
. ; Ref: go-nv#62 - Changed mentions of
pyenv
togoenv
when nogo
executable is found after installation of definition. ; Ref: go-nv#62 goenv --version
now returns only goenv version. Previous format ofgoenv <version>-<num_commits>-<git_sha>
, now just<version>
. E.ggoenv 1.23.3
. ; Ref: go-nv#62go-build --version
now returns only go-build version. Previous format ofgo-build <version>-<num_commits>-<git_sha>
, now just<version>
. E.ggo-build 1.23.3
. ; Ref: go-nv#62- Changed
goenv install <version>
's error message whenversion
is not a known installable definition, but other similar ones are found to be quoted with single quotes. It's nowThe following versions contain '$DEFINITION' in the name:
andSee all available versions with 'goenv install --list'.
. ; Ref: go-nv#62 - Changed
goenv uninstall <version>
's error message whenversion
is not installed to be quoted using single quotes. It's nowgoenv: version '$VERSION_NAME' not installed
. ; Ref: go-nv#62 - Changed
goenv uninstall <version>
's to fail regardless whether--force
or-f
is used when version is not installed. This also means thatbefore_uninstall
hooks won't be triggered. ; Ref: go-nv#62 - Changed the
README.md
to be easier to navigate and read by extracting "how it works" to HOW_IT_WORKS.md, "advanced config" to ADVANCED_CONFIGURATION.md, "installation" to INSTALL.md, move Homebrew installation instructions from "advanced config" to INSTALL.md. ; Ref: go-nv#62
goenv versions
does not look for versions in{GOENV_ROOT}/versions/*/envs/*
anymore. This was legacy from pyenv. ; Ref: go-nv#62- Removed
--enable-shared
support ingo-build
. This was legacy from pyenv. ; Ref: go-nv#62 - Removed mentions of default golang download mirrors in README.md. This was legacy from pyenv. ; Ref: go-nv#62
- Removed default golang download mirrors in
go-build
. This was legacy from pyenv. ; Ref: go-nv#62 - Removed
make_args
fromgo-build
. This was legacy from pyenv. ; Ref: go-nv#62 - Removed installation definition functions
configured_with_package_dir
,needs_yaml
,try_go_module
,verify_go_module
anduse_homebrew_yaml
. This was legacy from pyenv and it's not useful since we're not compiling. ; Ref: go-nv#62 - Removed logic to determine
go
suffix after installation of definition. It's legacy from pyenv. It's alwaysgo
. ; Ref: go-nv#62 - Removed
unset
-ing ofGOHOME
environment variable after installation. It's not used nowadays in Go. ; Ref: go-nv#62 - Removed
GOENV_BOOTSTRAP_VERSION
support ingoenv install
. Legacy from pyenv and not useful in Go. ; Ref: go-nv#62
- Bad table formatting in the README.md ; Ref: go-nv#62
make bats
failing whenbats
already exists locally ; Ref: go-nv#62
- Add installation definition for unix and ARM Golang 1.12beta1 ; Ref: go-nv#61
- Add installation definition for unix and ARM Golang 1.11.4 ; Ref: go-nv#60
- Add installation definition for unix and ARM Golang 1.10.7 ; Ref: go-nv#60
- Add installation definition for unix and ARM Golang 1.11.3 ; Ref: go-nv#59
- Add installation definition for unix and ARM Golang 1.10.6 ; Ref: go-nv#59
- Add installation definition for unix and ARM Golang 1.11.2 ; Ref: go-nv#58
- Add installation definition for unix and ARM Golang 1.10.5 ; Ref: go-nv#58
- Add installation definition for unix and ARM Golang 1.11.1 ; Ref: go-nv#55
- Add installation definition for unix and ARM Golang 1.11.0 ; Ref: go-nv#53
- Add installation definition for unix and ARM Golang 1.10.4 ; Ref: go-nv#53
- Add installation definition for unix and ARM Golang 1.11rc2 ; Ref: go-nv#52
- Add installation definition for unix and ARM Golang 1.11rc1 ; Ref: go-nv#49
- Add installation definition for unix and ARM Golang 1.11beta3 ; Ref: go-nv#48
- Add ARM installation definition for Golang 1.10.3 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.10.2 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.10.1 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.10.0 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.10rc2 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.10rc1 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.10beta2 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.7 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.6 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.5 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.4 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.3 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.2 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.1 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.9.0 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.8.7 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.8.5 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.8.4 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.8.3 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.8.1 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.8.0 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.7.5 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.7.4 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.7.3 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.7.1 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.7.0 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.6.4 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.6.3 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.6.2 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.6.1 ; Ref: go-nv#47
- Add ARM installation definition for Golang 1.6.0 ; Ref: go-nv#47
- Add installation support for ARM builds of Golang ; Ref: go-nv#47
- Add installation support for Golang 1.11beta2 ; Ref: go-nv#46
- Add installation support for Golang 1.10.3 ; Ref: go-nv#45
- Add installation support for Golang 1.9.7 ; Ref: go-nv#45
- Installation support for BSD
amd64
architectures as 64bit ; Ref: go-nv#44
- Installation on BSD
i686
architectures failing due to invalid bash code ; Ref: go-nv#44
- Add support for Golang 1.10 ; Ref: go-nv#41
- Add support for Golang 1.10rc2 ; Ref: go-nv#40
- Add support for Golang 1.9.4 ; Ref: go-nv#40
- Add support for Golang 1.8.7 ; Ref: go-nv#40
- Add support for Golang 1.11rc1 ; Ref: go-nv#39
- Remove
GOROOT
environment variable setup forgoenv-init
; Ref: go-nv#34 - Remove
GOROOT
environment variable setup whenGOENV_VERSION
issystem
forgoenv-exec
; Ref: go-nv#34
- Add support for Golang 1.9.1 ; Ref: go-nv#33
- Add support for Golang 1.6.4 ; Ref: go-nv#32
- Add support for Golang 1.9.0 ; Ref: go-nv#31
- Replace usage of
setenv
withset -gx
for fish shells ; Ref: go-nv#28
- Update goenv homebrew installation instructions in README.md, since it's available as a core formula ; Ref: go-nv#19
- Update COMMANDS.md and remove duplicate command examples ; Ref: go-nv#20
- Fix
goenv init
for fish shells ; Ref: go-nv#22 https://github.com/syndbg/goenv/commit/80fb488d01baef3b4d262e5b4828175c7ed44289
- Switch to semver release versioning
- Test command
pyenv echo
=>goenv echo
; Ref: go-nv#9
- Add support for Golang 1.7.3 ; Ref: go-nv#5
- Add support for Golang 1.7.1 ; Ref: go-nv#5
- Add support for Golang 1.7.0 ; Ref: go-nv#5
- Add support for Golang 1.6.3 ; Ref: go-nv#4
- Remove some more
pyenv
andpython-build
references in README.md ; Ref: go-nv#7
- Fix bash auto-completion trying to use
pyenv
instead ofgoenv
; Ref: go-nv#6
- Updated comparison with other golang environment management projects ; Ref: https://github.com/syndbg/goenv/commit/68a5a18d493dc9f6d9ab45f7c4bc4b52a10557e2
- Update homebrew installation instructions ; Ref: go-nv#1
-
Installation on Linux
i686
architectures failing due to invalid bash code ; Ref: go-nv#3 -
Wrong checksum for 64bit Linux release of Golang 1.2.2 ; Ref: go-nv#2
- Add support for unix Go 1.6.2 ; Ref: https://github.com/syndbg/goenv/commit/fc211b1b78370f7e679872c6cebbffa92dd0017f
- Add support for unix Go versions 1.6.1 ; Ref: https://github.com/syndbg/goenv/commit/8f2171d4014bff3ba15faf7d784965a8a7590205 https://github.com/syndbg/goenv/commit/61689d52e9d23a46ab12c5195ac32452dea3ef75
- Add support for unix Go versions 1.6.0 ; Ref: https://github.com/syndbg/goenv/commit/8f2171d4014bff3ba15faf7d784965a8a7590205 https://github.com/syndbg/goenv/commit/61689d52e9d23a46ab12c5195ac32452dea3ef75
- Add support for unix Go 1.5.4 ; Ref: https://github.com/syndbg/goenv/commit/15e9863b33aa23f6794261fbdf247f9760cc43e1
- Add support for unix Go 1.5.3 ; Ref: https://github.com/syndbg/goenv/commit/a099796aafa70da932e9cd8aa0a6a99f64f49904
- Add support for unix Go 1.5.2 ; Ref: https://github.com/syndbg/goenv/commit/01ec11c3fd4058eb55d57f61d494233e37c233a6
- Add support for unix Go 1.5.1 ; Ref: https://github.com/syndbg/goenv/commit/0745eb7243afc9a41997acc0080ca4e292ecdbe4
- Add support for unix Go 1.5.0 ; Ref: https://github.com/syndbg/goenv/commit/f527101285c32b1abd3726d535ccf2f87d4a2447
- Add support for unix Go 1.4.3 ; Ref: https://github.com/syndbg/goenv/commit/fa5856a476a0d32674e26cd9e7283806ef9f78b8
- Add support for unix Go 1.4.2 ; Ref: https://github.com/syndbg/goenv/commit/87a123c682e00bb024a0a5ddf2c0a2d6e9fe18a3
- Add support for unix Go 1.4.1 ; Ref: https://github.com/syndbg/goenv/commit/9bb9168555d38376f5251c01f51f8c84ea3cf4e4
- Add support for unix Go 1.4.0 ; Ref: https://github.com/syndbg/goenv/commit/02e3aea3f1222e21b67d41696cc0eb65485e106f
- Add support for unix Go 1.3.3 ; Ref: https://github.com/syndbg/goenv/commit/2543028c389311a66db26d39a4e674eae326549d
- Add support for unix Go 1.3.2 ; Ref: https://github.com/syndbg/goenv/commit/bc48eda1a77d89b844fa4d920e68a2207d85c72c
- Add support for unix Go 1.3.1 ; Ref: https://github.com/syndbg/goenv/commit/63537895c87d4db2d76bb1c99bb0a4c3b0e44442
- Add support for unix Go 1.3.0 ; Ref: https://github.com/syndbg/goenv/commit/b8fc6e7013028daf78080fda86a1afa2fa3ef590
- Add support support for unix Go 1.2.2 ; Ref: https://github.com/syndbg/goenv/commit/fe1db9bfc8f2dc0fb3f3e0eb0d02192fd596b046
- Installation definition functions for Darwin 10.6 32/64bit, Darwin 10.8 32/64bit ; Ref: https://github.com/syndbg/goenv/commit/4e810f8afd5086ef4fa618a0800d50dec54e6418
- Add SHA1 checksum verification support ; Ref: https://github.com/syndbg/goenv/commit/d38c5875f7aaa559b1dfc9976f5f52309953a023
- Update documentation to fix usage where
pyenv
is specified instead ofgoenv
. ; Ref: https://github.com/syndbg/goenv/commit/807520548ae6e2727a87ab04d2993522ae0e76d0
- Obsolete compilation functionality for gcc and similar ; Ref: https://github.com/syndbg/goenv/commit/4e810f8afd5086ef4fa618a0800d50dec54e6418
- Obsolete MacOS build functionality ; Ref: https://github.com/syndbg/goenv/commit/4e810f8afd5086ef4fa618a0800d50dec54e6418
- Obsolete compilation tests ; Ref: https://github.com/syndbg/goenv/commit/4e810f8afd5086ef4fa618a0800d50dec54e6418
goenv
basic functionality cloned from https://github.com/yyuu/pyenv