Skip to content

Instantly share code, notes, and snippets.

@tiborvass
Last active August 29, 2015 14:22
Show Gist options
  • Save tiborvass/68285abf1435d86273ae to your computer and use it in GitHub Desktop.
Save tiborvass/68285abf1435d86273ae to your computer and use it in GitHub Desktop.
$ docker run -it golang bash
root@40465859a7eb:/go# # I added some code that uses logrus's WithFields which is only available starting from v0.3.0
root@40465859a7eb:/go/src/test# echo $GOPATH
/go
root@40465859a7eb:/go/src/test# go get github.com/Sirupsen/logrus
root@40465859a7eb:/go/src/test# ls -la
total 12
drwxr-xr-x 2 root root 4096 Jun 10 14:33 .
drwxrwxrwx 4 root root 4096 Jun 10 14:34 ..
-rw-r--r-- 1 root root 129 Jun 10 14:34 main.go
root@40465859a7eb:/go/src/test# cat main.go # uses
package main
import "github.com/Sirupsen/logrus"
func main() {
logrus.WithFields(logrus.Fields{"hello": "world"}).Println()
}
root@40465859a7eb:/go/src/test# go run main.go # works with master obviously
INFO[0000] hello=world
root@40465859a7eb:/go/src/test# go get github.com/tools/godep
root@40465859a7eb:/go/src/test# godep save
godep: error while inspecting "/go/src/test": directory "/go/src" is not using a known version control system
godep: error loading packages
root@40465859a7eb:/go/src/test# git init
Initialized empty Git repository in /go/src/test/.git/
root@40465859a7eb:/go/src/test# godep save
root@40465859a7eb:/go/src/test# # wtf: why does godep need my project to be versioned?
root@40465859a7eb:/go/src/test# cat Godeps/Godeps.json
{
"ImportPath": "test",
"GoVersion": "go1.4.2",
"Deps": [
{
"ImportPath": "github.com/Sirupsen/logrus",
"Comment": "v0.8.2-10-g21d4508",
"Rev": "21d4508646ae56d79244bd9046c1df63a5fa8c37"
}
]
}
root@40465859a7eb:/go/src/test# apt-get install vim
...
root@40465859a7eb:/go/src/test# vim Godeps/Godeps.json # let's modify it to v0.2.0 that doesn't have WithFields support
root@40465859a7eb:/go/src/test# cat Godeps/Godeps.json
{
"ImportPath": "test",
"GoVersion": "go1.4.2",
"Deps": [
{
"ImportPath": "github.com/Sirupsen/logrus",
"Rev": "v0.2.0"
}
]
}
root@40465859a7eb:/go/src/test# godep restore
root@40465859a7eb:/go/src/test# godep go run main.go
INFO[0000] hello=world
root@40465859a7eb:/go/src/test# # wtf?? is it because tags are not supported in Rev ?
root@40465859a7eb:/go/src/test# # then it should error out..
root@40465859a7eb:/go/src/test# rm -rf Godeps/_workspace/
root@40465859a7eb:/go/src/test# godep restore
root@40465859a7eb:/go/src/test# godep go run main.go
# command-line-arguments
./main.go:6: undefined: logrus.WithFields
godep: go exit status 2
root@40465859a7eb:/go/src/test# # wtf: turns out godep support tags, but godep restore only works if you dont already have a _workspace...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment