Go Exposed: How Remote Import Paths Work

One of the confusing and not well documented aspects of Go is the way remote import paths work. That is, how do the naming conventions tell Go how to get from the right remote locations? In Glide we have chosen to keep compatibility with go get based names. This has turned out to be one of the areas we get the most questions and see the most confusion. If you've run into a problem you're not alone.

Continue Reading »

SemVer 1.1.0 Released With Validation Support

The first release of the github.com/Masterminds/semver package for Go was fairly complete. Not only did it include the ability to parse Semantic Versions it including sorting and range support that would be familiar for those coming from JavaScript, PHP, Python, and numerous other languages. It was everything we needed for Glide and more.

There was one interesting feature request that came in fairly quickly. That is the ability to know why a version failed when tested against a constraint.

For example, say you want to test a version, possibly passed in by user or outside input, of 1.2.3 against the constraint >= 1.1.1, < 2, != 1.2.3, != 1.4.5. Why did it fail? It could even be the case the constraint is passed in programmatically as well.

The 1.1.0 release of the semver package now has the ability to tell you.

Continue Reading »

Stripping Vendor VCS Data While Using Glide

Many developers want to use Glide with Go and store external packages in their version control system in the vendor/ directory. Glide handles updates when the version control system data is present or absent. But, it doesn't strip VCS data from repos. In a first step, of several that are coming, to improve support for vendoring we have a new tool that strips VCS data.

Continue Reading »

Why Glide Doesn't Strip Unused Packages

Disclaimer: I'm not a lawyer and this is not legal advice. For licensing advice see a lawyer. Preferably one familiar with software licenses.

We've been asked to add features to Glide to strip unused packages from the vendor/ folder. Some have asked why we don't have a feature that does that when other Go package managers do it. The reason has to do with software licenses and how following them makes things complicated.

Continue Reading »

Other Recent Posts: