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 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?"
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.
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?