Definition of Done for Simantics Platform Releases

  1. The simantics/platform and simantics/third-party Git repositories have a branch release/x.y.z[.w] and tag x.y.z[.w].
  2. A change log entry is compiled from the issues in this release and made available to the general public separately for the platform and for the open products included in the release train.
  3. Roadmap is up-to-date.
  4. Tutorials are up-to-date and coherent with the platform.
  5. For all new major/minor releases, Wiki documentation is backed up (cloned). This is not necessary for service releases of old release branches.

Simantics Platform Release Process

In the following sections each task is described step by step.

Simantics Platform Release - Step by Step

Create release branch from selected commit

When release stabilisation starts, branch simantics/platform and simantics/third-party repositories:

git clone ssh://<user>@www.simantics.org:29418/simantics/platform.git
cd platform
git branch release/x.y.z[.w] <commit>
git push origin release/x.y.z[.w]

git clone ssh://<user>@www.simantics.org:29418/simantics/third-party.git
cd third-party
git branch release/x.y.z[.w] <commit>
git push origin release/x.y.z[.w]

When creating major/minor releases <commit> is usually a commit in the master branch. With service releases, branch from an existing release/* branch instead.

Prepare release branch for use

Prepare .target files

  1. Retrieve release branch of the platform repository

    git clone ssh://<user>@www.simantics.org:29418/simantics/platform.git
    cd platform
    git branch release/x.y.z[.w] remotes/origin/release/x.y.z[.w]
    git checkout release/x.y.z[.w]
    
  2. Edit the beginning of the file releng/org.simantics.sdk.build.targetdefinition/simantics.target

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?pde version="3.8"?>
    <target name="Simantics 1.25.0" sequenceNumber="10">
    <locations>
    <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
    <unit id="org.simantics.sdk.feature.group" version="1.25.0"/>
    <repository location="http://www.simantics.org/download/master/sdk"/>
    </location>
    

Initialize release branch distribution web site

Review documentation

Documentation to review:

For each wiki page:

Review tutorials

Tag release/* branches

When the release branches are ready for the release, tag them with the tag vx.y.z[.w]:

git clone ssh://<user>@www.simantics.org:29418/simantics/platform.git
cd platform    
git checkout release/x.y.z[.w]
git tag vx.y.z[.w] -m "Simantics x.y.z[.w] release"
git push origin --tags

git clone ssh://<user>@www.simantics.org:29418/simantics/third-party.git
cd third-party
git checkout release/x.y.z[.w]
git tag vx.y.z[.w] -m "Simantics x.y.z[.w] release"
git push origin --tags

Note The -m argument must be supplied to create an annotated tag. Only annotated or signed tags can be pushed to Gerrit.

Tag documentation wikis

Tag documentation wiki using tag.sh script.

The wiki documentation is mainly in MediaWiki installations. The only sane way to tag the documentation is to clone it:

Compile change log entry

Disseminate information about the release

Mail template:

Hello everyone,
   
Simantics release x.y.z[.w] has been released. Head over to
https://www.simantics.org/redmine/news/<news number>
for the release news.

Best regards,
Simantics Release Engineering Team

News entry template:

On <date> Simantics x.y.z[.w] was tagged in SVN. Please find change log at:
* [[simantics-platform:Simantics_xyzw|Simantics x.y.z.w]]

Insert some general thoughts on the release...

TODO