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
{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
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
#!/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'
#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
some way to dynamically update this would be great.
{code:html}
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/