status-im/status-go

View on GitHub
_assets/docs/DEPENDENCIES.md

Summary

Maintainability
Test Coverage
# Dependency Management

Dependencies are managed by Go modules. They should be managed automatically and additionally we vendor all dependencies into `vendor/`. More on [Go Modules](https://github.com/golang/go/wiki/Modules).

## Adding and updating a dependency

1. `$ get get -u github.com/foo/bar`
2. `$ make vendor`
3. Commit changes.

## Updating go-ethereum

Remember that we use our fork of go-ethereum. It is included in the list of dependencies (`go.mod`) as a regular package: `github.com/ethereum/go-ethereum v1.8.27`, however, at the bottom of `go.mod` there is a replace directive. So, if you want to upgrade go-ethereum, these two lines need to be updated.

## Committing changes

Make sure that you don't commit unnecessary changes to `go.mod` and
`go.sum`.

## Common issues

1. Relative imports and "Could not introduce package, as its subpackage does not contain usable Go code". See [this comment](https://github.com/golang/dep/issues/899#issuecomment-317904001) for more information.