

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    

    
    <title>Mynewt FAQ - Administrative &mdash; Apache Mynewt latest documentation</title>
    

    
    
      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
    

    

    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />

    
      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
    
      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
    
      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
    
      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
    
      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
    

    

    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
          <link rel="index" title="Index"
                href="../genindex.html"/>
          <link rel="search" title="Search" href="../search.html"/>
      <link rel="top" title="Apache Mynewt latest documentation" href="../index.html"/>
          <link rel="up" title="Mynewt FAQ" href="index.html"/>
          <link rel="next" title="Mynewt FAQ - Bluetooth" href="bluetooth_faq.html"/>
          <link rel="prev" title="Mynewt FAQ" href="index.html"/> 

    
    <script src="../_static/js/modernizr.min.js"></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-72162311-1", "auto");
ga("send", "pageview");
</script>
    

  </head>

  <body class="not-front page-documentation" role="document" >
    <div id="wrapper">
      <div class="container">
    <div id="banner" class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="../_static/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released April 4, 2024)
            </div>
        </div>
    </div>
</div>
      
<header>
    <nav id="navbar" class="navbar navbar-inverse" role="navigation">
        <div class="container">
            <!-- Collapsed navigation -->
            <div class="navbar-header">
                <!-- Expander button -->
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>

            </div>

            <!-- Expanded navigation -->
            <div class="navbar-collapse collapse">
                <!-- Main navigation -->
                <ul class="nav navbar-nav navbar-right">
                    <li>
                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                    </li>
                    <li class="important">
                        <a href="/quick-start/">Quick Start</a>
                    </li>
                    <li>
                        <a href="/about/">About</a>
                    </li>
                    <li>
                        <a href="/talks/">Talks</a>
                    </li>
                    <li class="active">
                        <a href="/documentation/">Documentation</a>
                    </li>
                    <li>
                        <a href="/download/">Download</a>
                    </li>
                    <li>
                        <a href="/community/">Community</a>
                    </li>
                    <li>
                        <a href="/events/">Events</a>
                    </li>
                </ul>

                <!-- Search, Navigation and Repo links -->
                <ul class="nav navbar-nav navbar-right">
                    
                </ul>
            </div>
        </div>
    </nav>
</header>
      <!-- STARTS MAIN CONTENT -->
      <div id="main-content">
        





<div id="breadcrumb">
  <div class="container">
    <a href="/documentation/">Docs</a> /
    
      <a href="index.html">Mynewt FAQ</a> /
    
    Mynewt FAQ - Administrative
    
  <div class="sourcelink">
    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/mynewt_faq/admin_faq.rst" class="icon icon-github"
           rel="nofollow"> Edit on GitHub</a>
</div>
  </div>
</div>
        <!-- STARTS CONTAINER -->
        <div class="container">
          <!-- STARTS .content -->
          <div id="content" class="row">
            
            <!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
  <div id="docSidebar" class="sticky-container">
    <div role="search" class="sphinx-search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
    <!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest" selected>
    Version: latest
  </option>
  <option value="/v1_12_0" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0" >
    Version: 1.9.0
  </option>
  <option value="/v1_8_0" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0" selected="selected" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" >
    Version: 0.9.0
  </option>
</select>
    <div class="region region-sidebar">
      <div class="docs-menu">
      
        
        
            <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorials/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../external_links.html">Third-party Resources</a></li>
<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../network/index.html">BLE User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Mynewt FAQ</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">Administrative</a></li>
<li class="toctree-l2"><a class="reference internal" href="bluetooth_faq.html">Bluetooth</a></li>
<li class="toctree-l2"><a class="reference internal" href="boot_faq.html">Bootloader and Firmware Upgrade</a></li>
<li class="toctree-l2"><a class="reference internal" href="modules_faq.html">Drivers and Modules</a></li>
<li class="toctree-l2"><a class="reference internal" href="fs_faq.html">File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="hardware_faq.html">Hardware-Specific</a></li>
<li class="toctree-l2"><a class="reference internal" href="syntax_faq.html">Mynewt Syntax and Semantics</a></li>
<li class="toctree-l2"><a class="reference internal" href="nfc_faq.html">NFC</a></li>
<li class="toctree-l2"><a class="reference internal" href="newt_faq.html">Newt</a></li>
<li class="toctree-l2"><a class="reference internal" href="newtmgr_faq.html">Newt Manager</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_faq.html">Porting Mynewt</a></li>
<li class="toctree-l2"><a class="reference internal" href="troubleshoot_faq.html">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
</ul>

        
      
      </div>
    </div>
  </div>
  <!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->

            <div class="col-xs-12 col-sm-9">
              
                <div class="alert alert-warning">
                  <p>
                    Version 1.5.0 is not the most recent version of the
                    Apache Mynewt documentation. Click <a href="/latest">here</a> to
                    read the latest version.
                  </p>
                </div>
              

              
              <div class="">
                <div class="rst-content">
                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
                   <div itemprop="articleBody">
                    
  <div class="section" id="mynewt-faq-administrative">
