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. They can be found at <a
- href="http://repo1.maven.org/maven2/vdoclet/qdox/current/">http://repo1.maven.org/maven2/vdoclet/qdox/current/</a>.
-
- 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,