What the dep is going on with Go dependency management?

C2 | Mon 21 Jan | 11:35 a.m.–11:55 a.m.

Presented by

  • Adam Harvey

    Adam is a software developer who has worked on a number of interesting and occasionally even useful things in his near two decade career. These include prototyping the worst mesh network of all times (based on Android phones), discovering how to reliably lock up a Windows computer by writing an in-browser video editor, and (most usefully) removing the original mysql_* API from PHP. Today he works at New Relic on their PHP and C language support. In his spare time, he contributes to a variety of open source projects, a secret robot project that may have some Asimov-related issues, a variety of half finished web sites, and is attempting to drink every beer Vancouver produces.


Robust dependency management in Go has been a long time coming. The zeroth generation were third party tools like Glide and Godep that attempted to provide some level of order to your $GOPATH, but had no inclination towards being standard tools. These were then followed by dep, which aimed to be a standard tool in the same way that NPM is/was the standard for JavaScript, Composer is for PHP, and Gem is for Ruby. In 2019, though, there's a new kid in town, and it's now integrated into the standard toolchain: go mod, formerly known as vgo. In this talk I'll introduce go mod using examples of how it can be used with both greenfield projects and old projects that used those earlier tools, both in terms of projects that are simple downstream users of third party modules and those that are intended to be used by others. Linux Australia: http://mirror.linux.org.au/pub/linux.conf.au/2019/c2/Monday/What_the_dep_is_going_on_with_Go_dependency_management.webm YouTube: https://www.youtube.com/watch?v=1CYqo_NdfLo