<!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">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../../../img/favicon.ico">

        <title>Turn project into a Repo - Apache Mynewt</title>

        <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../../../css/highlight.css">
        <link href="../../../../css/base.css" rel="stylesheet">
        <link href="../../../../css/custom.css" rel="stylesheet">
        <link href="../../../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <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="Turn project into a Repo">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/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.11.0, Apache NimBLE 1.6.0 </a> released (September 7, 2023)
            </div>
        </div>
    </div>
</div>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" 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 
  class=""
>
                    <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 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

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

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </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/" >
    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" selected="selected" >
    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></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../../introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../tutorials/">Tutorials</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../blinky/">Project Blinky</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../add_repos/">Work with repositories</a>
  
  
    <ul>
          
              
          
              
                
  <li >
    <a href="../upgrade_repo/">Upgrade a Repo</a>
  </li>

              
          
              
                
  <li class="active">
    <a href="./">Turn project into a Repo</a>
  </li>

              
          
              
                
  <li >
    <a href="../private_repo/">Access a private Repo</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../project-slinky/">Project Slinky for Remote Comms</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../ble_bare_bones/
">Bluetooth Low Energy</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../lora/lorawanapp/
">LoRa</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../event_queue/
">OS Fundamentals</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../add_newtmgr/
">Remote Device Management</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  
  
  ../../sensors/sensors/

">Sensors</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../segger_rtt/
">Tooling</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../codesize/
">Other</a>
  
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../../newt/newt_intro/">Newt Tool Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../../newtmgr/overview/">Newt Manager Guide</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../../../newt/install/prev_releases/
">Appendix</a>
  
  
    </li>

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

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; <a href="os/tutorials/repo/add_repos/">Work with repositories</a></li>
        
      
        
          <li>&raquo; <a href="os/tutorials/tutorials/">Tutorials</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; Turn project into a Repo</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/os/tutorials/repo/create_repo.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.2.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>
                          
                        
                        
                            <h2 id="create-a-repo-out-of-a-project">Create a Repo out of a Project</h2>
<p>In order to create a repository out of a project, all you need to do is create a <code>repository.yml</code> file, and check it into the master branch of your project.</p>
<p><strong>NOTE:</strong> Currently only github source control service is supported by our package management system, but support for plain git will be added soon.</p>
<p>The repository.yml defines all versions of the repository and the corresponding source control tags that these versions correspond to.  As an example, if the repository.yml file has the following content, it means there is one version of the apache-mynewt-core operating system available, which is <code>0.0.0</code> (implying we haven't released yet!). Such a version number corresponds to the "develop" branch in this repository. <code>0-latest</code> would also resolved to this same <code>0.0.0</code> version. The next section explains the versioning system a bit more.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ more repository.yml
repo.name: apache-mynewt-core
repo.versions:
     &quot;0.0.0&quot;: &quot;develop&quot;
     &quot;0-latest&quot;: &quot;0.0.0&quot;
</code></pre></div>

<p><br></p>
<h3 id="where-should-the-repositoryyml-file-be">Where should the repository.yml file be?</h3>
<p>The <code>repository.yml</code> file lives only in the master branch of the git
repository.  <code>Newt</code> will always fetch this file from the master branch and then
use that to resolve the actual branch required depending on the version
specified in the project.  <strong>Special care should be taken to ensure that this
file exists only in the master branch.</strong></p>
<p>Here is the <code>repository.yml</code> file from a certain snapshot of apache-Mynewt-core:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>repo.name: apache-mynewt-core
repo.versions:
    &quot;0.7.9&quot;: &quot;Mynewt_0_8_0_b2_tag&quot;
    &quot;0-latest&quot;: &quot;0.7.9&quot;
    &quot;0.8-latest&quot;: &quot;0.7.9&quot;
</code></pre></div>

<p><br></p>
<p>It contains the following:</p>
<ul>
<li><strong>repo.name</strong> The external name that is used to include the library in 
your <code>project.yml</code> file.   This is the name you include in the <code>project.repositories</code> 
variable when adding this repository to your project.</li>
<li><strong>repo.versions</strong> A description of what versions to give the user depending 
on the settings in their <code>project.yml</code> file.  See below for a thorough description
on versioning. Its a flexible mapping between version numbers and git branches.</li>
</ul>
<p><br></p>
<h3 id="repo-version-specification">Repo Version Specification</h3>
<p>The version field argument for a repo has the following format:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>&lt;major_num&gt;.&lt;minor_num&gt;.&lt;revision_num&gt;
</code></pre></div>

<p>or</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>&lt;major_num&gt;.&lt;minor_num&gt;-&lt;stability string&gt;
</code></pre></div>

<p>or </p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>&lt;major_num&gt;-&lt;stability string&gt;
</code></pre></div>

<p><br></p>
<p>The stability string can be one of 3 pre-defined stability values.</p>
<ol>
<li>stable -- A stable release version of the repository</li>
<li>dev    -- A development version from the repository</li>
<li>latest -- The latest from the repository</li>
</ol>
<p>In your <code>project.yml</code> file you can specify different combinations of 
the version number and stability value.  For example:</p>
<ul>
<li><code>1-latest</code>      -- The latest version with major number 1</li>
<li><code>1.2-stable</code>    -- The latest stable version with major and minor number 1.2</li>
<li><code>1.2-dev</code>       -- The development version from 1.2</li>
<li><code>1.1.1</code>         -- a specific version 1.1.1</li>
</ul>
<p>You <strong>cannot</strong> specify a stability string with a fully numbered version, e.g.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>1.2.8-stable
</code></pre></div>

<p><br></p>
<h3 id="repo-version-resolution">Repo Version Resolution</h3>
<p>A <code>repository.yml</code> file contains information to match this version request
into a git branch to fetch for your project.</p>
<p>It's up to you as the repository maintainer to map these to actual github branches of the repository.  For example, let's say in a fictitious repository the following are defined.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>repo.versions:
    &quot;0.8.0&quot;: &quot;xxx_branch_0_8_0&quot;
    &quot;1.0.0&quot;: &quot;xxx_branch_1_0_0&quot;
    &quot;1.0.2&quot;: &quot;xxx_branch_1_0_2&quot;
    &quot;1.1.1&quot;: &quot;xxx_branch_1_1_0&quot;
    &quot;1.1.2&quot;: &quot;xxx_branch_1_1_2&quot;
    &quot;1.2.0&quot;: &quot;xxx_branch_1_2_0&quot;
    &quot;1.2.1&quot;: &quot;xxx_branch_1_2_1&quot;
    &quot;1.2-dev&quot;: &quot;1.2.1&quot;
    &quot;1-dev&quot;: &quot;1.2-dev&quot;
    &quot;1.2-stable&quot;: &quot;1.2.0&quot;
    &quot;0-latest&quot;: &quot;0.8.0&quot;
    &quot;1-latest&quot;: &quot;1-dev&quot;
    ....
</code></pre></div>

<p>When the <code>project.yml</code> file asks for <code>1.2-stable</code> it will be resolved to version
<code>1.2.0</code> which in turn will resolve to a specific branch <code>xxx_branch_1_2_0</code>.  This is the branch that <code>newt</code> will fetch into the project with that <code>project.yml</code> file.</p>
<p><br></p>
<h3 id="dependencies-on-other-repos">Dependencies on other repos</h3>
<p>Repositories can also have dependencies on other repositories.  These 
dependencies should be listed out on a per-tag basis.  So, for example, 
if apache-mynewt-core were to depend on sterlys-little-repo, you might 
have the following directives in the repository.yml:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>develop.repositories:
    sterlys-little-repo:
        type: github
        vers: 0.8-latest
        user: sterlinghughes
        repo: sterlys-little-repo
</code></pre></div>

<p><br></p>
<p>This would tell Newt that for anything that resolves to the develop 
branch, this repository requires the sterlys-little-repo repository. </p>
<p>Dependencies are resolved circularly by the newt tool, and every dependent repository is placed as a sibling in the repos directory. Currently, if two repositories have the same name, they will conflict and bad things will happen.</p>
<p>When a repository is installed to the repos/ directory, the current 
version of that repository is written to the "project.state" file.  The 
project state file contains the currently installed version of any given 
repository.  This way, the current set of repositories can be recreated 
from the project.state file reliably, whereas the project.yml file can 
have higher level directives (i.e. include 0.8-stable.)</p>
<h3 id="resolving-dependencies">Resolving dependencies</h3>
<p>At the moment, all dependencies must match, otherwise newt will provide 
an error.  As an example, if you have a set of dependencies such that:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>apache-mynewt-core depends on sterlys-little-repo 0.6-stable
apache-mynewt-core depends on sterlys-big-repo 0.5.1
sterlys-big-repo-0.5.1 depends on sterlys-little-repo 0.6.2
</code></pre></div>

<p><br></p>
<p>where 0.6-stable is 0.6.3, the newt tool will try and resolve the dependency to 
sterlys-little-repo.  It will notice that there are two conflicting 
versions of the same repository, and not perform installation.</p>
<p>In the future Newt will be smarter about loading in all dependencies, 
and then looking to satisfy those dependencies to the best match of all 
potential options.</p>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer 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">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <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>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../../../js/jquery-1.10.2.min.js"></script>
        <script src="../../../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../../../js/highlight.pack.js"></script>
        <script src="../../../../js/base.js"></script>
        <script src="../../../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>