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.
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 issues for the release can be set to status
Ready for release test.
- 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
Phase 3. Actual release
- Update NAS to use the new version of heritrix and check that the version is correct in the Constants class
- Check that the build is green on Jenkins.
Check the local code builds and can be deployed.
- Create the release.
- Note that these commands do the release without running tests locally. As long as Jenkins is green, this is a A VERY GOOD IDEA as you don't want to have to clean up after a release that screws up part-way-through
Now checkout the tagged release version in git and build the javadoc with
this will build the full javadoc in the subdirectory target/site.
- Copy the javadoc to the Webdav server 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.
- There are many possible ways to do the upload to the server. Here is one
- Install davfs2
- Add the new release to the Releases and downloads page. The released zip should be located in the SBForge Nexus releases repo.
- Finish the release notes for the release.
- Release of wiki documentation
- Add to News on wiki
- Send email to netarchivesuite-announce including major features and link to release notes.
So You Screwed Up
What if the mvn release screws up?
Roll the release back with
Delete the release git tag both locally and on github
- If you got as far as release:perform then you probably have some deployed artifacts on nexus that need to be cleared out. This is very laborious by hand, so there is a script to do it. To use the script
- Modify the script to specify the release version to be cleaned up
Create a .netrc file in your home directory with your credentials for sbforge.org. Something like
- Be careful. For pity's sake.
Phase 4. End of codefreeze
- Modify pom version if not done so correctly by 'mvn release:perform'.
- Commit and push file.
- Send end-of-codefreeze mail to netarchivesuite-devel.