ReleaseProcedure
From DSpace Wiki
The below process represents what we've been doing up to now, it isn't necessarily perfect or set in stone.
Contents |
[edit] Numbering Convention
major.minor.subminor
Increment subminor for bug-fix only releases (database, translations, APIs stable) Increment minor for feature changes (database schema, translations, APIs may change, though we'll try and keep API changes as small as possible, and will always provide an upgrade/migration path)
[edit] To build release packages
[edit] Checkout
Checkout a copy of the to-be-release version either from a branch or trunk.
svn co https://dspace.svn.sf.net/svnroot/dspace/branches/dspace-1_5_x
[edit] Cut the tag
mvn release:prepare -DautoVersionSubmodules=true -Dresume=false -Dusername=XXXXX -Dpassword=XXXXXX (test it with -DdryRun=true first)
It will ask you three basic questions, with sample answers we used for the first beta of DSpace 1.5:
"What is the release version for: XXX" 1.5.0-beta1 "What is SCM release tag or label for: XXXX" dspace-1_5-beta1 "What is the new development version for: XXXX" 1.5-SNAPSHOT
This maven command will:
- cut an SVN tag,
- update the version numbers in the pom files,
- update the url locations of the project's scm in the pom.
If you do not want to use the maven command then you can also do this manually by hand as well. But you may want to use the command in dryRun mode to at least have an idea of what needs to be changed.
[edit] Create zips
svn co https://dspace.svn.sf.net/svnroot/dspace/tags/dspace-1_5-beta1
Checkout the fresh release tag, and build the release package. This will create two zip, 2 bzip and 2 gzipped tarball in the target directory. One set is the release, and the other set is the source release.
localhost$ mvn package -Pdistributions
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building DSpace Parent Project
[INFO] task-segment: [package]
[INFO] ----------------------------------------------------------------------------
[INFO] [site:attach-descriptor]
[INFO] [assembly:single {execution: default}]
[INFO] Building zip: .../target/dspace-1.5.0-beta1-release.zip
[INFO] Building tar: .../target/dspace-1.5.0-beta1-release.tar.gz
[INFO] Building tar: .../target/dspace-1.5.0-beta1-release.tar.bz2
[INFO] Building zip: .../target/dspace-1.5.0-beta1-src-release.zip
[INFO] Building tar: .../target/dspace-1.5.0-beta1-src-release.tar.gz
[INFO] Building tar: .../target/dspace-1.5.0-beta1-src-release.tar.bz2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[edit] Upload to SourceForge
Upload both the source and binary releases to sourceforge.net. Follow the directions found here:
http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+Download
[edit] Deploy Modules to Maven release repository
The supporting artifacts will need to be uploaded to the Maven repository this is located behind ssh on maven.dspace.org. Until we have a better home for this vhost, contact Mark Diggory concerning access.
mvn deploy -Paddons
[edit] Once packages are built
- Announce on lists
- Inform dspace.org for announcement on site
- plus if new stable version, ask dspace.org admins to upload docs
- Add group corresponding to the version to SourceForge bug tracker. (Bug list -> admin -> bugs -> add/update groups)
