Skip to content

Latest commit

 

History

History
826 lines (633 loc) · 34.4 KB

CHANGELOG.md

File metadata and controls

826 lines (633 loc) · 34.4 KB

Version History

Intro

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.

Structure

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.

How deprecation of functionality is handled?

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.

Changelog

Change line format:

* <Change title/PR title/content> ; Ref: <pr link>

Unreleased (master)

2.0.2

Added

  • fix version printout for goenv --version; update changelog Ref: go-nv#260

2.0.1

Added

2.0.0

Added

2.0.0beta11

Added

  • Add golang installations of 1.12.6 and 1.11.11 ; Ref: go-nv#84

2.0.0beta10

Added

  • Add golang installations of 1.12.5 and 1.11.10 ; Ref: go-nv#83

2.0.0beta9

Added

  • Add golang installations of 1.12.4 and 1.11.9 ; Ref: go-nv#78

Fixed

  • Golang releases without patch version not being installed ; Ref: go-nv#75

2.0.0beta8

Added

  • Add golang installations of 1.12.2, 1.12.3, 1.11.7 and 1.11.8 ; Ref: go-nv#73

Fixed

  • Lack of environment variables configuration documentation after go-nv#70. Also fixed lack of Contributing guidelines ; Ref go-nv#74

2.0.0beta7

Added

  • Add golang installations of 1.12.1. and 1.11.6 ; Ref: go-nv#71

2.0.0beta6

Added

  • Add management of env variable GOROOT that can be disabled with env var GOENV_DISABLE_GOROOT=1, when calling goenv-sh-rehash (goenv rehash when eval $(goenv init -) was previously executed). It does not attempt to manage when version is system. ; Ref: go-nv#70
  • Add management of env variable GOPATH that can be disabled with env var GOENV_DISABLE_GOPATH=1, when calling goenv-sh-rehash (goenv rehash when eval $(goenv init -) was previously executed). It does not attempt to manage when version is system. ; Ref: go-nv#70
  • Add configurable managed GOPATH prefix for goenv-sh-rehash (goenv rehash when eval $(goenv init -) was previously executed). Configured via GOENV_GOPATH_PREFIX=<your prefix>. E.g GOENV_GOPATH_PREFIX=/tmp. Default managed GOPATH is $HOME/go. ; Ref: go-nv#70
  • Add --only-manage-paths option to goenv-sh-rehash (goenv rehash when eval $(goenv init -) was previously executed) to skip calling goenv-rehash and update shims. Instead it only updates managed GOPATH and GOROOT env variables. It does not attempt to manage when version is system. ; Ref: go-nv#70

Changed

  • Changed goenv's bootstrap (eval $(goenv init -)) now to call goenv-sh-rehash --only-manage-paths. This means that it'll export and manage GOROOT and GOPATH env vars. It does not attempt to manage when version is system. ; Ref: go-nv#70
  • Changed goenv-exec now to set GOPATH and GOROOT environment variables before executing specified cmd and args. Can be disable via GOENV_DISABLE_GOPATH=1 and GOENV_DISABLE_GOROOT=1. GOPATH can be configured with GOENV_GOPATH_PREFIX. E.g GOENV_GOPATH_PREFIX=/tmp/goenv. Default managed GOPATH is $HOME/go. ; Ref: go-nv#70

2.0.0beta5

Added

  • Add installation definitions for Golang 1.12.0. ; Ref: go-nv#68

2.0.0beta4

Added

  • Add installation definitions for Golang 1.12rc1. ; Ref: go-nv#66

2.0.0beta3

Added

  • Add installation definitions for Golang 1.11.5 and 1.10.8. ; Ref: go-nv#65

2.0.0beta2

Added

  • Add installation definitions for Golang 1.12beta2. ; Ref: go-nv#64

2.0.0beta1

