<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
jBPM 4 Release Procedure
</h3>
<span style="margin-bottom: 10px;">
modified by <a href="http://community.jboss.org/people/admin">Administrator Administrator</a> in <i>jBPM</i> - <a href="http://community.jboss.org/docs/DOC-13360">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><h1>Preparations on trunk</h1><hr/><ul><li>Verify addition of version axis to hudson job jbpm4-upgrade</li><li>Verify all jbpm4 hudson jobs run ok</li><li><span style="font-weight: normal;">Update release notes: Add release notes to the modules/distro/src/main/resources/readme.html for both JIRA projects<br/></span><ul><li><a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM"><span style="font-weight: normal;">https://jira.jboss.org/jira/browse/JBPM</span></a></li><li><span style="font-weight: normal;"><a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/GPD"><span class="active_link">https://jira.jboss.org/jira/browse/GPD</span></a></span></li></ul></li><li>Synchronize with team on date-time for creating release branch<br/></li><li>Verify that GPD and Console released they're versions</li><li>Verify all jira issues are resolved<br/></li><li>Verify example image files<br/></li><li>Verify version related stuff<br/></li></ul><h1>Work on the release branch and tagging</h1><hr/><h3>Create release branch</h3><p>This should be done after codefreeze.</p><ol><pre class="jive-pre"><code class="jive-code">svn -m "creating release branch for jbpm-4.2"
copy  https://svn.jboss.org/repos/jbpm/jbpm4/trunk
https://svn.jboss.org/repos/jbpm/jbpm4/branches/jbpm-4.2</code></pre><li>Optionally you can switch your local working copy to that branch with<pre class="jive-pre"><code class="jive-code"><span>svn switch </span><a class="jive-link-external-small" href="https://svn.jboss.org/repos/jbpm/jbpm4/branches/jbpm-4.2" target="_blank">https://svn.jboss.org/repos/jbpm/jbpm4/branches/jbpm-4.2</a></code></pre></li><li>On the release branch, update <version>4-SNAPSHOT</version> in all pom.xml files to the exact version like <version>4.0.Alpha2</version> or <version>4.3</version> and commit.  Make sure that you don't accidently mess with the referenced versions of the designer, console or parser.  Double check that <strong style="font-family: courier new,courier;">public static final String JBPM_LIBRARY_VERSION = "4.2-SNAPSHOT";</strong> in ProcessEngineImpl is updated to represent the correct library version.</li><li>Verify that GPD and Console point to the right version in the root pom.xml</li></ol><h3>Switch CI to the branch</h3><p><span>For all hudson jbpm4 jobs (except for jbpm4-base) </span><a class="jive-link-external-small" href="http://hudson.qa.jboss.com/hudson/view/JBPM4/" target="_blank">http://hudson.qa.jboss.com/hudson/view/JBPM4/</a><span>  switch the svn url to the branch.</span></p><h3>Build the distribution</h3><p>Before building the distribution, check the configuration of your local jboss maven repo.  The property <strong style="font-family: courier new,courier;">jboss.maven.repository</strong> is referenced from the root level pom:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code">  <distributionManagement>
    <repository>
      <id>repository.jboss.org</id>
      <name>JBoss Maven Repository</name>
      <url>file://${jboss.maven.repository}</url>
    </repository></code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>To customize the value on your machine, create a ${user.home}/.m2/settings.xml like this</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code"><settings xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <profile>
      <id>publish</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <jboss.maven.repository>c/MyLocalRepo</jboss.maven.repository>
      </properties>
    </profile>
  </profiles>
