goenv
                                
                                 goenv copied to clipboard
                                
                                    goenv copied to clipboard
                            
                            
                            
                        goenv v2.0.0 releases & Homebrew
Hi there,
I notice that there haven't been any 1.X releases lately in favour of 2.0.0 beta releases. Are we likely to see any more 1.X releases coming out? Is a 2.0.0 stable release likely to drop soon?
If there aren't likely to be any new 1.X releases would it be appropriate if we updated the Homebrew references to point to the 2.x betas? I'd love for my team to update to Go 1.12, but ideally we can avoid manually managing our goenv installations.
https://github.com/Homebrew/homebrew-core/blob/master/Formula/goenv.rb
I'm less familiar how this project operates, but is there intention in the future to decouple go-build and goenv releases to allow for go version bumps independent of toolchain changes to goenv itself?
@catkins Hi, good questions. I'll try to answer them with what I've thought over the past few weeks.
Are we likely to see any more 1.X releases coming out?
Unlikely. 2.0.0 beta channel is as stable as the 1.x.
However breaking changes/features are often introduced in the beta channel and reading the changelog is the only way to disable them. I try to introduce them including feature flags to disable them.
Is a 2.0.0 stable release likely to drop soon?
Yes. I'm still thinking what else do I miss the most in goenv that I can include (that's also breaking)  in the beta channel of 2.x.
If there aren't likely to be any new 1.X releases would it be appropriate if we updated the Homebrew references to point to the 2.x betas?
Yes, I think it's a must. Unfortunately, I've been overlooking Homebrew since I stopped using Mac few years ago.
If anyone can update the homebrew formula that would be great!
I'm less familiar how this project operates, but is there intention in the future to decouple go-build and goenv releases to allow for go version bumps independent of toolchain changes to goenv itself?
It is an intention that I still explore how it could be introduced.
I've spoken with colleagues that are also using goenv and interested in this.
Thanks for the speedy responses @syndbg 😄
I'm still thinking what else do I miss the most in
goenvthat I can include
Oh cool. Is there a roadmap noted down anywhere?
Yes, I think it's a must. Unfortunately, I've been overlooking Homebrew since I stopped using Mac few years ago.
If anyone can update the homebrew formula that would be great!
OK cool, I'll take a look to see what's involved.
From what I can tell the last few homebrew updates have been done automatically by @BePsvPT via homebrew-updater project. homebrew-updater doesn't appear to have any docs, so I guess I'll just manually create a PR updating the formula.
https://github.com/Homebrew/homebrew-core/pull/35545
Hi @catkins and @syndbg,
Homebrew-updater will open pull request when formula release a new stable version. Thus, you had not seen any PR for goenv formula in the past months.
Thanks @BePsvPT – are there any docs around for how projects get setup in homebrew-updater? It sounds very handy!
I'll open a PR with a manual bump to the beta9 release, and presumably when 2.0.0 stable is released, homebrew-updater will pick that up.
OK, so after a bit of  a diversion with Homebrew giving me some grief, it turns out that brew audit fails if I try to set it to use the beta version 🤦♀️ – I guess we're stuck with the manual git installation until 2.0.0 stable is released
brew bump-formula-pr  --strict --url=https://github.com/syndbg/goenv/archive/2.0.0beta9.tar.gz goenv
==> Downloading https://github.com/syndbg/goenv/archive/2.0.0beta9.tar.gz
Already downloaded: /Users/catkins/Library/Caches/Homebrew/downloads/737d60db7bf951655f44cd68a5629c57dd7bf573e96675b2d678ab82a8a36eba--goenv-2.0.0beta9.tar.gz
==> replace /https:\/\/github\.com\/syndbg\/goenv\/archive\/1\.23\.3\.tar\.gz/ with "https://github.com/syndbg/goenv/archive/2.0.0beta9.tar.gz"
==> replace "1559f2907ee0339328466fe93f3c9637b7674917db81754412c7f842749e3201" with "6ede9c14390c8ecc480fe9f3af54c72508a36c0c1bdd7e049e320f64ff56ca64"
goenv:
  * Stable version URLs should not contain beta
