Go Package Manager
Google’s Go programming language has become resonably popular in the last few years, despite this attention the language does not provide a mechanism to ensure a given Go project build can be reproduced on multiple environments when external dependencies are involved - with the official solution to the problem being copying all external source code into your application, cumbersome as it is.
Go Package Manager (or gpm, for sort) offers a solution to this problem, rather than reimagining the way dependencies are resolved and fetched by the official Go tool, gpm simply adds the possibility of specifying a revision as understood by the underlying version control system of each external dependency.
Like Go, gpm supports dependencies versioned with Git, Bazaar, Mercurial and Subversion, and like Go, it achieves its goals without the need for a centralized server or overly clever tampering with your source code, the whole process is transparent and your Go application won’t even know - or care - about specific versions being used for your external dependencies.
GPM is released under a MIT license, you can see the code and the official documentation in it’s GitHub repository.