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-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 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-storage
maintainer/owners to synchronize theopenebs/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.
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 branch
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! 😄
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.