Categorygithub.com/golang/dep
modulepackage
0.5.4
Repository: https://github.com/golang/dep.git
Documentation: pkg.go.dev

# README

Build Status Windows Build Status

Would you like to see your company name here? We're looking for a stable source of funding.

Dep

dep is a dependency management tool for Go. It requires Go 1.9 or newer to compile.

dep was the "official experiment." The Go toolchain, as of 1.11, has adopted an approach that sharply diverges from dep. As a result, we are continuing development of dep, but gearing work primarily towards the development of an alternative prototype for versioning behavior in the toolchain.

For guides and reference materials about dep, see the documentation.

Installation

You should use an officially released version. Release binaries are available on the releases page.

On MacOS you can install or upgrade to the latest released version with Homebrew:

$ brew install dep
$ brew upgrade dep

On Debian platforms you can install or upgrade to the latest version with apt-get:

$ sudo apt-get install go-dep

On Windows, you can download a tarball from go.equinox.io.

On other platforms you can use the install.sh script:

$ curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

It will install into your $GOPATH/bin directory by default or any other directory you specify using the INSTALL_DIRECTORY environment variable.

If your platform is not supported, you'll need to build it manually or let the team know and we'll consider adding your platform to the release builds.

If you're interested in getting the source code, or hacking on dep, you can install via go get:

go get -u github.com/golang/dep/cmd/dep

Feedback

Feedback is greatly appreciated. At this stage, the maintainers are most interested in feedback centered on the user experience (UX) of the tool. Do you have workflows that the tool supports well, or doesn't support at all? Do any of the commands have surprising effects, output, or results? Let us know by filing an issue, describing what you did or wanted to do, what you expected to happen, and what actually happened.

Contributing

Contributions are greatly appreciated. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers. The project follows the typical GitHub pull request model. See CONTRIBUTING.md for more details. Before starting any work, please either comment on an existing issue, or file a new one.

# Packages

No description provided by the author
Package gps is a Go packaging solver library.

# Functions

BackupVendor looks for existing vendor directory and if it's not empty, creates a backup of it to a new directory with the provided suffix.
LockFromSolution converts a gps.Solution to dep's representation of a lock.
NewDeltaWriter prepares a vendor writer that will construct a vendor directory by writing out only those projects that actually need to be written out - they have changed in some way, or they lack the necessary hash information to be verified.
NewManifest instantites a new manifest.
NewSafeWriter sets up a SafeWriter to write a set of manifest, lock, and vendor tree.
ValidateProjectRoots validates the project roots present in manifest.

# Constants

LockName is the lock file name used by dep.
ManifestName is the manifest file name used by dep.
VendorAlways forces the vendor directory to always be written.
VendorNever indicates the vendor directory should never be written.
VendorOnChanged indicates that the vendor directory should be written when the lock is new or changed, or a project in vendor differs from its intended state.

# Structs

Analyzer implements gps.ProjectAnalyzer.
Ctx defines the supporting context of dep.
DeltaWriter manages batched writes to populate vendor/ and update Gopkg.lock.
Lock holds lock file data and implements gps.Lock.
Manifest holds manifest file data and implements gps.RootManifest.
A Project holds a Manifest and optional Lock for a project.
SafeWriter transactionalizes writes of manifest, lock, and vendor dir, both individually and in any combination, into a pseudo-atomic action with transactional rollback.
SolveMeta holds metadata about the solving process that created the lock that is not specific to any individual project.

# Interfaces

A TreeWriter is responsible for writing important dep states to disk - Gopkg.lock, vendor, and possibly Gopkg.toml.

# Type aliases

VendorBehavior defines when the vendor directory should be written.