SlideShare a Scribd company logo
The OpenStack
Contribution
Workflow
Sean McGinnis
2 of 21
The Basics
Account Setup and Agreements
Launchpad Account Creation
https://launchpad.net/+login
Join the OpenStack Foundation
“Foundation” membership level, not “community”
https://www.openstack.org/join/
Register Nick IRC
https://freenode.net/
/nick [desired_nick]
/msg NickServ REGISTER password youremail@example.com
3 of 21
Code Contibution Setup
Account Setup and Agreements
Gerrit Login
https://review.openstack.org/
Sign Contributor License Agreement
https://review.openstack.org/#/settings/agreements
https://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, irssi
Web: http://webchat.freenode.net/
5 of 21
Join the Mailing List
Lots of posts for announcements, development issues, etc.
General: openstack
Development: openstack-dev
Announcements: openstack-announce
Operators: 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 List
Add interested projects to your watch list to get notifications.
Go to https://review.openstack.org/#/settings/projects:
7 of 21
Add SSH Keys
SSH 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 Reviews
Reviewing 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 Reviews
Gerrit Review Layout
Lot’s of information!
10 of 21
Code Reviews
Gerrit Review Layout
11 of 21
Code Reviews
Gerrit Review Diff
12 of 21
Code Reviews
Gerrit Review Navigation and Settings
13 of 21
Bug Tracking
Launchpad Bug Management
Bugs 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 Tracking
Working with bugs
15 of 21
Bug Tracking
Bug 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 Code
Workflow 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 Code
Viewing check queue status
http://status.openstack.org/zuul/
18 of 21
Submitting Code
Rebasing
$ 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 Code
Bug Fixes, New Features, and Small Changes
Bug Fix
git checkout –b bug/12345
In commit message:
Closes-bug: #12345
New Feature
File blueprint on Launchpad
Submit spec and get approved if needed
git checkout –b feature_name
In commit message:
Implements: blueprint blueprint_name
Small cleanup or refactoring
git checkout –b descriptive_name
Make 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
OpenStack Contribution Workflow

More Related Content

What's hot

Project Moby
Project MobyProject Moby
Project Moby
Neependra Khare
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
Bergamo Linux Users Group
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
LinuxCon ContainerCon CloudOpen China
 
oVirt Introduction
oVirt IntroductionoVirt Introduction
oVirt Introduction
Roozbeh Shafiee
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOps
Jim Bugwadia
 
Persistent Storage with Containers with Kubernetes & OpenShift
Persistent Storage with Containers with Kubernetes & OpenShiftPersistent Storage with Containers with Kubernetes & OpenShift
Persistent Storage with Containers with Kubernetes & OpenShift
Red Hat Events
 
Leverage LXC/LXD with Kubernetes
Leverage LXC/LXD with KubernetesLeverage LXC/LXD with Kubernetes
Leverage LXC/LXD with Kubernetes
Lin Sun
 
Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0
Anshul Patel
 
Openshift: Build, deploy & manage open, standard containers
Openshift: Build, deploy & manage open, standard containersOpenshift: Build, deploy & manage open, standard containers
Openshift: Build, deploy & manage open, standard containers
Jonh Wendell
 
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
NETWAYS
 
Project kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes NextProject kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes Next
Antoni Segura Puimedon
 
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containersKuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
Antoni Segura Puimedon
 
OpenShift on OpenStack with Kuryr
OpenShift on OpenStack with KuryrOpenShift on OpenStack with Kuryr
OpenShift on OpenStack with Kuryr
Antoni Segura Puimedon
 
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Stephen Gordon
 
Building stateful applications on Kubernetes with Rook
Building stateful applications on Kubernetes with RookBuilding stateful applications on Kubernetes with Rook
Building stateful applications on Kubernetes with Rook
Roberto Hashioka
 
Dockercon 2015 Recap
Dockercon 2015 RecapDockercon 2015 Recap
Dockercon 2015 Recap
ehazlett
 
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebula Project
 
Virtualization Management The oVirt Way (August Penguin 2015)
Virtualization Management The oVirt Way (August Penguin 2015)Virtualization Management The oVirt Way (August Penguin 2015)
Virtualization Management The oVirt Way (August Penguin 2015)
Allon Mureinik
 
