X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=releng%2Fdoc%2Frelease.md;h=3f4d69bfae3222248afa0446d6040239f09286f9;hb=4bb82aede02d798846196cc4f51e09d9f9161fef;hp=6d55c144db228408b2b2daf2aa1bf96a6b41ade9;hpb=c26409b1caf2f1e560d37c5befd11b442399c3fe;p=simantics%2Fplatform.git diff --git a/releng/doc/release.md b/releng/doc/release.md index 6d55c144d..3f4d69bfa 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/master/release/x.y.z[.w]/maven" { + location "http://www.simantics.org/download/master/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]`. @@ -120,6 +121,35 @@ With service releases, branch from an existing `release/*` branch instead. provider-name="VTT Technical Research Centre of Finland"> ~~~ + An example of these changes can be seen in [gitweb](https://www.simantics.org:8088/r/gitweb?p=simantics/platform.git;a=commit;h=bab5c9bd68277c76dc5c20bc7a60a9896cbd1540). + +4. Ensure that Redmine has a release engineering issue for the branched release, such as [Simantics 1.30.0 release engineering](https://www.simantics.org/redmine/issues/7263). Make a copy of the previous release issue to create the new one. Include link to original issue while copying. + +5. Commit the changes made + + git commit -a + + with the commit message + + Configured release/x.y.z[.w] branch for SDK builds. + + refs #xxxx + + 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] + +6. If you are branching from `master`, bump the revision of master right now to start the next release cycle in master. + An example of these changes can be seen in [gitweb](https://www.simantics.org:8088/r/gitweb?p=simantics/platform.git;a=commitdiff;h=ae93c9930c6345c32219e6845b9e72e9d9d2d28c). + + 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. + ### Initialize release branch distribution web site * Run [SDK/Deploy External Components to Web](https://www.simantics.org/jenkins/job/SDK/job/Deploy%20External%20Components%20to%20Web/) build with parameters: @@ -135,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: @@ -158,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. @@ -183,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/ @@ -218,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: @@ -227,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. @@ -250,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. - +* 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 \ No newline at end of file