Your first patch (Zaqar)
Contents
Learn how we work
- What Open means to us.
- How our Release Cycle works.
- Our Branch Model.
- How to work with Launchpad Bugs.
Set up your contributor account
- Learn how to work with our Gerrit review system. Some useful tips are in this video. The Gerrit Workflow wiki should be your main resource for how to submit a patch.
- Before we can accept your patches, you'll have to sign the Contributors License Agreement.
Set your local repository
Clone Marconi's code
git clone git://git.openstack.org/openstack/marconi.git
To set Marconi up you will need to install some dependencies and do some basic configurations. Check out how to set up a Marconi's basic deployment in Marconi's repository in Github.
Testing the features is always a great way to break the ice with the project and it helps to understand the code better.
Before starting to code, you will have to do some configs to connect your local repository with Gerrit.
You may want to ask Git-review to configure your project to know about Gerrit so the Gerrit Change-Id Commit hook gets installed. To do so:
cd marconi git review -s
Git-review checks that you can log in to Gerrit with your SSH key. It assumes that your Gerrit/Launchpad user name is the same as the current running user. If that doesn't work, it asks for your Gerrit/Launchpad user name. You can avoid that question by configuring your Gerrit username, as follows:
git config --global gitreview.username yourgerritusername
If you don't remember your Gerrit user name go to the settings page on Gerrit to check it out (it's not your email address).
Note that you can verify the SSH host keys for review.openstack.org here: https://review.openstack.org/#/settings/ssh-keys
If you get the error "We don't know where your Gerrit is", you will need to add a new git remote. The URL should be in the error message. Copy that and create the new remote.
git remote add gerrit ssh://<username>@review.openstack.org:29418/openstack/marconi.git
In the project directory, you have a `.git` hidden directory and a `.gitreview` hidden file. You can see them with:
ls -la
Once you have this done, you can start working on your patch!
Hack, hack, hack!
Pick a bug
You can start tacking some bugs from the bugs list in Launchpad. When you find a bug you want to work on, just assign yourself. Make sure to read the bug report and, if you need more information, ask the reporter to provide more details.
If you find a bug that it's not in the bugs list in Launchpad (props for that!), just report it and wait for another developer to confirm it. When it's confirmed, you can start working on it.
To start working on your bug, make sure to follow the Gerrit Workflow.
Design principles
Marconi lives by the following design principles:
- DRY
- YAGNI
- KISS
Try to stick to them when working on your patch, the reviewers will appreciate that!
Submit your patch
Once you finished coding your fix, go ahead and submit it for review. Other Marconi devs will try it and make their comments, and when you get two or more +1 and a core reviewer approves it, it will get merged. Well done!
Common Problems
1. You realized that you were working in master and you HAVEN'T made any commits.
Solution
git checkout -b newbranch #if you already created the branch, omit the -b git commit -a -m "Edited"
Now all your changes are in newbranch. Problem solved!
2. You realized that you were working in master and you HAVE made commits to master
Solution
git branch newbranch git reset --hard HEAD~x #x is the number of commits you have made to master. YOU WILL LOSE ANY UNCOMMITTED WORK git checkout newbranch
Your commits are now in newbranch. Problem solved!
3. You made multiple commits and realized that Gerrit needs one commit per patch You need to squash your previous commits. Make sure you are in your branch and follow this guide. Fill in the commit message as specified on the Gerrit Workflow page