blob: ead8ca6a6572dc8d0743822a727c9cd3946fd9d2 [file] [log] [blame]
<!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>