CINXE.COM
How To Contribute - OpenStack
<!DOCTYPE html> <html class="client-nojs" lang="en" dir="ltr"> <head> <meta charset="UTF-8"/> <title>How To Contribute - OpenStack</title> <script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script> <script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"How_To_Contribute","wgTitle":"How To Contribute","wgCurRevisionId":178609,"wgRevisionId":178609,"wgArticleId":22801,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["HowTo","Contribute"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"How_To_Contribute","wgRelevantArticleId":22801,"wgRequestId":"dd79a73fa66d87eb7bb1f604","wgIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgWikiEditorEnabledModules":{"toolbar":true,"dialogs":true,"preview":false,"publish":false},"wgULSAcceptLanguageList":[],"wgULSCurrentAutonym":"English","wgCategoryTreePageCategoryOptions":"{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}"});mw.loader.state({"site.styles":"ready","noscript":"ready","user.styles":"ready","user.cssprefs":"ready","user":"ready","user.options":"loading","user.tokens":"loading","ext.uls.pt":"ready","mediawiki.legacy.shared":"ready","mediawiki.legacy.commonPrint":"ready","mediawiki.sectionAnchor":"ready","skins.strapping":"loading"});mw.loader.implement("user.options@0j3lz3q",function($,jQuery,require,module){mw.user.options.set({"variant":"en"});});mw.loader.implement("user.tokens@1s7arvx",function ( $, jQuery, require, module ) { mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});/*@nomin*/; });mw.loader.load(["mediawiki.page.startup","ext.uls.interface"]);});</script> <link rel="stylesheet" href="/w/load.php?debug=false&lang=en&modules=ext.uls.pt%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor&only=styles&skin=strapping"/> <script async="" src="/w/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=strapping"></script> <link rel="stylesheet" href="/w/skins/strapping/bootstrap/css/bootstrap.css?303" media="screen"/><link rel="stylesheet" href="/w/skins/strapping/bootstrap/awesome/css/font-awesome.css?303" media="screen"/><link rel="stylesheet" href="/w/skins/strapping/screen.css?303" media="screen"/><link rel="stylesheet" href="/w/skins/strapping/theme.css?303" media="screen"/> <meta name="ResourceLoaderDynamicStyles" content=""/> <link rel="stylesheet" href="/w/load.php?debug=false&lang=en&modules=site.styles&only=styles&skin=strapping"/> <meta name="generator" content="MediaWiki 1.28.2"/> <link rel="shortcut icon" href="/favicon.ico"/> <link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="OpenStack (en)"/> <link rel="EditURI" type="application/rsd+xml" href="https://wiki.openstack.org/w/api.php?action=rsd"/> <link rel="copyright" href="http://creativecommons.org/licenses/by/3.0/"/> <link rel="alternate" type="application/atom+xml" title="OpenStack Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"/> <style type='text/css'> li#pt-openidlogin { background: url(/w/extensions/OpenID/skin/icons/openid-inputicon.png) top left no-repeat; padding-left: 20px; text-transform: none; } </style> <!--[if lt IE 7]><style type="text/css">body{behavior:url("/w/skins/strapping/csshover.min.htc")}</style><![endif]--> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-How_To_Contribute rootpage-How_To_Contribute skin-strapping action-view"> <div id="userbar" class="navbar navbar-static"> <div class="navbar-inner"> <div style="width: auto;" class="container"> <div class="pull-left"> <ul class="nav logo-container" role="navigation"><li id="p-logo"><a href="/wiki/Main_Page" title="Visit the main page"><img src="https://wiki.openstack.org/w/images/thumb/c/c4/OpenStack_Logo_-_notext.png/30px-OpenStack_Logo_-_notext.png" alt="OpenStack"></a><li></ul> <!-- 0 --> <ul class="nav" role="navigation"> <li class="dropdown" id="p-namespaces" class="vectorMenu"> <a data-toggle="dropdown" class="dropdown-toggle brand" role="menu">Page <b class="caret"></b></a> <ul aria-labelledby="Namespaces" role="menu" class="dropdown-menu" > <li id="ca-nstab-main" class="selected"><a href="/wiki/How_To_Contribute" title="View the content page [c]" accesskey="c" tabindex="-1">Page</a></li><li id="ca-talk" class="new"><a href="/w/index.php?title=Talk:How_To_Contribute&action=edit&redlink=1" title="Discussion about the content page [t]" accesskey="t" tabindex="-1">Discussion</a></li><li id="ca-viewsource"><a href="/w/index.php?title=How_To_Contribute&action=edit" title="This page is protected. You can view its source [e]" accesskey="e" tabindex="-1">View source</a></li><li id="ca-history" class="collapsible"><a href="/w/index.php?title=How_To_Contribute&action=history" title="Past revisions of this page [h]" accesskey="h" tabindex="-1">History</a></li></ul></li></ul> <!-- /0 --> <!-- 0 --> <!-- /0 --> <!-- 0 --> <!-- /0 --> <!-- 0 --> <ul class="nav" role="navigation"> <li class="dropdown" id="p-Print/export" class="vectorMenu"> <a data-toggle="dropdown" class="dropdown-toggle" role="menu">Print/export <b class="caret"></b></a> <ul aria-labelledby="Print/export" role="menu" class="dropdown-menu" > <li class=""><a id="coll-create_a_book" href="/w/index.php?title=Special:Book&bookcmd=book_creator&referer=How+To+Contribute">Create a book</a></li> <li class=""><a id="coll-download-as-rl" href="/w/index.php?title=Special:Book&bookcmd=render_article&arttitle=How+To+Contribute&returnto=How+To+Contribute&oldid=178609&writer=rl">Download as PDF</a></li> <li class=""><a id="t-print" href="/w/index.php?title=How_To_Contribute&printable=yes" title="Printable version of this page [p]" accesskey="p">Printable version</a></li> </li> </ul></ul> <!-- /Print/export --> <!-- 0 --> <ul class="nav" role="navigation"> <li class="dropdown" id="p-toolbox" class="vectorMenu"> <a data-toggle="dropdown" class="dropdown-toggle" role="button">Tools <b class="caret"></b></a> <ul aria-labelledby="Tools" role="menu" class="dropdown-menu" > <li id="t-info"><a href="/w/index.php?title=How_To_Contribute&action=info" title="More information about this page">Page information</a></li><li id="t-permalink"><a href="/w/index.php?title=How_To_Contribute&oldid=178609" title="Permanent link to this revision of the page">Permanent link</a></li><li class="divider"></li><li id="t-specialpages"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-recentchangeslinked"><a href="/wiki/Special:RecentChangesLinked/How_To_Contribute" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li class="divider"></li><li id="t-whatlinkshere"><a href="/wiki/Special:WhatLinksHere/How_To_Contribute" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li> </ul> </li> </ul> <!-- /0 --> </div> <div class="pull-right"> <!-- 0 --> <form class="navbar-search" action="/w/index.php" id="searchform"> <input id="searchInput" class="search-query" type="search" accesskey="f" title="Special:Search" placeholder="Search" name="search" value=""> <input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton btn hidden"/> </form> <!-- /0 --> <!-- 0 --> <ul class="nav pull-right" role="navigation"> <li class="dropdown" id="p-notifications" class="vectorMenu"> </li> <li class="dropdown" id="p-createaccount" class="vectorMenu"> <li id="pt-createaccount"><a href="/w/index.php?title=Special:CreateAccount&returnto=How+To+Contribute" title="You are encouraged to create an account and log in; however, it is not mandatory">Create account</a></li> </li> <li class="dropdown" id="p-login" class="vectorMenu"> <li id="pt-login"><a href="/w/index.php?title=Special:UserLogin&returnto=How+To+Contribute" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li> </li> <li class="dropdown" id="p-openidlogin" class="vectorMenu"> <li id="pt-openidlogin"><a href="/w/index.php?title=Special:OpenIDLogin&returnto=How_To_Contribute">Log in / create account with OpenID</a></li> </li> <li class="dropdown" id="p-personaltools" class="vectorMenu"> <a data-toggle="dropdown" class="dropdown-toggle" role="button"> <i class="icon-user"></i> <b class="caret"></b></a> <ul aria-labelledby="Personal tools" role="menu" class="dropdown-menu" > <li id="pt-uls" class="active"><a href="#" class="uls-trigger autonym">English</a></li> </ul> </li> </ul> <!-- /0 --> </div> </div> </div> </div> <div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <!-- Header --> <div id="page-header" class="container signed-out"> <section class="span12"> <ul class="navigation nav nav-pills pull-right searchform-disabled"> <!-- 0 --> <li class=""><a href="http://www.openstack.org" id="n-Home" rel="nofollow">Home</a></li> <li class=""><a href="http://www.openstack.org/software" id="n-Software" rel="nofollow">Software</a></li> <li class=""><a href="http://www.openstack.org/user-stories" id="n-User-Stories" rel="nofollow">User Stories</a></li> <li class=""><a href="http://www.openstack.org/community" id="n-Community" rel="nofollow">Community</a></li> <li class=""><a href="http://www.openstack.org/profile" id="n-Profile" rel="nofollow">Profile</a></li> <li class=""><a href="http://www.openstack.org/blog" id="n-Blog" rel="nofollow">Blog</a></li> <li class=""><a href="http://wiki.openstack.org" id="n-Wiki" rel="nofollow">Wiki</a></li> <li class=""><a href="http://docs.openstack.org" id="n-Documentation" rel="nofollow">Documentation</a></li> <!-- /coll-print_export --> </ul> </section> </div> <!-- content --> <section id="content" class="mw-body container 0"> <div id="top"></div> <div id="mw-js-message" style="display:none;"></div> <!-- bodyContent --> <div id="bodyContent"> <!-- jumpto --> <div id="jump-to-nav" class="mw-jump"> Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a> </div> <!-- /jumpto --> <!-- innerbodycontent --> <div id="innerbodycontent" class="row nolayout"><div class="offset1 span10"> <h1 id="firstHeading" class="firstHeading page-header"> <span dir="auto">How To Contribute</span> </h1> <!-- subtitle --> <div id="contentSub" ></div> <!-- /subtitle --> <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><p><b>How can I help?</b> Thanks for asking. Let's find a place for you! </p><p>First you should join our communication forums: </p> <ul><li> Subscribe to our <b><a href="/wiki/MailingLists" class="mw-redirect" title="MailingLists">mailing lists</a></b></li> <li> Join us on <b><a href="/wiki/IRC" title="IRC">IRC</a></b>: You can talk to us directly in <b>#openstack</b> or one of the other channels</li> <li> Answer and ask questions on <b><a rel="nofollow" class="external text" href="https://ask.openstack.org">Ask OpenStack</a></b></li></ul> <p><br /> </p> <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#If_you.27re_building_clouds"><span class="tocnumber">1</span> <span class="toctext">If you're building clouds</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Mentoring_and_finding_mentors"><span class="tocnumber">2</span> <span class="toctext">Mentoring and finding mentors</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#If_you.27re_a_developer"><span class="tocnumber">3</span> <span class="toctext">If you're a developer</span></a> <ul> <li class="toclevel-2 tocsection-4"><a href="#Bug_fixing"><span class="tocnumber">3.1</span> <span class="toctext">Bug fixing</span></a></li> <li class="toclevel-2 tocsection-5"><a href="#Housekeeping"><span class="tocnumber">3.2</span> <span class="toctext">Housekeeping</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-6"><a href="#If_you.27re_a_tester_.28and_breaker.29.2C_get_started_this_way:"><span class="tocnumber">4</span> <span class="toctext">If you're a tester (and breaker), get started this way:</span></a> <ul> <li class="toclevel-2 tocsection-7"><a href="#Testing"><span class="tocnumber">4.1</span> <span class="toctext">Testing</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#Triaging_bugs"><span class="tocnumber">4.2</span> <span class="toctext">Triaging bugs</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-9"><a href="#If_you.27re_into_security.2C_we.27d_love_your_help"><span class="tocnumber">5</span> <span class="toctext">If you're into security, we'd love your help</span></a></li> <li class="toclevel-1 tocsection-10"><a href="#If_you.27re_a_designer_or_usability_professional.2C_help_shape_the_UX"><span class="tocnumber">6</span> <span class="toctext">If you're a designer or usability professional, help shape the UX</span></a></li> <li class="toclevel-1 tocsection-11"><a href="#If_you_want_to_help_with_the_openstack.org_website"><span class="tocnumber">7</span> <span class="toctext">If you want to help with the openstack.org website</span></a></li> <li class="toclevel-1 tocsection-12"><a href="#If_you.27re_a_community_builder"><span class="tocnumber">8</span> <span class="toctext">If you're a community builder</span></a></li> <li class="toclevel-1 tocsection-13"><a href="#Is_there_something_missing.3F"><span class="tocnumber">9</span> <span class="toctext">Is there something missing?</span></a></li> </ul> </div> <h3><span class="mw-headline" id="If_you.27re_building_clouds">If you're building clouds</span></h3> <ul><li> Read the <a rel="nofollow" class="external text" href="http://docs.openstack.org">official OpenStack documentation</a>, which is intended for cloud deployers and operations professionals who are standing up OpenStack clouds. Each page offers comments and the documentation can be edited by cloning a git repository, see <a href="/wiki/Documentation/HowTo" title="Documentation/HowTo">Documentation/HowTo</a>.</li> <li> If you find problems with content on the <a rel="nofollow" class="external text" href="http://docs.openstack.org">official OpenStack documentation</a>, log a bug against the <a rel="nofollow" class="external text" href="https://bugs.launchpad.net/openstack-manuals/+filebug">openstack-manuals project</a> with the page that contains the bug. <ul><li> Hint: you can just dump useful text into a <a rel="nofollow" class="external text" href="https://bugs.launchpad.net/openstack-manuals/+filebug">bug report</a>, and the documentation team will format it and update the docs for you.</li></ul></li> <li> Join the <a rel="nofollow" class="external text" href="http://lists.openstack.org/pipermail/openstack-operators/">openstack-operators mailing list</a> to ask and answer questions specific to deployments large and small.</li> <li> Fill out the <a rel="nofollow" class="external text" href="https://www.openstack.org/user-survey/">user survey</a>, where you can influence the community and software direction and anonymously provide feedback about your OpenStack experience.</li> <li> Consider <a href="/wiki/Operations" title="Operations">contributing to a working group, or adding a use case</a>.</li></ul> <h3><span class="mw-headline" id="Mentoring_and_finding_mentors">Mentoring and finding mentors</span></h3> <p>You can contact the <a href="/wiki/First_Contact_SIG" title="First Contact SIG">First Contact SIG</a> with any questions on how to get started. </p><p>If you are in need of a more structured mentorship program (or want to be a mentor), there are a variety of <a href="/wiki/Mentoring" title="Mentoring">Mentoring</a> programs hosted by the Diversity and Inclusion working group that can help you get started. </p> <h3><span class="mw-headline" id="If_you.27re_a_developer">If you're a developer</span></h3> <ul><li> Walk through <a rel="nofollow" class="external text" href="https://docs.openstack.org/contributors/code-and-documentation/index.html">the Code & Docs Contributor Guide</a> which will help you: <ul><li> Join the <a rel="nofollow" class="external text" href="http://lists.openstack.org/pipermail/openstack-discuss/">OpenStack Discuss mailing list</a></li> <li> Join the <b>#openstack-dev</b> <b><a href="/wiki/IRC" title="IRC">IRC</a></b> channel</li> <li> Set up the necessary accounts</li> <li> Learn where to find the code</li> <li> How to set up your development environment</li> <li> How to interact with Gerrit and Review code</li> <li> Learn how documentation is developed</li> <li> Learn how to contribute translations</li></ul></li> <li> <a rel="nofollow" class="external text" href="https://www.jetbrains.com/pycharm/">Pycharm</a> Open Source developer licences are available for people who are contributing to OpenStack. If you are contributing to OpenStack and you need a licence, please fill in the details <a rel="nofollow" class="external text" href="https://docs.google.com/forms/d/e/1FAIpQLSe5JMbtZEKB95AMVnyOBh4-7Y55hDgQChjg5Ed3auO74Tt2fQ/viewform">here</a>. Additional details can be found <a rel="nofollow" class="external text" href="https://wiki.openstack.org/wiki/Pycharm">here</a></li></ul> <h4><span class="mw-headline" id="Bug_fixing">Bug fixing</span></h4> <p>The first area where you can help is bug fixing. <i>Confirmed</i> bugs are usually good targets. <i>Triaged</i> bugs should even contain tips on how they should be fixed. Here is the list of <a rel="nofollow" class="external text" href="https://bugs.launchpad.net/openstack/+bugs?orderby=-importance&search=Search&field.status:list=CONFIRMED&field.status:list=TRIAGED">Confirmed and Triaged bugs</a>. </p><p>You can contribute instructions on how to fix a given bug, and set it to <i>Triaged</i>. Or you can directly fix it: assign the bug to yourself, set it to <i>In progress</i>, branch the code, implement the fix, and propose your change for merging into trunk ! </p><p>Some easy-to-fix bugs may be marked with the <a rel="nofollow" class="external text" href="https://bugs.launchpad.net/openstack/+bugs?orderby=-importance&search=Search&field.status:list=NEW&field.status:list=CONFIRMED&field.status:list=TRIAGED&field.tag=low-hanging-fruit">low-hanging-fruit</a> tag: they also make good targets for a beginner. </p> <h4><span class="mw-headline" id="Housekeeping">Housekeeping</span></h4> <p>Maintaining good code quality is a never-ending effort that is shared across the development team. There are several always-ongoing efforts that need your help, for example: 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. :) It might be also a good idea to check the results of the continuous code quality and test coverage monitoring described <a href="/wiki/User_talk:P%C3%A9ter_Heged%C5%B1s" title="User talk:P茅ter Heged疟s"> here</a>. </p><p>You can also try some <a href="/wiki/WikiGardening" class="mw-redirect" title="WikiGardening">gardening of this wiki</a>. </p> <h3><span class="mw-headline" id="If_you.27re_a_tester_.28and_breaker.29.2C_get_started_this_way:">If you're a tester (and breaker), get started this way:</span></h3> <h4><span class="mw-headline" id="Testing">Testing</span></h4> <p>We need your help in making sure OpenStack components behave correctly. Feel free to install the development version and report any issue. </p> <h4><span class="mw-headline" id="Triaging_bugs">Triaging bugs</span></h4> <p>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! </p><p>The whole process is described on <a href="/wiki/BugTriage" title="BugTriage">BugTriage</a>. </p> <h3><span class="mw-headline" id="If_you.27re_into_security.2C_we.27d_love_your_help">If you're into security, we'd love your help</span></h3> <p>The OpenStack Security Group (OSSG) is a collection of security-minded people working together to broadly improve security across OpenStack. OSSG has people with a wide range of skills (including developers, architects, writers, and more). See <a href="/wiki/Security/How_To_Contribute" title="Security/How To Contribute">Security/How_To_Contribute</a> for more details on how to get involved with OSSG. </p> <h3><span class="mw-headline" id="If_you.27re_a_designer_or_usability_professional.2C_help_shape_the_UX">If you're a designer or usability professional, help shape the UX</span></h3> <p>You can contribute in many different ways to the User Experience of OpenStack. Whether it's reviewing current features as a user and giving feedback, designing new features, testing designs or features with users, or helping to build use cases and requirements, we'd love to have your help in the UX group! </p><p>Take a look at the "<a href="/wiki/UX#Getting_Started_with_Designing_for_User_Experience" title="UX">Getting Started with Designing for User Experience</a>" section of the <a href="/wiki/UX" title="UX">UX</a> wiki for details. </p><p>Also, feel free to contact fellow designers and folks interested in UX work in #openstack-ux on OFTC if you have any questions or need any guidance on where to jump in. </p> <h3><span class="mw-headline" id="If_you_want_to_help_with_the_openstack.org_website">If you want to help with the openstack.org website</span></h3> <p>Start by reading the <a href="/wiki/Website" title="Website">contributing to the website</a> document. </p> <h3><span class="mw-headline" id="If_you.27re_a_community_builder">If you're a community builder</span></h3> <p>Check out the <a rel="nofollow" class="external text" href="https://groups.openstack.org">user group page</a> to learn which communities exist and how to start one. If you're into diversity and making our community more welcoming and diverse, please look at the <a rel="nofollow" class="external text" href="https://wiki.openstack.org/wiki/Women_of_OpenStack">Women of OpenStack</a> and <a rel="nofollow" class="external text" href="https://wiki.openstack.org/wiki/OutreachProgramForWomen">Outreach Program for Women</a> for ideas. </p> <h3><span class="mw-headline" id="Is_there_something_missing.3F">Is there something missing?</span></h3> <p>If you need further guidance about how to contribute or if you are having trouble getting started, you can look at <b>#openstack-dev</b> on <a rel="nofollow" class="external text" href="http://webchat.oftc.net">oftc.net</a> as well. </p> <hr /> <!-- NewPP limit report Cached time: 20241126202724 Cache expiry: 86400 Dynamic content: false CPU time usage: 0.024 seconds Real time usage: 0.597 seconds Preprocessor visited node count: 51/1000000 Preprocessor generated node count: 56/1000000 Post鈥恊xpand include size: 0/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 2/40 Expensive parser function count: 0/100 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 0.000 1 - -total --> <!-- Saved in parser cache with key openstack_wiki:pcache:idhash:22801-0!*!0!!en!*!* and timestamp 20241126202723 and revision id 178609 --> </div> </div></div> <!-- /innerbodycontent --> <!-- printfooter --> <div class="printfooter"> Retrieved from "<a dir="ltr" href="https://wiki.openstack.org/w/index.php?title=How_To_Contribute&oldid=178609">https://wiki.openstack.org/w/index.php?title=How_To_Contribute&oldid=178609</a>" </div> <!-- /printfooter --> <!-- catlinks --> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/wiki/Category:HowTo" title="Category:HowTo">HowTo</a></li><li><a href="/wiki/Category:Contribute" title="Category:Contribute">Contribute</a></li></ul></div></div> <!-- /catlinks --> <div class="visualClear"></div> <!-- debughtml --> <!-- /debughtml --> </div> <!-- /bodyContent --> </section> <!-- /content --> <!-- footer --> <div id="footer" class="footer container"> <div class="row"> <ul id="footer-places"> <li id="footer-places-privacy"><a href="/wiki/OpenStack:Privacy_policy" title="OpenStack:Privacy policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/OpenStack:About" title="OpenStack:About">About OpenStack</a></li> <li id="footer-places-disclaimer"><a href="/wiki/OpenStack:General_disclaimer" title="OpenStack:General disclaimer">Disclaimers</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"> <a href="http://creativecommons.org/licenses/by/3.0/"><img src="/w/resources/assets/licenses/cc-by.png" alt="Attribution 3.0 Unported (CC BY 3.0)" width="88" height="31"/></a> </li> <li id="footer-poweredbyico"> <a href="//www.mediawiki.org/"><img src="/w/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/w/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /w/resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li> </ul> </div> </div> <!-- /footer --> <script>(window.RLQ=window.RLQ||[]).push(function(){mw.loader.load("/w/load.php?debug=false\u0026lang=en\u0026modules=skins.strapping\u0026only=scripts\u0026skin=strapping");mw.loader.load(["mediawiki.toc","mediawiki.action.view.postEdit","site","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest","ext.uls.init","ext.uls.geoclient"]);});</script><script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-17511903-5', 'auto'); ga('set', 'anonymizeIp', true); ga('send', 'pageview'); </script> <script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":79});});</script> </body> </html>