
<div class="container small-no-padding">
    <div class="row content">
        <div class="col-md-12">
            {% block content %}
                {% include 'fix_up_content.html' %}
            {% endblock %}
        </div>
    </div>
    <div class="row">
        <div class="col-md-4 mailing-list">
            <div class="bg-purple mailing-list-title text-center">
                Dev Mailing List
            </div>
                <p><a class="bold-link" href="mailto:dev@mynewt.apache.org">dev@mynewt.apache.org</a></p>
                <p>For both contributors and users. Ask questions. Share ideas. Discuss issues, roadmap, process. Help coordinate. Influence.</p>
                <div class="mailing-list-title text-center">
                    <p><a href="mailto:dev-subscribe@mynewt.apache.org">Subscribe</a></p>
                    <p text-center><a href="mailto:dev-unsubscribe@mynewt.apache.org">Unsubscribe</a></p>
                  <p> <a href="https://mail-archives.apache.org/mod_mbox/mynewt-dev/" target="_blank">Mail archives</a> </p>
                  <p> Find us on Slack:</p>
                  <p> <a href="{{ config.extra.slack_url }}"><img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" /></a></p>
                </div>
        </div>
        <div class="col-md-4 mailing-list">
            <div class="bg-purple mailing-list-title text-center">
                Commits Mailing List
            </div>
                <p><a class="bold-link" href="mailto:commits@mynewt.apache.org">commits@mynewt.apache.org</a></p>
                <p>For code or documentation contributors. Receive automated notifications of any changes to Mynewt code and documentation.</p>
                <div class="mailing-list-title text-center">
                  <p><a href="mailto:commits-subscribe@mynewt.apache.org">Subscribe</a></p>
                  <p><a href="mailto:commits-unsubscribe@mynewt.apache.org">Unsubscribe</a></p>
                  <p> <a href="https://mail-archives.apache.org/mod_mbox/mynewt-commits/" target="_blank">Mail archives</a> </p>
               </div>
        </div>
        <div class="col-md-4 mailing-list">
            <div class="bg-purple mailing-list-title text-center">
                Notifications Mailing List
            </div>
                <p><a class="bold-link" href="mailto:notifications@mynewt.apache.org">notifications@mynewt.apache.org</a></p>
                <p>For all autogenerated mail other than commits e.g. JIRA issue-tracker notifications. Can also be used for announcements. </p>
                <div class="mailing-list-title text-center">
                   <p><a href="mailto:notifications-subscribe@mynewt.apache.org">Subscribe</a></p>
                   <p><a href="mailto:notifications-unsubscribe@mynewt.apache.org">Unsubscribe</a></p>
                   <p> <a href="https://mail-archives.apache.org/mod_mbox/mynewt-notifications/" target="_blank">Mail archives</a> </p>
                </div>
  </div>
</div>

<div class="row">
      <div class="col-md-12">
                <h3>Getting involved</h3>

                <p> It is easy! Simply send an email to the dev@ mailing list introducing yourself and the Apache Mynewt community will welcome you. If you have questions, sending an email to this list is the fastest way of getting an answer. </p>

                <p> If you want to browse the code, <a href="https://github.com/apache/mynewt-core">Mynewt Core Repo</a> is the best place to start.

                <p> If you wish to contribute code, a quick look at the <a href="https://cwiki.apache.org/confluence/display/MYNEWT/Contributing+to+Apache+Mynewt"> recommended steps </a> should help.  

                <h3>Bug Submission and Issue Tracking</h3>
                <p> Issues, features, improvements, and wish-lists are now tracked on the <a href="https://github.com/apache/mynewt-core/issues">Mynewt Core Github Repo</a>. New issues will be marked with the appropriate label by a committer who will review them. </p>
              
                <p> If you are a contributor and wish to work on a change, it's always a good idea to introduce the change in the dev@ mailing list before submitting a pull request into the GitHub mirror for your change. </p>
<br>

</div>
</div>
</div>
