Making a new ANNIS release
Introduction
The release process, including all necessary tests, might take several days and includes fixing bugs that are only discovered in the release testing process. Never ever add new features in this release process, there is the separate "develop" branch which you can use for this purposes.
You must have mdBook installed to make a release. Otherwise the documentation can't be created.
Release Process
Initialization phase
- Start the release process by executing
mvn gitflow:release-start
for a regular release (branched from thedevelop
) ormvn gitflow:hotfix-start
for a hotfix that is branched frommaster
. The command will ask you for the new version number, use semantic versioning. - Add new changelog entry, if some important information is missing create an enhancement or bugfix issue in GitHub and repeat
- Get the GitHub Milestone id associated the release (is visible in the URL if you view the issues of the release tracking milestone).
- execute this script
Misc/changelog.py <milestone-id>
- add the output to the begin of the
CHANGELOG
file
- Update and commit license information
mvn license:add-third-party license:download-licenses
Testing cycle
- Build the complete project with tests.
mvn clean
mvn -DskipTests=true install
mvn test
- Do manual tests. If you have to fix any bug document it in the issue tracker, update the changelog and start over at step 1. If no known bugs are left to fix go to the next section.
Finish phase
- Finish the release by executing either
mvn gitflow:release-finish
for regular releases ormvn gitflow:hotfix-finish
for hotfixes. - Release the staging repository to Maven Central with the Nexus interface: https://oss.sonatype.org/
- Create a new release on GitHub including the changelog. Upload the binaries from Maven repository to GitHub release as well.