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 > Releasing ApacheDS
Date Thu, 23 Jun 2011 08:42:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/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+ApacheDS">Releasing
ApacheDS</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 (60)</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" >This will show you how to build and
release the ApacheDS subproject.  Keep an eye out for warning and note sections that show
version specific differences in this process.  <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >h2. Manual <span class="diff-changed-words">Step<span
class="diff-deleted-chars"style="color:#999;background-color:#fdd;text-decoration:line-through;">s</span></span>
<br></td></tr>
            <tr><td class="diff-unchanged" > <br>Some things have not yet
been automated with maven and require users to manually edit some files.  Below are the steps
to follow. <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h3.
Step (1): Update Versions in MANIFEST.MF <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
Update service/apacheds.sh and service/apacheds.bat <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">There
is a manifest file in the server-tools project which must be updated to reference the non-SNAPSHOT
release jars for daemon, shared and apacheds dependencies.  Make sure the right dependencies
are present in this file. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Edit
the apacheds.sh/bat files in the service project directory to update the revision numbers
used in that file to reference non-SNAPSHOT releases.   <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h3.
Step (2): Update server-main/apacheds.sh <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h2.
Release process <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">Edit
the apacheds.sh file in the server-main project directory to update the revision numbers used
in that file to reference non-SNAPSHOT releases.   <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Since
we are using Nexus for releases the release process is as follows (see also [http://www.apache.org/dev/publishing-maven-artifacts.html#staging-maven]).
<br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h3.
Step (3): Update Versions in server-installers/pom.xml <br> <br>Edit the pom.xml
file of the server-installers module.  Specifically the &lt;svnBaseUrl&gt; tag value
must be updated to reflect the position of the new tag to be created in subversion.  So if
you have the following value for svnBaseUrl to release 1.0.2 of apacheds then change this
line: <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
1. Test the Project <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">&lt;svnBaseUrl&gt;http://svn.apache.org/repos/asf/directory/apacheds/branches/1.0&lt;/svnBaseUrl&gt;
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">$
mvn release:prepare -DdryRun=true <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">To:
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Replace
the version by the new version. Be careful, and remove the &#39;apacheds-parent-&#39;
which is proposed for the new tag. We should just use the version number. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
2. Deploy a Snapshot <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">&lt;svnBaseUrl&gt;http://svn.apache.org/repos/asf/directory/apacheds/tags/1.0.2&lt;/svnBaseUrl&gt;
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">$
mvn deploy <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h3.
Step (4): Update Versions in Archetypes   <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">This
is useful to verify your settings in ~/.m2/settings.xml (Nexus password and GPG key) <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{info}
<br>Presently these archetypes do not exist for the 1.5 feature branch so this step
may be skipped. <br>{info} <br> <br>There are two maven archetypes defined:
<br> <br> * schema-archetype  <br> * testcase-archetype <br> <br>These
archetypes are modules inside the apacheds project folder in subversion.  They contain two
files each which need to be massaged for the correct versions.  These files are a simple shell
script and the target pom.xml generated by these archetypes.  Below the relative paths to
these files are listed when inside the apacheds folder: <br> <br>| schema-archetype/apacheds-schema-archetype.sh
|  <br>| schema-archetype/src/main/resources/archetype-resources/pom.xml | <br>|
testcase-archetype/apacheds-testcase-archetype.sh | <br>| testcase-archetype/src/main/resources/archetype-resources/pom.xml
| <br> <br>Just open up these files and you&#39;ll see places where version
numbers are used.  Make sure the proper versions are used in all cases.  For example a snippet
from the schema-archetype pom.xml might look like so: <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
3. Prepare the Release <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">...
<br>  &lt;dependencies&gt; <br>    &lt;dependency&gt; <br>
     &lt;groupId&gt;org.apache.directory.server&lt;/groupId&gt; <br>
     &lt;artifactId&gt;apacheds-core&lt;/artifactId&gt; <br>      &lt;version&gt;1.0.2-SNAPSHOT&lt;/version&gt;
<br>    &lt;/dependency&gt; <br>    &lt;dependency&gt; <br>
     &lt;groupId&gt;org.apache.directory.server&lt;/groupId&gt; <br>
     &lt;artifactId&gt;apacheds-server-unit&lt;/artifactId&gt; <br>
     &lt;version&gt;1.0.2-SNAPSHOT&lt;/version&gt; <br>      &lt;scope&gt;test&lt;/scope&gt;
<br>    &lt;/dependency&gt; <br>... <br>  &lt;/dependencies&gt;
<br>... <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">$
mvn release:clean <br>$ mvn release:prepare <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
<br>If you&#39;re releasing 1.0.2 then just edit the versions to remove the -SNAPSHOT
string. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{warning}
<br>Sometimes you won&#39;t see 1.0.2-SNAPSHOT if you&#39;re releasing 1.0.2.
 You might just see 1.0.1 if we never edited this during the SHAPSHOT phase.  So then you&#39;ll
see non-snapshot versions.  Just put in the dependencies for the release. <br>{warning}
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">This
creates a tag here: [http://svn.apache.org/viewvc/directory/apacheds/tags/] <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h3.
Step (5): Editing RELEASE-NOTES.txt and README.txt  <br> <br>You might need to
edit the RELEASE-NOTES.txt and README.txt files for things relavent to the release you&#39;re
performing.   <br> <br>h3. Step (6): Update Dependency Versions in Root POM <br>
<br>Edit the root apacheds/pom.xml and make sure all dependencies are using non-SNAPSHOT
versions. If you just released shared and daemon you&#39;ll want to update these.  Also
take a look at the &lt;dependencyManagement&gt; section to see if anything needs to
be updated for the present release.  Remember no SNAPSHOTs. <br> <br>h3. Step
(7): Update NOTICE.txt and LICENSE.txt Files <br> <br>If you added any new libraries
which require an update of the NOTICE.txt and LICENSE.txt files do so now in the server-installers
directory.   <br> <br>h2. Releasing Maven Artifacts <br> <br>{warning}
<br>If you just released and deployed new shared and daemon projects needed by this
apacheds release you&#39;re about to perform then you must make sure it happened on the
same machine or else you need to build the shared and daemon project tags.  The reason for
this is that replication time is needed for the shared and daemon project jars to reach ibiblio.
 If you build these dependent projects on the same machine that you&#39;re about to build
apacheds on then you will have the required release jars in your local repository and maven
will not need to hit ibiblio. <br>{warning} <br> <br>For these examples
we&#39;ll presume a release (1.0.2) on the 1.0 branch of apacheds. For releases on the
trunk or on other branches change the svn checkout line to accomodate. <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
4. Stage the Release <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">$
svn co https://svn.apache.org/repos/asf/directory/apacheds/branches/1.0 apacheds <br>$
cd apacheds <br>$ mvn -Prelease -DdryRun=true release:prepare    # Dry-run first.  
<br>...  <br>... Make sure the change made by the release plugin is correct! <br>...
<br>$ mvn release:clean      # Clean up the temporary files created by the dry-run.
<br>$ mvn -Prelease release:prepare    # Copy to tags directory. <br>$ mvn -Prelease
release:perform    # Upload the released artifacts to the maven repository. <br>...
 <br>... Make sure the jars/poms and their signature files are properly deployed to
the m2-ibiblio-sync  <br>... repository on people.apache.org before running the clean
goal or else you cannot rollback the <br>... release. <br>... <br>$ mvn
release:clean      # Clean up the temporary files. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">$
mvn release:perform <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{warning:Answering
Questions} <br>During the prepare goal&#39;s execution you&#39;ll be asked a
number of questions.  Please pay close attention to each question instead of hitting return
everytime.  In particular there is a question about what you want to call the tag.  If you
do not specify the correct tag which should be the release number 1.0.2 for example, Maven
will use build-1.0.2 instead with the *build-* prefix.  We don&#39;t want that so pay
attention.  Look here if you have any questins regarding what release tags should be for the
apacheds subproject:  <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">This
deploys the release to a staging repository. Go to [https://repository.apache.org/index.html#stagingRepositories]
and close the staging repository. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">http://svn.apache.org/viewvc/directory/apacheds/tags
<br> <br>{warning} <br> <br>These commands will build, tag, sign,
and deploy apacheds artifacts and their signature files to the repository. Check the following
URLs during different stages of the process to see Maven at work: <br> <br>||Stage||URL||
<br>|after release:prepare| http://svn.apache.org/viewvc/directory/apacheds/tags | <br>|during
release:perform| http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/directory/server/
| <br> <br>h2. Building, Signing and Deploying Installers <br> <br>Now
you need to build, sign and deploy the installers so they are available on all Apache Mirrors.
The build may change across releases so please keep this section updated with the latest information.
  <br> <br>h3. Building Installers <br> <br>Once the Maven Artifacts
have been released check out the new release tag (in this example that was 1.0.2).  There
is a guide you can follow (link below) for preparing an enviroment to build all the installers:
Izpack Jars, Windows Native Installer and the Redhat RPM. <br> <br>[Building 1.0|http://directory.apache.org/apacheds/1.0/building.html]
<br> <br>h3. Signing and Checksuming Installers <br> <br>Once you
build the installers you&#39;ll want to put them into a directory.  There you can use
the [gpg-sign-all|http://mina.apache.org/developer-guide.data/gpg-sign-all] script to generate
signature (dot.asc) files and checksum files for SHA1 and MD5. <br> <br>h3. Deploying
the Installers <br> <br>The installers and their signature/checksum files need
to be deployed to the staging area used by the ASF to rsynch distributions to the ASF Mirrors.
 This simply requires you to create a new directory for the release and scp these files into
it.  This staging area is on people.apache.org in the /www/www.apache.org/dist folder.  There
is a &#39;directory&#39; folder inside and within that there is an &#39;apacheds&#39;
folder.  Currently inside this &#39;apacheds&#39; folder there are two folders: one
called &#39;stable&#39; for bug fix releases on X.0 branches and a &#39;unstable&#39;
folder for feature releases on X.5 branches where X is the major version number.  Here&#39;s
what the directory layout looks like as a tree within the /www/www.apache.org/dist/directory
folder: <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
5. Deploy the Site <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">.
<br>|-- KEYS (file) <br>|-- apacheds <br>|   |-- README.txt (file) <br>|
  |-- stable <br>|   |   |--1.0 <br>|   |   |  |--1.0.0 <br>|   |   |  |--1.0.1
<br>|   |   |  |--1.0.2 <br>|   |-- unstable <br>|   |   |--1.5 <br>|
  |   |  |--1.5.0 <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">$
cd target/checkout <br>$ mvn site-deploy <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
<br>{info:Adding Public Key to KEYS File} <br>If you have not already done so
you need to add your exported public key and signature to the KEYS file.  All deployed artifacts
signed by a key must have the signature and public key appended to this file.  Please make
sure you back up this file before overwriting it.  To add your key download the KEYS file
and add your key to use using this command: <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
   gpg --fingerprint --list-sigs &#39;&lt;your name&gt;&#39; &gt;&gt;
KEYS <br>             &amp;&amp; gpg --armor --export &#39;&lt;your
name&gt;&#39; &gt;&gt; KEYS    <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">This
creates and deploys the site via ssh to people.apache.org/www/directory.apache.org/apacheds/gen-docs.
<br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">Also
make sure the permissions on the KEYS file are set to allow group writes with the following
command: <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Edit
the people.apache.org/www/directory.apache.org/apacheds/gen-docs/index.html file and add the
deployed site to the list. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
   chmod g+w KEYS <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">{info}</span>
<span class="diff-added-words"style="background-color: #dfd;">{note}</span> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Now,
you have to sign the binary packages which are in apacheds/target/checkout/target. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">So
if you are adding a new release in the 1.5 branch called 1.5.1 just create a folder 1.5.1
under the 1.5 folder.  If you&#39;re releasing on a new branch all together like say 2.0.0
then just create the 2.0 directory under the stable folder and create yet another folder under
this new one called 2.0.0.  Then you can SCP all the signature, and checksum files including
the installers themselves into the target release folder.  If you&#39;re deploying 1.0.2
for example you can use the following SCP command: <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Use
your PGP key ID (the pub key, 4096R/\[XXXXXXX\] where \[XXXXXXX\] is the key ID)  <br>{note}
<br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
6. Publish Source and Binary Distribution Packages <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">scp
apacheds-* people.apache.org:/www/www.apache.org/dist/directory/apacheds/stable/1.0/1.0.2
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">$
cd target/checkout/target <br>$ scp apacheds-parent-&lt;version&gt;-source-release.zip.*
people.apache.org:public_html/ <br></td></tr>
            <tr><td class="diff-unchanged" >{noformat} <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">Make
sure all the dot.asc, dot.jar, dot.exe, dot.rpm, dot.md5, and dot.sha1 files are copied over
and you&#39;re done.   <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
Test the new version <br>The best way to do that is to download the sources, extract
them, build the server and the installers, and check if the installers are correctly working.
Then check that the server is correctly running. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{warning:Watch
Out For Group Write Permissions} <br>After creating directories, deploying and/or replacing
the KEYS file make sure group write permissions are enabled on all the new files and folders.
 You might just in case want to run the following command on the top &#39;directory&#39;
folder to make sure you don&#39;t lock out other developers: <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
8. Vote <br>Start a 72h vote at the dev mailing list. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
   chmod -R g+w /www/www.apache.org/dist/directory <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h3.
9. Release <br>If the vote succeeds Apacheds project can be released. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{warning}
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Go
to [https://repository.apache.org/index.html#stagingRepositories] and release the staging
repository so all artifacts are published to Maven central. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h2.
Post Release Tasks: Spread the Word <br> <br>After a release you want to make
some announcements and update the links on the site to enable users and others to know about
your new release.  Follow the steps below using provided templates to easily make these announcements.
<br> <br>h3. Adjusting the entry at projects.directory.org (DOAP) <br> <br>ApacheDS
has an entry at [projects.directory.org|http://projects.directory.org/|projects.directory.org],
published [here|http://projects.apache.org/projects/directory_server.html|projects.directory.org].
<br> <br>Among other things, this entry carries information about the latest releases
of ApacheDS, and should therefore be updated after a release. Source of the data is a file
within our Subversion repository, and the only thing which is necessary to do is changing
it: <br> <br>https://svn.apache.org/repos/asf/directory/apacheds/trunk/doap_apacheds.rdf
<br> <br>After releasing the 1.0.2 for instance, search in the file for the release-element
which describes the 1.0 branch and change version revision and creation date like that:  <br>
<br>{code:xml} <br>... <br>&lt;release&gt; <br>  &lt;Version&gt;
<br>    &lt;name&gt;Stable release&lt;/name&gt; <br>    &lt;created&gt;2007-05-26&lt;/created&gt;
<br>    &lt;revision&gt;1.0.2&lt;/revision&gt; <br>  &lt;/Version&gt;
<br>&lt;/release&gt; <br>... <br>{code}  <br> <br>Committing
the changes to the (!) trunk is the only thing necessary to do. The technology of _projects.directory.org_
collects the file via an http request periodically and builds the new information web page
for ApacheDS. Please note it takes some hours until the [web page|http://projects.apache.org/projects/directory_server.html|projects.directory.org]
provides the up to date information. <br> <br>h3. Add Downloads Link to Web Site
<br> <br>TO BE FILLED IN <br> <br>h3. Preparse and Post Announcements
<br> <br>Use the following guide to prepare announcements and post them to the
relavent mailing lists, forums and sites: [Making Release Announcements]. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Move
the distribution packages to people.apache.org/www/www.apache.org/dist/directory/apacheds/stable.
<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <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><b>Outdated</b><br
/></td></tr></table></div>

<div>
<ul>
    <li><a href='#ReleasingApacheDS-Introduction'>Introduction</a></li>
    <li><a href='#ReleasingApacheDS-ManualStep'>Manual Step</a></li>
    <li><a href='#ReleasingApacheDS-Releaseprocess'>Release process</a></li>
</ul></div>

<h2><a name="ReleasingApacheDS-Introduction"></a>Introduction</h2>

<p>This will show you how to build and release the ApacheDS subproject.  Keep an eye
out for warning and note sections that show version specific differences in this process.
</p>

<h2><a name="ReleasingApacheDS-ManualStep"></a>Manual Step</h2>

<p>Some things have not yet been automated with maven and require users to manually
edit some files.  Below are the steps to follow.</p>

<h3><a name="ReleasingApacheDS-Updateservice%2Fapacheds.shandservice%2Fapacheds.bat"></a>Update
service/apacheds.sh and service/apacheds.bat</h3>

<p>Edit the apacheds.sh/bat files in the service project directory to update the revision
numbers used in that file to reference non-SNAPSHOT releases.  </p>

<h2><a name="ReleasingApacheDS-Releaseprocess"></a>Release process</h2>

<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="ReleasingApacheDS-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>Replace the version by the new version. Be careful, and remove the 'apacheds-parent-'
which is proposed for the new tag. We should just use the version number.</p>

<h3><a name="ReleasingApacheDS-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="ReleasingApacheDS-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/apacheds/tags/"
class="external-link" rel="nofollow">http://svn.apache.org/viewvc/directory/apacheds/tags/</a></p>

<h3><a name="ReleasingApacheDS-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. 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="ReleasingApacheDS-5.DeploytheSite"></a>5. Deploy the Site</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd target/checkout
$ mvn site-deploy
</pre>
</div></div>

<p>This creates and deploys the site via ssh to people.apache.org/www/directory.apache.org/apacheds/gen-docs.</p>

<p>Edit the people.apache.org/www/directory.apache.org/apacheds/gen-docs/index.html
file and add the deployed site to the list.</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 apacheds/target/checkout/target.

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

<h3><a name="ReleasingApacheDS-6.PublishSourceandBinaryDistributionPackages"></a>6.
Publish Source and Binary Distribution Packages</h3>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd target/checkout/target
$ scp apacheds-parent-&lt;version&gt;-source-release.zip.* people.apache.org:public_html/
</pre>
</div></div>

<h3><a name="ReleasingApacheDS-Testthenewversion"></a>Test the new version</h3>
<p>The best way to do that is to download the sources, extract them, build the server
and the installers, and check if the installers are correctly working. Then check that the
server is correctly running.</p>

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

<h3><a name="ReleasingApacheDS-9.Release"></a>9. Release</h3>
<p>If the vote succeeds Apacheds 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 to people.apache.org/www/www.apache.org/dist/directory/apacheds/stable.</p>

    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/DIRxDEV/Releasing+ApacheDS">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=55391&revisedVersion=16&originalVersion=15">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message