|
1 |
| -= Contributing to the mobile CLI |
| 1 | +# Contributing to the mobile CLI |
2 | 2 |
|
3 | 3 | This document explains how to set up a development environment and get involved with Mobile CLI project.
|
4 | 4 |
|
5 |
| -Before anything else, https://help.github.com/articles/fork-a-repo/[fork] the Mobile CLI project. |
| 5 | +Before anything else, [fork](https://help.github.com/articles/fork-a-repo/) the Mobile CLI project. |
6 | 6 |
|
7 |
| -== Tools We use |
| 7 | +## Tools We use |
8 | 8 |
|
9 | 9 | * Git
|
10 | 10 | * Go
|
11 | 11 | * Make
|
12 | 12 |
|
13 |
| -== Set Up OpenShift |
| 13 | +## Set Up OpenShift |
14 | 14 |
|
15 | 15 | The Mobile CLI targets Kubernetes and is intended to be developed against a running Kubernetes cluster,
|
16 | 16 | we use OpenShift as our Kubernetes distribution. The Mobile CLI is intended to help you work with Mobile Services running ontop of OpenShift.
|
17 |
| -To provision these services, we levarage the https://github.com/kubernetes-incubator/service-catalog[Service Catalog] and the https://github.com/openshift/ansible-service-broker[Ansible Service Broker]. |
18 |
| -To help get this infrastructure set up there is a https://github.com/aerogear/mobile-core#installing-from-a-development-release[ansible based installer] provided. |
| 17 | +To provision these services, we levarage the [Service Catalog](https://github.com/kubernetes-incubator/service-catalog) and the [Ansible Service Broker](https://github.com/openshift/ansible-service-broker). |
| 18 | +To help get this infrastructure set up there is a [ansible based installer](https://github.com/aerogear/mobile-core#installing-from-a-development-release) provided. |
19 | 19 |
|
20 |
| -== Clone the repositiory |
| 20 | +## Clone the repositiory |
21 | 21 |
|
22 | 22 | As we are using Go, the path you clone this repo into is important.
|
23 | 23 |
|
24 | 24 | * create the directory `mkdir -p $GOPATH/src/github.com/aerogear`
|
25 |
| -* clone the repo `cd $GOPATH/src/github.com/aerogear && git clone git@github.com:aerogear/mobile-CLI.git` |
26 |
| -* add your own fork as the upstream target `git add remote upstream <your fork>` |
| 25 | +* clone the repo `cd $GOPATH/src/github.com/aerogear && git clone git@github.com:aerogear/mobile-CLI.git` |
| 26 | +* add your own fork as the upstream target `git add remote upstream <your fork>` |
27 | 27 |
|
28 |
| -== Building the Mobile CLI |
| 28 | +## Building the Mobile CLI |
29 | 29 |
|
30 | 30 | To build the CLI locally you can run `make build` this command will run a set of checks and the unit tests before compiling the binary and outputting it into the current directory,
|
31 | 31 | if you only want to build the binary itself you can simply run `make build_binary`.
|
32 | 32 | Once built, you can access this binary and use it from the command line `./mobile`
|
33 | 33 | Remember however that the CLI is intended as a Kubernetes plugin so expects to find kube configuration in `~/.kube/config`. If you have setup OpenShift this should
|
34 | 34 | already be in place.
|
35 | 35 |
|
36 |
| -== Submitting changes to the Mobile CLI |
| 36 | +## Submitting changes to the Mobile CLI |
37 | 37 |
|
38 |
| -=== Before making a pull request |
| 38 | +### Before making a pull request |
39 | 39 |
|
40 | 40 | There are a few things you should keep in mind before creating a PR.
|
41 | 41 |
|
42 |
| -* New code should have corresponding unit tests. An example of how we approach unit testing can be found in https://github.com/aerogear/mobile-CLI/blob/master/pkg/cmd/clients_test.go[clients_test.go]. |
| 42 | +* New code should have corresponding unit tests. An example of how we approach unit testing can be found in [clients_test.go](https://github.com/aerogear/mobile-CLI/blob/master/pkg/cmd/clients_test.go). |
43 | 43 |
|
44 |
| -* Ensure for new commands to read the https://github.com/aerogear/mobile-CLI/doc/adding_new_cmd.md[adding a new command] doc before hand. |
| 44 | +* Ensure for new commands to read the [adding a new command](https://github.com/aerogear/mobile-CLI/doc/adding_new_cmd.md) doc before hand. |
45 | 45 |
|
46 |
| -* You Must run ```make build``` before creating the PR and ensure it must execute with no errors. |
| 46 | +* You must run ```make build``` before creating the PR and ensure it must execute with no errors. |
47 | 47 |
|
48 | 48 | * When needed, provide an explanation of the command and the expected output to help others that may review and test the change.
|
49 | 49 |
|
50 |
| -=== Making a pull request |
| 50 | +### Making a pull request |
51 | 51 |
|
52 |
| -Make a https://help.github.com/articles/using-pull-requests[pull request (PR)] in the standard way. |
| 52 | +Make a [pull request (PR)](https://help.github.com/articles/using-pull-requests) in the standard way. |
53 | 53 |
|
54 | 54 | Use [WIP] at the beginning of the title (ie. [WIP] Add feature to the CLI) to mark a PR as a Work in Progress.
|
55 | 55 |
|
56 |
| -If you are not a member of the https://github.com/aerogear[aerogear org], the build job will pause for approval from a trusted approver. |
| 56 | +If you are not a member of the [aerogear org](https://github.com/aerogear), the build job will pause for approval from a trusted approver. |
57 | 57 | Anyone who can login to Jenkins can approve.
|
58 | 58 |
|
59 | 59 | Your PR will then be reviewed, questions may be asked and changes requested.
|
60 | 60 |
|
61 | 61 | Upon successful review, someone will approve the PR in the review thread. Depending on the size of the change, we may wait for 2 LGTM from reviewers before merging.
|
62 | 62 |
|
63 | 63 |
|
64 |
| -=== Major features |
| 64 | +### Major features |
65 | 65 |
|
66 | 66 | The aerogear community uses a proposal process when introducing a major feature in order to encourage collaboration and building the best solution.
|
67 | 67 |
|
68 | 68 | Major features are things that take about 2 weeks of development or introduce disruptive changes to the code base.
|
69 | 69 |
|
70 |
| -Start the proposal process by reviewing the https://github.com/aerogear/proposals/blob/master/template.md[proposal template]. Use this document to guide how to write a proposal. Then, submit it as a pull request where the community will review the plan. |
| 70 | +Start the proposal process by reviewing the [proposal template](https://github.com/aerogear/proposals/blob/master/template.md). Use this document to guide how to write a proposal. Then, submit it as a pull request where the community will review the plan. |
71 | 71 |
|
72 | 72 | The proposal process also requires two approvals from the community before merging.
|
73 | 73 |
|
74 |
| -== Stay in touch |
| 74 | +## Stay in touch |
75 | 75 |
|
76 | 76 | * IRC: Join the conversation on Freenode: #aerogear
|
77 |
| -* Email: Subscribe to the https://github.com/aerogear/mobile-CLI/doc/adding_new_cmd.md[aerogear mailing list] |
| 77 | +* Email: Subscribe to the [aerogear mailing list](https://lists.jboss.org/mailman/listinfo/aerogear-dev) |
0 commit comments