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.

Reply via email to