---- '''Note that the information found here has being migrated to the new [[https://sbforge.org/display/NAS/NetarchiveSuite|SBForge wiki]]''' ---- = Release Procedures = This checklist should help build a release, and make it available for the public. It is the responsible of the QA to have the release done. == Development release == Phase 1. Initiate code freeze * Ensure all committed code since last release is reviewed. Simply go through each commit, and check in the review table that this commit is reviewed. * Ensure all bugs since last release have been evaluated not to block release. Simply go through each bug and check if it has been evaluated. * Ensure all fixed bugs can be set to status CLOSED. A bug can be set to closed if it has been fixed and reviewed, and has the needed unit tests to verify it is fixed. * Update dk.netarkivet.common.Constants.BUILDSTATUS to CODEFREEZE * Commit file to SVN * Send mail to netarchivesuite-users mailing list about state of code. The mail should contain guidelines to what is allowed and expected during code freeze, and a brief list of important features of the upcoming release. Phase 2. Release test * The procedures for running the release test are described elsewhere Phase 3. Actual release * Update dk.netarkivet.common.Constants.BUILDSTATUS to RELEASE * Commit the file to SVN * Build release packages. It is important to do this '''on a clean checkout. ''' {{{ svn --username=user co https://gforge.statsbiblioteket.dk/svn/netarchivesuite/trunk netarchivesuite cd netarchivesuite ant sourcezipball ant releasezipball }}} * Copy the javadoc to the [[https://sbforge.org/display/APP/Webdav+server|SBForge webserver]] at https://sbforge.org/maven/netarchivesuite/apidocs/ under a new folder corresponding to the version. Note that the uploading can take a while as each file is uploaded individually. * Rename the binary package to include version name, e.g. mv !NetarchiveSuite.zip !NetarchiveSuite-3.3.3.zip * Rename the source package to include version name, e.g. mv !NetarchiveSuite-src.zip !NetarchiveSuite-3.3.3-src.zip * Add the two files to the [[https://sbforge.org/display/APP/Webdav+server|SBForge webserver]] at https://sbforge.org/downloads/netarchivesuite/releases under a new folder corresponding to the version. * On http://netarchive.dk/suite/Release_Overview move the last release to http://netarchive.dk/suite/ReleaseArchive * Add the new release on http://netarchive.dk/suite/Release_Overview * Write release notes for the release. * Add to News on wiki * Send email to netarchivesuite-announce including major features and link to release notes. Phase 4. End of codefreeze * Update dk.netarkivet.common.Constants.PATCHVERSION version number with one minor version * Set BUILDSTATUS to UNSTABLE * commit file. * Send end-of-codefreeze mail to netarchivesuite-devel == Stable release == Basically you need to do the same as when doing a development release, with the following changes and exceptions: * Different version numbers - ONLY in phase 3 when setting the BUILDSTATUS, increase MINORVERSION with 1 and set PATCHVERSION to 0 * Documentation needs to be moved - See [[Maintaining Documentation|Maintaining_Documentation]] under "Making a snapshot" * Before ending code freeze, build an SVN package for PROD. == Stable patch release == * First fix the bug in the trunk. Make sure the patch is reviewed * Create a patch {{{ svn diff -r {{patchcommitno-1}}:{{patchcommitno-1}} > fix.patch }}} * Check out the production branch {{{ svn checkout --username={{XXX}} https://gforge.statsbiblioteket.dk/svn/netarchivesuite/branches/3.4.0 }}} * Open {{{dk.netarkivet.common.Constants}}} * Increase the patch number (for instance 3.4.1 to 3.4.2) and set development status to unstable * Commit * Apply the patch {{{ patch -p 0 < fix.patch }}} * Commit * Review + followup * Update the development status to codefreeze * Do release test * Follow procedures for release as above