Kubernetes on bare metal
Kubernetes on bare metalKubernetes on bare metal
Kubernetes on bare metal
Martin Mailand
 
The Open vSwitch and OVN Projects
The Open vSwitch and OVN ProjectsThe Open vSwitch and OVN Projects
The Open vSwitch and OVN Projects
LinuxCon ContainerCon CloudOpen China
 

What's hot (20)

Project Moby
Project MobyProject Moby
Project Moby
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
 
oVirt Introduction
oVirt IntroductionoVirt Introduction
oVirt Introduction
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOps
 
Persistent Storage with Containers with Kubernetes & OpenShift
Persistent Storage with Containers with Kubernetes & OpenShiftPersistent Storage with Containers with Kubernetes & OpenShift
Persistent Storage with Containers with Kubernetes & OpenShift
 
Leverage LXC/LXD with Kubernetes
Leverage LXC/LXD with KubernetesLeverage LXC/LXD with Kubernetes
Leverage LXC/LXD with Kubernetes
 
Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0
 
Openshift: Build, deploy & manage open, standard containers
Openshift: Build, deploy & manage open, standard containersOpenshift: Build, deploy & manage open, standard containers
Openshift: Build, deploy & manage open, standard containers
 
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
 
Project kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes NextProject kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes Next
 
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containersKuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
 
OpenShift on OpenStack with Kuryr
OpenShift on OpenStack with KuryrOpenShift on OpenStack with Kuryr
OpenShift on OpenStack with Kuryr
 
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
 
Building stateful applications on Kubernetes with Rook
Building stateful applications on Kubernetes with RookBuilding stateful applications on Kubernetes with Rook
Building stateful applications on Kubernetes with Rook
 
Dockercon 2015 Recap
Dockercon 2015 RecapDockercon 2015 Recap
Dockercon 2015 Recap
 
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
 
Virtualization Management The oVirt Way (August Penguin 2015)
Virtualization Management The oVirt Way (August Penguin 2015)Virtualization Management The oVirt Way (August Penguin 2015)
Virtualization Management The oVirt Way (August Penguin 2015)
 
Kubernetes on bare metal
Kubernetes on bare metalKubernetes on bare metal
Kubernetes on bare metal
 
The Open vSwitch and OVN Projects
The Open vSwitch and OVN ProjectsThe Open vSwitch and OVN Projects
The Open vSwitch and OVN Projects
 

Viewers also liked

Introduction to OpenStack Cinder
Introduction to OpenStack CinderIntroduction to OpenStack Cinder
Introduction to OpenStack Cinder
Sean McGinnis
 
OpenStack Storage Overview
OpenStack Storage OverviewOpenStack Storage Overview
OpenStack Storage Overview
Bharat Kumar Kobagana
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinderopenstackindia
 
OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...
OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...
OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...
Guston Remie
 
Openstack Denver Meetup - Intro to Block Storage
Openstack Denver Meetup - Intro to Block StorageOpenstack Denver Meetup - Intro to Block Storage
Openstack Denver Meetup - Intro to Block Storage
John Griffith
 
OpenStack State of Fibre Channel
OpenStack State of Fibre ChannelOpenStack State of Fibre Channel
OpenStack State of Fibre Channel
hemna6969
 
Couch to OpenStack: Cinder - August 6, 2013
Couch to OpenStack: Cinder - August 6, 2013Couch to OpenStack: Cinder - August 6, 2013
Couch to OpenStack: Cinder - August 6, 2013
Trevor Roberts Jr.
 
Storage as a service OpenStack
Storage as a service OpenStackStorage as a service OpenStack
Storage as a service OpenStackopenstackindia
 
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for TomorrowOpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
Ed Balduf
 
Deep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red HatDeep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red Hat
Cloud Native Day Tel Aviv
 
OpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana ReleaseOpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana Release
Avishay Traeger
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
Mirantis
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Stephen Gordon
 

Viewers also liked (15)

