

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Release 4.0.1</title>
    <meta name="description" content="details of the fifth release of Rya">
    <meta name="author" content="">

    <!-- Enable responsive viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
    <link href="/assets/themes/apache/css/rya.css" rel="stylesheet"  type="text/css" media="screen" />
    <!-- Le fav and touch icons -->
    <!-- Update these with your own images
    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
  -->

  </head>

  <body>

        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <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>
          <a class="navbar-brand" href="/">
		  <img src="/assets/themes/apache/img/logo.png"  height ="30" alt = "logo">
              Apache Rya
          </a>
        </div>
        <nav class="navbar-collapse collapse" role="navigation">
          <ul class="nav navbar-nav navbar-right">
            <li id="community">
              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
               <ul class="dropdown-menu dropdown-left">
                <li><a href="/community">Get Involved</a></li>
                <li><a href="/community-members">Who we are</a></li>
               </ul>
            </li>
            <li><a href="/download">Downloads</a></li>
            <li><a href="/documentation">Documentation</a></li>
             <li id="apache">
              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
               <ul class="dropdown-menu">
                <li><a href="https://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
                <li><a href="https://www.apache.org/licenses/">Apache License</a></li>
                <li><a href="https://www.apache.org/security/">Security</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                </ul>
            </li>
          </ul>
        </nav><!--/.navbar-collapse -->
      </div>
    </div>




    <div class="container">
      

<div class="page-header">
  <h1>Release 4.0.1 </h1>
</div>

<div class="row-fluid post-full">
  <div class="span12">
    <div class="date">
      <span>22 December 2020</span>
    </div>
    <div class="content">
      
<p>This is Rya’s fifth Apache release and the <strong>first</strong> release as a top level project – no longer in incubation. Version 4.0.1 is available as a source code download:</p>

<ul>
  <li><a href="https://www.apache.org/dyn/closer.lua/rya/rya-4.0.1/rya-project-4.0.1-source-release.zip">Source download from Apache</a></li>
  <li>Verify:  <a href="https://www.apache.org/dist/rya/rya-4.0.1/rya-project-4.0.1-source-release.zip.asc">pgp</a> <a href="https://www.apache.org/dist/rya/rya-4.0.1/rya-project-4.0.1-source-release.zip.sha512">sha512</a></li>
  <li><a href="/news/2020/12/22/relnotes-4.0.1/">Release notes</a></li>
  <li><a href="https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.rya%22">Central repository for Maven and other dependency managers</a></li>
</ul>

<p><a href="https://www.apache.org/dyn/closer.cgi#verify">Verify</a>
using the corresponding <em>pgp</em> signature (using the committer file in
<a href="https://www.apache.org/dist/rya/KEYS">KEYS</a>).
If you cannot do that, the <em>sha512</em> hash file may be used to check that the
download has completed okay.</p>

<p>For fast downloads, current source distributions are hosted on mirror servers;
older source distributions are in the
<a href="https://archive.apache.org/dist/rya/">archive</a>.
If a download from a mirror fails, retry, and the second download will likely
succeed.</p>

<p>For security, hash and signature files are always hosted at
<a href="https://www.apache.org/dist/Apache Rya">Apache</a>.</p>

<p>Next steps:</p>
<ul>
  <li><a href="https://github.com/apache/rya/blob/rel/rya-4.0.1/extras/rya.manual/src/site/markdown/build-source.md">Building from Source</a></li>
  <li><a href="https://github.com/apache/rya/blob/rel/rya-4.0.1/extras/rya.manual/src/site/markdown/quickstart.md">Quick Start</a></li>
  <li><a href="https://github.com/apache/rya/blob/rel/rya-4.0.1/extras/rya.manual/src/site/markdown/sm-firststeps.md">Typical First Steps</a></li>
  <li><a href="https://github.com/apache/rya/blob/rel/rya-4.0.1/extras/rya.manual/src/site/markdown/index.md">Manual – includes documents above</a></li>
</ul>

    </div>

  
    <ul class="tag_box inline">
      <li><i class="icon-folder-open"></i></li>
      
      


  
     
    	<li><a href="#release-ref">
    		release <span>5</span>
    	</a></li>
    
  


    </ul>
    

    

    <hr>
    <div class="pagination">
      <ul>
      
        <li class="prev"><a href="/news/2019/07/27/relnotes-4.0.0/" title="Release Notes v4.0.0">&larr; Previous</a></li>
      
        <li><a href="">Archive</a></li>
      
        <li class="next"><a href="/news/2020/12/22/relnotes-4.0.1/" title="Release Notes v4.0.1">Next &rarr;</a></li>
      
      </ul>
    </div>
    <hr>
    
  </div>
</div>


      <hr>
      <footer>
        <!-- <p>&copy; 2021 </p>-->
        <footer class="site-footer">
    <div class="wrapper">
        <div class="footer-col-wrapper">
            
            <div style="text-align:center;">
                
                <div>
                    Copyright &copy; 2021 <a href="https://www.apache.org">The Apache Software Foundation</a>.
                    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
                    2.0</a>.
                    <br>
                    
                    Apache and the Apache Feather logo are trademarks of The Apache Software Foundation.
                    
                </div>
            </div>
        </div>
    </div>
</footer>

      </footer>
    </div>

    
    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>

    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>


  </body>
</html>

