I am trying to compile the InfluxDB database (version v0.8.8) using go get github.com/influxdb/influxdb
But this pulls the master branch, and I need the v0.8.8
tag.
I have tried to do: go get github.com/influxdb/influxdb/releases/tag/v0.8.8
but this fails saying unable to find.
I also tried to do a regular go get
of the master branch, and then manually checking out the tag using git
in GOPATH/src/github...
in order to set the corret version.
The problem using the last approach is that when I try to pull the dependencies with go get -u -f ./...
it tries to find them in the master branch, and some of them do not exist on the master branch...
TL;DR: perform go get
on a specific github tag, and pull the correct dependencies.
It is not possible using the go get
tool. Instead you need to use a third party go package management tool or create your own forks for the packages that you wish to manage more fine grained.
Spoke to a guy that works at Google and he acknowledged this problem/requirement, he said that vendoring which his team used was bulky and they will probably solve it with the official tools soon.
Read more:
Vendoring in Go 1.6
Vendoring has been released from experimental in go 1.6 (after this post was initially written) that makes the process of using specific tags / versions of packages using third party tools easier. go get
does still not have the functionality to fetch specific tags or versions.
More about how vendoring works: Understanding and using the vendor folder
Modules in Go 1.11
Go 1.11 has released an experimental features called modules to improve dependency management, they hope to release it as stable in Go 1.12: Information about modules in Go 1.11