Dep was an official experiment to implement a package manager for Go. While dep has many discrete components and moving parts, all of these parts revolve around a central model. Dep is a tool intended primarily for use by developers, to support the work of actually writing and shipping code. It is not intended for end users who are installing Go software - that's what go get does. It is strongly recommended that you use a released version of dep. While tip is never purposefully broken, its stability is not guaranteed. Note that dep requires a functioning Go workspace and GOPATH. Dep is centered around the idea of the "four state system" - a model for classifying and organizing the on-disk state with which a package manager interacts. This was first articulated as a coherent, general model in this (long) article, though many of the principles in the four state model were derived from existing package managers.
Features
- Provides a solving function, that takes as its input the set of imports in the current project and the rules in Gopkg.toml
- Provides a vendoring function, that takes the information in a Gopkg.lock as its input and ensures an on-disk arrangement of source files
- One of dep's design goals is that both of its "functions" minimize both the work they do, and the change they induce in their respective outputs
- Most network issues are ephemeral, even if they may last for a few minutes, and can be addressed simply by re-running the same command
- The solver guarantees certain invariants in every complete solution it returns
- Deduction is dep's algorithm for looking at an import path and determining the portion of the path that corresponds to the source root