Hacker News new | ask | show | jobs
by bassislife 3609 days ago
In Go, each version corresponds to a given import/Pkg path.

If you want to change version (major), you need to create a new package.

The advantage is that you do not have to download a manifest such as package.json or whatever. It also provides a constraint on library authors to provide a backward compatible API for their published package.

Eventually, I guess we could use go/types to enforce/check the API backward compatibility requirement.

The main issues for now are:

* make sure that packages importing a same vendored one are able to use the same latest minor version in use.

* allow a project based approach to go get for people who need reproducible builds (or alternatively allow for multiple $GOPATH and make being able to switch between them easy)