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.