How can I help?
Thanks for asking. Let's find a place for you!
First step: join the community
The OpenStack core projects all use the same communication channels:
Join the OpenStack teams in Launchpad: We are using Launchpad to track pretty much everything in the project. If you don't have a Launchpad account yet, you should create one. Then you can freely join the Openstack projects teams, based on your interest:
Join Nova Compute Service team
Join Swift Object Store team
Join Glance Image Service team
Join Keystone Identity Service team
This will make you automatically part of the global OpenStack team.
Subscribe to the mailing lists: Once you have joined the team, there are two mailing lists you should follow:
The OpenStack development list on Launchpad (team membership necessary, see above)
The openstack-announce list
Join us on IRC: You can talk to us directly in IRC in the #openstack channel on freenode.net.
If you're building clouds, start here:
Read the docs.openstack.org site, which is intended for cloud deployers and operations pros who are standing up OpenStack clouds. Each page offers comments and the documentation can be edited by cloning a Github repository, see Documentation/HowTo.
If you find problems with content on the docs.openstack.org site, log a bug against the openstack-manuals project with the page that contains the bug.
Join the openstack-operators mailing list to ask and answer questions specific to deployments large and small.
If you're a developer, start here:
Prerequisites
There are some steps you need to go through before you start coding:
Sign the CLA: Most every developer needs to sign the Individual Contributor License agreement. Note that:
If you are contributing on behalf of a company or organization, someone at your company or organization needs to sign the Corporate Contributor License Agreement. A list of current companies and organizations with an existing Corporate CLA is available for your review.
Employees of the the U.S. Government do not sign the Individual CLA. Instead, someone with authority to sign on behalf of your agency should sign the U.S. government Contributor License, which you can preview here. Please contact us to initiate the process.
Add yourself to the contributors wiki: On the Contributors page, include your Launchpad ID and your CLA Echosign Transaction Number. Our test and build servers will check this information when you submit code to the project. If you would like a wiki account, click Login and use your Launchpad ID as your username for the wiki.
Request membership in the openstack-cla group on Launchpad: Visit https://launchpad.net/~openstack-cla/+join to join this group. Membership in this group is required in order to submit code changes.
Check out our basic principles:
What Open means to us
Our Design tenets
Our Coding standards
How our Release Cycle works
Our Branch model
Get the code
Learn how to work with our Gerrit review system
On your first commit, you'll have to add your committer email address to the Authors file
Bug fixing
The first area where you can help is bug fixing. Confirmed bugs are usually good targets. Triaged bugs should even contain tips on how they should be fixed. Here is the list of Confirmed and Triaged bugs.
You can contribute instructions on how to fix a given bug, and set it to Triaged. Or you can directly fix it: assign the bug to yourself, set it to In progress, branch the code, implement the fix, and propose your change for merging into trunk !
Some easy-to-fix bugs may be marked with the low-hanging-fruit tag: they also make good targets for a beginner.
Housekeeping
Maintaining good code quality is a never-ending effort that is shared across the development team. We have several specs (assigned generically to the project teams) that describe this effort: increasing comments in code, reducing pylint violations, increasing code coverage... Those are usually nice ways to get involved in development: easy changes that will let you touch various areas of OpenStack code, and gain respect from your peers
See the list of housekeeping specs for Nova.
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 3 months in a development cycle. We use Launchpad blueprints to track the design and implementation of significant features, and we use Design Summits every 6 months to discuss them in public. Code should be implemented in a branch and proposed for merging before BranchMergeProposalFreeze in a given cycle.
If you're a tester (and breaker), get started this way:
Testing
We need your help in making sure OpenStack components behave correctly. Feel free to install the development version (See PPAs for Ubuntu packages from latest trunk) and report any issue:
Report a bug in Nova
Report a bug in Swift
Report a bug in Glance
Report a bug in Keystone
Report a bug in Dashboard
Triaging bugs
Reported bugs need care: prioritizing them correctly, confirming them, making sure they don't go stale... All those tasks help immensely. If you care about OpenStack stability but are not a hardcore developer, consider helping in that area !
The whole process is described here: BugTriage.
If you're into doc, we'd love to see you:
Contribute administrative documentation to the openstack-manuals project, or developer documentation the individual nova, glance, or swift projects. See Documentation/HowTo for details.
Join the OpenStack Documentation Group on Launchpad.
Pick up a documentation bug or mark a bug as documentation aggregated list of documentation bugs from all OpenStack projects.
You can also start by reading the developer documentation which is created using Sphinx as part of the code in the /doc/source/ directory and published to swift.openstack.org, nova.openstack.org, glance.openstack.org, keystone.openstack.org, or horizon.openstack.org.
To contribute to administrator documentation, get started with git and GitHub as documented in the documentation how-to guide. The openstack-manuals project houses the documentation that is published to docs.openstack.org.
Monitor the Answers area on Launchpad to curate the best answers that can be folded into the documentation.
If you want to help with the openstack.org website:
Start by reading the contributing to the website document.
If you're hoping to contribute in another way, let us know!
Contact one of the OpenStack people and float your idea.