<!DOCTYPE html>


<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/developers/releasing.apt
 | Rendered using Apache Maven Fluido Skin 1.11.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <meta name="date" content="2021-12-14" />
    <title>Archiva &#x2013; Archiva release process</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
    <script src="../js/apache-maven-fluido-1.11.0.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- Matomo -->
    <script>
        var _paq = window._paq = window._paq || [];
                _paq.push(['disableCookies']);
                    _paq.push(['trackPageView']);
                    _paq.push(['enableLinkTracking']);
        
        (function() {
            var u="https://analytics.apache.org";
            _paq.push(['setTrackerUrl', u+'/matomo.php']);
            _paq.push(['setSiteId', '10']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Matomo Code -->
  </head>
  <body class="topBarEnabled">
    <a href="https://github.com/apache/archiva">
      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
        alt="Fork me on GitHub">
    </a>
    <header id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container">
              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
              </a>
          <nav class="nav-collapse">
            <ul class="nav">
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="../index.html" title="About">About</a></li>
            <li><a href="../download.html" title="Downloads">Downloads</a></li>
            <li><a href="../versions.html" title="Versions">Versions</a></li>
            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
            <li><a href="../security.html" title="Security">Security</a></li>
            <li class="dropdown-submenu">
<a href="../" title="Documentation">Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="../docs/2.2.8/" title="Release 2.2.8">Release 2.2.8</a></li>
                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
              </ul>
            </li>
        </ul>
      </li>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
            <li class="dropdown-submenu">
<a href="../" title="Developer Reference">Developer Reference</a>
              <ul class="dropdown-menu">
                  <li><a href="../ref/2.2.8/index.html" title="Archiva 2.2.8">Archiva 2.2.8</a></li>
                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
              </ul>
            </li>
            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
            <li class="dropdown-submenu">
<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
              <ul class="dropdown-menu">
                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
              </ul>
            </li>
            <li><a title="Releasing">Releasing</a></li>
            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="dropdown-submenu">
<a href="../project-info.html" title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
                  <li><a href="../team.html" title="Team">Team</a></li>
                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
              </ul>
            </li>
        </ul>
      </li>
            </ul>
          </nav>
          <div class="nav-collapse">
<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
          </div>
        </div>
      </div>
    </header>
    <div class="container">
      <header>
        <div id="banner">
          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva" style="" /></a></div>
          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation" style="" /></a></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
    <li class="active ">Archiva release process</li>
        <li id="publishDate" class="pull-right">Last Published: 25 May 2022</li>
          </ul>
        </div>
      </header>
        <main id="bodyColumn" >
<section>
<h2><a name="Archiva_release_process"></a>Archiva release process</h2>
<ol style="list-style-type: decimal">
<li>Post to the dev list a few days before you plan to do an Archiva release</li>
<li>Recreate the staging repository on archiva-repository.apache.org - make sure that it is not scanned (so that .index* is not created). You should delete the repository and create a new one. Your maven setting must contains the entry to be able to deploy.
<div class="source"><pre class="prettyprint">   &lt;server&gt;
     &lt;id&gt;archiva-repository.releases&lt;/id&gt;
     &lt;username&gt;&lt;/username&gt;
     &lt;password&gt;&lt;/password&gt;
   &lt;/server&gt;</pre></div></li>
<li>If there are changes in the parent pom, release parent pom &#x2013; <a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva-parent.git">https://gitbox.apache.org/repos/asf/archiva-parent.git</a>
<ul>
<li>mvn release:prepare (verify that it has been properly tagged)</li>
<li>mvn release:perform (verify that it has been deployed correctly in the staging repo)</li></ul></li>
<li>Update the parent pom version of archiva &#x2013; <a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva.git">https://gitbox.apache.org/repos/asf/archiva.git</a>
<ul>
<li>change the parent pom version to the archiva-parent version that has just been released</li>
<li>commit the changes made</li></ul></li>
<li>Update the release notes and the site.xml for version changes in archiva-docs</li>
<li>Verify that the webapp-tests are building successfully. <br />Since it is in a separate profile but inside the Archiva source tree, it will not be released but will still be included in the release tag. If some tests are failing, comment it out first so that only the passing tests are executed when the webapp-tests module are built from the tag.
<p>Currently, we do not use these tests anymore.</p></li>
<li>Release archiva.<br />You should have a GPG agent running (preferred), and confirm it works by running &quot;gpg -ab&quot; (type some text and press Ctrl-D). You my check, if the key is in your keyring: `gpg --list-secret-keys` If you do not have a GPG agent running, make sure that you have the &quot;apache-release&quot; profile set in your settings.xml as shown below.
<div class="source"><pre class="prettyprint">&lt;profile&gt;
  &lt;id&gt;apache-release&lt;/id&gt;
  &lt;properties&gt;
    &lt;gpg.passphrase&gt;[GPG_PASSWORD]&lt;/gpg.passphrase&gt;
  &lt;/properties&gt;
&lt;/profile&gt;</pre></div>
<p>Set your user credentials for the stage repo in the <i>servers</i> section of your settings.xml for <a href="#archiva-repository.releases">archiva-repository.releases</a>.</p>
<p>Prepare your environment: We use JDK 8 for compile and publish, as JDK 7 is not supported anymore. </p>
<div class="source"><pre class="prettyprint">export JAVA_HOME=&lt;PATH_TO_JDK8&gt;
export PATH=$JAVA_HOME/bin:$PATH
export MAVEN_OPTS=&quot;-Xmx6144m -XX:MaxPermSize=512m&quot; # It may work with less heap, but this is a safe value
export JAVA_OPT=&quot;-Xmx6144m -XX:MaxPermSize=512m&quot; </pre></div>
<p>Execute </p>
<div class="source"><pre class="prettyprint">mvn release:prepare</pre></div>
<p>Check that it has been properly tagged. The tag name must be.. archiva-[VERSION].</p>
<p>You can rollback with `mvn release:rollback`. If there are errors and you have to change files, you should run `mvn release:rollback` before changing any file.</p>
<p>If all works fine, set execute the `release:perform` task</p>
<div class="source"><pre class="prettyprint">export JAVA_HOME=&lt;PATH_TO_JDK8&gt;
export PATH=$JAVA_HOME/bin:$PATH</pre></div>
<div class="source"><pre class="prettyprint">mvn release:perform</pre></div>
<p>The perform task will push to the repository, if it was successful. After successfully running this task, it's not possible to roll back.</p>
<p>Download the uploaded files via wget:</p>
<div class="source"><pre class="prettyprint">ARCHV=&quot;2.2.4&quot; # Enter the new archiva version
RELEASE_URL=&quot;http://archiva-repository.apache.org/archiva/repository/archiva-releases-stage&quot;
wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.tar.gz
wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.tar.gz.asc
wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.zip
wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.zip.asc
# Verify the signatures:
gpg -v archiva-jetty-${ARCHV}-bin.zip.asc
gpg -v archiva-jetty-${ARCHV}-bin.tar.gz.asc</pre></div>
<p>The documentation is deployed as part of the process to the final location for review in the vote:</p>
<div class="source"><pre class="prettyprint">git checkout archiva-${ARCHV} # Checkout the release version of archiva
cd archiva-docs
mvn site:site
mvn site:stage  # Check the content in target/staging
mkdir &lt;web-content-git&gt;/docs/${ARCHV}
cp -r target/staging/* &lt;web-content-git&gt;/docs/${ARCHV}/ # Copy to the git web content repository</pre></div>
<p>Reference documentation</p>
<div class="source"><pre class="prettyprint">git checkout archiva-${ARCHV} # Checkout the release version of archiva
cd archiva-modules
mvn site:site
mvn site:stage  # Check the content in target/staging
mkdir &lt;web-content-git&gt;/ref/${ARCHV}
cp -r target/staging/* &lt;web-content-git&gt;/ref/${ARCHV}/ # Copy to the git web content repository</pre></div>
<p>Archiva site information</p>
<p>Update the archiva site (<a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva-site.git">https://gitbox.apache.org/repos/asf/archiva-site.git</a>) for the versions and release notes URL:</p>
<p>Mostly these properties of the pom.xml should be edited:</p>
<div class="source"><pre class="prettyprint">  &lt;archivaReleaseVersion&gt;2.2.6&lt;/archivaReleaseVersion&gt;
  &lt;archivaReleaseDate&gt;16th May 2019&lt;/archivaReleaseDate&gt;
  &lt;archivaCurrentDevVersion&gt;3.0.0-SNAPSHOT&lt;/archivaCurrentDevVersion&gt;</pre></div>
<p>Release information may be updated. Update Security information.</p>
<p>Run <b>deploySite.sh</b>. The script will prepare the site locally and provide information how to check the content before pushing to the remote repository.</p>
<div class="source"><pre class="prettyprint">cd archiva-site
./deploySite.sh
# You can check the files locally, if you press y after the message is presented, it will be pushed to the asf-staging branch</pre></div>
<p>The site can be checked at: https://archiva.staged.apache.org/ The downloads do not work on the staged site.</p>
<p>Commit the sources and binaries from <code>org/apache/archiva/archiva-jetty</code> and <code>org/apache/archiva/archiva</code> to the svn distribution tree. First in dev tree: <code>https://dist.apache.org/repos/dist/dev/archiva/</code></p>
<div class="source"><pre class="prettyprint">svn co https://dist.apache.org/repos/dist/dev/archiva/ archiva-dev-release
cd archiva-dev-release
sh ./release-script-svn.sh $ARCHV ${RELEASE_URL}/
cd $ARCHV/bin
../../verify.sh
cd ../src/
../../verify.sh
# Check the output

# For parent pom or redback:
POMV=18  # New Parent POM version
sh ./release-script-parent-pom.sh $POMV ${RELEASE_URL}/
REDBV=2.6 # New redback version
sh ./release-script-redback-svn.sh $REDBV ${RELEASE_URL}/</pre></div>
<p>If the vote passes the binaries must be copied to release tree: <code>https://dist.apache.org/repos/dist/release/archiva</code></p>
<p>Call for a vote in the dev list and wait for 72 hrs. for the vote results. 3 binding votes are necessary for the release to be finalized. If the vote fails or needs to be canceled, the version number should not be re-used if the version was made available for public download. After the vote has passed, move the files from dist dev to dist release:</p>
<div class="source"><pre class="prettyprint">svn mv https://dist.apache.org/repos/dist/dev/archiva/${ARCHV} https://dist.apache.org/repos/dist/release/archiva/

# Move also the POM and Redback and Redback Component releases, if there are new ones.</pre></div>
<p>It needs some time until the download packages are available on the CDN.</p>
<p>Merge the archiva-releases-stage to archiva-releases on archiva-repository.apache.org (Action -&gt; Merge on the stage repository)</p>
<p>To sync the jars to Maven Central, you need to merge the repository archiva-releases-stage to &quot;Central Rsync Repository&quot;</p>
<p>Mark the appropriate release version in JIRA as complete.</p>
<p>When the new download packages are available over the download page you can remove previous versions from <a href="#https:ddist.apache.orgreposdistreleasearchiva">https:d//dist.apache.org/repos/dist/release/archiva/</a></p>
<p>Publish the docs:</p>
<div class="source"><pre class="prettyprint">cd archiva-web-content
git checkout master
git pull
git merge asf-staging
git push</pre></div>
<p>Send out an announcement (Simple Text Email, no Rich-Text) of the release to:</p>
<ul>
<li>users@archiva.apache.org</li>
<li>users@maven.apache.org</li>
<li>announce@apache.org</li></ul>
<p>If there are security incidents that should be published after release, please check the Apache information <a class="externalLink" href="http://www.apache.org/security/committers.html">http://www.apache.org/security/committers.html</a> for further actions.</p>
<p>And finally remove old versions from the distribution directory. All versions that are not mentioned in the download page should be removed:</p>
<div class="source"><pre class="prettyprint">svn del -m&quot;Archiving release 2.2.x&quot;  https://dist.apache.org/repos/dist/release/archiva/2.2.x</pre></div>
<p>See also: https://infra.apache.org/release-download-pages.html</p></li></ol></section>
        </main>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
      <div class="row">
        &nbsp;
      </div>
      <div class="row">
      <p>
        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
        </p>
      </div>
        </div>
        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
</p>
      </div>
    </footer>
<script>
	if(anchors) {
	  anchors.add();
	}
</script>
  </body>
</html>