Getting Started with Github
Here is the workflow for using Github for the non-committers who are developing their features on GitHub:
- Create an account on GitHub.
See Setting Up Git
- Fork the Apache Repo:
- Go to https://github.com/apache/incubator-cloudstack.
- Click Fork.
See Fork a Repo
- Clone your fork:
git clone https://github.com/<username>/incubator-cloudstack.git
- Configure remote:
- git remote add upstream https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git
The GitHub repo is a mirror and not the definitive source, so we use https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git and not https://github.com/apache/incubator-cloudstack
- When your fork needs to get the latest from it's parent fork (gh:apache/cloudstack). And you should do this periodically (read:daily) for a long running feature
- git checkout <feature-branch>
This sets your local working set to the branch you want to pull the latest changes into.
- git fetch upstream
- git merge upstream/<feature-branch> (or git merge --no-ff to preserve git branching history)
When working on github which is not what committers will be looking at often: it's best to alert the lists so people will be aware of the incremental commits you make and can review your work periodically and/or as and when you request for it.
It is also best to work on feature branches rather than working directly on master even in your private fork. When the patch is ready for submission push the squashed patch through reviewboard. If the patch is sizeable and touches many projects in the repo, best to break it down into smaller chunks for easier and quicker review by multiple committers.
Holler for help on the lists if you're stuck and ever need help.
Submitting Patches
When you have some code to contribute, please follow these instructions on submitting a patch to review board.
CloudStack currently doesn't utilize Github pull requests.