You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mc...@apache.org on 2013/08/18 03:29:59 UTC

svn commit: r1515055 - /db/jdo/HowToReleaseJDO.html

Author: mcaisse
Date: Sun Aug 18 01:29:59 2013
New Revision: 1515055

URL: http://svn.apache.org/r1515055
Log:
JDO-723 Updated release process.

Modified:
    db/jdo/HowToReleaseJDO.html

Modified: db/jdo/HowToReleaseJDO.html
URL: http://svn.apache.org/viewvc/db/jdo/HowToReleaseJDO.html?rev=1515055&r1=1515054&r2=1515055&view=diff
==============================================================================
--- db/jdo/HowToReleaseJDO.html (original)
+++ db/jdo/HowToReleaseJDO.html Sun Aug 18 01:29:59 2013
@@ -51,15 +51,12 @@
     <p> The release manager makes a branch from the trunk (for a major
       release) or from another branch (for a minor release) to create a
       branch with the source of the distribution. </p>
-    <p> The release manager modifies the branch to change dependencies
-      from SNAPSHOT to projects in the release. </p>
-    <p> The release manager builds and tests the components of the
-      release and checks the release build into svn. </p>
-    <p> The release manager publishes the release on a staging area of
-      the apache server and calls for the community to test the release.
-    </p>
+    <p> The release manager follows the Apache process detailed below 
+      to build and deploy a release. </p>
+    <p> The release manager calls for the community to test the release.
     <p> The community tests the release. If necessary, cycle until all
       issues are resolved. </p>
+    <p> The release manager closes the staged repository</p>
     <p> The release manager calls for a vote to release by sending a
       message to the community and forwarding the message to the pmc. </p>
     <p> The community votes on the release. If necessary, cycle until
@@ -67,8 +64,6 @@
     <p> The release manager notifies the pmc of the successful vote
       outcome. Note that a successful vote includes three +1 votes from
       PMC members. </p>
-    <p> The release manager distributes the release, which is then
-      copied to mirror sites worldwide. </p>
     <p> The release manager notifies the worldwide community of the
       availability of the release. </p>
     <p> The release manager updates the JDO web sites
@@ -90,28 +85,17 @@ https://svn.apache.org/repos/asf/db/jdo/
       <li>In trunk, update version numbers in the following files in
         preparation for the next release:
         <dl>
-          <dt>trunk/project.properties </dt>
-          <dd>Change value of currentVersion </dd>
           <dt>trunk/README.html </dt>
           <dd>File names and version references in the Overview section
           </dd>
-          <dt>trunk/JDO3.MF</dt>
-          <dd>Update Specification-Version and Bundle-Version </dd>
-          <dt>trunk/api/project.xml </dt>
-          <dd>Update currentVersion </dd>
           <dt>trunk/tck/RunRules.html </dt>
-          <dd>Update version number </dd>
+          <dd>Update version number and date</dd>
         </dl>
-      </li>
-      <li>In the pending release branch (jdo/branches/xxx), remove the
-        projects and files that are not being released.
-        <pre>pushd branches/2.n
-svn rm api11 btree fostore20 query20 runtime20 ri11 tck11 JDO11.MF 
-svn commit -m "Remove projects and files that are not being released"
-</pre>
+	Use the maven version plug-in to update version numbers in the 
+	pom.xml files at the root and subproject levels.
       </li>
       <li>If needed, update the dependency to the RI, DataNucleus, in
-        the tck project.xml.</li>
+        the tck pom.xml.</li>
       <li>If needed, apply patches from the trunk or branches to the new
         branch.</li>
       <a name="version"></a>
@@ -119,76 +103,55 @@ svn commit -m "Remove projects and files
         released, if these changes haven't been made previously. Check
         the following files:
         <dl>
-          <dt>branches/<version>/project.properties </version></dt>
-          <dd>Change value of currentVersion </dd>
-          <dt>branches/<version>/README.html </version></dt>
+	  <dt>branches/<i>version</i>/README.html </dt>
           <dd>File names and version references in the Overview section
+	       (for a major release only.)
           </dd>
-          <dt>branches/<version>/JDO30.MF</version></dt>
-          <dd>Update Specification-Version and Bundle-Version </dd>
-          <dt>branches/<version>api/project.xml </version></dt>
-          <dd>Update currentVersion </dd>
           <dt>trunk/tck/RunRules.html </dt>
-          <dd>Update version number and release date </dd>
+          <dd>Update version number</dd>
         </dl>
       </li>
-      <li>Update the details in branches/<version>/api/m2_repo_maven_metadata.xml
-
-
-
-          to include the version being released.</version></li>
+      <li>Follow the instructions at <a 
+     href="www.apache.org/dev/publishing-maven-artifacts.html"> Publishing Maven Artifacts</a> to set up your development environment.
+      </li>
       <li>Copy the JNDI implementation jars (providerutil.jar and
         fscontext.jar) to the branch lib/ext directory. This is needed
         to test the tck before distributing it.<b><br>
           Do not check these in to SVN</b> </li>
