OpenStack Contribution Workflow

Preview:

Citation preview

The OpenStack Contribution WorkflowSean McGinnis

2 of 21

The BasicsAccount Setup and AgreementsLaunchpad Account Creationhttps://launchpad.net/+login

Join the OpenStack Foundation“Foundation” membership level, not “community”https://www.openstack.org/join/

Register Nick IRChttps://freenode.net//nick [desired_nick]/msg NickServ REGISTER password youremail@example.com

3 of 21

Code Contibution SetupAccount Setup and Agreements

Gerrit Loginhttps://review.openstack.org/

Sign Contributor License Agreementhttps://review.openstack.org/#/settings/agreementshttps://wiki.openstack.org/wiki/GovernmentCLA (US Government)

4 of 21

Hang out on IRC• So much of OpenStack development happens on IRC• Best way to ask questions and discuss issues• Some general channels and project specific channels

#openstack-dev#openstack-meeting#openstack-[project]

Many IRC clients available for various operating systems as well as Freenode web chat:

Clients: HexChat, LimeChat, irssiWeb: http://webchat.freenode.net/

5 of 21

Join the Mailing ListLots of posts for announcements, development issues, etc.

General: openstackDevelopment: openstack-devAnnouncements: openstack-announceOperators: openstack-operators

More details and links to full list of mailing lists here:https://wiki.openstack.org/wiki/Mailing_Lists

6 of 21

Project Watch ListAdd interested projects to your watch list to get notifications.Go to https://review.openstack.org/#/settings/projects:

7 of 21

Add SSH KeysSSH public key must be registered to identify you when you push up code.Typically uses your default in ~/.ssh/id_rsa.pub but different key can also be used.Go to https://review.openstack.org/#/settings/ssh-keys:

8 of 21

Code ReviewsReviewing code with Gerrit

One of the best places to start!

Learn from others changes.See what kinds of issues are pointed out by other reviewers.Share your expertise or just help catch basic coding issues.

9 of 21

Code ReviewsGerrit Review LayoutLot’s of information!

10 of 21

Code ReviewsGerrit Review Layout

11 of 21

Code ReviewsGerrit Review Diff

12 of 21

Code ReviewsGerrit Review Navigation and Settings

13 of 21

Bug TrackingLaunchpad Bug ManagementBugs tracked on the Launchpad.net site.Overall list of all bugs in OpenStack projects:

https://bugs.launchpad.net/openstack Project specific view of bugs:https://bugs.launchpad.net/cinder

Search for bugs matching an issue you’ve found.Look for bugs you would like to work on.

14 of 21

Bug TrackingWorking with bugs

15 of 21

Bug TrackingBug Tags

Look for specific categories of bugs by tag.

Helpful tags like “low-hanging-fruit” or “documentation” can help you get started.

16 of 21

Submitting CodeWorkflow Overview$ git clone https://github.com/openstack/nova$ cd nova$ git checkout –b bug/12345$ vi nova/my_amazing_bug_fix.py$ vi nova/tests/unit/test_myfix.py$ tox # < Don’t forget this!!$ git add . && git commit$ git review

Wait for patch feedback

$ vi nova/my_amazing_bug_fix.py$ tox –e pep8$ git add . && git commit --amend$ git review

17 of 21

Submitting CodeViewing check queue status

http://status.openstack.org/zuul/

18 of 21

Submitting CodeRebasing$ git checkout –b bug/12345$ vi nova/my_amazing_bug_fix.py$ git add . && git commit$ git review

Merge Conflict!

$ git checkout master$ git pull$ git checkout bug/12345$ git rebase master$ vi nova/merge_conflict_file.py$ git add nova/merge_conflict_file.py$ git rebase --continue$ git commit --amend$ git review

19 of 21

Submitting CodeBug Fixes, New Features, and Small ChangesBug Fix

git checkout –b bug/12345In commit message:

Closes-bug: #12345New FeatureFile blueprint on LaunchpadSubmit spec and get approved if neededgit checkout –b feature_nameIn commit message:

Implements: blueprint blueprint_nameSmall cleanup or refactoringgit checkout –b descriptive_nameMake change and commit

20 of 21

References

OpenStack Documentation• http://docs.openstack.org/

How to Contribute Wiki• https://wiki.openstack.org/wiki/How_To_Contribute Developer Manual• http://docs.openstack.org/infra/manual/developers.html

Recommended