X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=releng%2Fdoc%2Frelease.md;h=93796ce1436fb66a5691fd377f8187ba1f0d4f84;hp=b16736e80aeed1e5cef81c33852eed98d0a115ac;hb=9bc64dd138fad9e364dd69e9c3e1e337cf7e8b32;hpb=fad36d463b75c3a9944d875fc627c3533f6da74d diff --git a/releng/doc/release.md b/releng/doc/release.md index b16736e80..93796ce14 100644 --- a/releng/doc/release.md +++ b/releng/doc/release.md @@ -22,23 +22,29 @@ ---- -# Released Plug-in Components and Products +# Released Plug-in Components and Products -There are both plug-in components and products that are part of the "Simantics release train" that shall be released simultaneously to a major or minor Simantics release. +There are both plug-in components and products that are part of the _Simantics Release Train_ that shall be released simultaneously to a major or minor Simantics release. -Plug-in components are installable features that are deployed online as P2 repositories for general availability. Products are deployed as ZIP files and made available online in designated locations on simantics.org. - -Products that are part of the release train: -* Simantics Desktop -* Simantics System Dynamics Tool - [simantics/sysdyn.git](https://www.simantics.org:8088/r/gitweb?p=simantics/sysdyn.git;a=summary) +Plug-in components are installable features that are deployed online as P2 repositories for general availability. Products are deployed as ZIP files and made available online in designated locations on simantics.org. Plug-in components that are part of the release train: -* Simantics R - [simantics/r.git](https://www.simantics.org:8088/r/gitweb?p=simantics/r.git;a=summary) +* Simupedia - [members/simupedia.git](https://www.simantics.org:8088/r/gitweb?p=members/simupedia.git;a=summary) * FMIL - [simantics/fmil.git](https://www.simantics.org:8088/r/gitweb?p=simantics/fmil.git;a=summary) * FMI Studio - [members/fmi.git](https://www.simantics.org:8088/r/gitweb?p=members/fmi.git;a=summary) -* Simupedia - [Members SVN](https://www.simantics.org/svn/members/simupedia) +* Interoperability components - [simantics/interop.git](https://www.simantics.org:8088/r/gitweb?p=simantics/interop.git;a=summary) +* Simantics R binding - [simantics/r.git](https://www.simantics.org:8088/r/gitweb?p=simantics/r.git;a=summary) +* Matlab SCL binding - [simantics/matlab.git](https://www.simantics.org:8088/r/gitweb?p=simantics/matlab.git;a=summary) +* Python SCL binding - [simantics/python.git](https://www.simantics.org:8088/r/gitweb?p=simantics/python.git;a=summary) +* Simantics System Dynamics - [simantics/sysdyn.git](https://www.simantics.org:8088/r/gitweb?p=simantics/sysdyn.git;a=summary) +* Simantics District modelling components - [simantics/district.git](https://www.simantics.org:8088/r/gitweb?p=simantics/district.git;a=summary) + +Products that are part of the release train: +* Simantics Desktop +* Simantics System Dynamics Tool + * This is Simantics Desktop with Simantics System Dynamics Tool features installed -For simplicity, each of these components are versioned accoring to platform versioning, i.e. for Platform SDK 1.26.0 there will be Simantics Desktop 1.26.0, Sysdyn 1.26.0, and so on. +For simplicity, each of these components are versioned accoring to platform versioning, i.e. for Platform SDK 1.26.0 there will be Simantics Desktop 1.26.0, Sysdyn 1.26.0, and so on. ---- @@ -71,7 +77,11 @@ With service releases, branch from an existing `release/*` branch instead. ## Prepare release branch for use -### Prepare .target files +In release 1.31.0 Simantics started using uses the wonderful tool from Obeo ([https://github.com/mbarbero/fr.obeo.releng.targetplatform](https://github.com/mbarbero/fr.obeo.releng.targetplatform)) to generate `.target` files from `.tpd` files which allow much simpler specification of the target contents and also composition of .tpd files via inclusion. + +In the following steps, it is recommended to ensure every `.target` file is up-to-date by regenerating them from `.tpd` files. While doing so, take care to use up-to-date online contents to perform the generation. + +### Prepare `.tpd` files 1. Retrieve release branch of the platform repository @@ -80,35 +90,26 @@ With service releases, branch from an existing `release/*` branch instead. git branch release/x.y.z[.w] remotes/origin/release/x.y.z[.w] git checkout release/x.y.z[.w] -2. Edit all target platform files in `releng/org.simantics.sdk.build.targetdefinition/`, i.e. - * `simantics.target` - * `org.simantics.sdk.build.targetdefinition.target` +2. Edit all target platform files in `releng/org.simantics.sdk.build.targetdefinition/`, i.e. + * `org.simantics.sdk.build.targetdefinition.tpd` + * `simantics.tpd` - At the beginning of simantics.target file, increment `sequenceNumber` by 1 and replace - the version numbers in target name and `org.simantics.sdk.feature.group` and - `org.simantics.sdk.source.feature.group` with `x.y.z[.w]`: - ~~~ - - - - - - ~~~ - - Next, replace the following rows in both mentioned files: + Replace the following rows in both mentioned files: ~~~ - - - + location "http://www.simantics.org/download/master/external-components/maven" { + location "http://www.simantics.org/download/master/external-components/manual" { + include "http://www.simantics.org/download/master/org.simantics.sdk.build.targetdefinition.tpd" + location "http://www.simantics.org/download/master/sdk" { ~~~ with ~~~ - - - + location "http://www.simantics.org/download/release/x.y.z[.w]/maven" { + location "http://www.simantics.org/download/release/x.y.z[.w]/manual" { + include "http://www.simantics.org/download/release/x.y.z[.w]/org.simantics.sdk.build.targetdefinition.tpd" + location "http://www.simantics.org/download/release/x.y.z[.w]/sdk" { ~~~ 3. Edit version number of `org.simantics.sdk` feature in `features/org.simantics.sdk.feature/feature.xml` to `x.y.z[.w]`. @@ -134,7 +135,7 @@ With service releases, branch from an existing `release/*` branch instead. refs #xxxx - where `#xxxx` is the number of the x.y.z[.w] release engineering issue and push them to remote + where `#xxxx` is the number of the x.y.z[.w] release engineering issue and push them to remote git push origin release/x.y.z[.w] @@ -144,6 +145,7 @@ With service releases, branch from an existing `release/*` branch instead. Commit the changes with the following commit message Bumped master target and org.simantics.sdk feature versions to x.y.z[.w]. + refs #yyyy where `#yyyy` is the number of the next release's release engineering issue. @@ -163,6 +165,24 @@ After this, whenever changes are pushed/merged to `release/x.y.z[.w]` branch in This means that one does not have to do any tricks after this to build and publish the SDK as a P2 repository online. It is an automated process that is performed by the [SDK/Simantics SDK](https://www.simantics.org/jenkins/job/SDK/job/Simantics%20SDK/) Jenkins job. +### Update `.target` files + +Lastly, we want to change the `.target` files to point to the correct P2 repository locations. This happens by opening the previously edited `.tpd` files in Obeo's editor and regenerating the `.target` files by pressing Alt+R. + +Push the changed files to remote again with commit message: + + Configured release/x.y.z[.w] branch .target files. + + refs #xxxx + +### Test Release Train build + +Trigger an execution of the [simantics-release-train](https://www.simantics.org/jenkins/job/simantics-release-train/) Jenkins job with parameters +* GERRIT_REFNAME: `release/x.y.z[.w]` +* PUBLISH_ARTIFACTS: `true` + +to ensure that all components of the release train build fine and to publish first versions of P2 repositories of everything online. + ## Review documentation Documentation to review: @@ -186,21 +206,21 @@ For each wiki page: When the release branches are ready for the release, tag them with the tag `vx.y.z[.w]`: git clone ssh://@www.simantics.org:29418/simantics/platform.git - cd platform + cd platform git checkout release/x.y.z[.w] - git tag vx.y.z[.w] -m "Simantics x.y.z[.w] release" + git tag vx.y.z[.w] -m "Simantics x.y.z[.w] simultaneous release" git push origin --tags git clone ssh://@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 tag vx.y.z[.w] -m "Simantics x.y.z[.w] simultaneous release" git push origin --tags > Note The -m argument must be supplied to create an [annotated tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging). > Only annotated or signed tags can be pushed to Gerrit. -## Backup documentation wiki databases +## Backup documentation wiki databases This step is only necessary for major/minor releases, not for service releases. @@ -211,7 +231,7 @@ The wiki databases to be backed up are: These are MediaWiki installations. The only sane way to "tag" the documentation is to back up the mysql database backing the wiki. Should the wiki be required at a later time for some reason, we'll put the documentation up then in a -separate Mediawiki installation. +separate Mediawiki installation. 1. Dump documentation wiki databases using [dump-wikis.sh](./dump-wikis.sh) script. 2. Put the generated backup x.y.z.tar.gz at /var/backup/simantics-releases/x.y.z/wiki/ @@ -246,8 +266,8 @@ separate Mediawiki installation. ## Disseminate information about the release -* [Developer Wiki](http://dev.simantics.org): Update roadmap at http://dev.simantics.org/index.php/Roadmap -* [Redmine](https://www.simantics.org/redmine/): Post news on the developer/user-visible changes here. +* [Developer Wiki](http://dev.simantics.org): Update roadmap at [http://dev.simantics.org/index.php/Roadmap](http://dev.simantics.org/index.php/Roadmap) +* [Redmine](https://www.simantics.org/redmine/): Post news on the developer/user-visible changes here * [simantics.org](https://www.simantics.org): Post news on the release and a link to the redmine post * [Members Wiki](https://www.simantics.org/members/): Update frame plan to reflect the realized dates and link to Redmine news * [mailto:simantics-developers@simantics.org](mailto:simantics-developers@simantics.org) Send "newsletter" to `simantics-developers@simantics.org: @@ -255,7 +275,7 @@ separate Mediawiki installation. **Newsletter template:** ~~~ Hello everyone, - + Simantics release x.y.z[.w] has been released. Head over to https://www.simantics.org/redmine/news/ for the release news. @@ -278,11 +298,4 @@ Insert some general thoughts on the release... # TODO -* Create a parametrized release train pipeline build in Jenkins that creates all artifacts of a simantics release - * Desktop, Sysdyn, R, Simupedia, FMIL, FMI Studio - - * Incorporate tutorial code in the platform repository as a separate folder to allow platform builds to directly ensure that the tutorial code still builds OK - -* Start using https://github.com/mbarbero/fr.obeo.releng.targetplatform to generate `.target` files. `.tpd` files allow specifying version ranges instead of specific versions. -