Added

  • make test-goenv-go-build to test the go-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 via goenv help --usage rehash ; Ref: go-nv#62
  • Usage instructions for goenv root via goenv help --usage root ; Ref: go-nv#62
  • Usage instructions for goenv sh-rehash via goenv help --usage sh-rehash ; Ref: go-nv#62
  • Usage instructions for goenv version via goenv help --usage version ; Ref: go-nv#62
  • Summary for goenv version-file-read via goenv help version-file-read ; Ref: go-nv#62
  • Summary for goenv completions via goenv help completions ; Ref: go-nv#62
  • Usage instructions for goenv version-name via goenv help --usage version-name ; Ref: go-nv#62
  • Usage instructions for goenv version-origin via goenv help --usage version-origin ; Ref: go-nv#62
  • Debugging support via GOENV_DEBUG=1 for goenv uninstall ; Ref: go-nv#62

Changed

  • goenv shell now fails and prints more helpful instructions when the former command is run without proper shell setup via eval $(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 when GOENV_NATIVE_EXT=1, but native extension is not present, to quote realpath with single quotes. It's now failed to load 'realpath' builtin
  • goenv error message when GOENV_DIR (e.g /home/syndbg/.goenv), but it's not writable, to quote $GOENV_DIR with single quotes. It's now cannot change working directory to '$GOENV_DIR'.
  • goenv error message when unknown command is given (e.g goenv potato), to quote $command with single quotes. It's now no such command '$command'. ; Ref: go-nv#62
  • goenv and goenv help is called to quote goenv help <command> with single quotes. It's now 'goenv help <command>'. ; Ref: go-nv#62
  • goenv init and goenv init <shell> are more explicit now that the given shell is unknown. E.g profile="<unknown shell: <shell>, replace with your profile path>" ; Ref: go-nv#62
  • goenv init and goenv init <shell> now return exit status 0. ; Ref: go-nv#62
  • goenv prefix <version> error message when not installed version is given, to quote $version with single quotes. It's now goenv: version '${version}' not installed. ; Ref: go-nv#62
  • goenv version-name <version> error message when not installed version is given, to quote $version with single quotes. It's now goenv: version '${version}' is not installed (set by $(goenv-version-origin)). ; Ref: go-nv#62
  • goenv versions error message when GOENV_NATIVE_EXT=1, but native extension is not present, to quote realpath with single quotes. It's now goenv: failed to load 'realpath' builtin. ; Ref: go-nv#62
  • goenv which <command> error message when current version (specified by GOENV_VERSION env var or .go-version file) is not installed, to quote now with single quotes. It's now goenv: version '$version' is not installed (set by $(goenv-version-origin)). ; Ref: go-nv#62
  • goenv 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 now The '$command' command exists in these Go versions:. ; Ref: go-nv#62
  • goenv which <command> error message when $command is not a binary executable present in $PATH, to quote $command in single quotes. It's now goenv: '$GOENV_COMMAND' command not found. ; Ref: go-nv#62
  • Changed go-build and goenv install's error message when no curl or wget are present to now quote using single quotes. It's now error: please install 'curl' or 'wget' and try again. ; Ref: go-nv#62
  • Changed mentions of pyenv to goenv when no go executable is found after installation of definition. ; Ref: go-nv#62
  • goenv --version now returns only goenv version. Previous format of goenv <version>-<num_commits>-<git_sha>, now just <version>. E.g goenv 1.23.3. ; Ref: go-nv#62
  • go-build --version now returns only go-build version. Previous format of go-build <version>-<num_commits>-<git_sha>, now just <version>. E.g go-build 1.23.3. ; Ref: go-nv#62
  • Changed goenv install <version>'s error message when version is not a known installable definition, but other similar ones are found to be quoted with single quotes. It's now The following versions contain '$DEFINITION' in the name: and See all available versions with 'goenv install --list'.. ; Ref: go-nv#62
  • Changed goenv uninstall <version>'s error message when version is not installed to be quoted using single quotes. It's now goenv: 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 that before_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

Removed

  • 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 in go-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 from go-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 and use_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 always go. ; Ref: go-nv#62
  • Removed unset-ing of GOHOME environment variable after installation. It's not used nowadays in Go. ; Ref: go-nv#62
  • Removed GOENV_BOOTSTRAP_VERSION support in goenv install. Legacy from pyenv and not useful in Go. ; Ref: go-nv#62

Fixed

  • Bad table formatting in the README.md ; Ref: go-nv#62
  • make bats failing when bats already exists locally ; Ref: go-nv#62

1.23.3

Added

  • Add installation definition for unix and ARM Golang 1.12beta1 ; Ref: go-nv#61

1.23.2

Added

  • 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

1.23.1

Added

  • 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

1.23.0

Added

  • 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

1.22.0

Added

  • Add installation definition for unix and ARM Golang 1.11.1 ; Ref: go-nv#55

1.21.0

Added

  • 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

1.20.0

Added

  • Add installation definition for unix and ARM Golang 1.11rc2 ; Ref: go-nv#52

1.19.0

Added

  • Add installation definition for unix and ARM Golang 1.11rc1 ; Ref: go-nv#49

1.18.0

Added

  • Add installation definition for unix and ARM Golang 1.11beta3 ; Ref: go-nv#48

1.17.0

Added

  • 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

1.16.0

Added

  • Add installation support for Golang 1.11beta2 ; Ref: go-nv#46

1.15.0

Added

  • Add installation support for Golang 1.10.3 ; Ref: go-nv#45
  • Add installation support for Golang 1.9.7 ; Ref: go-nv#45

1.14.0

Added

  • Installation support for BSD amd64 architectures as 64bit ; Ref: go-nv#44

Fixed

  • Installation on BSD i686 architectures failing due to invalid bash code ; Ref: go-nv#44

1.13.0

Added

  • Add support for Golang 1.10.2 ; Ref: go-nv#43
  • Add support for Golang 1.9.6 ; Ref: go-nv#43

1.12.0

Added

  • Add support for Golang 1.10.1 ; Ref: go-nv#42
  • Add support for Golang 1.9.5 ; Ref: go-nv#42

1.11.0

Added

  • Add support for Golang 1.10 ; Ref: go-nv#41

1.10.0

Added

  • 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

1.9.0

Added

  • Add support for Golang 1.11rc1 ; Ref: go-nv#39

1.8.0

Added

  • Add support for Golang 1.10beta2 ; Ref: go-nv#36
  • Add support for Golang 1.9.3 ; Ref: go-nv#36

1.7.0

Added

  • Add support for Golang 1.9.2 ; Ref: go-nv#35
  • Add support for Golang 1.8.5 ; Ref: go-nv#35

1.6.0

Removed

  • Remove GOROOT environment variable setup for goenv-init ; Ref: go-nv#34
  • Remove GOROOT environment variable setup when GOENV_VERSION is system for goenv-exec ; Ref: go-nv#34

1.5.0

Added

  • Add support for Golang 1.9.1 ; Ref: go-nv#33

1.4.0

Added

  • Add support for Golang 1.6.4 ; Ref: go-nv#32

1.3.0

Added

  • Add support for Golang 1.9.0 ; Ref: go-nv#31

1.2.1

Fixed

  • Replace usage of setenv with set -gx for fish shells ; Ref: go-nv#28

1.2.0

Added

  • Add support for Golang 1.8.1 ; Ref: go-nv#25
  • Add support for Golang 1.8.3 ; Ref: go-nv#27

1.1.0

Changed

  • 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

Fixed

1.0.0

Fixed

  • Switch to semver release versioning

1.8 (I have no idea why this release exists)

Added

v20161215

Added

  • Add support for Golang 1.7.4 ; Ref: go-nv#11
  • Travis CI support ; Ref: go-nv#10

Fixed

  • Test command pyenv echo => goenv echo ; Ref: go-nv#9

v20161028

Added

  • 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

Removed

  • Remove some more pyenv and python-build references in README.md ; Ref: go-nv#7

Fixed

  • Fix bash auto-completion trying to use pyenv instead of goenv ; Ref: go-nv#6

v20160814

Changed

Fixed

  • 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

v20160424

Added

Changed

Removed

v20160417

Added