Title: OpenEJB Release Process Note: This information is largely obsolete and remains here for reference only. {code:none} mvn release:prepare -Dusername=dblevins -Dassemble {code:none} mvn release:perform -Dassemble -Dusername=dblevins -DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage -Dgpg.passphrase=xxxxx mvn clean deploy -Prelease -Dassemble -Dusername=dblevins -DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage/repo -Dgpg.passphrase=xxxxx 1. Create a copy of the trunk the branch will be based on. {code:none} svn copy -m "TomEE 1.5.1 branch" \ https://svn.apache.org/repos/asf/tomee/tomee/trunk \ https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.5.1 # Merging things from trunk to the branch While fixing issues in the branch and trunk in parallel it may happen that some changes in trunk have not been applied to the branch. Provided you're in the branch's directory the following command applies a change from the trunk to the branch (`{-c 575845`} is the commit number with the fix and the url points to a repo the change is in). {code:none} svn merge -c 575845 https://svn.apache.org/repos/asf/tomee/tomee/trunk Here's a little script that can make merging easier #!/bin/bash for n in $@; do m=$(($n -1)) LOG=/tmp/svn-commit-r$n.log cat /dev/null > $LOG echo "Merging r$n - http://svn.apache.org/viewvc?rev=$n&view=rev" >> $LOG echo "" >> $LOG echo "svn merge -r $m:$n https://svn.apache.org/repos/asf/tomee/tomee/trunk ." >> $LOG echo "" >> $LOG svn log -r$n https://svn.apache.org/repos/asf/tomee/tomee/trunk >> $LOG svn merge -r $m:$n https://svn.apache.org/repos/asf/tomee/tomee/trunk . && svn ci -F $LOG echo "$n merged" done # Aggregation into a stage/3.x directory #!/bin/bash VER=3.0 function package () { SOURCE=$1; DEST=${2:-$SOURCE} tar czf $DEST.tar.gz $SOURCE zip -9rq $DEST.zip $SOURCE } function shash { openssl $1 < $2 > $2.$1 ; } function sign { archive=$1 gpg --armor --output $archive.asc --detach-sig $archive gpg --verify $archive.asc $archive } function fail () { echo $1 >&2; exit 1;} mkdir $VER (cd $VER svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER/examples openejb-examples-$VER package openejb-examples-$VER && rm -r openejb-examples-$VER svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER openejb-$VER-src package openejb-$VER-src && rm -r openejb-$VER-src for archive in *.{zip,tar.gz}; do echo $archive shash md5 $archive sign $archive done || fail "Unable to sign or hash release archives" ) scp -r $VER people.apache.org:public_html/stage/ # Copy standalone assembly in ssh people.apache.org "cp ~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5} ~/public_html/stage/$VER/" echo $VER | ssh people.apache.org 'read VER && for n in ~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5}; do cp $n ~/public_html/stage/$VER/$(basename ${n/openejb-standalone-$VER/openejb-$VER}); done' # Copy tomcat webapp assembly in echo $VER | ssh people.apache.org 'read VER && for n in ~/public_html/stage/repo/org/apache/openejb/openejb-tomcat-webapp/$VER/openejb-tomcat-webapp-$VER.war{,.asc,.md5}; do cp $n ~/public_html/stage/$VER/$(basename ${n/-tomcat-webapp-$VER/}); done' # Release notes #set( $rpc = $xmlrpc.connect("dblevins:xxxxx","http://issues.apache.org/jira/rpc/xmlrpc") ) #set( $version = $rpc.getVersion("OPENEJB", "3.0") ) #set ( $versionId = $version.id ) #set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=${versionId}&tempMax=1000&reset=true&decorator=none") ) #set( $issues = $jira.issues ) Apache OpenEJB $version $date New Features: #foreach ( $issue in $issues.equals("type", "New Feature").descending("id") ) * [$issue.key] $issue.summary #end Improvements: #foreach ( $issue in $issues.equals("type", "Improvement") ) * [$issue.key] $issue.summary #end Bugs: #foreach ( $issue in $issues.equals("type", "Bug").sort("priority") ) * [$issue.key] $issue.summary #end Tasks & Sub-Tasks: #foreach ( $issue in $issues.equals("type", "Task").sort("summary") ) * [$issue.key] $issue.summary #end #foreach ( $issue in $issues.equals("type", "Sub-task").sort("summary") ) * [$issue.key] $issue.summary #end - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Unimplemented Features, bugs, limitations #set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=1&status=3&status=4&version=${versionId}&tempMax=1000&reset=true&decorator=none") ) #set( $issues = $jira.issues ) #foreach ( $issue in $issues.sort("priority") ) * [$issue.key] $issue.summary #end # README.html file some way to dynamically update this would be great. {code:html} Apache OpenEJB 3.0

Apache OpenEJB 3.0

Packaging Details (or "What Should I Download?")

Thank you for using OpenEJB!.

The Apache OpenEJB Project
http://tomee.apache.org/

# Publishing When all voting is done {code:none} mvn stage:copy -Dsource="http://people.apache.org/~dblevins/stage/repo/" \ -Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" \ -DsourceRepositoryId=apache.staging \ -DtargetRepositoryId=apache.releases \ -Dversion=3.0 {code:none} $ mv 3.0 /www/www.apache.org/dist/openejb/