Kieker Trace Diagnosis Development

Releasing a new Version

Kieker Trace Diagnosis uses semantic versioning. This means that the version number always consists of three numbers, separated by dots. The last number is the patch version. If a version fixes only bugs, but is otherwise fully compatible with old versions, this number is increased. The second number is the minor version. If a version adds new features, but is otherwise backward-compatible, this number is increased. The first number is the major version. If a version adds new features, which are not backward-compatible or requires a new JDK version, this number is increased. Furthermore, the version number can also contain an optional release candidate part.

<MajorVersion>.<MinorVersion>.<PatchVersion>

<MajorVersion>.<MinorVersion>.<PatchVersion>.RC<RCVersion>


Some examples for valid version numbers are:

  • 2.0.0.RC3
  • 3.0.0
  • 3.1.1

In order to release a new version of Kieker Trace Diagnosis, the following steps should be performed:

  • Execute the maven goal "versions:set" with the parameters "-DnewVersion=2.0.0.RC3 -DoldVersion=* -DgroupId=* -DartifactId=*" on the project's root folder. In this example, the target version is "2.0.0.RC3". Optionally execute the maven goal "versions:commit" to get rid of the backup files.
  • Commit and push the changes to the repository.
  • Tag the new version. The tag's name should always follow the naming convention "Release-<Version>". In our example, this would be "Release-2.0.0.RC3".
  • Wait for the Jenkins to build the new version and download both binary archives (for Windows and for Linux).
  • Edit the now existing release draft on Github and upload the two binary archives. Make sure to mark the release as pre-release, if the version is just a release candidate.
  • Execute the maven goal "versions:set" with the follow up version (followed by -SNAPSHOT). In our example this would likely be "2.0.0.RC4-SNAPSHOT", as the next version will probably be "2.0.0.RC4".
  • Commit and push the changes to the repository.