This document describes the process for contributing to openebs/external-storage 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-storagerepository
Some general guidelines when submitting issues for OpenEBS volume provisioner:
- It is advisable to search the existing issues related to openebs-provisioner at issues related to openebs-provisioner 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 openebs/openebs and label it as
area/volume-provisioning&repo/k8s-provisioner.
- Fork the kubernetes-incubator/external-storage 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 CNCF CLA 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-storagemaintainer/owners to synchronize theopenebs/external-storagerepository. - Your changes will appear in
openebs/external-storageonce it is synced.
Fork the kubernetes-incubator/external-storage repository into your account $user as referred in the following instructions.
working_dir=$GOPATH/src/github.com/kubernetes-incubator
mkdir -p $working_dir
cd $working_dir
Set user to match your Github profile name:
user={your Github profile name}Clone your fork inside $working_dir
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
Synchronizing your local master(i.e. your $user/external-storage project) with upstream master (i.e kubernetes-incubator/external-storage)
git checkout master
git fetch upstream master
git rebase upstream/master
git status
git push origin master
git checkout -b <branch_name>
git branchgit 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-storagerepo. Your changes will appear here! 😄
If you need any help with git, refer to this git cheat sheet and go back to the contributing to OpenEBS Documentation guide to proceed.