Skip to content

Semantics Release Process

Alexander SR edited this page Sep 4, 2023 · 5 revisions

This document guides you through the steps needed to releasing a new version of KIELER.

Prerequisites

You will need a terminal application, Python v2, Inkscape, Gimp, and a user account on the RTSYS servers.

Release Guide

To release a new version of the KIELER Semantics features and product, please follow these steps:

  1. Set version numbers. Since 0.12.0 the semantics plugins and features no longer have individual version numbers. Instead all plugins share the version of the corresponding release. To set the version number in all pom files, manifests of all plugins and features, including their references in other files run the following script located in build/scripts/ in the semantics repository:

    python version.py x.x.x
  2. Check if all plug-ins to be released are contained in a feature. This is particularly important for new plug-ins.
    Your can use the sanity check script to check the feature containment:

    python sanity.py

    This is a good time to make sure that every plugin has a proper license file and proper metadata. Check the nightly RCA build to make sure that plugin names and provider names are set correctly.

  3. Update the splash screen with the new version number. Adjust the version number in the splash.svg in plugins/de.cau.cs.kieler.core.product/images. Export to splash.bmp (no alpha channel!) in the plugin root folder.

    Info for bmp export: Dimensions are 500 x 330 px Save the bmp image WITHOUT color space information. The opposite is the default in Gimp. Also, the bitmap should be saved in 24-bit format (8R, 8G, 8B). See: https://wiki.eclipse.org/Platform-releng/Updating_Branding

  4. Create a release branch in the mainline repository. From this on, the master branch can be used for normal development, while the release branch will only receive bugfixes and release-specific changes. Bugfixes are usually first developed on the master branch, and are then cherry-picked into the release branch.

  5. Increase the version numbers on the master branch. After the release the master should have the version of the next release. Also adjust the splash screen. (Usually accelerates step 1 and 3 of the next release)

  6. Configure the build files in the repository. The build configuration in the repository must be adjusted for the release build. To apply the configuration run the following script located in build/scripts/:

    python configure.py -release x.x.x

    This script is also capable of configuring the repository for a nightly build, to force correct configuration or revert effects of a release configuration.

  7. Create a new Stream for the release in the Oomph setup.

  8. Create a tag for the release.

  9. Create a new release in GitHub. Click create new release and select the release tag. Use the automatically generated release notes and adjust them based on relevance. The release note structure should conform previous releases.

  10. Download the build artifacts Download the "P2 Repository" and "All Products" artifact from the CI action of the release branch.

  11. Attach the build artifacts to the release notes Attach the p2 repository and the products (individually) to the release notes.

  12. Upload the build artifacts to the RTSYS servers Connect to kieler@aeon. Upload and unpack the p2 repository to public_html/updatesite/release-semantics-x.x.x/ (e.g. https://rtsys.informatik.uni-kiel.de/~kieler/updatesite/release-semantics-1.3.0/). Upload the products to public_html/files/release_sccharts_x.x.x/ (e.g. https://rtsys.informatik.uni-kiel.de/~kieler/files/release_sccharts_1.3.0/).

  13. Update top-level update site. Adjust the update site URL in compositeArtifacts.xml and compositeContent.xml located in updatesite/.

  14. Adjust 'Downloads' wiki page. Adjust the Downloads wiki page to reflect the latest release.

  15. Send the word out to the mailing list and do a release party!