# Contributing to Kube-router

## Summary

This document covers how to contribute to the kube-router project. Kube-router uses github PRs to manage contributions (could be anything from documentation, bug fixes, manifests etc.).

Please read [users guide](./docs/user-guide.md) and [developers guide](/docs/developing.md) for the functionality and internals of kube-router.

## Filing issues

If you have a question about Kube-router or have a problem using it, please start with contacting us on [community forum](https://kubernetes.slack.com/messages/C8DCQGTSB/) for quick help. If that doesn't answer your questions, or if you think you found a bug, please [file an issue](https://github.com/cloudnativelabs/kube-router/issues).

## Contributing Changes

### Fork the code

Navigate to:
[https://github.com/cloudnativelabs/kube-router](https://github.com/cloudnativelabs/kube-router)
and fork the repository.

Follow these steps to setup a local repository for working on Kube-router:

``` bash
$ git clone https://github.com/YOUR_ACCOUNT/kube-router.git
$ cd kube-router
$ git remote add upstream https://github.com/cloudnativelabs/kube-router
$ git checkout master
$ git fetch upstream
$ git rebase upstream/master
```

### Creating A Feature Branch

Create a new branch to make changes on and that branch.

``` bash
$ git checkout -b feature_x
   (make your changes)
$ git status
$ git add .
$ git commit -a -m "descriptive commit message for your changes"
```
get update from upstream

``` bash
$ git checkout master
$ git fetch upstream
$ git rebase upstream/master
$ git checkout feature_x
$ git rebase master
```

Now your `feature_x` branch is up-to-date with all the code in `upstream/master`, so push to your fork

### Performing A Pull Request

``` bash
$ git push origin master
$ git push origin feature_x
```

Now that the `feature_x` branch has been pushed to your GitHub repository, you can initiate the pull request.