Error: 1 problem in 1 formula detected
Error: brew audit failed!
In the meantime, I'm using brew install --HEAD goenv to install from GitHub, without leaving brew.
@syndbg any movement on this? Is a stable V2 release coming anytime soon?
Hi again @syndbg – sorry to keep prodding you on this one, we all love your tool!
Will you be releasing V2 soon?
@catkins I haven't had the time to focus on the missing pieces before reaching the 2.0.0 milestone.
I hope by the end of the year, since Q4 is always a bit more unpredictable for me.
Homebrew have a general rule of not allowing/approving beta releases in homebrew/core. If you were to... say... make a release without the beta naming... I'd be more than happy to submit the updated formula :)
This most recent commit message in some of our tooling made me sad...
As we start to move to Go 1.12+,
goenvmust be upgraded in order to support these new versions. As there is nogoenv 2.xBrew formula, this can only be done by installingHEAD
Unfortunately, while this works correctly when installing fresh (without
goenvalready installed), future upgrades are skipped, as the formula is treated as 'up to date' by Brew.
To address this, we must first detect and remove
goenvversions installed by Brew which are not theHEADversion. It's unclear at this stage whether further work will be required to keep the HEAD version up to date, but we can tackle that later if needed.
This is less of an issue for goenv, more about how it's distributed :D
The fun 'fix' for anyone following along...
brew install jq
if [ -n "$(brew info --json goenv | jq -r '.[0].installed[] | select(.version | test("^HEAD-") | not)')" ]; then
  brew uninstall goenv
