I was looking at the Module page on the Wiki ( https://github.com/golang/go/wiki/Modules ) for instruction on how to handle breaking API changes (v2, v3, etc) and I noticed mention of the mythical `goforward`:
A more sophisticated approach here could exploit type aliases (introduced > in Go 1.9) and forwarding shims between major versions residing in > different subdirectories. This can provide additional compatibility and > allow one major version to be implemented in terms of another major > version, but would entail more work for a module author. An in-progress > tool to automate this is goforward. Please see here > <https://golang.org/cl/137076> for more details and rationale, along with > a functioning initial version of goforward. I also found multiple mentions of it (by the author, I assume) on the Golang issues on Github, claiming that it may solve various problems. And I think "that's cool, but... how do I get it?" I went to the suggested link ( https://go-review.googlesource.com/c/tools/+/137076/ ), but there's no instruction on how to install, how to use it, and maybe even gives less digestible information than on the modules wiki. The googlesource.com interface is perhaps the strangest I've ever seen for git / code. I'm guessing it must be some sort of internal Google tool that you kinda have to be a googler to understand. Nevertheless, I see Repo: tools Branch: master and so I figure there must be a repo somewhere containing this code. I click on the *tools* link which takes me to https://go-review.googlesource.com/q/project:tools ... very confusing. I found the *repo settings* link which lead me to https://go-review.googlesource.com/admin/repos/tools where I finally see something familiar: git clone "https://go.googlesource.com/tools" Now I have the repo cloned... but there's no mention of "goforward" and hardly any mention of "forward" at all (which is not the forward I'm looking for). It appears that the latest commit was yesterday (June 27th, 2019), but I couldn't find the HEAD in the interface and I can't even checkout the parent commit (which is shown in the interface): git checkout a44989a error: pathspec 'a44989a' did not match any file(s) known to git Where is this thing and how can I try it out? -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/e665c384-fd30-462f-aab6-f6e1195331bb%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.