This doc is the contributing guideline for Kubeflow/common developers.
We use the GitHub flow for development. Please check it out to get familiar with the process.
Before submitting a pull request, please make sure the code passes all the tests and is free of lint errors. The following sections outlines the instructions.
# Build the package.
go build ./...
# Format your code.
go fmt ./...
# Make sure to update the generated code if there are any API-level changes.
./hack/update-codegen.sh
# Make sure your API and client are update-to-date.
./hack/verify-codegen.sh
Some of the code is borrowed from upstream Kubernetes, such as controller_utils.go, which helps us remove the direct dependency on Kubernetes. For more background on this, please check out the discussions in issue #48. In addition, the following folders also contain some auxiliary codes to help us easily build the operators:
Note: Please don't edit these files. If you encounter any issues, please file an issue here.
We have a long-term plan to move them to kubernetes/client-go. See issue kubernetes/client-go/issues/332 for more details.
If you are one of the maintainers of the repo, please check out the following additional guidelines.
-
Please always use bot to merge PRs and never manually merge PRs.
-
Release notes are generated from commits so writing good commit messages are important. Below is an example:
Enhance maintainability of operator common module (#55, @Jeffwan)
Add proposal for Prometheus metrics coverage (#77, @terrytangyuan)