directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny (Confluence) <conflue...@apache.org>
Subject [CONF] Apache Directory Development > Releasing Apache Directory LDAP API
Date Thu, 27 Jun 2013 09:29:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/en/2176/1/1/_/styles/combined.css?spaceKey=DIRxDEV&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/DIRxDEV/Releasing+Apache+Directory+LDAP+API">Releasing
Apache Directory LDAP API</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~elecharny">Emmanuel
L├ęcharny</a>
    </h4>
        <br/>
                         <h4>Changes (12)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >Go to [https://repository.apache.org/index.html#stagingRepositories]
and release the staging repository so all artifacts are published to Maven central. <br>
<br></td></tr>
            <tr><td class="diff-changed-lines" >Move the distribution packages
<span class="diff-added-words"style="background-color: #dfd;">(sources and bnaries)</span>
to the dist SVN repository: https://dist.apache.org/repos/dist/release/directory/api/dist/$(version)
<br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">Move
the sources releases to the dist SVN repository: https://dist.apache.org/repos/dist/release/directory/api/$(version)
<br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">The
best solution would be to checkout the directory in people.apache.org, to copy the packages
in the right place, and to check in the changes : <br> <br>{noformat} <br>$
ssh people.apache.org <br># svn co https://dist.apache.org/repos/dist/release/directory/api/dist/
api-dist <br># cd api-dist <br># mkdir &lt;version&gt; <br># cp
../public_html/ldap-api-&lt;version&gt;/* &lt;version&gt; <br># svn
ci &lt;version&gt; <br>... <br># exit <br>$ <br>{noformat}
<br> <br>The packages should now be available on http://www.us.apache.org/dist/directory/api/dist/&lt;version&gt;
<br> <br></td></tr>
            <tr><td class="diff-unchanged" >h3. 10. Deploy the Javadocs and XRef
<br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br>$ cd ~/apacheds/production/content/api/gen-docs
<br></td></tr>
            <tr><td class="diff-changed-lines" >$ mkdir <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" >$ svn add <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;</span>
<br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>{noformat} <br></td></tr>
            <tr><td class="diff-changed-lines" >$ cp -r ~/apacheds/trunks/shared/target/checkout/target/site/apidocs
<span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">~/apacheds/production/content/api/gen-docs/1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">~/apacheds/production/content/api/gen-docs/&lt;version&gt;</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" >$ cp -r ~/apacheds/trunks/shared/target/checkout/target/site/xref
<span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">~/apacheds/production/content/api/gen-docs/1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">~/apacheds/production/content/api/gen-docs/&lt;version&gt;</span>
<br></td></tr>
            <tr><td class="diff-unchanged" >$  <br>{noformat} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>{noformat} <br></td></tr>
            <tr><td class="diff-changed-lines" >$ svn add <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18/*</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;/*</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" >$ svn ci <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;</span>
-m &quot;Injected <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;</span>
javadocs&quot; <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >... <br># API <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">api/gen-docs/1.0.0-M18</span>
<span class="diff-added-words"style="background-color: #dfd;">api/gen-docs/&lt;version&gt;</span>
<br></td></tr>
            <tr><td class="diff-unchanged" >... <br>{noformat} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>{noformat} <br></td></tr>
            <tr><td class="diff-changed-lines" >RewriteRule ^latest$ <span
class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18/</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;/</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" >RewriteRule ^latest/(.*)$ <span
class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">1.0.0-M18/$1</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;version&gt;/$1</span>
<br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <p>Since we are using Nexus for releases the release process is as follows (see
also <a href="http://www.apache.org/dev/publishing-maven-artifacts.html#staging-maven"
class="external-link" rel="nofollow">http://www.apache.org/dev/publishing-maven-artifacts.html#staging-maven</a>).</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-1.TesttheProject"></a>1. Test
the Project</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ mvn release:prepare -DdryRun=true
</pre>
</div></div>

<p>Be aware that this phase will ask you about the next version, and most important,
for the next SCM tag :</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>...
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "Apache Directory LDAP API"? (org.apache.directory.api:api-parent)
1.0.0-M16: : 
What is the release version for "Apache Directory LDAP API I18n"? (org.apache.directory.api:api-i18n)
1.0.0-M16: : 
What is the release version for "Apache Directory LDAP API Utilities"? (org.apache.directory.api:api-util)
1.0.0-M16: : 
...
What is SCM release tag or label for "Apache Directory LDAP API"? (org.apache.directory.api:api-parent)
1.0.0-M16: :
...
</pre>
</div></div>


<h3><a name="ReleasingApacheDirectoryLDAPAPI-2.DeployaSnapshot"></a>2. Deploy
a Snapshot</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ mvn deploy
</pre>
</div></div>

<p>This is useful to verify your settings in ~/.m2/settings.xml (Nexus password and
GPG key)</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-3.PreparetheRelease"></a>3.
Prepare the Release</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ mvn release:clean
$ mvn release:prepare
</pre>
</div></div>

<p>This creates a tag here: <a href="http://svn.apache.org/viewvc/directory/shared/tags/"
class="external-link" rel="nofollow">http://svn.apache.org/viewvc/directory/shared/tags/</a></p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-4.StagetheRelease"></a>4. Stage
the Release</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ mvn release:perform
</pre>
</div></div>

<p>This deploys the release to a staging repository. </p>

<p>Go to <a href="https://repository.apache.org/index.html#stagingRepositories" class="external-link"
rel="nofollow">https://repository.apache.org/index.html#stagingRepositories</a> and
close the staging repository.</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-5.BuildtheSite"></a>5. Build
the Site</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd target/checkout
$ mvn site
</pre>
</div></div>

<p>This creates the site.</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>Now, you have to sign the binary
packages which are in target/checkout/distribution/target.

<p>Use your PGP key ID (the pub key, 4096R/[XXXXXXX] where [XXXXXXX] is the key ID)
</p>

<p>You can get the keys by typing :</p>

<ol>
	<li>gpg --list-keys</li>
</ol>
</td></tr></table></div>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-6.PublishSourceandBinaryDistributionPackages"></a>6.
Publish Source and Binary Distribution Packages</h3>
<p>First of all, create a new directory on people.apache.org/public_html to store the
pacckages :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ ssh people.apache.org
$ mkdir public_html/ldap-api-&lt;version&gt;
$ exit
</pre>
</div></div>

<p>Then copy the packages :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd distributions/target
$ scp apache-ldap-api-&lt;version&gt;-* people.apache.org:public_html/ldap-api-&lt;version&gt;/
</pre>
</div></div>

<p>Update your index.html file on people.apach.org/public_html to make the packages
visible. Here is an example of possible content :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>&lt;h2&gt;Last Directory LDAP API 1.0.0-M16 tarballs&lt;/h2&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.tar.gz"&gt;apache-ldap-api-1.0.0-M16-bin.tar.gz&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.tar.gz.asc"&gt;apache-ldap-api-1.0.0-M16-bin.tar.gz.asc&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.tar.gz.md5"&gt;apache-ldap-api-1.0.0-M16-bin.tar.gz.md5&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.tar.gz.sha1"&gt;apache-ldap-api-1.0.0-M16-bin.tar.gz.sha1&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.zip"&gt;apache-ldap-api-1.0.0-M16-bin.zip&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.zip.asc"&gt;apache-ldap-api-1.0.0-M16-bin.zip.asc&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.zip.md5"&gt;apache-ldap-api-1.0.0-M16-bin.zip.md5&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-bin.zip.sha1"&gt;apache-ldap-api-1.0.0-M16-bin.zip.sha1&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.tar.gz"&gt;apache-ldap-api-1.0.0-M16-src.tar.gz&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.tar.gz.asc"&gt;apache-ldap-api-1.0.0-M16-src.tar.gz.asc&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.tar.gz.md5"&gt;apache-ldap-api-1.0.0-M16-src.tar.gz.md5&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.tar.gz.sha1"&gt;apache-ldap-api-1.0.0-M16-src.tar.gz.sha1&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.zip"&gt;apache-ldap-api-1.0.0-M16-src.zip&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.zip.asc"&gt;apache-ldap-api-1.0.0-M16-src.zip.asc&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.zip.md5"&gt;apache-ldap-api-1.0.0-M16-src.zip.md5&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16-src.zip.sha1"&gt;apache-ldap-api-1.0.0-M16-src.zip.sha1&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16.pom"&gt;apache-ldap-api-1.0.0-M16.pom&lt;/a&gt;&lt;br/&gt;
  &lt;a href="ldap-api-1.0.0-M16/apache-ldap-api-1.0.0-M16.pom.asc"&gt;apache-ldap-api-1.0.0-M16.pom.asc&lt;/a&gt;&lt;br/&gt;

</pre>
</div></div>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-7.TesttheNewVersioninApacheDSandStudio"></a>7.
Test the New Version in ApacheDS and Studio</h3>
<p>In apacheds/pom.xml change the <em>&lt;org.apache.directory.shared.version&gt;</em>
property, build ApacheDS, go into apacheds/service, and run <em>./apachds.sh</em>
to start the server.</p>

<p>In studio/pom.xml change the <em>&lt;org.apache.directory.shared.version&gt;</em>
and <em>&lt;org.apache.directory.shared.validversion&gt;</em> properties,
build Studio, and start Studio in applications/applications_&lt;your platform&gt;/target/ApacheDirectoryStudio-&lt;your
platform&gt;/&lt;executable&gt;. Connect to the started ApacheDS.</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-8.Vote"></a>8. Vote</h3>
<p>Start a 72h vote at the dev mailing list.</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-9.Release"></a>9. Release</h3>
<p>If the vote succeeds LDAP API project can be released.</p>

<p>Go to <a href="https://repository.apache.org/index.html#stagingRepositories" class="external-link"
rel="nofollow">https://repository.apache.org/index.html#stagingRepositories</a> and
release the staging repository so all artifacts are published to Maven central.</p>

<p>Move the distribution packages (sources and bnaries) to the dist SVN repository:
<a href="https://dist.apache.org/repos/dist/release/directory/api/dist/$(version" class="external-link"
rel="nofollow">https://dist.apache.org/repos/dist/release/directory/api/dist/$(version</a>)</p>

<p>The best solution would be to checkout the directory in people.apache.org, to copy
the packages in the right place, and to check in the changes :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ ssh people.apache.org
# svn co https://dist.apache.org/repos/dist/release/directory/api/dist/ api-dist
# cd api-dist
# mkdir &lt;version&gt;
# cp ../public_html/ldap-api-&lt;version&gt;/* &lt;version&gt;
# svn ci &lt;version&gt;
...
# exit
$
</pre>
</div></div>

<p>The packages should now be available on <a href="http://www.us.apache.org/dist/directory/api/dist/"
class="external-link" rel="nofollow">http://www.us.apache.org/dist/directory/api/dist/</a>&lt;version&gt;</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-10.DeploytheJavadocsandXRef"></a>10.
Deploy the Javadocs and XRef</h3>

<p>We now can deploy the generated Javadoc and cross-reference pages. They are generated
in the following directory :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>target/checkout/target/site
</pre>
</div></div>

<p>We will copy two directories :</p>
<ul>
	<li>apidocs</li>
	<li>xref</li>
</ul>


<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><b>Staging or Production?</b><br
/>Those files will be stored on the production server only !!! And some extra caution ust
be taken not to delete them when we will publish the staging site too...</td></tr></table></div>

<p>First of all, you must checkout the two CMS store for the site : staging and revision.</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd ~/apacheds
$ svn co https://svn.apache.org/repos/infra/websites/production/directory/trunk staging
 ...
$ svn co https://svn.apache.org/repos/infra/websites/production/directory production
 ...
</pre>
</div></div>

<p>Now, you will first add the directory for the newly generated version :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd ~/apacheds/production/content/api/gen-docs
$ mkdir &lt;version&gt;
$ svn add &lt;version&gt;
</pre>
</div></div>

<p>Then copy the generated docs :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cp -r ~/apacheds/trunks/shared/target/checkout/target/site/apidocs ~/apacheds/production/content/api/gen-docs/&lt;version&gt;
$ cp -r ~/apacheds/trunks/shared/target/checkout/target/site/xref ~/apacheds/production/content/api/gen-docs/&lt;version&gt;
$ 
</pre>
</div></div>

<p>You have to check in those directories :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ svn add &lt;version&gt;/*
$ svn ci &lt;version&gt; -m "Injected &lt;version&gt; javadocs"
</pre>
</div></div>

<p>Now, you have to update the staging site :</p>

<h4><a name="ReleasingApacheDirectoryLDAPAPI-extpaths.txt"></a>extpaths.txt</h4>

<p>This file list the file on the production site that will not be overriden by the
publication of the staging site. It has to be updated</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd ~/apacheds/staging/content/
$ vi extpaths.txt
</pre>
</div></div>

<p>Add the following line :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>...
# API
api/gen-docs/&lt;version&gt;
...
</pre>
</div></div>

<p>then save and check in the file</p>

<h4><a name="ReleasingApacheDirectoryLDAPAPI-.htaccess"></a>.htaccess</h4>

<p>We also have to update this file :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd ~/apacheds/staging/content/api/gen-docs
$ vi .htaccess
</pre>
</div></div>

<p>And update the two last lines to refer to the version you've just released :</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>RewriteRule ^latest$ &lt;version&gt;/
RewriteRule ^latest/(.*)$ &lt;version&gt;/$1
</pre>
</div></div>

<p>Save and commit the file.</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-11.Updatethewebsite"></a>11.
Update the web site</h3>

<p>You can now update the site, add a news on the front page, and publish the site.</p>

<h3><a name="ReleasingApacheDirectoryLDAPAPI-12.Informtheworld%21"></a>12.
 Inform the world !</h3>

<p>After 24h, you can now inform the world about the release.</p>

<p>Send a mail to the users and dev mailing list, and one to the announce@apacge.org.</p>

<p>You are done !</p>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://cwiki.apache.org/confluence/users/removespacenotification.action?spaceKey=DIRxDEV">Stop
watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://cwiki.apache.org/confluence/users/editmyemailsettings.action">Change
email notification preferences</a>
</div>
        <a href="https://cwiki.apache.org/confluence/display/DIRxDEV/Releasing+Apache+Directory+LDAP+API">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=55388&revisedVersion=22&originalVersion=21">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message