# The name of this package.
package: github.com/Masterminds/glide

# External dependencies.
import:
  # Minimal definition
  # This will use "go get [-u]" to fetch and update the package, and it will
  # attempt to keep the release at the tip of master. It does this by looking
  # for telltale signs that this is a git, bzr, or hg repo, and then acting
  # accordingly.
  - package: github.com/kylelemons/go-gypsy

  # Full definition
  # This will check out the given Git repo, set the version to master,
  # use "git" (not "go get") to manage it, and alias the package to the
  # import path github.com/Masterminds/cookoo
  - package: github.com/Masterminds/cookoo
    vcs: git
    version: master
    repo: git@github.com:Masterminds/cookoo.git

  # Here's an example with a commit hash for a version. Since repo is not
  # specified, this will use git to to try to clone
  # 'http://github.com/aokoli/goutils' and then set the revision to the given
  # hash.
  - package: github.com/aokoli/goutils
    vcs: git
    version: 9c37978a95bd5c709a15883b6242714ea6709e64

  # MASKING: This takes my fork of goamz (technosophos/goamz) and clones it
  # as if it were the crowdmob/goamz package. This is incredibly useful for
  # masking packages and/or working with forks or clones.
  #
  # Note that absolutely no namespace munging happens on the code. If you want
  # that, you'll have to do it on your own. The intent of this masking was to
  # make it so you don't have to vendor imports.
  - package: github.com/crowdmob/goamz
    vcs: git
    repo: git@github.com:technosophos/goamz.git

  - package: bzr.example.com/foo/bar/trunk
    vcs: bzr
    repo: bzr://bzr.example.com/foo/bar/trunk
    # The version can be a branch, tag, commit id, or a semantic version
    # constraint parsable by https://github.com/Masterminds/semver
    version: 1.0.0

  - package: hg.example.com/foo/bar
    vcs: hg
    repo: http://hg.example.com/foo/bar
    version: ae081cd1d6cc

  # For SVN, the only valid version is a commit number. Tags and branches go in
  # the repo URL.
  - package: svn.example.com/foo/bar/trunk
    vcs: svn
    repo: http://svn.example.com/foo/bar/trunk


  # If a package is dependent on OS, you can tell Glide to only
  # fetch for certain OS or architectures.
  #
  # os can be any valid GOOS.
  # arch can be any valid GOARCH.
  - package: github.com/unixy/package
    os:
      - linux
      - darwin
    arch:
      - amd64
