-<p>At the beginning of simantics.target file, increment <code>sequenceNumber</code> by 1 and replace\r
-the version numbers in target name and <code>org.simantics.sdk.feature.group</code> and\r
-<code>org.simantics.sdk.source.feature.group</code> with <code>x.y.z[.w]</code>:</p>\r
-<pre><code><?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<?pde version="3.8"?>\r
-<target name="Simantics x.y.z[.w]" sequenceNumber="11">\r
-<unit id="org.simantics.sdk.feature.group" version="x.y.z[.w]"/>\r
-<unit id="org.simantics.sdk.source.feature.group" version="x.y.z[.w]"/>\r
-</code></pre>\r
-<p>Next, replace the following rows in both mentioned files:</p>\r
-<pre><code><repository location="http://www.simantics.org/download/master/sdk"/>\r
-<repository location="http://www.simantics.org/download/master/external-components/maven"/>\r
-<repository location="http://www.simantics.org/download/master/external-components/manual"/>\r
-</code></pre>\r
-<p>with</p>\r
-<pre><code><repository location="http://www.simantics.org/download/release/x.y.z[.w]/sdk"/>\r
-<repository location="http://www.simantics.org/download/release/x.y.z[.w]/external-components/maven"/>\r
-<repository location="http://www.simantics.org/download/release/x.y.z[.w]/external-components/manual"/>\r
-</code></pre>\r
-</li>\r
-<li>\r
-<p>Edit version number of <code>org.simantics.sdk</code> feature in <code>features/org.simantics.sdk.feature/feature.xml</code> to <code>x.y.z[.w]</code>.</p>\r
-<pre><code><feature\r
- id="org.simantics.sdk"\r
- label="Simantics SDK"\r
- version="x.y.z"\r
- provider-name="VTT Technical Research Centre of Finland">\r
-</code></pre>\r
-<p>An example of these changes can be seen in <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/platform.git;a=commit;h=bab5c9bd68277c76dc5c20bc7a60a9896cbd1540">gitweb</a>.</p>\r
-</li>\r
-<li>\r
-<p>Ensure that Redmine has a release engineering issue for the branched release, such as <a href="https://www.simantics.org/redmine/issues/7263">Simantics 1.30.0 release engineering</a>. Make a copy of the previous release issue to create the new one. Include link to original issue while copying.</p>\r
-</li>\r
-<li>\r
-<p>Commit the changes made</p>\r
-<pre><code> git commit -a\r
+<h2>Create release branch from selected commit</h2>\r
+<p>When release stabilisation starts, all relevant repositories need to be branched.\r
+When creating major/minor releases <code><commit></code> is usually a commit in the <code>master</code> branch.\r
+With service releases, branch from an existing <code>release/*</code> branch instead.</p>\r
+<p>Instead of doing this clone+branch+push sequence for every SDK repository separately, please use the included <code>release-helper.sh</code> shell script to perform this mechanical work.\r
+The script supports many useful basic git commands which all perform the requested operation on all the release train repositories.\r
+The operations can be seen from the help text printed by the script when given no arguments:</p>\r
+<pre><code>Usage: release-helper.sh <version> <branch-name> <user-name> <command> [<command-arguments>]\r
+\r
+Commands:\r
+ clone The first thing that needs to be done before anything else\r
+ Clones all platform repositories under directory <version>\r
+\r
+Inspection commands:\r
+ diff [args] Run git diff [args] for each platform repository\r
+ log [args] Run git log [args] for each platform repository\r
+ status [args] Run git status [args] for each platform repository\r
+ list-tags Run git tag -l for each repository\r
+\r
+Action:\r
+ add\r
+ branch Run git branch <branch-name> for each platform repository\r
+ checkout Run git checkout <branch-name> for each repository\r
+ commit\r
+ fetch Run git fetch --all for each repository\r
+ pull Run git pull --all for each repository\r
+ push Run git push origin <branch> for each repository\r
+ push-tags Run git push --tags for each repository\r
+ remove-tag Run git tag -d v<branch> for each repository\r
+ reset [args] Run git reset [args] for each repository\r
+ tag Run git checkout <branch> and\r
+ git tag -a v<branch> -m "Simantics <branch> simultaneous release"\r
+ for each repository\r
+\r
+Compound release commands:\r
+ prepare-release-branch <from-branch>\r
+ <from-branch> the name of the branch that the codebase is currently on\r
+\r
+Top-level release commands:\r
+ bump-master-version <from-version> <to-version>\r
+ <from-version> the version string to replace\r
+ <to-version> the replacing new version string\r
+\r
+ branch-release <from-branch>\r
+ <from-branch> the branch to create the service branch from\r
+ e.g. master or release/x.y.z\r