diff --git a/develop/index.html b/develop/index.html
index f972a46..24427e1 100644
--- a/develop/index.html
+++ b/develop/index.html
@@ -241,6 +241,10 @@
       <td style="text-align: left">Lan Lin</td>
       <td style="text-align: left">lqlpsu</td>
     </tr>
+    <tr>
+      <td style="text-align: left">Xiaojin Jiao</td>
+      <td style="text-align: left">xjiao</td>
+    </tr>
   </tbody>
 </table>
 
@@ -289,6 +293,10 @@
 <p>All code must be +1’ed by a committer other than the author prior to its
 commit.</p>
 
+<h2 id="release-flow">Release Flow</h2>
+
+<p>For releasing a new version, please refer to <a href="releaseflow.html">Release Flow</a> page.</p>
+
       </article>
     </div>
 
diff --git a/develop/releaseflow.html b/develop/releaseflow.html
new file mode 100644
index 0000000..4cae502
--- /dev/null
+++ b/develop/releaseflow.html
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML>
+<html lang="en-US">
+<head>
+  <meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
+  <meta charset="UTF-8">
+  <title>Mnemonic Release Workflow</title>
+  <meta name="viewport" content="width=device-width,initial-scale=1">
+  <meta name="generator" content="Jekyll v2.4.0">
+  <link rel="stylesheet" href="/css/font-awesome.min.css">
+  <link rel="stylesheet" href="/css/screen.css">
+  <link rel="icon" type="image/x-icon" href="/favicon.ico">
+  <script src="/js/jquery-3.2.1.min.js"></script>
+  <!--[if lt IE 9]>
+  <script src="/js/html5shiv.min.js"></script>
+  <script src="/js/respond.min.js"></script>
+  <![endif]-->
+  <script src="/js/screen.js"></script>
+  <script type="text/javascript" src="/assets/javascripts/bundle.js" charset="utf-8"></script>
+</head>
+
+
+<body>
+  <header role="banner">
+  <nav class="mobile-nav show-on-mobiles">
+    <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/docs/">Doc<span class="show-on-mobiles">s</span><span class="hide-on-mobiles">umentation</span></a>
+  </li>
+  </li>
+  <li class="">
+    <a href="/downloads/">Downloads</a>
+  </li>
+  <li class="">
+    <a href="/talks/">Talks</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="current">
+    <a href="/develop/">Develop</a>
+  </li>
+  <li class="">
+    <a href="/help/">Help</a>
+  </li>
+</ul>
+
+  </nav>
+  <div class="grid">
+    <div class="unit one-third center-on-mobiles">
+      <h1>
+        <a href="/">
+          <span class="sr-only">Apache Mnemonic</span>
+          <img src="/img/mnemonic_logo_v2.png" width="289" alt="Mnemonic Logo" class="logo">
+        </a>
+        <a  href="https://www.apache.org/events/current-event.html">
+          <img src="https://www.apache.org/events/current-event-234x60.png"/>
+        </a>
+      </h1>
+    </div>
+    <nav class="main-nav unit two-thirds hide-on-mobiles">
+      <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/docs/">Doc<span class="show-on-mobiles">s</span><span class="hide-on-mobiles">umentation</span></a>
+  </li>
+  </li>
+  <li class="">
+    <a href="/downloads/">Downloads</a>
+  </li>
+  <li class="">
+    <a href="/talks/">Talks</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="current">
+    <a href="/develop/">Develop</a>
+  </li>
+  <li class="">
+    <a href="/help/">Help</a>
+  </li>
+</ul>
+
+    </nav>
+  </div>
+  <!-- Return to Top -->
+  <a href="#top" id="return-to-top"><i class="fa fa-chevron-up"></i></a>
+</header>
+
+
+  <section class="standalone">
+  <div class="grid">
+
+    <div class="unit whole">
+      <article>
+        <h1>Mnemonic Release Workflow</h1>
+        <p>To release a new version of Mnemonic, please refer to following steps.</p>
+
+<ul>
+  <li>
+    <p>1.Get familiar with Apache <a href="https://infra.apache.org/release-publishing.html" target="_blank">releasing process</a></p>
+  </li>
+  <li>
+    <p>2.Verify the whole project.</p>
+  </li>
+  <li>
+    <p>3.Vote on preparing a release candidate.</p>
+  </li>
+  <li>
+    <p>4.(One time setup) Generate a <a href="https://infra.apache.org/openpgp.html#generate-key" target="_blank">OpenPGP key</a> if the release manager has not yet got one.</p>
+  </li>
+  <li>
+    <p>5.(One time setup) Configure the deployment repositories of Maven and copy the following snippet to settings.xml under &lt;home folder&gt;/.m2/</p>
+
+    <p><code class="xml">
+      &lt;settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"&gt;
+          &lt;profiles&gt;
+              &lt;profile&gt;
+                  &lt;id&gt;apache-release&lt;/id&gt;
+                  &lt;properties&gt;
+                      &lt;altSnapshotDeploymentRepository&gt;snapshots::default::file:///${env.HOME}/ws/maven-repository/snapshots&lt;/altSnapshotDeploymentRepository&gt;
+                      &lt;altReleaseDeploymentRepository&gt;releases::default::file:///${env.HOME}/ws/maven-repository/releases&lt;/altReleaseDeploymentRepository&gt;
+                  &lt;/properties&gt;
+              &lt;/profile&gt;
+          &lt;/profiles&gt;
+      &lt;/settings&gt;
+  </code></p>
+  </li>
+  <li>
+    <p>6.Make sure the OpenJDK has been deployed in release machine.</p>
+  </li>
+  <li>
+    <p>7.Configure the signing key in git toolchain (see example below).</p>
+
+    <p><code>
+  $ git config --global user.signingkey &lt;your gpg key id&gt;
+ </code></p>
+  </li>
+  <li>
+    <p>8.Use release.sh script to prepare a release candidate (see example below).</p>
+
+    <p><code>
+  $ tools/release.sh candidate 0.14.0 rc1 no
+ </code></p>
+  </li>
+  <li>
+    <p>9.Make sure the tickets belong to current release that got marked in the field of fixed version.</p>
+  </li>
+  <li>
+    <p>11.Collect the change log of current version from <a href="https://issues.apache.org/jira/projects/MNEMONIC/versions/">Apache JIRA</a></p>
+  </li>
+  <li>
+    <p>12.Check in the generated release candidate artifacts to Apache stage repository, add to change log file, and update the key file with new generated key if not included.</p>
+  </li>
+  <li>
+    <p>13.Vote on the release candidate.</p>
+  </li>
+  <li>
+    <p>14.Check the latest candidate to Apache release repository as formal new version release.</p>
+  </li>
+  <li>
+    <p>15.Perform formal release in git (see example below).</p>
+
+    <p><code>
+  $ tools/release.sh bump 1.14.0 rc1 0.15.0
+ </code></p>
+  </li>
+  <li>
+    <p>16.Announce the new release version with the link of release repository.</p>
+  </li>
+  <li>
+    <p>17.Update the download page in project website.</p>
+  </li>
+</ul>
+
+      </article>
+    </div>
+
+    <div class="clear"></div>
+
+  </div>
+</section>
+
+
+  <footer role="contentinfo">
+    <p><div align="center">Apache Mnemonic, Mnemonic, Apache, and the Mnemonic logo are trademarks of The Apache Software Foundation.</div>
+<div align="center"> Copyright &copy;&nbsp;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a></div></p>
+</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>
diff --git a/downloads/index.html b/downloads/index.html
index be43cf5..bfd221c 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -101,13 +101,17 @@
         <h1>Downloads</h1>
         <h3 id="download-the-latest-version">Download the latest version</h3>
 <ul>
