begot

command module
v0.0.0-...-fb94810 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2015 License: BSD-2-Clause Imports: 15 Imported by: 0

README

begot

Begot is a Go dependency manager and build tool. It's similar to tools in the same space like Glide and Grapnel, and steals a few ideas from Blaze and Bundler as well.

The main points:

  • A dependency file describes the dependencies of a project and can pin them to specific branches, tags, or commits.
  • Instead of copying dependencies into a project repo, begot keeps them in a local cache that it manages.
  • Users are encouraged to use free-form import paths instead of code-location-based import paths.
  • Repo aliases make it easy to use forks of dependencies without any manual updating of import paths, even indirect dependencies.
  • It works great with private repositories on GitHub or elsewhere that require ssh authentication.
  • Begot acts as a wrapper for the go command.

Here's a little more detail:

Given a Begotten file with contents:

deps:
  gorilla/mux: github.com/gorilla/mux

begot update will fetch the master branch of that repo into its cache (stored in ~/.cache/begot) and create a Begotten.lock file that contains the head commit id.

Then, begot build will ensure that all dependencies refered to by Begotten.lock are present in the cache and reset to the right version, create a special dependency workspace with symlinks to the cached repos, and run the go command with a special GOPATH. Your Go code can import "gorilla/mux".

Another developer can clone a repo with a Begotten.lock file and run begot fetch to fetch all the dependencies without changing any pinned versions.

Begot rewrites imports within its cache to make things work right, but you never see the rewrites and they never get committed anywhere.

If your dependencies have dependencies themselves, everything will work transitively. If your dependencies use begot themselves, it'll check to make sure all the locked versions agree and raise an error if they don't.

For more details and discussion of motivations and tradeoffs, see doc.txt.

Begot is released under a simplified BSD license.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
bootstrap
src/gopkg.in/yaml.v2
Package yaml implements YAML support for the Go language.
Package yaml implements YAML support for the Go language.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL