<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>New Avatica Repository</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v3.7.3">
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
  <link rel="stylesheet" href="/avatica/css/screen.css">
  <link rel="icon" type="image/x-icon" href="/avatica/favicon.ico">
  <!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
  <![endif]-->
</head>


<body class="wrap">
  <header role="banner">
  <nav class="mobile-nav show-on-mobiles">
    <ul>
  <li class="">
    <a href="/avatica/">Home</a>
  </li>
  <li class="">
    <a href="/avatica/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/avatica/community/">Community</a>
  </li>
  <li class="">
    <a href="/avatica/develop/">Develop</a>
  </li>
  <li class="current">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="">
    <a href="/avatica/docs/">Docs</a>
  </li>
</ul>

  </nav>
  <div class="grid">
    <div class="unit one-third center-on-mobiles">
      <h1>
        <a href="/avatica/">
          <span class="sr-only">Apache Calcite Avatica</span>
          <img src="/avatica/img/logo.png" width="226" height="140" alt="Calcite Logo">
        </a>
      </h1>
    </div>
    <nav class="main-nav unit two-thirds hide-on-mobiles">
      <ul>
  <li class="">
    <a href="/avatica/">Home</a>
  </li>
  <li class="">
    <a href="/avatica/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/avatica/community/">Community</a>
  </li>
  <li class="">
    <a href="/avatica/develop/">Develop</a>
  </li>
  <li class="current">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="">
    <a href="/avatica/docs/">Docs</a>
  </li>
</ul>

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


    <section class="news">
    <div class="grid">

      <div class="docs-nav-mobile unit whole show-on-mobiles">
  <select onchange="if (this.value) window.location.href=this.value">
    <option value="">Navigate the blog…</option>
    <option value="/avatica/news/">Home</option>
    <optgroup label="v1.x">
      
      <option value="/news/2019/05/16/release-avatica-go-4.0.0/">Release Avatica Go 4.0.0</option>
      
      <option value="/news/2019/05/13/release-1.15.0/">Release 1.15.0</option>
      
      <option value="/news/2019/04/29/release-1.14.0/">Release 1.14.0</option>
      
      <option value="/news/2018/12/04/release-1.13.0/">Release 1.13.0</option>
      
      <option value="/news/2018/09/18/release-avatica-go-3.2.0/">Release Avatica Go 3.2.0</option>
      
      <option value="/news/2018/09/10/release-avatica-go-3.1.0/">Release Avatica Go 3.1.0</option>
      
      <option value="/news/2018/06/24/release-1.12.0/">Release 1.12.0</option>
      
      <option value="/news/2018/04/27/release-avatica-go-3.0.0/">Release Avatica Go 3.0.0</option>
      
      <option value="/news/2018/03/09/release-1.11.0/">Release 1.11.0</option>
      
      <option value="/news/2017/05/30/release-1.10.0/">Release 1.10.0</option>
      
      <option value="/news/2017/03/31/new-avatica-repository/">New Avatica Repository</option>
      
      <option value="/news/2016/11/01/release-1.9.0/">Release 1.9.0</option>
      
      <option value="/news/2016/06/04/release-1.8.0/">Release 1.8.0</option>
      
      <option value="/news/2016/03/18/release-1.7.1/">Release 1.7.1</option>
      
      <option value="/news/2016/03/03/separate-project/">Splitting Avatica from Calcite</option>
      
    </optgroup>
  </select>
</div>


      <div class="unit four-fifths">
        <article>
  <h2>
    New Avatica Repository
    <a href="/news/2017/03/31/new-avatica-repository/" class="permalink" title="Permalink">∞</a>
  </h2>
  <span class="post-category">
    <span class="label">
      milestones
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      31 Mar 2017
    </span>
    
    
    
    <a href="http://github.com/joshelser" class="post-author">
      <img src="http://github.com/joshelser.png"
           class="avatar" alt="elserj avatar"
           width="24" height="24">
      elserj
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Roughly one year after Avatica’s Maven build was separated from Calcite’s (as
described in this <a href="/avatica/news/2016/03/03/separate-project/">previous post</a>),
Avatica now has its own Git repository.</p>

<p>The Apache Calcite PMC felt like it was a good time to lift the Avatica project
out of the Calcite repository, given the continue maturation of Avatica. For developers
and contributors to Avatica, nothing will functionally change, except for the location
of the code itself.</p>

<p>The de-facto repository can be found at the ASF’s <a href="https://gitbox.apache.org/repos/asf/calcite-avatica.git">Git hosting</a>,
with a mirrored-copy also available on Github at <a href="https://github.com/apache/calcite-avatica">apache/calcite-avatica</a>.</p>

    
  </div>
</article>

      </div>

      <div class="unit one-fifth hide-on-mobiles">
  <aside>
    <ul>
      <li class="">
        <a href="/avatica/news/">All News</a>
      </li>
      <li class="">
        <a href="/avatica/news/avatica-releases/">Avatica Releases</a>
      </li>
      <li class="">
          <a href="/avatica/news/avatica-go-releases/">Avatica Go Releases</a>
      </li>
    </ul>
    <h4>Recent Releases</h4>
    <ul>
      
      <li class="">
        <a href="/avatica/news/2019/05/16/release-avatica-go-4.0.0/">avatica-go 4.0.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2019/05/13/release-1.15.0/">avatica 1.15.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2019/04/29/release-1.14.0/">avatica 1.14.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2018/12/04/release-1.13.0/">avatica 1.13.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2018/09/18/release-avatica-go-3.2.0/">avatica-go 3.2.0</a>
      </li>
      
    </ul>
    <h4>Other News</h4>
    <ul>
        
        <li class="current">
          <a href="/avatica/news/2017/03/31/new-avatica-repository/">New Avatica Repository</a>
        </li>
          
        <li class="">
          <a href="/avatica/news/2016/03/03/separate-project/">Splitting Avatica from Calcite</a>
        </li>
          
    </ul>
  </aside>
</div>


      <div class="clear"></div>

    </div>
  </section>


  <footer role="contentinfo">
  <div id="poweredby">
    <a href="http://www.apache.org/">
      <span class="sr-only">Apache</span>
      <img src="/avatica/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
  </div>
  <div id="copyright">
  <p>The contents of this website are &copy;&nbsp;2019
     <a href="https://www.apache.org/">Apache Software Foundation</a>
     under the terms of
     the <a href="https://www.apache.org/licenses/LICENSE-2.0.html">
     Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
     trademarks of the Apache Software Foundation.</p>
  </div>
</footer>

  <script>
  var anchorForId = function (id) {
    var anchor = document.createElement("a");
    anchor.className = "header-link";
    anchor.href      = "#" + id;
    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
    anchor.title = "Permalink";
    return anchor;
  };

  var linkifyAnchors = function (level, containingElement) {
    var headers = containingElement.getElementsByTagName("h" + level);
    for (var h = 0; h < headers.length; h++) {
      var header = headers[h];

      if (typeof header.id !== "undefined" && header.id !== "") {
        header.appendChild(anchorForId(header.id));
      }
    }
  };

  document.onreadystatechange = function () {
    if (this.readyState === "complete") {
      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
      if (!contentBlock) {
        return;
      }
      for (var level = 1; level <= 6; level++) {
        linkifyAnchors(level, contentBlock);
      }
    }
  };
</script>


</body>
</html>
