How to use Gerrit for Commerce Kickstart Patches
Gerrit is a code-review extension for git. Essentially, it makes it possible to automatically generate a brand new instance of kickstart for every patch. To learn more about Gerrit, check out the documentation page.
Development Workflow
After opening an issue in the issue queue, instead of attaching a patch, a contributor pushes a change (i.e. commit) to Gerrit.
There, each change can be reviewed by the Commerce Kickstart team and the community.
During the review process, each change automatically generates an installable build, allowing anyone to test the proposed change live. This feature has been a huge timesaver, and one of the main reasons for using Gerrit.
When the change has been approved and merged by one of the maintainers, it appears in the Commerce Kickstart git repository on drupal.org.
Anyone can push a commit or review existing commits in the Kickstart Gerrit, so jump in!
Preliminary Checklist
1) Make sure you have a public SSH Key.
A public SSH key (required for Drupal.org Module maintainers and for Commerce Kickstart patches) is a way of authenticating that is much more secure than a simple password. Setting one up can be somewhat tricky, but there is a great Drupal.org Documentation Section and an easy-to-follow GitHub tutorial on generating one of these.
2) Be prepared to supply an OpenID Account, Google Account, or Yahoo ID account to register for the Gerrit system.
Steps to Submitting a patch to the Kickstart Issue Queue, using Gerrit
1) Register at http://code.drupalcommerce.org/
The registration requires that you connect it with a different service, which can be confusing, but it doesn't have to be. In the upper right of the screen that we linked to above is a "Register | Sign In" and it is designed to accept any OpenID authentication. This includes Google/Gmail/Yahoo accounts.
It will take you to a screen confirming that code.drupalcommerce.org can use your authentication for verification of your identity. This is very similar to the oAuth process that you are likely familiar with using to login with Facebook or using your Twitter account.
After you have verified your credentials, you'll be taken back to the registration page where you can pick a username and register a public SSH key. If you went through the above preliminary checklist, you should have this in hand.
2) Test your account access
If all has gone well, you should be able to go here:
https://code.drupalcommerce.org/gitweb?p=commerce_kickstart.git;a=summary
You should see something like this:
https://code.drupalcommerce.org/p/commerce_kickstart.git ssh://joshmiller@code.commerceguys.com:29419/commerce_kickstart.gitYou also want to visit your account SSH page and confirm you have a saved SSH key.
3) Clone that repository using your git magic skills, create a commit, and push back to the code.drupalcommerce.org
# Clone the repo git clone ssh://your_username@code.drupalcommerce.org:29419/commerce_kickstart.git --branch 7.x-2.x # Go into the newly created directory cd commerce_kickstart # Install the gerrit hook curl --insecure https://code.drupalcommerce.org/tools/hooks/commit-msg > .git/hooks/commit-msg # Make it executable chmod a+x .git/hooks/commit-msg # Create a branch and do your work git checkout -b 1659160-notice-on-checkout # Commit you change or fix git commit -a -m "Issue #1659160 by your_username: Fixed notice on checkout." # Push it to Gerrit git push origin 1659160-notice-on-checkout:refs/for/7.x-2.xAfter the push is complete, you should see text like this:
remote: Resolving deltas: 100% (2/2) remote: Processing changes: new: 1, done remote: remote: New Changes: remote: https://code.drupalcommerce.org/31 remote: To ssh://your_username@code.drupalcommerce.org:29419/commerce_kickstart.git * [new branch] 1659160-notice-on-checkout -> refs/for/7.x-2.x
Help improve this page
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion