<!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-SNAPSHOT
-->
<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-SNAPSHOT.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-SNAPSHOT.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 href="#" 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.7/" title="Release 2.2.7">Release 2.2.7</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 href="#" 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.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</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 href="../developers/releasing.html" 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 href="#" 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 href="#" 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"/></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"/></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: 21 Apr 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-doc
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>