Go Under Cover

Travis CI makes it simple to build and test my applications and Coveralls makes it easy to get coverage reports. As a bonus, the two go together like peas in a pod. Naturally, I expected the same with my little Go project, which is essentially a dumping ground for my buddy and I to share our code.

Challenge: Coverage

As expected, getting Travis CI to build and test my project was cake and since there is a Go tool for submitting coverage reports to Coveralls (aptly named Goveralls), I suspected that this would be cake, too. Unfortunately it was was not. Here’s why:

$ go test -cover -coverprofile=blah.blah ./...
cannot use test profile flag with multiple packages

Continue reading “Go Under Cover”

Go Under Cover

Go Dependency Hell, No More!

So, I have a little repo of Golang code for playing around with the language, as I am pretty new to it. While Go is fascinating and fun, like any other language it is not without it’s caveats. To be fair, I really enjoy writing Go code and growing pains are expected for such a young language. Fortunately, there is a vibrant and growing community supporting it.

Challenge: Dependencies

Dependency management, for one, is lacking in sophistication. Unlike many other platforms, Go’s didn’t really have a way to specify a particular version of the dependency to use in your project. For instance if you are familiar with npm, maven or bundler, then you would be used to specifying a precise version of your project’s dependency in a package.json, pom.xml or Gemfilerespectively. In Go you will always get the latest version of your dependencies. This is clearly not ideal if you don’t want to be in the business of updating your code every time a vendor makes a backwards-incompatible change to a library you use.

Continue reading “Go Dependency Hell, No More!”

Go Dependency Hell, No More!