Skip to content
Aviv Eyal edited this page Sep 19, 2019 · 5 revisions

Dependencies Management

  • Note: this is outdated and needs to be properly documented

  • We use the full github path for local packages names.

  • We use govendor for all 3rd party packages.

  • We add all vendored libs to the repo so there's no reliance on external repos, all added dependencies are versioned and we don't auto-pick unexpected external api changes that might break Spacemesh.

  • Do not add a dependency from Github directly using go get without using vendoring. Always add a dep using govendor.

Adding an external dep to /vendor from its latest upstream:

govendor fetch [go-package-name]

Adding all external deps to /vendor:

govendor add +external

Verifying that all dependancies are vendored. e.g. do not come from the local go path:

govendor list

Please read the cheat-sheet. All deps should be local (l) or vendored (v)

Working with Dependencies

  • We use govendor for all 3rd party packages.
  • We commit to git all 3rd party packages in the vendor folder so we have our own copy of versioned releases. To update a 3rd party package use vendor.json and govendor commands.
  • To install govendor user:
go get -u github.com/kardianos/govendor
govendor sync

Getting Started

Dev Guides

Product Specs

Clone this wiki locally