Go Deps










Keith Rarick

The Problem


Wait, is there a problem?
Many projects should just use the go tool.

  • A dependency breaks
  • A dependency disappears
  • A dependency moves

Prior Art


  • CPAN
  • Bundler
  • Leiningen
  • many more…

Many Solutions


gonuts
goven
johnny deps
gopin
rx
git submodules
envie
gob
gopack
gopm
gvm










and more…

Godep


Started last May.

Nothing like it at the time.


Goals


  • Reproducible builds
  • Small surface area + mechanism
  • Keep smooth workflow
  • Easy to join a project
  • Bonus: seamless on Heroku

Anti-Goals


  • More indirection
  • Central repo
  • Parse version strings
  • Fancy constraints

Basic Principles


Record exact dependencies.

Check in the code too!

Resolve only at the top.

Run the go tool with a modified GOPATH.



Demo

Future Work


Generalize.

Fix bugs.

Add a very few glaring missing features.

Thanks










Keith Rarick

Dependencies in Go

By Keith Rarick

Dependencies in Go

Overview and demonstration of Godep (https://github.com/kr/godep) and Go dependency management.

  • 2,137