The goal of this document is to show you some of the places where you can plug into the OpenStack community. It’s important to note that you don’t have to be a developer to be a valuable contributor to OpenStack. Readers wishing to learn more should take a look at Aptira OpenStack training courses. Both free and paid courses are available, suiting all levels of experience from beginner through to advanced. For more information, please contact us.
Here are the 5 Ways to Contribute to OpenStack:
1. Answering Questions
OpenStack related Questions and Answers conversations happen on http://ask.openstack.org in a StackOverflow style forum. This is the place to go if you have questions about OpenStack, if you wish to help answer others questions or if you wish to learn something related to OpenStack.
Questions can be related to OpenStack deployment, development, documentation, clarifications across all the OpenStack projects.
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 and learn.
2. Bug fixing
If you are a developer, the first thing you can do to help is bug fixing. Here is the list of OpenStack bugs.
You can contribute instructions on how to fix a given bug or you can directly fix it. Some easy-to-fix bugs may be marked with the low-hanging-fruit tag. These also make good targets for a beginner.
If you are a tester or a regular user, we need your help to make sure OpenStack components behave correctly. Feel free to report any issue here http://bugs.launchpad.net.
3. Cleaning up
Maintaining good code quality is a never-ending effort. There are several efforts that need your help, for example: increasing comments in code, reducing Python coding standards violations, increasing code coverage. Those are usually nice ways to get involved in development. Here are some OpenStack Guidelines.
4. Feature development
Once you get comfortable with the code, you can start to scratch your own itch and contribute new features. New features get implemented every 6 months in a development cycle. We use Launchpad Blueprints to track the design implementation of significant features, and we use Design Summits every 6 months to discuss them in public. Code should be proposed for inclusion before we reach the final feature milestone of the development cycle.
Every patch submitted to OpenStack gets reviewed before it can be approved and merged. We get a lot of contributions and everyone can – and is encouraged to – Review existing patches. Read the Code Review checklist and guidelines as a starting point, then pick an open review and look at it, test it if possible, and leave a comment with a +1 or -1 vote describing what you discovered. If you’re planning to submit patches of your own, it’s a great way to learn about what the community cares about and to learn about the code base.
And a few more…
Since OpenStack spans time zones, continents, and languages, most of the communications around OpenStack happen on mailing lists. There are a lot of mailing lists; there is one main list at email@example.com. You can subscribe or look at the archives. Rather than splitting technical discussion by sub-project, it’s all in one place, with appropriate subject line tags. For example, a discussion of Cinder would be indicated by [cinder] in the email subject line.
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 full 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 Jenkins testing suite. Once these requirements have been met, the code is automatically merged into the Git repo and becomes part of the master branch.
IRC is for real-time conversation, there are a number of OpenStack-related channels on the Freenode IRC network. The #openstack channel 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.
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, the trick is to just do something. Step up and answer a question, fix a typo, patch a bug, or go to an event.
See you in the community!