directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Directory Development > Guide to Directory Releases
Date Mon, 08 Mar 2010 08:34:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=DIRxDEV&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="http://cwiki.apache.org/confluence/display/DIRxDEV/Guide+to+Directory+Releases">Guide
to Directory Releases</a></h2>
     <h4>Page <b>edited</b> by             <a href="http://cwiki.apache.org/confluence/display/~seelmann">Stefan
Seelmann</a>
    </h4>
     
          <br/>
     <div class="notificationGreySide">
         <h2><a name="GuidetoDirectoryReleases-Introduction"></a>Introduction</h2>

<p>Releasing Apache Directory Projects can be involved.  This release guide will walk
you through the process first by preparing your maven and gpg configuration then by leading
you through the release of various subprojects at Directory.</p>

<p>There may be a few things you'll need to setup before you can release.  This release
guide is geared to work off of a UNIX based system that has gpg installed. If you're using
Windows then I feel for you <img class="emoticon" src="/confluence/images/icons/emoticons/smile.gif"
height="20" width="20" align="absmiddle" alt="" border="0"/>.</p>

<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td><p>We use Maven
version 2.0.9 and JDK 1.5.0 (update 11) to build all Directory subrojects even if they run
on JDK 1.4.2.  If you build with JDK 1.4.2 you're build lamn versions of ApacheDS for example
because certain optional functionality present when run on JDK 1.5.x and up will not be present.</p></td></tr></table></div>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16"
align="absmiddle" alt="" border="0"></td><td><p>Because of bugs in Maven
SSH functionality that require 1.5.x you'll need to set the release.altDeploymentRepository
property in the settings.xml (see below) to be able to deploy with Maven using JDK 1.6.x.</p></td></tr></table></div>

<h2><a name="GuidetoDirectoryReleases-MavenSettings"></a>Maven Settings</h2>

<p>You'll need a settings section for the people.apache.org server with a password or
a path to the SSH key used.  Here's what my settings.xml file in ~/.m2 looks like:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>&lt;settings xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                      http://maven.apache.org/xsd/settings-1.0.0.xsd"&gt;
  &lt;servers&gt;
    &lt;server&gt;
      &lt;id&gt;apache.release&lt;/id&gt;
      &lt;username&gt;akarasulu&lt;/username&gt;
      &lt;privateKey&gt;/home/akarasulu/.ssh/id_dsa&lt;/privateKey&gt;
      &lt;filePermissions&gt;664&lt;/filePermissions&gt;
      &lt;directoryPermissions&gt;775&lt;/directoryPermissions&gt;

      &lt;!--
        My latest permission problems when deploying solved the following configuration addition,
        see also http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html
quite
        in the middle of the page "If you are deploying from Unix or have Cygwin ..." - I
needed the configuration
        in contradiction what the doc says ...
      --&gt;
      &lt;configuration&gt;
        &lt;sshExecutable&gt;ssh&lt;/sshExecutable&gt;
        &lt;scpExecutable&gt;scp&lt;/scpExecutable&gt;
      &lt;/configuration&gt;
    &lt;/server&gt;
  &lt;/servers&gt;
  &lt;profiles&gt;
    &lt;profile&gt;
      &lt;id&gt;release&lt;/id&gt;
      &lt;properties&gt;
        &lt;gpg.passphrase&gt;****&lt;/gpg.passphrase&gt;
        &lt;!-- Sample for alternative deployment repository
          &lt;release.altDeploymentRepository&gt;-DaltDeploymentRepository=apache.release::default::scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository&lt;/release.altDeploymentRepository&gt;
        --&gt;
      &lt;/properties&gt;
    &lt;/profile&gt;
  &lt;/profiles&gt;
&lt;/settings&gt;
</pre>
</div></div>

