Tips for contributing to OpenStack for new users
How to contribute to OpenStack
Like any open source community, OpenStack has its local quirks when it comes to getting involved in the project. This is further complicated, in the case of OpenStack, by the fact that it's actually a collection of numerous smaller projects which are linked together via shared APIs, but which have independent objectives and developer communities.
This article isn't comprehensive, by any means, but it's an attempt to show you some of the places where you can plug into the community. It's especially important to note that you don't have to be a programmer to be a valuable contributor to OpenStack.
Since it spans timezones, continents, and languages, most of the communication around OpenStack happens on mailing lists.
There are a LOT of mailing lists, but there's one main one: firstname.lastname@example.org. You can subscribe or look at the archives. Rather than splitting technical discussion by sub-project, it's all in one place, with subject line tags where appropriate. For example, a discussion of Ceilometer would be indicated by [ceilometer] in the email subject line. The disadvantage of this approach is, of course, the high volume of the list—around 100 messages per day. The advantage, however, is that you don't have to subscribe to a dozen other lists to get a comprehensive picture of what's going on and risk missing out on some sub-project you were unaware of.
There are also lists for cloud operators, for foundation governance, security, and various other sub-teams. View the complete list.
Once you've decided what list(s) you want to be on, you should listen quietly for a while to get an idea of the tone of the conversation and who the main speakers are. Read the mailing list etiquette guide for tips on local cultural conventions.
Git and Gerrit
If you want to submit changes to the code or documentation, you'll need to be familiar with the Git workflow. Although the code repositories reside on GitHub, the patch process doesn't follow the Github pull request model you may already be familiar with. Instead, it uses Gerrit, which ensures that every change to any part of the OpenStack codebase is subjected to the same rigorous testing process, whether it's a major functional change or a tiny documentation tweak. View the fully documented workflow.
Every change is submitted to a system that requires at least two human reviews of the change as well as a successful completion of the testing suite. Once these requirements have been met, the code is automatically merged into the Git repo and becomes part of the master branch.
It is something of a pain to go through this setup process, but once you've done it once, you'll never need to do it again, and the advantages are enormous.
While discussions about the direction of the project happen on the mailing lists, Q&A conversations happen on http://ask.openstack.org/ in a Stack Overflow style forum. This is the place to go if you have questions about OpenStack, or if you wish to help answer others' questions.
Participants in the forum earn 'karma' points that give them access to greater levels of privilege and responsibility, such as moderating questions, editing questions and responses, and adding tags to conversations. The more you do, the more you can do.
If you prefer real-time conversation, there are a number of OpenStack-related channels on the Freenode IRC network. They are all fairly quiet, since ask.openstack.org carries the main weight of conversation, but there's generally a large crowd (837 on the #openstackchannel as I'm writing this) and someone will usually answer a question pretty quickly.
The #openstackchannel is for general discussion and Q&A. The#openstack-101 channel is for beginner questions that you might feel embarrassed asking elsewhere.
#openstack-community is a channel where people conduct meetings to discuss a wide variety of OpenStack-related topics. A meeting bot takes notes so that they can be reported back to various parts of the community. #openstack-community is a good place to find out about local OpenStack user groups in your area and discuss various community events.
Speaking of events, there's always something going on somewhere related to OpenStack.
There are two main conferences every year, one in the United States and one elsewhere, where the next six months of OpenStack development is discussed and technical presentations are given on the various aspects of the project.
The next one of these is the OpenStack Summit which will take place in Atlanta, Georgia from May 12-16, 2014. Get more details and register to attend on the website. Then, the next Summit will be held in November 2014 in Paris, France. Many sessions are recorded. You can watch presentations from OpenStack Summit Hong Kong, last year.
In addition to these major events, smaller local events are always happening and listed on the site. OpenStack meetups can be two people meeting to chat to hundreds of attendees gathering for formal presentations. Regional user groups are listed and if there isn't one in your area, consider starting one up. All you need is another person who wants to meet to talk OpenStack.
In the end, if you want to get involved in OpenStack, or any open source project, the trick is to just do something. If you wait around for someone to tell you what to work on, you'll be waiting a long time. Step up and answer a question, fix a typo, patch a bug, or go to an event.
See you in the community!