-      <li>Manually install vdoclet:qdox:current:jar artifacts to your
-        local Maven 1 repository.&nbsp; They can be found at <a
-          href="http://repo1.maven.org/maven2/vdoclet/qdox/current/">http://repo1.maven.org/maven2/vdoclet/qdox/current/</a>.&nbsp;
-
-        Make sure to download qdox-current.jar to
-        ~/.maven/repository/vdoclet/jars.<br>
-      </li>
-      <li>Build the distribution. This creates .gz files and .zip files
-        in the target/distributions directory of each project. It also
-        creates the .jar and .pom files. It then copies the release
-        artifacts to the releases/2.n/dist directory. The dist directory
-        is in a format that can be copied directly to the apache dist
-        directory for distribution. It contains two subdirectories; db
-        contains downloadable artifacts and java-repository contains
-        artifacts that are automatically pulled to maven repositories. <i>Note:
-
-
-          Failure possibly due to insufficient heap space was fixed by
-          setting the environment variable MAVEN_OPTS="-Xmx1024m
-          -Xms1024m -XX:MaxPermSize=512m"</i>
-        <pre>pushd branches/3.n
-maven jdo3.build
-maven jdo3.dist
-popd
-</pre>
+  <li>Build the distribution with the following command:
+  	<pre>
+	 mvn clean install -Papache-release
+	</pre>
+  	This creates the .jar and .pom files
+	in the target directory of each subproject.
       </li>
       <li>Run RAT, which is at <a
           href="http://incubator.apache.org/rat/">http://incubator.apache.org/rat/</a>,
         on the release. </li>
-      <li>Sign the artifacts. You must have a gpg key in order to
-        perform this step. The sign-directory script is checked into
-        jdo/bin. Edit this script to refer to your own environment (do
-        not check it in). If you're on Windows, your best bet is to run
-        this script via a cygwin bash shell.<br>
-        <pre>bin/sign-directory releases/3.n/dist/
-</pre>
       </li>
-      <li>Push the artifacts to the staging area on the apache server.
-        <pre>scp -r releases/2.n/dist <i>username</i>@people.apache.org:~/public_html
-</pre>
-      </li>
-      <li>ssh to people.apache.org and change to the public_html
-        directory. Make sure that all the copied directories have
-        executable permission. If not change the permission for each:
-        <pre>chmod a+x <i>dir</i>
-</pre>
+      <li>
+      Do a dry run prepare and deployment of a snapshot release.
+      Be prepared to enter your key passcode when prompted.
+  	<pre>
+ mvn release:prepare -Papache-release -DautoVersionSubmodules=true -DdryRun=true -Dresume=false
+
+ mvn deploy -Papache-release 
+	</pre>
+      Check the artifacts at <a href="https://repository.apache.org/content/repositories/snapshots/">the Maven release repository</a>
+      </li>
+      <li>
+      Prepare and release the artifacts.
+      <pre>
+mvn release:clean -Papache-release
+mvn release:prepare -Papache-release
+	</pre>
+      </li>
+      <li>
+      Stage the release for a vote.
+      <pre>
+mvn release:perform -Papache-release
+	</pre>
       </li>
-      <li>Test the release from the staging area.</li>
       <li>Send an announcement to test the release to the
         jdo-dev@db.apache.org alias. If problems are found, fix and
         repeat.</li>
@@ -198,26 +161,13 @@ popd
         Iterate until you get a successful vote. Mail the results of the
         vote to jdo-dev@db.apache.org, cc: general@db.apache.org, and
         include [VOTE] [RESULTS] in the subject line.</li>
-      <li>After testing and voting is complete, push the artifacts to
-        the Apache web. Mirrors automatically pick up Apache artifacts
-        from /www/www.apache.org/dist.
-        <pre>ssh people.apache.org
-cp -r public_html/jdo<i>version</i>/dist/db /www/www.apache.org/dist
-cp -r public_html/jdo<i>version</i>/dist/m1-ibiblio-rsync-repository/* /www/people.apache.org/repo/m1-ibiblio-rsync-repository
-cp -r public_html/jdo<i>version</i>/dist/m2-ibiblio-rsync-repository/* /www/people.apache.org/repo/m2-ibiblio-rsync-repository
-</pre>
-        NOTE!! Be sure that there is no slash at the end of the
-        directory you are copying from; otherwise the files will be put
-        in the wrong target directory. </li>
-      <li>Ask one of the Apache repository folks to push the
-        m1-ibiblio-rsync-repository since this repository is no longer
-        automatically synchronized. Send a message to
-        repository@apache.org to push the new artifacts. </li>
-      <li>Check the distribution into svn
-        <pre>svn add releases/2.n
-svn commit -m "Create release 2.n" releases/2.n
-</pre>
-      </li>
+      <li>After testing and voting is complete, 
+          follow the instructions at <a href="
+		  https://docs.sonatype.org/display/Repository/Releasing+a+Staging+Repository">
+	   Releasing a Staging Repository</a> to release the artifacts.
+   See <a href="https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository"
+	   >Closing a Staging Repository</a> for details on connecting to the Nexus UI.
+	</li>
       <li>To get the Maven2 repo populated with Maven1 jars ask
         repository@apache.org to push the release</li>
       <li>If the release is a bug fix release to a maintenance release,