| <!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 <home folder>/.m2/</p> |
| |
| <p><code class="xml"> |
| <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"> |
| <profiles> |
| <profile> |
| <id>apache-release</id> |
| <properties> |
| <altSnapshotDeploymentRepository>snapshots::default::file:///${env.HOME}/ws/maven-repository/snapshots</altSnapshotDeploymentRepository> |
| <altReleaseDeploymentRepository>releases::default::file:///${env.HOME}/ws/maven-repository/releases</altReleaseDeploymentRepository> |
| </properties> |
| </profile> |
| </profiles> |
| </settings> |
| </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 <your gpg key id> |
| </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 © 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> |