-
Notifications
You must be signed in to change notification settings - Fork 128
Conversation
LGTM. Thanks! |
An update: The tests fail because the Go version installed is still not new enough. It seems like for the command line tools the install path (which unlike normal packages is in the GOROOT path) for each tools/cmd package is hardcoded into When Go 1.4 comes out in two weeks or so it should work without having to do anything. The real question is why AppVeyor passes. Looks like only a few test are performed. |
I did some digging last night (and focused a single test). The issue appears to be that vet and cover get installed to $GOPATH/bin, whereas they used to get installed to GOTOOLDIR:
I think the issue might be some code that looks for the executable - it only looks in GOTOOLDIR, and doesn't use the PATH or $GOPATH/bin. |
Yep, that's it. Vet and Cover now no longer install into |
Yes, that is what I said. Which packages that end up in $GOTOOLDIR are hardcoded into go get, and the hardcoded references aren't changed in Go 1.3.3 (But are in the development builds). Normal tools packages in golang.org/x/ will work fine though since they don't depend on being in a special path. Go only looks for tools in $GOTOOLDIR, the file ending up in $GOPATH is a "bug". The recent change is here: https://codereview.appspot.com/168170043/patch/50001/60002 |
A fix could be to roll back to the old paths and update them again in two or three weeks time when Go 1.4 is out. |
It's really dumb they didn't use branches to maintain a valid version for go 1.3.x, while moving 1.4.x forward on master. I think you're right - there's really no solution here until 1.4 comes out. Thanks for all the help! |
I'm temporarily leaving the old path for cover, as it's the only tool that is impacted - I call vet directly but cover needs to be in the correct location as |
Travis OSX images ship with an older version of Go (1.3.1) than their normal Ubuntu ones, making the build fail on a
go get
, this updates it to Go 1.3.3. Same goes for AppVeyor.Leaving a request for Travis and AppVeyor to update their environment would be ideal, but for now this works.
The Travis build will also only update if it is outdated.
Still some failures on the Travis build, but they are unrelated to this.