<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h1 id="indicators">Apache CloudStack: Mailing Lists</h1>

</div>

</div>

</div>

<p>If you're interested in learning more or participating in the Apache CloudStack project, the mailing lists are the best way to do that. While the project has several communications channels, the mailing lists are the most active and the official channels for making decisions about the project itself. <em><a href="http://community.apache.org/newbiefaq.html#NewbieFAQ-IsthereaCodeofConductforApacheprojects?&quot;">"If it didn't happen on a mailing list, it didn't happen."</a></em></p>

<p>The project currently has several lists:</p>

<ul>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-announce/">announce@</a>: Project release, security and other announcements. This is a very low volume list.</li>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-users/">users@</a>: This list is for users of CloudStack to seek and provide support. This is a moderately high volume list.</li>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-dev/">dev@</a>: Where discussions about development and the project itself happen. This is a high volume list.</li>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-commits/">commits@</a>: This list is for commits to the CloudStack git repository. It's a high volume list with automated messages, probably of limited interest to anyone who is not actively developing Apache CloudStack.</li>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-issues/">issues@</a>: Notifications from CloudStack's Jira project. This is a high volume list.</li>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-marketing/">marketing@</a>: Discussions about marketing CloudStack.</li>
</ul>

<p>The preferred language to use on the lists above is English. To support the global nature of the CloudStack user community, we also have the following regionally specific user lists:</p>

<ul>
  <li><a href="http://mail-archives.apache.org/mod_mbox/cloudstack-users-cn/">users-cn@</a>: Chinese</li>
</ul>

<form action="http://markmail.org/search/list:org.apache.incubator.cloudstack-*">
<strong>Search the CloudStack Mailing Lists on MarkMail</strong>: <input type="text" name="q" size="50" />
<input type="submit" value="Search" />
</form>

<h2 id="to-subscribe-to-the-mailing-lists">To Subscribe to the Mailing Lists</h2>

<p>If you want to subscribe to list, send an email to <em>listname</em>-subscribe@cloudstack.apache.org:</p>

<ul>
  <li>To join the announce mailing list email <a href="mailto:announce-subscribe@cloudstack.apache.org">announce-subscribe@cloudstack.apache.org</a>.</li>
  <li>To join the users mailing list email <a href="mailto:users-subscribe@cloudstack.apache.org">users-subscribe@cloudstack.apache.org</a>.</li>
  <li>To join the users-cn mailing list email <a href="mailto:users-cn-subscribe@cloudstack.apache.org">users-cn-subscribe@cloudstack.apache.org</a>.</li>
  <li>To join the dev mailing list email <a href="mailto:dev-subscribe@cloudstack.apache.org">dev-subscribe@cloudstack.apache.org</a>.</li>
  <li>To join the commits mailing list email <a href="mailto:commits-subscribe@cloudstack.apache.org">commits-subscribe@cloudstack.apache.org</a>.</li>
  <li>To join the issues mailing list email <a href="mailto:issues-subscribe@cloudstack.apache.org">issues-subscribe@cloudstack.apache.org</a>.</li>
  <li>To join the marketing mailing list email <a href="mailto:marketing-subscribe@cloudstack.apache.org">marketing-subscribe@cloudstack.apache.org</a>.</li>
</ul>

<h2 id="to-unsubscribe-to-the-mailing-lists">To Unsubscribe to the Mailing Lists</h2>

<p>Decided you're getting too much mail? To unsubscribe from one of the lists, send an email to <em>listname</em>-unsubscribe@cloudstack.apache.org from the same email you subscribed with.</p>

<ul>
  <li>To leave the announce mailing list email <a href="mailto:announce-unsubscribe@cloudstack.apache.org">announce-unsubscribe@cloudstack.apache.org</a>.</li>
  <li>To leave the users mailing list email <a href="mailto:users-unsubscribe@cloudstack.apache.org">users-unsubscribe@cloudstack.apache.org</a>.</li>
  <li>To leave the users-cn mailing list email <a href="mailto:users-cn-unsubscribe@cloudstack.apache.org">users-cn-unsubscribe@cloudstack.apache.org</a>.</li>
  <li>To leave the dev mailing list email <a href="mailto:dev-unsubscribe@cloudstack.apache.org">dev-unsubscribe@cloudstack.apache.org</a>.</li>
  <li>To leave the commits mailing list email <a href="mailto:commits-unsubscribe@cloudstack.apache.org">commits-unsubscribe@cloudstack.apache.org</a>.</li>
  <li>To leave the issues mailing list email <a href="mailto:issues-unsubscribe@cloudstack.apache.org">issues-unsubscribe@cloudstack.apache.org</a>.</li>
  <li>To leave the marketing mailing list email <a href="mailto:marketing-unsubscribe@cloudstack.apache.org">marketing-unsubscribe@cloudstack.apache.org</a>.</li>
</ul>

<p><strong>Please do not send emails to the list asking for someone to unsubscribe you.</strong></p>

<h2 id="conduct-on-mailing-lists">Conduct on Mailing Lists</h2>

<p>We expect all participants on the mailing list to treat one another professionally and politely.</p>