-  <li><a href="https://archive.apache.org/dist/mnemonic/0.13.0/src/" target="_blank">Apache Mnemonic 0.13.0</a> <br />
-January 2021 <a href="https://archive.apache.org/dist/mnemonic/0.13.0/CHANGES.txt" target="_blank">What’s New</a></li>
+  <li><a href="https://archive.apache.org/dist/mnemonic/0.14.0/src/" target="_blank">Apache Mnemonic 0.14.0</a> <br />
+March 2021 <a href="https://archive.apache.org/dist/mnemonic/0.14.0/CHANGES.txt" target="_blank">What’s New</a></li>
 </ul>
 
 <h3 id="archived-project-releases">Archived Project Releases</h3>
 <ul>
   <li>
+    <p><a href="https://archive.apache.org/dist/mnemonic/0.13.0/src/" target="_blank">Apache Mnemonic 0.13.0</a> <br />
+January 2021 <a href="https://archive.apache.org/dist/mnemonic/0.13.0/CHANGES.txt" target="_blank">What’s New</a></p>
+  </li>
+  <li>
     <p><a href="https://archive.apache.org/dist/mnemonic/0.12.0/src/" target="_blank">Apache Mnemonic 0.12.0</a> <br />
 September 2018 <a href="https://archive.apache.org/dist/mnemonic/0.12.0/CHANGES.txt" target="_blank">What’s New</a></p>
   </li>
diff --git a/feed.xml b/feed.xml
index 0993db3..6956c0d 100644
--- a/feed.xml
+++ b/feed.xml
@@ -5,8 +5,8 @@
     <description></description>
     <link>/</link>
     <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Thu, 11 Mar 2021 20:10:47 -0800</pubDate>
-    <lastBuildDate>Thu, 11 Mar 2021 20:10:47 -0800</lastBuildDate>
+    <pubDate>Wed, 16 Jun 2021 21:14:48 -0700</pubDate>
+    <lastBuildDate>Wed, 16 Jun 2021 21:14:48 -0700</lastBuildDate>
     <generator>Jekyll v2.4.0</generator>
     
   </channel>
diff --git a/news/index.html b/news/index.html
index 8ecca3c..9627a9d 100644
--- a/news/index.html
+++ b/news/index.html
@@ -99,17 +99,21 @@
     <div class="unit whole">
       <article>
         <h1>Mnemonic News</h1>
-        <h3 id="coming-features">Coming Features</h3>
+        <h3 id="features">Features</h3>
 
 <ul>
   <li>Pure Java memory service</li>
   <li>Durable object vectorization</li>
   <li>Durable query service</li>
+  <li>Initial version released in September 2017</li>
+  <li>The latest version (<a href="https://archive.apache.org/dist/mnemonic/0.14.0/src/">0.14</a>) was released in March, 2021</li>
 </ul>
 
 <h3 id="next-version">Next version</h3>
 
-<p>Plan to release in September 2017</p>
+<ul>
+  <li>Plan to release 0.15 version by the end of May, 2021</li>
+</ul>
 
       </article>
     </div>