</settings></code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Then build the distribution like this.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code">mvn -Pdistro,docs clean deploy</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>That will create the distribution file in <span style="font-family: courier new,courier;">modules/distro/target</span> and it will create publishable artifacts in your local jboss maven repository. Then also deploy the test-upgrade module like this</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code">cd modules/test-upgrade
mvn -DskipTests clean deploy</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><h3>Manual testing<br/></h3><p>The purpose of manual testing is by using only a distribution in ways that our users use it as well.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>If you use the <strong style="font-family: courier new,courier;">qa/demo.setup.jboss.bat</strong> or <strong style="font-family: courier new,courier;">qa/demo.setup.tomcat.bat</strong> script, it automates most of the tedious work below: builds the distro (<strong>but does not deploy</strong>), installs jboss, installs jbpm into jboss, starts jboss, creates the db schema, deploys the examples, installs eclipse and starts eclipse.  If you use this script, you still need to build the distro as shown above up to the <strong>deploy</strong>.  The test demo setup only does a distro build with <strong>install</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><ul><li>Install the distribution<br/> <ul><li>Install jBPM using the installer</li><li>Start JBoss AS</li><li>Start eclipse</li><li>Install designer plugin from the distribution</li><li>Import the examples</li><li>Define the jBPM Libraries </li><li>Add the jPDL xsd to the catalog<br/></li><li>Run all the examples (right click on the src root, run as JUnit test)<br/></li><li>Deploy the examples with the ant script<br/></li></ul></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>Scenarios</strong></p><p>The following scenarios should be build manually and are ideal excercises to blog about.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>Manual test 1: Task forms<br/></strong></p><ul><li>Create and deploy a minimal process with a task form</li><li>Start the task forms example and run through the complete execution with the console.</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>Manual test 2: Timer</strong></p><ul><li>Create and deploy a minimal process with a timer or a task reminder<br/> </li><li>Run this on jboss and tomcat</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>Manual test 3: Enterprise</strong></p><ul><li>Create and deploy a minimal ejb app using jBPM<br/> </li><li>Run this on jboss</li><li>Validates different forms of classloading <ul><li>Deploy a user code class on the jboss-wide classpath (in the lib directory)</li><li>Deploy a user code class in the enterprise application or ejb that calls jBPM</li><li>Deploy a user code class inside of the business archive<br/></li></ul></li><li>Validates different forms of transactions<ul><li>Make sure you invoke jBPM without a JTA transaction</li><li>Make sure you invoke jBPM with an existing JTA transaction</li><li>Make sure you validate proper rollback behaviour</li></ul></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>Manual test 4: Reporting</strong></p><ul><li>Create a couple of executions and look at the reports</li></ul><h3>Create the tag</h3><p>Once the QA runs successfully, a tag must be created for the release and the branch can be deleted.</p><h1>Uploads</h1><hr/><h3>Upload distribution to sourceforge</h3><ul><li>Create release <a class="jive-link-external-small" href="http://sourceforge.net/projects/jbpm">http://sourceforge.net/projects/jbpm</a></li><li>Upload using sftp</li><li>See <a class="jive-link-external-small" href="http://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download#SFTP">http://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download#SFTP</a></li><li>See <a class="jive-link-external-small" href="http://apps.sourceforge.net/trac/sitedocs/wiki/File%20management%20service">http://apps.sourceforge.net/trac/sitedocs/wiki/File%20management%20service</a></li></ul><h3>Upload the maven artifacts to the public</h3><p>Make sure that the build producing the maven repository artifacts activated the distro profile.  As that profile includes the generation of the source jars.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The artifacts from your local jboss maven repository then need to be committed with svn to</p><p style="padding-left: 30px;"><span style="font-family: courier new,courier;"><a class="jive-link-external-small" href="https://svn.jboss.org/repos/repository.jboss.org/maven2/org/jbpm/jbpm4" target="_blank">https://svn.jboss.org/repos/repository.jboss.org/maven2/org/jbpm/jbpm4</a></span></p><h3>Update documentation</h3><ul><li>Upload full doc contents of the doc directory in the installed distribution</li><li>to ftp.jboss.com directory v4</li><li><strong>Don't forget to update/upload the XSD !</strong></li></ul><h1>Postprocessing</h1><hr/><h3>Make noise</h3><ul><li>Send note to the core</li><li>Blog about it</li></ul><h3>Release the release in JIRA</h3><ul><li><a class="jive-link-external-small" href="https://jira.jboss.org/jira/secure/project/ManageVersions.jspa?pid=10052">https://jira.jboss.org/jira/secure/project/ManageVersions.jspa?pid=10052</a></li></ul><h3>Update version references in codebase</h3><ul><li>search and replace 4.x-SNAPSHOT </li><li><span>search namespace </span><a class="jive-link-external-small" href="http://jbpm.org/4.x/jpdl" target="_blank">http://jbpm.org/4.x/jpdl</a><span> and update where necessary.  note that some tests actually need to run against a specific jpdl parser version so the namespace declaration might be intended!</span><br/></li><li>create new schema file in modules/api/src/main/resources/jpdl-4.x.xsd + update JpdlParser to work with new schema file</li><li>update JpdlParser version references</li><li>if you don't do it straight away, make jira issue for this so that it is not forgotten</li></ul><h3>Update hudson jobs</h3><p>Add the new version to following job configurations:</p><ul><li><a class="jive-link-external-small" href="http://hudson.qa.jboss.com/hudson/view/JBPM4/job/jbpm4-parsers/" target="_blank">http://hudson.qa.jboss.com/hudson/view/JBPM4/job/jbpm4-parsers/</a></li><li><a class="jive-link-external-small" href="http://hudson.qa.jboss.com/hudson/view/JBPM4/job/jbpm4-upgrade/" target="_blank">http://hudson.qa.jboss.com/hudson/view/JBPM4/job/jbpm4-upgrade/</a></li></ul></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
        <p style="margin: 0;">Create a new document in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2034">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>