dex/Documentation/dev-dependencies.md
Eric Chiang d87a4c35b9 *: add 'make revendor' and tests to catch incorrect glide usage
Introducing glide-vc caused us to unknowingly removed our Go
protobuf compiler (since it's a main). Add flags to glide-vc usage
to remedy this.

Since we now require several glide and glide-vc flags, add a Makfile
target and tests to catch when PRs don't use the correct flags.
2016-12-22 11:52:24 -08:00

1.4 KiB

Managing dependencies

Dex uses glide and glide-vc to manage its vendor directory. A recent version of these are preferred but dex doesn't require any bleeding edge features. Either install these tools using go get or take an opportunity to update to a more recent version.

go get -u github.com/Masterminds/glide
go get -u github.com/sgotti/glide-vc

To add a new dependency to dex or update an existing one:

  • Make changes to dex's source code importing the new dependency.
  • Edit glide.yaml to include the new dependency at a given commit SHA or change a SHA.
  • Add all transitive dependencies of the package to prevent unpinned packages.

Tests will fail if transitive dependencies aren't included.

Once glide.yaml describes the desired state use make to update glide.lock and vendor. This calls both glide and glide-vc with the set of flags that dex requires.

make revendor

When composing commits make sure that updates to vendor are in a separate commit from the main changes. GitHub's UI makes commits with a large number of changes unreviewable.

Commit histories should look like the following:

connector/ldap: add a LDAP connector
vendor: revendor