blob: e258137bac034829536ebf575565df0fa1a611e6 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>sop-releng</title>
</properties>
<body>
<section name="Releng">
<subsection name="Context">
<p>Goal is to be able to release your project generated with Papyrus Components</p>
<p>The following procedure works if and only if all plugins have the same version, ie you will upgrade same in batch mode.</p>
</subsection>
<subsection name="Prerequisites">
<p>Ensure your Hudson jobs are green <a href="https://hudson.eclipse.org/papyrus/view/COMPONENTS/job/">https://hudson.eclipse.org/papyrus/view/COMPONENTS/job/</a>.</p>
<p>Ensure that no critical bugs are opened <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=__open__&#38;component=Components&#38;product=Papyrus&#38;query_format=specific">https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=__open__&#38;component=Components&#38;product=Papyrus&#38;query_format=specific</a></p>
<p>Have a look to the nightly documentation in order to fetch the needed repository: <a href="https://hudson.eclipse.org/papyrus/view/Components/job/papyrus-components-website/ws/site-staging/index.html">https://hudson.eclipse.org/papyrus/view/Components/job/papyrus-components-website/ws/site-staging/index.html</a></p>
</subsection>
<subsection name="Actions">
<ul>
<li>Create a bugzilla ticket [Components][releng] Release of version X.Y.Z</li>
<li>Fetch your repository</li>
<li>Modify the change log located in the org.eclipse.papyrus.components.parent/src/changes/changes.xml</li>
<li>Change from .qualifier -SNAPSHOT to a stable version, see CommandA</li>
<li>Change your target to match a specific release version, see commandB</li>
<li>Merge these modifications</li>
<li>Run your associated job Release Components: <a href="https://hudson.eclipse.org/papyrus/view/Component/job/" >papyrus-component</a></li>
<li>It should deploy the new version into the <a href="https://repo.eclipse.org/index.html#nexus-search;quick~org.eclipse.papyrus.components">nexus repository</a> and execute downstream the website job Components: <a href="https://hudson.eclipse.org/papyrus/view/Components/job/papyrus-components-deploy-website">papyrus-components-deploy-website</a>. The downstream jobs can be seen at the end of the build's console report.</li>
<li>Deploy the web site by copying the staging directory in the papyrus web git repository. To do this, first clone the <a href="http://git.eclipse.org/c/www.eclipse.org/papyrus.git/"> Papyrus Web git repository </a> and unzip in the components/components/ directory the unzipped built site from <a href="https://hudson.eclipse.org/papyrus/view/Components/job/papyrus-components-deploy-website/ws/site-staging/*zip*/site-staging.zip"> papyrus-components-deploy-website </a></li>
<li>Modify the index.html to reflect the new release version by adding a new item to the dropdown menu and updating the referenced page address. This file can be found in the Papyrus Web git repository at the root of the components/components/ folder</li>
<li>Increase the different pom.xml, manifest.mf artifact version by adding a +(0.0.1)-SNAPSHOT.qualifier suffix in parent and archetype. See CommandA</li>
<li>Restore the 0.0.0 in all your target files</li>
<li>Merge these modifications</li>
<li>Close the ticket release.</li>
</ul>
<p>CommandA example of command to upgrade pom.xml, plugin.xml, manifest.mf, category.xml, feature.xml etc..., check if it runs on all plugins depending on your profile configuration </p>
<source>mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=1.2.2.qualifier -DupdateVersionRangeMatchingBounds=true -Pproduct</source>
<p>CommandB example of command to upgrade your targets that will switch from a 0.0.0 to a specific version</p>
<source>mvn org.eclipse.tycho.extras:tycho-version-bump-plugin:update-target -Dtarget=/home/flefevre/gitNeon/org.eclipse.papyrus-marte/targetplatform/org.eclipse.papyrus.marte.targetplatform.neon/org.eclipse.papyrus.marte.targetplatform.neon.target </source>
</subsection>
<subsection name="Post-Actions">
<p>You could inform Papyrus Components project leader that you have improve the project in order they switch to the new pom version.</p>
</subsection>
</section>
</body>
</document>