Project: OpenEBS (Runtime / Cloud Native Storage)
File: CONTRIBUTING-TO-KUBERNETES-OPENEBS-PROVISIONER.md

This document describes the process for contributing to project. At a very high level, the process to contribute and improve is pretty simple: Submit an issue describing your proposed change Create your development branch Commit your changes Submit your Pull Request Sync with the remote `openebs/external-storage` repository Some general guidelines when submitting issues for OpenEBS volume provisioner: It is advisable to search the existing issues related to openebs-provisioner at if your issue is not listed there then you can move to the next step. If you encounter any issue/bug or have feature request then raise an issue in and label it as `area/volume-provisioning` & `repo/k8s-provisioner`. Fork the repository. Create development branch in your forked repository with the following name convention: "task-description-#issue". Reference the issue number along with a brief description in your commits. If you are contributing to the Kubernetes project for the first time then you need to sign otherwise you can proceed to the next steps. Rebase your development branch Submit the PR from the development branch to the `kubernetes-incubator/external-storage:master` Update the PR as per comments given by reviewers. Once the PR is accepted, close the branch. You can request to `openebs/external-storage` maintainer/owners to synchronize the `openebs/external-storage` repository. Your changes will appear in `openebs/external-storage` once it is synced. Fork the `kubernetes-incubator/external-storage` repository into your account $user as referred in the following instructions. ```bash working_dir=$GOPATH/src/github.com/kubernetes-incubator mkdir -p $working_dir cd $working_dir ``` Set `user` to match your Github profile name: ```bash user={your Github profile name} ``` Clone your fork inside `$working_dir` ```bash git clone https://github.com/$user/external-storage.git # Clone your fork $user/external-storage cd external-storage git remote add upstream https://github.com/kubernetes-incubator/external-storage.git git remote set-url --push upstream no_push git remote -v # check info on remote repos ``` ```bash git checkout master git fetch upstream master git rebase upstream/master git status git push origin master ``` ```bash git checkout -b <branch_name> git branch ``` ```bash git checkout <branch-name> git fetch upstream master git rebase upstream/master git status git push origin <branch-name> #After this changes will appear in your $user/external-storage:<branch-name> ``` Once above procedure is followed, you will see your changes in branch `<branch-name>` of `$user/external-storage` on Github. You can create a PR at `kubernetes-incubator/external-storage`. You can add the label `area/openebs` to your PR by commenting `/area openebs` in the comment section of your PR. Once, a PR is merged in `kubernetes-incubator/external-storage`, ask one of the OpenEBS owners to fetch latest changes to `openebs/external-storage`. Owners will fetch latest changes from `kubernetes-incubator/external-storage` to `openebs/external-storage`repo. Your changes will appear here! :smile: If you need any help with git, refer to this and go back to the guide to proceed.