<p>Just replace your username in place of 'akarasulu' and if you're using a password
replace the &lt;privateKey&gt; tag with &lt;password&gt; and add your UNIX
account password there.  Note that the username and password are the ones you use for your
Apache UNIX account.<br/>
Syntax for altDeploymentRepository property can be found at <a href="http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html"
rel="nofollow">http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html</a>.
The altDeploymentRepository id and the server id must match.</p>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16"
align="absmiddle" alt="" border="0"></td><td><p>You'll need to provide
the passphrase in the settings.xml to access the gpg secret key installed on your host.  This
is due to a bug with the passphrase prompt in the maven-gpg-plugin.  So unfortunately we must
provide the passphrase in the settings.xml file in clear text.  This should change in the
future when this bug is fixed.  Note that this passphrase is put into the release profile
which we activate to properly sign and release the artifacts and poms via the release plugin.</p></td></tr></table></div>

<h2><a name="GuidetoDirectoryReleases-GPGKey"></a>GPG Key</h2>

<p>All subprojects are configured to deploy signatures for the artifacts uploaded to
the repository.  The gpg plugin will check use the default gpg key for the user deploying
the project with the release:perform directive of the release plugin.  This will prompt you
for the passphrase for the default key.  If you do not have one setup the build will fail.
</p>

<p>You can generate and upload a PGP key to a PGP keyserver using the following commands:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>gpg --gen-key
gpg --fingerprint
gpg --keyserver subkeys.pgp.net --send-keys &lt;your key's id from last command&gt;
</pre>
</div></div>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16"
align="absmiddle" alt="" border="0"></td><td><p>Make sure to have created
the .pgpkey in your p.a.o/~ directory and to have added your public key to the <a href="http://www.apache.org/dist/directory/KEYS"
rel="nofollow">KEYS</a> file.<br/>
See also <a href="http://people.apache.org/~henkp/repo/faq.html#4" rel="nofollow">http://people.apache.org/~henkp/repo/faq.html#4</a></p></td></tr></table></div>

<h2><a name="GuidetoDirectoryReleases-ReleasingDirectoryProjectsandMakingReleaseAnnouncements"></a>Releasing
Directory Projects and Making Release Announcements</h2>

<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'>Releasing Shared</td>
<td class='confluenceTd'><a href="/confluence/display/DIRxDEV/Releasing+Shared" title="Releasing
Shared">Releasing Shared</a></td>
</tr>
<tr>
<td class='confluenceTd'>Releasing Daemon</td>
<td class='confluenceTd'><a href="/confluence/display/DIRxDEV/Releasing+Daemon" title="Releasing
Daemon">Releasing Daemon</a></td>
</tr>
<tr>
<td class='confluenceTd'>Releasing ApacheDS</td>
<td class='confluenceTd'><a href="/confluence/display/DIRxDEV/Releasing+ApacheDS"
title="Releasing ApacheDS">Releasing ApacheDS</a></td>
</tr>
<tr>
<td class='confluenceTd'>Releasing Studio</td>
<td class='confluenceTd'><a href="/confluence/display/DIRxDEV/Releasing+Studio" title="Releasing
Studio">Releasing Studio</a></td>
</tr>
<tr>
<td class='confluenceTd'>Releases Announcements</td>
<td class='confluenceTd'><a href="/confluence/display/DIRxDEV/Release+Announcements"
title="Release Announcements">Release Announcements</a></td>
</tr>
</tbody></table>

<p>Promoted by third party (update information may need to be sent)</p>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Project </th>
<th class='confluenceTh'> Reference </th>
<th class='confluenceTh'> Contact </th>
</tr>
<tr>
<td class='confluenceTd'> Studio </td>
<td class='confluenceTd'> <a href="http://www.eclipse.org/community/rcpos.php" rel="nofollow">Open
Source Rich client platform (RCP) applications</a> </td>
<td class='confluenceTd'> <a href="mailto:news@eclipse.org" rel="nofollow">news@eclipse.org</a>
</td>
</tr>
</tbody></table>

     </div>
     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>

       <a href="http://cwiki.apache.org/confluence/display/DIRxDEV/Guide+to+Directory+Releases">View
Online</a>
       |
       <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=55249&revisedVersion=18&originalVersion=17">View
Change</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message