Contributing
Set up your machine
Refer to our cookbook to learn how to set up your machine.
Development process
This section assumes you have already set up your environment to build and install the Redis operator and cluster.
Create a branch
The first step to contributing is creating a branch off of the main
branch in your forked project. Branch names should be well formatted. Start your branch name with a type. Choose one of the following:
feat
, fix
, bug
, docs
, style
, refactor
, perf
, test
, add
, remove
, move
, bump
, update
, release
Example:
$ git checkout -b feat/node-scaling
Commit your code
Make your desired changes to the branch and then commit your work:
$ git add .
$ git commit -m "<USEFUL_MESSAGE>"
$ git push --set-upstream origin <BRANCH_NAME>
When you are ready to make a pull request, we suggest you run:
$ make generate
//path/to/go/bin/controller-gen object paths="./..."
$ make fmt
find . -name '*.go' -not -wholename './vendor/*' | while read -r file; do gofmt -w -s "$file"; goimports -w "$file"; done
$ make lint
golangci-lint run --enable exportloopref
$ make test
./go.test.sh
...
These steps will:
- Regenerate the RedisCluster CRD
- Format the code according to
gofmt
standards - Run the linter
- Run the unit tests
End-to-end tests
To run the end-to-end tests, you need to have a running Kubernetes cluster. Follow the steps in the cookbook.
Submit a pull request
Push your branch to your redis-operator
fork and open a pull request against the main
branch in the official project. When you open a PR, be sure to include a description explaining your changes, as well as
Resolves #<ISSUE_NUMBER>
We also ask that you add labels describing the t-shirt size of the task (S, M, L, XL) and the task type (enhancement, documentation, bug, etc.).