fi
brew install --HEAD goenv 
please release something ... not getting 1.12 and having to look through issues (even knowning where to find issues) is frustrating
... or at least make the help text for v1 say install with --HEAD if you want v1.12+
Hi again @syndbg 👋
https://github.com/syndbg/goenv/issues/80#issuecomment-533534212 Any updates on the v2 release? Is there anything I can help with to get it over the line?
@syndbg hi again! Any way we can help get v2 over the line?
Hey! Bumping this, too.
I'm actively looking into it.
Update: Still waiting on GitHub (support) to resolve my blocker to move forward.
Is there any update on Homebrew formula?
Update: Still waiting on GitHub (support) to resolve my blocker to move forward.
@syndbg is there anything we can help with there? what's the blocker?
👍
Replying to comment in closed issue: https://github.com/syndbg/goenv/issues/112#issuecomment-596125769
@rocketspacer No, I don't own it.
The goal for the official 2.0.0 of this project is to move it to an organization account where the formulae and whatever else we need, can be under 1 hat.
Hey @syndbg just bumping offer to help again. Appologies if you're already across how Homebrew works, but to clear any potential misunderstandings, you don't need to own the formula -- the community owns https://github.com/Homebrew/homebrew-core/blob/master/Formula/goenv.rb.
You can just keep bumping the version of your repo (here, or anywhere else), and the person who cares the most will make sure the homebrew formula gets bumped.
The reason this is causing so much angst right now is that Homebrew do not allow pointing to betas. So anyone installing via homebrew (👋) is still pointing at https://github.com/syndbg/goenv/tree/1.23.3 which is painfully out of date now. There are workarounds, but they all have compromises. It'll be much easier if we can point to an official release of 2.0. If you end up moving or renaming the project, the formula can be updated without too much hassle.
More than happy to help, but until 2.0 drops, hands are a bit tied :)
@syndbg I understand that you want to do a proper 2.0.0 release. But until all the kinks for that have been straightened out, you maybe please could just "release" a new 1.X version with the latest 2-beta changes..? So somebody can update the community formula for brew and us that uses homebrew can use this nice tool to get the latest go without using the brew uninstall/install --head "workaround/fix" suggested above by @d3v1an7. =)
@syndbg Hi again, any way we can help get 2.0 across the line?
Alternately, would be we able to start pushing releases of both 1.x (off a branch) and 2.x-beta?
Or, alternatively, create a Homebrew tap?
Hi again @syndbg 👋
Any way we can help get 2.x out as stable soon?
While we wait (either for you to release or for you to let us know how to help) would you be open to simply creating a release-1.x branch here based off the 1.23.3 tag and allowing the versions to be updated and tagged only.  That should be minimal effort and allow us to help at least make sure that homebrew users can use a version of go that is still supported without needing to manually fetch updates via git.
Sadly, this is a pretty big issue for a number of users and one that could be solved easily until you have 2.0.0 released.
here again because I had to
brew uninstall goenv
brew install --HEAD goenv
to get a new go version :( ... can we please have a release/make standard brew work ?
For those looking for newer versions, I have been using following workaround successfully to upgrade goenv every now and then from HEAD
brew upgrade goenv --fetch-HEAD
Trying to get HEAD leaves me with this error message:
➜ brew install --HEAD --verbose goenv
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
Updated 5 formulae.
Updating Homebrew...
==> Cloning https://github.com/syndbg/goenv.git
Updating /Users/vidhanio/Library/Caches/Homebrew/goenv--git
git config remote.origin.url https://github.com/syndbg/goenv.git
git config remote.origin.fetch \+refs/heads/master:refs/remotes/origin/master
git config remote.origin.tagOpt --no-tags
git fetch origin
==> Checking out branch master
git checkout -f master --
Already on 'master'
Your branch is up to date with 'origin/master'.
git reset --hard origin/master --
HEAD is now at 08e3ae6 Use correct checksum for Go Darwin arm 1.17.2 (#197)
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/CODE_OF_CONDUCT.md /private/tmp/d20211027-83116-1fr3jfq/CODE_OF_CONDUCT.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/ADVANCED_CONFIGURATION.md /private/tmp/d20211027-83116-1fr3jfq/ADVANCED_CONFIGURATION.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/LICENSE /private/tmp/d20211027-83116-1fr3jfq/LICENSE
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/test/. /private/tmp/d20211027-83116-1fr3jfq/test
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/bin/. /private/tmp/d20211027-83116-1fr3jfq/bin
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/CHANGELOG.md /private/tmp/d20211027-83116-1fr3jfq/CHANGELOG.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/HOW_IT_WORKS.md /private/tmp/d20211027-83116-1fr3jfq/HOW_IT_WORKS.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/plugins/. /private/tmp/d20211027-83116-1fr3jfq/plugins
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/Makefile /private/tmp/d20211027-83116-1fr3jfq/Makefile
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/COMMANDS.md /private/tmp/d20211027-83116-1fr3jfq/COMMANDS.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/libexec/. /private/tmp/d20211027-83116-1fr3jfq/libexec
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/completions/. /private/tmp/d20211027-83116-1fr3jfq/completions
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/RELEASE_PROCESS.md /private/tmp/d20211027-83116-1fr3jfq/RELEASE_PROCESS.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/INSTALL.md /private/tmp/d20211027-83116-1fr3jfq/INSTALL.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/.editorconfig /private/tmp/d20211027-83116-1fr3jfq/.editorconfig
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/README.md /private/tmp/d20211027-83116-1fr3jfq/README.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/.gitignore /private/tmp/d20211027-83116-1fr3jfq/.gitignore
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/CONTRIBUTING.md /private/tmp/d20211027-83116-1fr3jfq/CONTRIBUTING.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/.agignore /private/tmp/d20211027-83116-1fr3jfq/.agignore
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/Brewfile /private/tmp/d20211027-83116-1fr3jfq/Brewfile
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/.git/. /private/tmp/d20211027-83116-1fr3jfq/.git
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/.travis.yml /private/tmp/d20211027-83116-1fr3jfq/.travis.yml
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/ENVIRONMENT_VARIABLES.md /private/tmp/d20211027-83116-1fr3jfq/ENVIRONMENT_VARIABLES.md
cp -pR /Users/vidhanio/Library/Caches/Homebrew/goenv--git/src/. /private/tmp/d20211027-83116-1fr3jfq/src
cp -pR /private/tmp/d20211027-83116-1fr3jfq/CODE_OF_CONDUCT.md /private/tmp/goenv-20211027-83116-179l575/CODE_OF_CONDUCT.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/ADVANCED_CONFIGURATION.md /private/tmp/goenv-20211027-83116-179l575/ADVANCED_CONFIGURATION.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/LICENSE /private/tmp/goenv-20211027-83116-179l575/LICENSE
cp -pR /private/tmp/d20211027-83116-1fr3jfq/test/. /private/tmp/goenv-20211027-83116-179l575/test
cp -pR /private/tmp/d20211027-83116-1fr3jfq/bin/. /private/tmp/goenv-20211027-83116-179l575/bin
cp -pR /private/tmp/d20211027-83116-1fr3jfq/CHANGELOG.md /private/tmp/goenv-20211027-83116-179l575/CHANGELOG.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/HOW_IT_WORKS.md /private/tmp/goenv-20211027-83116-179l575/HOW_IT_WORKS.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/plugins/. /private/tmp/goenv-20211027-83116-179l575/plugins
cp -pR /private/tmp/d20211027-83116-1fr3jfq/Makefile /private/tmp/goenv-20211027-83116-179l575/Makefile
cp -pR /private/tmp/d20211027-83116-1fr3jfq/COMMANDS.md /private/tmp/goenv-20211027-83116-179l575/COMMANDS.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/libexec/. /private/tmp/goenv-20211027-83116-179l575/libexec
cp -pR /private/tmp/d20211027-83116-1fr3jfq/completions/. /private/tmp/goenv-20211027-83116-179l575/completions
cp -pR /private/tmp/d20211027-83116-1fr3jfq/RELEASE_PROCESS.md /private/tmp/goenv-20211027-83116-179l575/RELEASE_PROCESS.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/INSTALL.md /private/tmp/goenv-20211027-83116-179l575/INSTALL.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/.editorconfig /private/tmp/goenv-20211027-83116-179l575/.editorconfig
cp -pR /private/tmp/d20211027-83116-1fr3jfq/README.md /private/tmp/goenv-20211027-83116-179l575/README.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/.gitignore /private/tmp/goenv-20211027-83116-179l575/.gitignore
cp -pR /private/tmp/d20211027-83116-1fr3jfq/CONTRIBUTING.md /private/tmp/goenv-20211027-83116-179l575/CONTRIBUTING.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/.agignore /private/tmp/goenv-20211027-83116-179l575/.agignore
cp -pR /private/tmp/d20211027-83116-1fr3jfq/Brewfile /private/tmp/goenv-20211027-83116-179l575/Brewfile
cp -pR /private/tmp/d20211027-83116-1fr3jfq/.git/. /private/tmp/goenv-20211027-83116-179l575/.git
cp -pR /private/tmp/d20211027-83116-1fr3jfq/.travis.yml /private/tmp/goenv-20211027-83116-179l575/.travis.yml
cp -pR /private/tmp/d20211027-83116-1fr3jfq/ENVIRONMENT_VARIABLES.md /private/tmp/goenv-20211027-83116-179l575/ENVIRONMENT_VARIABLES.md
cp -pR /private/tmp/d20211027-83116-1fr3jfq/src/. /private/tmp/goenv-20211027-83116-179l575/src
chmod -Rf +w /private/tmp/d20211027-83116-1fr3jfq
Error: An exception occurred within a child process:
  Errno::ENOENT: No such file or directory @ rb_sysopen - test/init.bats
Resolved by Homebrew/homebrew-core#88169! thanks :)