Dependency Management
cloud-provider-azure uses go modules for Go dependency management.
Usage
Run make update-dependencies
whenever vendored dependencies change.
This takes a minute to complete.
Run make update-mocks
whenever implementations for pkg/azureclients change.
Updating dependencies
New dependencies causes golang to recompute the minor version used for each major version of each dependency. And golang automatically removes dependencies that nothing imports any more.
To upgrade to the latest version for all direct and indirect dependencies of the current module:
- run
go get -u <package>
to use the latest minor or patch releases - run
go get -u=patch <package>
to use the latest patch releases - run
go get <package>@VERSION
to use the specified version
You can also manually editing go.mod
and update the versions in require
and replace
parts.
Because of staging in Kubernetes, manually go.mod
updating is required for Kubernetes and
its staging packages. In cloud-provider-azure, their versions are set in replace
part, e.g.
replace (
...
k8s.io/kubernetes => k8s.io/kubernetes v0.0.0-20190815230911-4e7fd98763aa
)
To update their versions, you need switch to $GOPATH/src/k8s.io/kubernetes
, checkout to
the version you want upgrade to, and finally run the following commands to get the go modules expected version:
commit=$(TZ=UTC git --no-pager show --quiet --abbrev=12 --date='format-local:%Y%m%d%H%M%S' --format="%cd-%h")
echo "v0.0.0-$commit"
After this, replace all kubernetes and staging versions (e.g. v0.0.0-20190815230911-4e7fd98763aa
in above example) in go.mod
.
Always run hack/update-dependencies.sh
after changing go.mod
by any of these methods (or adding new imports).
See golang’s go.mod, Using Go Modules and Kubernetes Go modules docs for more details.
Updating mocks
mockgen v1.6.0 is used to generate mocks.
mockgen -copyright_file=<copyright file> -source=<azureclient source> -package=<mock package>
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.