Maven Release Process
Retirement
The Maven release has now been retired and replaced by Gradle. See Release_Instructions for how to use the Gradle build to produce a release.
Introduction
We are proposing to largely automate the release process. This is because it currently takes something like 3 hours to pull together when everything goes right.
Automated Process
Once automation with Maven is complete the process will be something like the following.
- Update the pcgen.properties to reflect the new version. Commit this updated version.
- Run @@maven scm:prepare-release@@ to tag the source and update the version info in the maven files.
- Get the next autobuild and regression test it
- If errors are found, branch from the tag made above and fix the issues.
- Once satisfied all is ok, upload the generated release notes document
- Update the notes info for maven
- Run @@maven pcgen:release@@ on a windows machine - this will generate the zip files and the windows installer, and upload them to a new package in SourceForge It will take a little over an hour to process, depending on connection speed.
- Test that the files can be downloaded and run correctly.
- Build and upload the MAC installer
- Make the announcements
Changes Required to Support Maven
To get the process automated is going to require a bit of work however. Here are my suggestions on what needs to be done.
- Standardise our SVN layout - Done
- Rename Trunk to trunk - Not required
- Rename Tags to tags - Done
- Rename Branches to branches - Done
- Simplify the top layer so that we can tag and branch just the pcgen folder - N/A
- Move the Installer directory up into the pcgen directory - Done
- Move the Standards folder into the pcgen/code folder - Done
- Convert the current NSIS script into an XSL script to generate the NSIS script. This is the approach used by maven and should allow us to automate the inclusion of new alpha sources. - Done
- Code the pcgen:release target to run the necessary steps for a release. - Done apart from signing files and creating SF release
- Get all monkeys into the habit of recording noteworthy changes in the changes.xml used to generate the release notes. - Ongoing