]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - releng/doc/release.html
Updated release engineering instructions for 1.31.0 release.
[simantics/platform.git] / releng / doc / release.html
index aaccfc9152e0da5fdae61f9e56275cee47dac70e..ebe85ee67cb86e68d53ae6eba18c0f471923dd1f 100644 (file)
@@ -320,19 +320,28 @@ img {
 </ul>\r
 <hr />\r
 <h1>Released Plug-in Components and Products</h1>\r
-<p>There are both plug-in components and products that are part of the &quot;Simantics release train&quot; that shall be released simultaneously to a major or minor Simantics release.</p>\r
+<p>There are both plug-in components and products that are part of the <em>Simantics Release Train</em> that shall be released simultaneously to a major or minor Simantics release.</p>\r
 <p>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.</p>\r
-<p>Products that are part of the release train:</p>\r
-<ul>\r
-<li>Simantics Desktop</li>\r
-<li>Simantics System Dynamics Tool - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/sysdyn.git;a=summary">simantics/sysdyn.git</a></li>\r
-</ul>\r
 <p>Plug-in components that are part of the release train:</p>\r
 <ul>\r
-<li>Simantics R - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/r.git;a=summary">simantics/r.git</a></li>\r
+<li>Simupedia - <a href="https://www.simantics.org:8088/r/gitweb?p=members/simupedia.git;a=summary">members/simupedia.git</a></li>\r
 <li>FMIL - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/fmil.git;a=summary">simantics/fmil.git</a></li>\r
 <li>FMI Studio - <a href="https://www.simantics.org:8088/r/gitweb?p=members/fmi.git;a=summary">members/fmi.git</a></li>\r
-<li>Simupedia - <a href="https://www.simantics.org:8088/r/gitweb?p=members/simupedia.git;a=summary">members/simupedia.git</a></li>\r
+<li>Interoperability components - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/interop.git;a=summary">simantics/interop.git</a></li>\r
+<li>Simantics R binding - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/r.git;a=summary">simantics/r.git</a></li>\r
+<li>Matlab SCL binding - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/matlab.git;a=summary">simantics/matlab.git</a></li>\r
+<li>Python SCL binding - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/python.git;a=summary">simantics/python.git</a></li>\r
+<li>Simantics System Dynamics - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/sysdyn.git;a=summary">simantics/sysdyn.git</a></li>\r
+<li>Simantics District modelling components - <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/district.git;a=summary">simantics/district.git</a></li>\r
+</ul>\r
+<p>Products that are part of the release train:</p>\r
+<ul>\r
+<li>Simantics Desktop</li>\r
+<li>Simantics System Dynamics Tool\r
+<ul>\r
+<li>This is Simantics Desktop with Simantics System Dynamics Tool features installed</li>\r
+</ul>\r
+</li>\r
 </ul>\r
 <p>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.</p>\r
 <hr />\r
@@ -359,7 +368,9 @@ git push origin release/x.y.z[.w]
 <p>When creating major/minor releases <code>&lt;commit&gt;</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
 <h2>Prepare release branch for use</h2>\r
-<h3>Prepare .target files</h3>\r
+<p>In release 1.31.0 Simantics started using uses the wonderful tool from Obeo (<a href="https://github.com/mbarbero/fr.obeo.releng.targetplatform">https://github.com/mbarbero/fr.obeo.releng.targetplatform</a>) to generate <code>.target</code> files from <code>.tpd</code> files which allow much simpler specification of the target contents and also composition of .tpd files via inclusion.</p>\r
+<p>In the following steps, it is recommended to ensure every <code>.target</code> file is up-to-date by regenerating them from <code>.tpd</code> files. While doing so, take care to use up-to-date online contents to perform the generation.</p>\r
+<h3>Prepare <code>.tpd</code> files</h3>\r
 <ol>\r
 <li>\r
 <p>Retrieve release branch of the platform repository</p>\r
@@ -370,29 +381,22 @@ git checkout release/x.y.z[.w]
 </code></pre>\r
 </li>\r
 <li>\r
-<p>Edit all target platform files in  <code>releng/org.simantics.sdk.build.targetdefinition/</code>, i.e.</p>\r
+<p>Edit all target platform files in <code>releng/org.simantics.sdk.build.targetdefinition/</code>, i.e.</p>\r
 <ul>\r
-<li><code>simantics.target</code></li>\r
-<li><code>org.simantics.sdk.build.targetdefinition.target</code></li>\r
+<li><code>org.simantics.sdk.build.targetdefinition.tpd</code></li>\r
+<li><code>simantics.tpd</code></li>\r
 </ul>\r
-<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>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;\r
-&lt;?pde version=&quot;3.8&quot;?&gt;\r
-&lt;target name=&quot;Simantics x.y.z[.w]&quot; sequenceNumber=&quot;11&quot;&gt;\r
-&lt;unit id=&quot;org.simantics.sdk.feature.group&quot; version=&quot;x.y.z[.w]&quot;/&gt;\r
-&lt;unit id=&quot;org.simantics.sdk.source.feature.group&quot; version=&quot;x.y.z[.w]&quot;/&gt;\r
-</code></pre>\r
-<p>Next, replace the following rows in both mentioned files:</p>\r
-<pre><code>&lt;repository location=&quot;http://www.simantics.org/download/master/sdk&quot;/&gt;\r
-&lt;repository location=&quot;http://www.simantics.org/download/master/external-components/maven&quot;/&gt;\r
-&lt;repository location=&quot;http://www.simantics.org/download/master/external-components/manual&quot;/&gt;\r
+<p>Replace the following rows in both mentioned files:</p>\r
+<pre><code>location &quot;http://www.simantics.org/download/master/external-components/maven&quot; {\r
+location &quot;http://www.simantics.org/download/master/external-components/manual&quot; {\r
+include &quot;http://www.simantics.org/download/master/org.simantics.sdk.build.targetdefinition.tpd&quot;\r
+location &quot;http://www.simantics.org/download/master/sdk&quot; {\r
 </code></pre>\r
 <p>with</p>\r
-<pre><code>&lt;repository location=&quot;http://www.simantics.org/download/release/x.y.z[.w]/sdk&quot;/&gt;\r
-&lt;repository location=&quot;http://www.simantics.org/download/release/x.y.z[.w]/external-components/maven&quot;/&gt;\r
-&lt;repository location=&quot;http://www.simantics.org/download/release/x.y.z[.w]/external-components/manual&quot;/&gt;\r
+<pre><code>location &quot;http://www.simantics.org/download/master/release/x.y.z[.w]/maven&quot; {\r
+location &quot;http://www.simantics.org/download/master/release/x.y.z[.w]/manual&quot; {\r
+include &quot;http://www.simantics.org/download/release/x.y.z[.w]/org.simantics.sdk.build.targetdefinition.tpd&quot;\r
+location &quot;http://www.simantics.org/download/release/x.y.z[.w]/sdk&quot; {\r
 </code></pre>\r
 </li>\r
 <li>\r
@@ -426,6 +430,7 @@ the version numbers in target name and <code>org.simantics.sdk.feature.group</co
 An example of these changes can be seen in <a href="https://www.simantics.org:8088/r/gitweb?p=simantics/platform.git;a=commitdiff;h=ae93c9930c6345c32219e6845b9e72e9d9d2d28c">gitweb</a>.</p>\r
 <p>Commit the changes with the following commit message</p>\r
 <pre><code>Bumped master target and org.simantics.sdk feature versions to x.y.z[.w].\r
+\r
 refs #yyyy\r
 </code></pre>\r
 <p>where <code>#yyyy</code> is the number of the next release's release engineering issue.</p>\r
@@ -449,6 +454,20 @@ refs #yyyy
 <p>Running these two builds will ensure that both the external components required to build the SDK and the Simantics SDK for the new release branch are published online at <code>http://www.simantics.org/download/release/x.y.z[.w]/</code>.</p>\r
 <p>After this, whenever changes are pushed/merged to <code>release/x.y.z[.w]</code> branch in Gerrit, new <strong>SDK/Simantics SDK</strong> builds are triggered automatically and they will publish the results at the same location online.</p>\r
 <p>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 <a href="https://www.simantics.org/jenkins/job/SDK/job/Simantics%20SDK/">SDK/Simantics SDK</a> Jenkins job.</p>\r
+<h3>Update <code>.target</code> files</h3>\r
+<p>Lastly, we want to change the <code>.target</code> files to point to the correct P2 repository locations. This happens by opening the previously edited <code>.tpd</code> files in Obeo's editor and regenerating the <code>.target</code> files by pressing Alt+R.</p>\r
+<p>Push the changed files to remote again with commit message:</p>\r
+<pre><code>Configured release/x.y.z[.w] branch .target files.\r
+\r
+refs #xxxx\r
+</code></pre>\r
+<h3>Test Release Train build</h3>\r
+<p>Trigger an execution of the <a href="https://www.simantics.org/jenkins/job/simantics-release-train/">simantics-release-train</a> Jenkins job with parameters</p>\r
+<ul>\r
+<li>GERRIT_REFNAME: <code>release/x.y.z[.w]</code></li>\r
+<li>PUBLISH_ARTIFACTS: <code>true</code></li>\r
+</ul>\r
+<p>to ensure that all components of the release train build fine and to publish first versions of P2 repositories of everything online.</p>\r
 <h2>Review documentation</h2>\r
 <p>Documentation to review:</p>\r
 <ul>\r
@@ -583,16 +602,6 @@ Insert some general thoughts on the release...
 <hr />\r
 <h1>TODO</h1>\r
 <ul>\r
-<li>Start using <a href="https://github.com/mbarbero/fr.obeo.releng.targetplatform">https://github.com/mbarbero/fr.obeo.releng.targetplatform</a> to generate <code>.target</code> files. <code>.tpd</code> files allow specifying version ranges instead of specific versions.</li>\r
-</ul>\r
-<ul>\r
-<li>Create a parametrized release train pipeline build in Jenkins that creates all artifacts of a simantics release\r
-<ul>\r
-<li>Desktop, Sysdyn, R, Simupedia, FMIL, FMI Studio</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<ul>\r
 <li>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</li>\r
 </ul>\r
 \r