-Instead of doing this clone+branch+push sequence for every SDK repository separately,
-please use the included `release-helper.sh` shell script to perform this mechanical work. The script supports many useful basic git commands which all perform the requested operation on all the release train repositories. The operations can be seen from the help text printed by the script when given no arguments:
-
- Usage: release-helper.sh <version> <branch-name> <user-name> clone|branch|checkout|fetch|list-tags|pull|push|push-tags|remove-tag|status|tag
-
-Always begin by cloning all the repositories for working on
-
- ./release-helper.sh x.y.z release/x.y.z your-git-username clone
-
-This will create a directory called `x.y.z` under the current working directory and clone all the repositories under it. The first `<version>` argument is only used for the base working directory `x.y.z`. The second `<branch-name>` argument tells what branch to specify to the action, i.e. `branch`, `checkout`, etc.
-
-Branching and pushing the branches to remote happens as follows:
-
- ./release-helper.sh x.y.z release/x.y.z your-git-username branch
- ./release-helper.sh x.y.z release/x.y.z your-git-username checkout
- ./release-helper.sh x.y.z release/x.y.z your-git-username push
+Instead of doing this clone+branch+push sequence for every SDK repository separately, please use the included `release-helper.sh` shell script to perform this mechanical work.
+The script supports many useful basic git commands which all perform the requested operation on all the release train repositories.
+The operations can be seen from the help text printed by the script when given no arguments:
+
+```
+Usage: release-helper.sh <version> <branch-name> <user-name> <command> [<command-arguments>]
+
+Commands:
+ clone The first thing that needs to be done before anything else
+ Clones all platform repositories under directory <version>
+
+Inspection commands:
+ diff [args] Run git diff [args] for each platform repository
+ log [args] Run git log [args] for each platform repository
+ status [args] Run git status [args] for each platform repository
+ list-tags Run git tag -l for each repository
+
+Action:
+ add
+ branch Run git branch <branch-name> for each platform repository
+ checkout Run git checkout <branch-name> for each repository
+ commit
+ fetch Run git fetch --all for each repository
+ pull Run git pull --all for each repository
+ push Run git push origin <branch> for each repository
+ push-tags Run git push --tags for each repository
+ remove-tag Run git tag -d v<branch> for each repository
+ reset [args] Run git reset [args] for each repository
+ tag Run git checkout <branch> and
+ git tag -a v<branch> -m "Simantics <branch> simultaneous release"
+ for each repository
+
+Compound release commands:
+ prepare-release-branch <from-branch>
+ <from-branch> the name of the branch that the codebase is currently on
+
+Top-level release commands:
+ bump-master-version <from-version> <to-version>
+ <from-version> the version string to replace
+ <to-version> the replacing new version string
+
+ branch-release <from-branch>
+ <from-branch> the branch to create the service branch from
+ e.g. master or release/x.y.z
+```
+
+Begin by cloning all the repositories for working on
+
+ user=<your-git-username>
+ version=x.y.z
+ branch=release/x.y.z
+ ./release-helper.sh $version $branch $user clone
+
+This will create a directory called `x.y.z` under the current working directory and clone all the repositories under it.
+The first `version` argument is only used for the base working directory `x.y.z`.
+The second `branch` argument tells what branch to specify to some of the available actions, e.g. `branch`, `checkout`, etc.
+
+Creating the release branch from master and pushing the new branches to remote happens as follows:
+
+ # When the commit messages appear, add references to created
+ # Gitlab release engineering issues by adding this to the commit message:
+ #
+ # gitlab #xxxx
+ #
+ # where xxxx is the release engineering issue for the respective project
+ ./release-helper.sh $version $branch $user branch-release master
+ ./release-helper.sh $version $branch $user push