Personal tools

Ace:Release Guidlines: Difference between revisions

From Adapt

Jump to: navigation, search
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 18: Line 18:
# Check error log for errors, check display for major feature changes, run test audit on existing colleciton, register new collection.
# Check error log for errors, check display for major feature changes, run test audit on existing colleciton, register new collection.


=Packaging=
=Releasing=
A binary distribution can be created by running 'mvn package' in the root project. This will create a binary tgz and zip file in ace-dist/target that has all necessary war, db, and documenation.
When you have fully tested everything, use maven to generate the current release and update the current project with the next snapshot.
# Run mvn release:prepare in the root project
# upload the two new binary versions in ace-dist/target to redmine.
# export the source in the tags/ace-xxx version, tar/gz it and upload to redmine
 
= Releasing with Git and UMObj =
 
===Git Brancing===
# git checkout -b release-$VERSION
# mvn versions:set -DnewVersion=$VERSION-RELEASE
# check pom.xml
# find . -type f -name '*.versionsBackup' -delete
# git commit -a -m 'Bump $VERSION release'
# mvn package && test war and deployment
# 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% | ...