We are doing two kind of releases at the same time:
The release jars for each project are deployed to the Maven repository. Making release artefacts should follow the following steps:
Maven Repro Access
Make sure you got access to Maven repro via our Sonatype JIRA issue. Add your userID & password to your local <USER_HOME>/.m2/settings.xml.
Install GNU PG
Install in your OS. See details in tutorial 'publish your artifacts to Maven'
Configure GNU PG
Add your GNU and JIRA credentials to your local <USER_HOME>/.m2/settings.xml. See our example settings.xml and search & replace the placeholders starting with 'YOUR_'.
Clean start
Make sure that your working copy is clean. Preferrably check out a clean version from GitHub.
Prepare the release
mvn release:prepare
This will start the interactive release preparation. You need to supply Maven with the versions of the release. "release version" should be the version of the intended release (recommended value should be fine). "SCM release tag or label" should include the RC version (e.g. odftoolkit-0.10.0). "new development version" should be the current SNAPSHOT version.
Perform the release
mvn release:perform
This will checkout the tag to the target directory, build and package everything and upload the artifacts to the staging repository. Users will download the mirrored release artifacts from machines outside TDF control. Users need to verify that the copy downloaded is identical to the original. Mirrored copies of checksums, KEYS and signature files (.asc and .md5 files) will be present on the mirrors but must never be used for verification. So, all links from the podling website to signatures, sums and KEYS need to refer to the original documents on GitHub. See release signing guide for more information.
Publish Document
Publish all of the prepared document on the website and update the download page.
Send Announcements
The release manager need to send announcements to odf-dev list. The sample looks like:
Subject:[ANNOUNCEMENT] "ODF Toolkit 0.10.0" & "ODF Toolkit 0.9.0 Release"
To: dev@odftoolkit.org
Hi all,
The ODF Toolkit team is pleased to announce the release of 0.10.0 (>=JDK 9) and in addition a release of 0.9.0 (JDK 8).
The list of changes is available in the release notes[1].
All new ODF Toolkit components (binary, source and JavaDoc bundles) are available as GitHub Releases [2].
Or in the central Maven repository under Group ID "org.apache.odftoolkit" and Version "0.10.0" and "0.9.0".
[1] ./ReleaseNotes.html
[2] https://github.com/tdf/odftoolkit/releases
The GitHub release has always six files:
Three ZIPs representing the ODF Toolkit:
Three SHA files, one for each ZIP to proof their correctness.
mvn clean
mvn install -Ppedantic
mvn install -Ppedantic > mylogFile.txt 2>&1*
NOTE: The option pedantic checks if all files have either a valid license header or an explicit exception. Often helpful for reviewing the build output is redirecting it into an own logfile.
Test the JARs if they are working and if the documentation is correct, esp. JavaDoc references to ODF elements, attributes and units have been created correctly by our JavaDoc taglet project.
If all project artefacts have been created without an error, they can be bundled into ZIPs and signed via:
mvn antrun:run@prepare-github-release -Pprepare-release
The output will be created in the directory: 'ODF_TOOLKIT_BASE/target/release/'.
NOTE: Don't forget to check if the ZIPs of the result directory have the correct content.