Introduction to OpenStack Cinder
Introduction to OpenStack CinderIntroduction to OpenStack Cinder
Introduction to OpenStack Cinder
 
OpenStack Storage Overview
OpenStack Storage OverviewOpenStack Storage Overview
OpenStack Storage Overview
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinder
 
OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...
OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...
OpenStack Benelux Conference 2014 | Deep Dive | Alain Clark | OpenStack Found...
 
Openstack Denver Meetup - Intro to Block Storage
Openstack Denver Meetup - Intro to Block StorageOpenstack Denver Meetup - Intro to Block Storage
Openstack Denver Meetup - Intro to Block Storage
 
Avishay trager cinder-grizzly-deep-dive
Avishay trager   cinder-grizzly-deep-diveAvishay trager   cinder-grizzly-deep-dive
Avishay trager cinder-grizzly-deep-dive
 
OpenStack State of Fibre Channel
OpenStack State of Fibre ChannelOpenStack State of Fibre Channel
OpenStack State of Fibre Channel
 
Couch to OpenStack: Cinder - August 6, 2013
Couch to OpenStack: Cinder - August 6, 2013Couch to OpenStack: Cinder - August 6, 2013
Couch to OpenStack: Cinder - August 6, 2013
 
Storage as a service OpenStack
Storage as a service OpenStackStorage as a service OpenStack
Storage as a service OpenStack
 
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for TomorrowOpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
Deep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red HatDeep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red Hat
 
OpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana ReleaseOpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana Release
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
 

Similar to OpenStack Contribution Workflow

Assign, Commit, and Review
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and Review
Zhongyue Luo
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...OpenCity Community
 
Rakuten openstack
Rakuten openstackRakuten openstack
Rakuten openstack
Rakuten Group, Inc.
 
Getting Started with OpenStack Development
Getting Started with OpenStack Development Getting Started with OpenStack Development
Getting Started with OpenStack Development Rackspace
 
OpenStack Contribution Process
OpenStack Contribution ProcessOpenStack Contribution Process
OpenStack Contribution Processopenstackindia
 
Openstack contribution process
Openstack contribution processOpenstack contribution process
Openstack contribution processSyed Armani
 
How to become open stack upstream contributor
How to become open stack upstream contributorHow to become open stack upstream contributor
How to become open stack upstream contributor
Sławomir Kapłoński
 
How to become open stack upstream contributor openstack days krakow 2018
How to become open stack upstream contributor   openstack days krakow 2018How to become open stack upstream contributor   openstack days krakow 2018
How to become open stack upstream contributor openstack days krakow 2018
Sławomir Kapłoński
 
Making your first OpenStack contribution (EuroPython)
Making your first OpenStack contribution (EuroPython)Making your first OpenStack contribution (EuroPython)
Making your first OpenStack contribution (EuroPython)
Julie Pichon
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
Gilad Garon
 
Your first patch to open stack
Your first patch to open stackYour first patch to open stack
Your first patch to open stack
Akanksha Agrawal
 
Your first patch to OpenStack
Your first patch to OpenStackYour first patch to OpenStack
Your first patch to OpenStack
openstackindia
 
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCryptoBitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Opti Network
 
Contributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source Projects
Scott Garman
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
Luca Milanesio
 
Git as version control for Analytics project
Git as version control for Analytics projectGit as version control for Analytics project
Git as version control for Analytics project
Nag Arvind Gudiseva
 
Node.js what's next (Index 2018)
Node.js what's next (Index 2018)Node.js what's next (Index 2018)
Node.js what's next (Index 2018)
Gibson Fahnestock
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Abhinav Gupta
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version Control
Revelation Technologies
 
A Framework for Open Source Software Success
A Framework for Open Source Software SuccessA Framework for Open Source Software Success
A Framework for Open Source Software Success
Paula Hunter
 

Similar to OpenStack Contribution Workflow (20)

Assign, Commit, and Review
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and Review
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
Rakuten openstack
Rakuten openstackRakuten openstack
Rakuten openstack
 
Getting Started with OpenStack Development
Getting Started with OpenStack Development Getting Started with OpenStack Development
Getting Started with OpenStack Development
 