<h1>Mynewt FAQ - Administrative<a class="headerlink" href="#mynewt-faq-administrative" title="Permalink to this headline">¶</a></h1>
<p>Here is a list of frequently asked questions about the project and administrative processes.</p>
<div class="section" id="administrative-questions">
<h2>Administrative questions:<a class="headerlink" href="#administrative-questions" title="Permalink to this headline">¶</a></h2>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#how-do-i-submit-a-bug" id="id1">How do I submit a bug?</a></p></li>
<li><p><a class="reference internal" href="#how-do-i-request-a-feature" id="id2">How do I request a feature?</a></p></li>
<li><p><a class="reference internal" href="#i-am-not-on-the-committer-list-how-do-i-submit-a-patch" id="id3">I am not on the committer list. How do I submit a patch?</a></p></li>
<li><p><a class="reference internal" href="#i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository" id="id4">I am a committer in the project. Can I merge my own Pull Request into the git repository?</a></p></li>
<li><p><a class="reference internal" href="#i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do" id="id5">I would like to make some edits to the documentation. What do I do?</a></p></li>
<li><p><a class="reference internal" href="#i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do" id="id6">I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?</a></p></li>
</ul>
</div>
<div class="section" id="how-do-i-submit-a-bug">
<h3><a class="toc-backref" href="#id1">How do I submit a bug?</a><a class="headerlink" href="#how-do-i-submit-a-bug" title="Permalink to this headline">¶</a></h3>
<p>If you do not have a JIRA account sign up
for an account on
<a class="reference external" href="https://issues.apache.org/jira/secure/Signup!default.jspa">JIRA</a>.</p>
<p>Submit a request to the &#64;dev mailing list for your JIRA username to be
added to the Apache Mynewt (MYNEWT) project. You can view the issues on
JIRA for the MYNEWT project without an account but you need to log in
for reporting a bug.</p>
<p>Log in. Choose the “MYNEWT” project. Click on the “Create” button to
create a ticket. Choose “Bug” as the Issue Type. Fill in the bug
description, how it is triggered, and other details.</p>
</div>
<div class="section" id="how-do-i-request-a-feature">
<h3><a class="toc-backref" href="#id2">How do I request a feature?</a><a class="headerlink" href="#how-do-i-request-a-feature" title="Permalink to this headline">¶</a></h3>
<p>If you do not have a JIRA account sign up for an account on
<a class="reference external" href="https://issues.apache.org/jira/secure/Signup!default.jspa">JIRA</a>.</p>
<p>Submit a request to the &#64;dev mailing list for your JIRA username to be
added to the Apache Mynewt (MYNEWT) project. You can view the issues on
JIRA for the MYNEWT project without an account but you need to log in
for reporting a bug.</p>
<p>Log in. Choose the “MYNEWT” project. Click on the “Create” button to
create a ticket. Choose “Wish” as the Issue Type. Fill in the feature
description, benefits, and any other implementation details. Note in the
description whether you want to work on it yourself.</p>
<p>If you are not a committer and you wish to work on it, someone who is on
the committer list will have to review your request and assign it to
you. You will have to refer to this JIRA ticket in your pull request.</p>
</div>
<div class="section" id="i-am-not-on-the-committer-list-how-do-i-submit-a-patch">
<h3><a class="toc-backref" href="#id3">I am not on the committer list. How do I submit a patch?</a><a class="headerlink" href="#i-am-not-on-the-committer-list-how-do-i-submit-a-patch" title="Permalink to this headline">¶</a></h3>
<p><strong>You submit your proposed changes for your peers with committer status
to review and merge.</strong></p>
<p>The process to submit a Pull Request on github.com is described on the
<a class="reference external" href="https://cwiki.apache.org/confluence/display/MYNEWT/Submitting+Pull+Requests">Confluence page for the
project</a>.</p>
</div>
<div class="section" id="i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository">
<h3><a class="toc-backref" href="#id4">I am a committer in the project. Can I merge my own Pull Request into the git repository?</a><a class="headerlink" href="#i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository" title="Permalink to this headline">¶</a></h3>
<p>Yes, but only if your Pull Request has been reviewed and approved by
another committer in Apache Mynewt. The process to merge a Pull Request
is described on the <a class="reference external" href="https://cwiki.apache.org/confluence/display/MYNEWT/Merging+Pull+Requests">Confluence page for the
project</a>.</p>
</div>
<div class="section" id="i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do">
<h3><a class="toc-backref" href="#id5">I would like to make some edits to the documentation. What do I do?</a><a class="headerlink" href="#i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do" title="Permalink to this headline">¶</a></h3>
<p>You submit your proposed changes for your peers with committer status
to review and merge.</p>
<p>Each Mynewt repository has its own set of related documentation in the docs/ folder. The
overall project documentation is in <a class="reference external" href="https://github.com/apache/mynewt-documentation">mynewt-documentation</a>
on github.com.</p>
<p>Navigate to the file you wish to edit on github.com. All the technical
documentation is in reStructuredText files under the <code class="docutils literal notranslate"><span class="pre">/docs</span></code> directory. Click
on the pencil icon (“Edit the file in your fork of this project”) and
start making changes.</p>
<p>Click the green “Propose file change” button. You will be directed to
the page where you can start a pull request from the branch that was
created for you. The branch is gets an automatic name <code class="docutils literal notranslate"><span class="pre">patch-#</span></code> where
# is a number. Click on the green “Compare &amp; pull request” to open the
pull request.</p>
<p>In the comment for the pull request, include a description of the
changes you have made and why. Github will automatically notify everyone
on the <a class="reference external" href="mailto:commits&#37;&#52;&#48;mynewt&#46;apache&#46;org">commits<span>&#64;</span>mynewt<span>&#46;</span>apache<span>&#46;</span>org</a> mailing list about the newly opened
pull requests. You can open a pull request even if you don’t think the
code is ready for merging but want some discussion on the matter.</p>
<p>Upon receiving notification, one or more committers will review your
work, ask for edits or clarifications, and merge when your proposed
changes are ready.</p>
<p>If you want to withdraw the pull request simply go to your fork
<code class="docutils literal notranslate"><span class="pre">https://github.com/&lt;your</span> <span class="pre">github</span> <span class="pre">username&gt;/mynewt-documentation</span></code> and click on
“branches”. You should see your branch under “Your branches”. Click on
the delete icon.</p>
</div>
<div class="section" id="i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do">
<h3><a class="toc-backref" href="#id6">I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?</a><a class="headerlink" href="#i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do" title="Permalink to this headline">¶</a></h3>
<p>You submit your proposed changes for your peers with committer status
to review and merge.</p>
<p>Go to the <a class="reference external" href="https://github.com/apache/mynewt-documentation">documentation
mirror</a> on github.com. You
need to create your own fork of the repo in github.com by clicking on
the “Fork” button on the top right. Clone the forked repository into
your laptop (using <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">clone</span></code> from a terminal or using the download
buttons on the github page)and create a local branch for the edits and
switching to it (using <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">checkout</span> <span class="pre">-b</span> <span class="pre">&lt;new-branchname&gt;</span></code> or GitHub
Desktop).</p>
<p>Make your changes using the editor of your choice. Push that branch to
your fork on github. Then submit a pull request from that branch on your
github fork.</p>
<p>The review and merge process is the same as other pull requests
described for earlier questions.</p>
</div>
</div>
</div>


                   </div>
                  </div>
                  
    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
      
        <a href="bluetooth_faq.html" class="btn btn-neutral float-right" title="Mynewt FAQ - Bluetooth" accesskey="n">Next: Mynewt FAQ - Bluetooth <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="index.html" class="btn btn-neutral" title="Mynewt FAQ" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Mynewt FAQ</a>
      
    </div>

                </div>
              </div>
            </div>
            <!-- ENDS CONTENT SECTION -->
          </div>
          <!-- ENDS .content -->
        </div>
      </div>
      <footer>
  <div class="container">
    <div class="row">
      <div class="col-xs-12">
          
              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
          
      </div>
      <div class="col-xs-12">
          <div class="logos">
              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
              <small class="footnote">
                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
              </small>
              <a href="">
                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
              </a>
          </div>
      </div>
    </div>
  </div>
</footer>
    </div>
    <!-- ENDS #wrapper -->

  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../',
            VERSION:'latest',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: '.txt',
            LINK_SUFFIX: '.html'
        };
    </script>
      <script type="text/javascript" src="../_static/jquery.js"></script>
      <script type="text/javascript" src="../_static/underscore.js"></script>
      <script type="text/javascript" src="../_static/doctools.js"></script>
      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
      <script type="text/javascript" src="../_static/js/affix.js"></script>
      <script type="text/javascript" src="../_static/js/main.js"></script>

   

  </body>
</html>