Hi,

I am an engineer working on Heroku's Go buildpack 
<https://github.com/heroku/heroku-buildpack-go>. 

Our buildpack needed a way for users to select the version of Go that they 
wanted to build their code, so a “hacky” solution of using build tag like 
constructs was implemented: 
https://github.com/heroku/heroku-buildpack-go#go-module-specifics. TL;DR: 
Users can specify their version in go.mod via:
// +heroku goVersion <a go Version>

As of Go 1.12 there is a new go directive in the go.mod file that seems to 
duplicate our hack. We've already had one issue opened where a user was 
confused as to why they got Go 1.11 instead of Go 1.12: 
https://github.com/heroku/heroku-buildpack-go/issues/301 (TL;DR: We don't 
support the go directive and our default Go version is still go1.11.5)

I am trying to implement go version selection per the go directive. I have 
some questions related to how this directive will be used and how it's 
value will change over time that aren't documented in the wiki 
<https://github.com/golang/go/wiki/Modules>.

When go 1.12.1 is released and used by a user, will the directive be 
automatically updated to go 1.12.1 the next time a go mod command is run?
Or will only major versions be represented in the file? If so, will the 
directive be automatically updated when Go 1.13 comes out?
Or will the user need to manually edit the file?
Or should we not use this directive to indicate the version of Go to use to 
build the code?

I may have some follow up questions based on the answers.

Thanks,
Sowju

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to