OpenStack Contribution Process
OpenStack Contribution ProcessOpenStack Contribution Process
OpenStack Contribution Process
 
Openstack contribution process
Openstack contribution processOpenstack contribution process
Openstack contribution process
 
How to become open stack upstream contributor
How to become open stack upstream contributorHow to become open stack upstream contributor
How to become open stack upstream contributor
 
How to become open stack upstream contributor openstack days krakow 2018
How to become open stack upstream contributor   openstack days krakow 2018How to become open stack upstream contributor   openstack days krakow 2018
How to become open stack upstream contributor openstack days krakow 2018
 
Making your first OpenStack contribution (EuroPython)
Making your first OpenStack contribution (EuroPython)Making your first OpenStack contribution (EuroPython)
Making your first OpenStack contribution (EuroPython)
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
Your first patch to open stack
Your first patch to open stackYour first patch to open stack
Your first patch to open stack
 
Your first patch to OpenStack
Your first patch to OpenStackYour first patch to OpenStack
Your first patch to OpenStack
 
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCryptoBitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
 
Contributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source Projects
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
 
Git as version control for Analytics project
Git as version control for Analytics projectGit as version control for Analytics project
Git as version control for Analytics project
 
Node.js what's next (Index 2018)
Node.js what's next (Index 2018)Node.js what's next (Index 2018)
Node.js what's next (Index 2018)
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version Control
 
A Framework for Open Source Software Success
A Framework for Open Source Software SuccessA Framework for Open Source Software Success
A Framework for Open Source Software Success
 

Recently uploaded

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 

Recently uploaded (20)

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 

OpenStack Contribution Workflow

  • 2. 2 of 21 The Basics Account Setup and Agreements Launchpad Account Creation https://launchpad.net/+login Join the OpenStack Foundation “Foundation” membership level, not “community” https://www.openstack.org/join/ Register Nick IRC https://freenode.net/ /nick [desired_nick] /msg NickServ REGISTER password youremail@example.com
  • 3. 3 of 21 Code Contibution Setup Account Setup and Agreements Gerrit Login https://review.openstack.org/ Sign Contributor License Agreement https://review.openstack.org/#/settings/agreements https://wiki.openstack.org/wiki/GovernmentCLA (US Government)
  • 4. 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, irssi Web: http://webchat.freenode.net/
  • 5. 5 of 21 Join the Mailing List Lots of posts for announcements, development issues, etc. General: openstack Development: openstack-dev Announcements: openstack-announce Operators: openstack-operators More details and links to full list of mailing lists here: https://wiki.openstack.org/wiki/Mailing_Lists
  • 6. 6 of 21 Project Watch List Add interested projects to your watch list to get notifications. Go to https://review.openstack.org/#/settings/projects:
  • 7. 7 of 21 Add SSH Keys SSH 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. 8 of 21 Code Reviews Reviewing 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. 9 of 21 Code Reviews Gerrit Review Layout Lot’s of information!
  • 10. 10 of 21 Code Reviews Gerrit Review Layout
  • 11. 11 of 21 Code Reviews Gerrit Review Diff
  • 12. 12 of 21 Code Reviews Gerrit Review Navigation and Settings
  • 13. 13 of 21 Bug Tracking Launchpad Bug Management Bugs 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. 14 of 21 Bug Tracking Working with bugs
  • 15. 15 of 21 Bug Tracking Bug Tags Look for specific categories of bugs by tag. Helpful tags like “low-hanging-fruit” or “documentation” can help you get started.
  • 16. 16 of 21 Submitting Code Workflow 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. 17 of 21 Submitting Code Viewing check queue status http://status.openstack.org/zuul/
  • 18. 18 of 21 Submitting Code Rebasing $ 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. 19 of 21 Submitting Code Bug Fixes, New Features, and Small Changes Bug Fix git checkout –b bug/12345 In commit message: Closes-bug: #12345 New Feature File blueprint on Launchpad Submit spec and get approved if needed git checkout –b feature_name In commit message: Implements: blueprint blueprint_name Small cleanup or refactoring git checkout –b descriptive_name Make change and commit
  • 20. 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