blob: 1dac7c3b89d6f417d1cdc7d6bf37dd4b6b90bb44 [file]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<!-- ====================================================================== -->
<!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
<!-- ====================================================================== -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<style type="text/css">@import "stylesheets/base.css";</style>
<meta name="author" value="
Apache UIMA Documentation Team">
<meta name="email" value="dev@uima.apache.org">
<title>Apache UIMA - Signing Eclipse Plugins - release process</title>
<!-- Begin Cookie Consent plugin by Silktide - https://silktide.com/cookieconsent -->
<!-- Commented out because implied consent is not compatible with GDPR -->
<!--
<script type="text/javascript">
window.cookieconsent_options = {"message":"This website uses cookies to ensure you get the best experience on our website","dismiss":"Got it!","learnMore":"More info","link":"https://uima.apache.org/privacy-policy.html","theme":"dark-bottom"};
</script>
<script type="text/javascript" src="/cookieconsent2/cookieconsent.min.js"></script>
-->
<!-- End Cookie Consent plugin -->
<!-- Begin Google Analytics -->
<!-- Commented out because GA requires consent according to GDPR -->
<!--
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-70846351-1', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
</script>
-->
<!-- End Google Analytics -->
</head>
<body>
<div class="topLogos">
<table border="0" width="100%" cellspacing="0">
<!-- TOP IMAGE -->
<tr>
<td align='LEFT'>
<a href="index.html">
<img style="border: 1px solid black;" src="./images/UIMA_banner2tlpTm.png" alt="UIMA project logo" border="0"/>
</a>
</td>
<td align='CENTER'>
<div class="pageBanner">Signing Eclipse Plugins - release process</div>
</td>
<td align='RIGHT'>
<a href="https://www.apache.org">
<img src="./images/asf-logo-on-white-smallTm.png" alt="Apache UIMA" border="0"/>
</a>
</td>
</tr>
</table>
<hr noshade="" size="1"/>
</div>
<table border="0" width="100%" cellspacing="4">
<tr>
<td align='RIGHT' colspan="2">
<form method="get" action="https://www.google.com/search">
Search the site
<input type="text" name="q" size="25" maxlength="255" value="" />
<input type="hidden" name="sitesearch" value="https://uima.apache.org/" />
<input name="Search" value="Search Site" type="submit"/>
</form>
</td>
</tr>
<tr> <!-- LEFT SIDE NAVIGATION -->
<td width="20%" valign="top">
<!-- regular menu -->
<div class="navBar">
<br/>
<div class="navBarItem"> <div class="navPartHeading">General</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./index.html">Home</a>
</div>
<div class="navBarItem"> <a href="./downloads.cgi">Downloads</a>
</div>
<div class="navBarItem"> <a href="./documentation.html">Documentation</a>
</div>
<div class="navBarItem"> <a href="./news.html">News</a>
</div>
<div class="navBarItem"> <a href="./publications.html">Publications</a>
</div>
<br style="line-height: .5em"/>
<div class="navBarItem"> <a href="https://issues.apache.org/jira/browse/uima" target="_blank" rel="noopener">Issue tracker <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://cwiki.apache.org/confluence/display/UIMA/" target="_blank" rel="noopener">Wiki <img src="images/offsitelink.png"/></a>
</div>
<br style="line-height: .5em"/>
<div class="navBarItem"> <a href="https://cwiki.apache.org/confluence/display/UIMA/Powered+by+Apache+UIMA" target="_blank" rel="noopener">Powered By UIMA <img src="images/offsitelink.png"/></a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Community</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./get-involved.html">Get Involved</a>
</div>
<div class="navBarItem"> <a href="./mail-lists.html">Mailing Lists</a>
</div>
<div class="navBarItem"> <a href="./contribution-policy.html">Contribution Policies</a>
</div>
<div class="navBarItem"> <a href="./faq.html">FAQ</a>
</div>
<div class="navBarItem"> <a href="./project-guidelines.html">Project Guidelines</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Components & Tools</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./sandbox.html#uima-addons-annotators">Annotators</a>
</div>
<div class="navBarItem"> <a href="./toolsServers.html">Tools & Servers</a>
</div>
<div class="navBarItem"> <a href="./sandbox.html">Addons and Sandbox</a>
</div>
<div class="navBarItem"> <a href="./ruta.html">UIMA Ruta</a>
</div>
<div class="navBarItem"> <a href="https://github.com/apache/uima-uimafit" target="_blank" rel="noopener">uimaFIT <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./external-resources.html">External Resources</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Development</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./dev-quick.html">Quick Start: building</a>
</div>
<div class="navBarItem"> <a href="./building-uima.html">Building from Source</a>
</div>
<div class="navBarItem"> <a href="./one-time-setup.html">One-time setups</a>
</div>
<div class="navBarItem"> <a href="./svn.html">Source Code</a>
</div>
<div class="navBarItem"> <a href="./release.html">Doing a UIMA release</a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/security/committers.html" target="_blank" rel="noopener">Doing a CVE (Apache) <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./eclipse-update-site.html">Eclipse Update Sites</a>
</div>
<div class="navBarItem"> <a href="./git.html">GIT</a>
</div>
<div class="navBarItem"> <a href="./codeConventions.html">Code Conventions</a>
</div>
<div class="navBarItem"> <a href="./uima-specification.html">UIMA Specification (OASIS)</a>
</div>
<div class="navBarItem"> <a href="./team-list.html">Project Team</a>
</div>
<div class="navBarItem"> <a href="./maven-design.html">Maven Use</a>
</div>
<div class="navBarItem"> <a href="./updating-website.html">Updating this Website</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Events and Conferences</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./coling14.html">COLING 2014</a>
</div>
<div class="navBarItem"> <a href="./gscl13.html">GSCL 2013</a>
</div>
<div class="navBarItem"> <a href="./iks09.html">IKS 2009</a>
</div>
<div class="navBarItem"> <a href="./gscl09.html">GSCL 2009</a>
</div>
<div class="navBarItem"> <a href="./lsm09.html">LSM 2009</a>
</div>
<div class="navBarItem"> <a href="./lrec08.html">LREC 2008</a>
</div>
<div class="navBarItem"> <a href="./gldv07.html">GLDV 2007</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">ASF</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="https://www.apache.org/licenses/" target="_blank" rel="noopener">License <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener">ASF Sponsors <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener">ASF Sponsorship <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./security_report">Security</a>
</div>
</div>
</div>
</td>
<td width="80%" align="left" valign="top">
<div class="sectionTable">
<table class="sectionTable">
<tr><td>
<a name="Overview"><h1><img src="images/UIMA_4sq50tightCropSolid.png"/>&nbsp;Overview</h1></a>
</td></tr>
<tr><td>
<blockquote class="sectionBody">
<p>All released Apache artifacts are normally signed. Eclipse jar signing is in addition
to the Apache release signing. This additional signing (with a recognized authority certificate)
allows the Eclipse installer to avoid saying it is installing unsigned artifacts and needs permission to continue.
</p>
<p>
It also enables automatic notification and subsequent update (if the user chooses) of upgrades. Because of this,
insure your feature id's are different for versions which should not automatically update.
</p>
<p>Both the feature jars and the plugin jars need to be signed. But not the pack.gz things or the artifacts / contents jars.</p>
<table class="subsectionTable">
<tr><td>
<a name="Process Flow">
<h2>Process Flow
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>We use a 2 step process, to reduce costs to Apache for signing release candidates which subsequently fail.
After the release vote passes, feature and plugin Jar files (but not the pack.gz files) are manually uploaded and signed,
and then a subsequent maven task is run to rebuild just the site packaging artifacts using the signed Jars.</p>
<p>The first step is to do a normal build of the update site, using mvn release:prepare.
This produces the artifacts for voting on, without jar-signing the
new Jars, and writes the "tag" for this into SVN for record keeping.</p>
<p>After the vote passes
the release manager, using their special credentials, logs onto the signing portal. This process
requires a one-time code, which the portal will send to you.</p>
<p style="margin-left: 40px">(Note: I had to refresh my web browser in order to
get the screen showing that option).
</p>
<p>Once signed, in, make a signing set
consisting of all of the Jars in target/eus-work/plugins and feature jars (feature jars must also be signed)
(not the *.pack.gz files, nor the ..content nor ..artifact metadata Jars).
</p>
<p>For convenience, and to rename any name-collisions between jars in the features/ and plugins/ directories,
make a new folder (signingSet), and copy all the files from target/saved into that, renaming any
collisions.
</p>
<p>On the signing web application make a new signing set and upload these files to that set.
Then sign them (either use Test signing or Production signing). Test signing is only if you're new to
the whole process and want to test things work. Then download the result, and copy them into the
target/eus-work/features and /plugins directories, overlaying the unsigned ones.</p>
<p>Then rebuild the update site by running <code>mvn antrun:run@make-subsite-after-signing</code>.
This does the remaining steps,
including packing (regenerating the .pack.gz files in the /plugins) and adding the various
signatures and checksums to these. These are then re-published, merging with any previous contents of the update site.
</p>
<p>Messages about "Artifact repository out of sync. Overwriting xxxx" are to be expected.</p>
<p>Please try installing the result to confirm nothing went wrong in this re-build process.</p>
<p>If you used a test signing, instead of a production signing,
if all is well, repeat the above process starting with selection "production" signing for the jars, downloading
those jars, replacing them into the eus-work directory, and re-running the mvn antrun:run@make-subsite-after-signing.</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable">
<tr><td>
<a name="Changes to Normal Build">
<h2>Changes to Normal Build
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>To support signing, the normal build needs some small changes.
<ol>
<li>(actually a bug fix) The existing build after running the JarProcessor, copies the original (unprocessed) Jars
into the eus-work/plugins - accidentally overwriting the repacked/conditioned Jars. This step must be deleted;
in order to have the processed/conditioned Jars available for signing.
</li>
<li>When doing the subsite build, any previous versions are combined with the new version. This is done by
downloading the previous versions into a new instance of the subsite. Because this packaging step needs
to be redone, the original contents.jar and artifacts.jar files need to be saved so they can be restored
before the rebuild with signed artifacts.</li>
</ol>
</p>
<p>Additionally, to aid in reproducing things, the pre-signed, conditioned JARs are saved; in case of need, they can
be restored without rebuilding them again. This step might be removed in the future - it is not essential.</p>
</blockquote>
</td></tr>
</table>
</blockquote>
</p>
</td></tr>
</table>
<div class="sectionTable">
<table class="sectionTable">
<tr><td>
<a name="Release Manager needs to have a valid code signing certificate"><h1><img src="images/UIMA_4sq50tightCropSolid.png"/>&nbsp;Release Manager needs to have a valid code signing certificate</h1></a>
</td></tr>
<tr><td>
<blockquote class="sectionBody">
<p>
For the UIMA project, contact the PMC chair for aid in obtaining a code signing certificate if you need one.</p>
</blockquote>
</p>
</td></tr>
</table>
<div class="sectionTable">
<table class="sectionTable">
<tr><td>
<a name="Release only if 1 or more changed Eclipse plugins"><h1><img src="images/UIMA_4sq50tightCropSolid.png"/>&nbsp;Release only if 1 or more changed Eclipse plugins</h1></a>
</td></tr>
<tr><td>
<blockquote class="sectionBody">
<p>If the release does not have any updates to Eclipse Plugin JARs, save Apache money by reusing previously released versions.
If the release has 1 or more JARs, these will be signed in 1 signing event. so it doesn't matter how many Jars there are.</p>
</blockquote>
</p>
</td></tr>
</table>
<div class="sectionTable">
<table class="sectionTable">
<tr><td>
<a name="Links to Apache resources for codesigning"><h1><img src="images/UIMA_4sq50tightCropSolid.png"/>&nbsp;Links to Apache resources for codesigning</h1></a>
</td></tr>
<tr><td>
<blockquote class="sectionBody">
<p>See <a target="_blank" rel="noopener" href="https://reference.apache.org/pmc/codesigning">
https://reference.apache.org/pmc/codesigning</a> for general information.
</p>
<p>See <a target="_blank" rel="noopener" href="https://wiki.eclipse.org/JAR_Signing#What_gets_signed">
https://wiki.eclipse.org/JAR_Signing#What_gets_signed</a> for background on signing Eclipse Plugins.</p>
</blockquote>
</p>
</td></tr>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<table class="pageFooter">
<tr>
<td><a href="index.html">Home</a></td>
<td><a href="privacy-policy.html">Privacy Policy</a></td>
<td style="font-size:75%">
Copyright &#169; 2006-2024, The Apache Software Foundation.<br/>
Apache UIMA, UIMA, the Apache UIMA logo and the Apache Feather logo are trademarks of The Apache Software Foundation.<br/>
All other marks mentioned may be trademarks or registered trademarks of their respective owners.
</td>
<td><a href="mailto:dev@uima.apache.org">Contact us</a></td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>