Personal tools

Difference between revisions of "Ace:Release Guidlines"

From Adapt

Jump to: navigation, search
(Add git release instructions)
(Git Release)
 
Line 24: Line 24:
 
# export the source in the tags/ace-xxx version, tar/gz it and upload to redmine
 
# export the source in the tags/ace-xxx version, tar/gz it and upload to redmine
  
=Git Release=
+
= Releasing with Git and UMObj =
# mvn versions:set to $RELEASE
+
 
# git add all pom.xml
+
===Git Brancing===
# git commit
+
# git checkout -b release-$VERSION
# git tag -a ace-$RELEASE -m 'ace-$RELEASE'
+
# mvn versions:set -DnewVersion=$VERSION-RELEASE
# git archive --format=tar.gz --prefix=ace/ master > ace-$RELEASE-src.tar.gz
+
# check pom.xml
# mvn versions:set to next snapshot
+
# find . -type f -name '*.versionsBackup' -delete
# git add all pom.xml
+
# git commit -a -m 'Bump $VERSION release'
# git commit
+
# mvn package && test war and deployment
# git push
+
# git checkout master
 +
# git merge --no-ff release-$VERSION
 +
# git tag -a ace-$VERSION
 +
# git archive --format=tar.gz --prefix=ace/ master > ace-$VERSION-src.tar.gz
 +
# git checkout develop
 +
# git merge --no-ff release-$VERSION
 +
# mvn versions:set -DnewVersion=$(VERSION + 1)-SNAPSHOT
 +
# find . -type f -name '*.versionsBackup' -delete
 +
# git commit -a -m 'Bump $(VERSION + 1) snapshot'
 +
# git push --atomic origin master develop
 +
 
 +
=== UMObj ===
 +
 
 +
Releases are now stored on umobj, and uploading is simple.
 +
 
 +
# Prepare the keys needed for uploading to the adapt group
 +
<pre>
 +
export OBJ_ACCESS_KEY_ID="ADAPT_KEY"
 +
export OBJ_SECRET_ACCESS_KEY="ADAPT_KEY"
 +
export OBJ_SERVER="obj.umiacs.umd.edu"
 +
</pre>
 +
 
 +
# Copy the dist and releases to umobj
 +
<pre>
 +
[ace] $ cpobj ace-$VERSION-src.tar.gz ace:/releases/$VERSION/
 +
100% | ...
 +
[ace] $ cpobj ace-dist/target/ace-dist-$RELEASE-bin.tar.gz ace:/releases/$VERSION/
 +
100% | ...
 +
[ace] $ cpobj ace-dist/target/ace-dist-$RELEASE-bin.zip ace:/releases/$VERSION/
 +
100% | ...
 +
</pre>

Latest revision as of 21:33, 28 November 2016

The tests should be performed prior to an ACE release. As many of these as possible should be included in the maven/hudson configs for automated testing.

Prior to release testing, please make sure all bugs/features for that version have been completed on Redmine. https://scm.umiacs.umd.edu/redmine/adapt/projects/ace/roadmap. Update maven version and footer version prior to creating a release package.

Source Testing

  1. export a clean copy of the 'svn export https://subversion.umiacs.umd.edu/ace/trunk ace-test'
  2. 'mvn package' in root, and make sure the build succeeds.

Clean deploy testing

  1. Create a new database using the current ace ace-am.sql file.
  2. From your build, deploy the war file in ace-am/target/ace-am-XXX.war

Upgrade testing

  1. Grab the previous ace release, install the schema and war file
  2. register the test collection.
  3. shutdown instance, run update sql file, drop in new war file
  4. Check error log for errors, check display for major feature changes, run test audit on existing colleciton, register new collection.

Releasing

When you have fully tested everything, use maven to generate the current release and update the current project with the next snapshot.

  1. Run mvn release:prepare in the root project
  2. upload the two new binary versions in ace-dist/target to redmine.
  3. export the source in the tags/ace-xxx version, tar/gz it and upload to redmine

Releasing with Git and UMObj

Git Brancing

  1. git checkout -b release-$VERSION
  2. mvn versions:set -DnewVersion=$VERSION-RELEASE
  3. check pom.xml
  4. find . -type f -name '*.versionsBackup' -delete
  5. git commit -a -m 'Bump $VERSION release'
  6. mvn package && test war and deployment
  7. git checkout master
  8. git merge --no-ff release-$VERSION
  9. git tag -a ace-$VERSION
  10. git archive --format=tar.gz --prefix=ace/ master > ace-$VERSION-src.tar.gz
  11. git checkout develop
  12. git merge --no-ff release-$VERSION
  13. mvn versions:set -DnewVersion=$(VERSION + 1)-SNAPSHOT
  14. find . -type f -name '*.versionsBackup' -delete
  15. git commit -a -m 'Bump $(VERSION + 1) snapshot'
  16. git push --atomic origin master develop

UMObj

Releases are now stored on umobj, and uploading is simple.

  1. Prepare the keys needed for uploading to the adapt group
export OBJ_ACCESS_KEY_ID="ADAPT_KEY"
export OBJ_SECRET_ACCESS_KEY="ADAPT_KEY"
export OBJ_SERVER="obj.umiacs.umd.edu"
  1. Copy the dist and releases to umobj
[ace] $ cpobj ace-$VERSION-src.tar.gz ace:/releases/$VERSION/
100% | ...
[ace] $ cpobj ace-dist/target/ace-dist-$RELEASE-bin.tar.gz ace:/releases/$VERSION/
100% | ...
[ace] $ cpobj ace-dist/target/ace-dist-$RELEASE-bin.zip ace:/releases/$VERSION/
100% | ...