Contribution Guide
First and foremost thank you very much for your interest in our project and willing to make it better by contributing.
Before we dive into technicalities on how to build and run it let’s emphasize that there are other means of contributing \besides submitting pull requests, which we value as much.
-
Issues and feature requests.
-
Documentation improvements.
-
Blogging.
-
Spreading the word on conferences and user groups.
Reporting issues
It’s important to us that the tool we are building gives our users smooth and enjoyable experience.
Filing issues is extremely valuable contribution and to make it easier for you, we prepared a template which will guide you through this process.
Pull Requests
We would love to see a pull request from you, even if it’s a typo.
There are not many strict rules or guidelines to follow, as we strive to automate as much as possible, however, if your work is non-trivial please make sure there’s associated issue with it. This will help us to prepare release notes.
If you don’t know where to start - have a look at good first issues.
Development
Setup
Assuming that you have all the Golang prerequisites in place, clone the repository first:
$ git clone https://github.com/maistra/istio-workspace $GOPATH/src/github.com/maistra/istio-workspace
| Have a look how Go Version Manager can help you simplify configuration and management of different versions of Go. |
We rely on following tools:
-
golang-cilinter, -
ginkgofor testing, -
goimportsfor formatting, -
operator-sdkfor code generation.
Build process takes care of installing those binaries on your behalf when you run default make target. You can also run make tools to install them.
Coding
From now on you are ready to hack. Open your favorite IDE and start right away! To build and test the code simply run make.
Run make help to see what other targets are available.
|
Testing
The default make target executes unit tests, but to only run those you can always invoke make test.
When developing you can also use ginkgo watch, so they are run whenever the change in the code occur. This makes feedback loop faster.
We also have end-to-end tests (make test-e2e) for which you need to have Kubernetes cluster with Istio installed.
| Check our Development Guide for more details! |