<!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&#160; 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 &lt;version&gt;4-SNAPSHOT&lt;/version&gt; in all pom.xml files to the exact version like &lt;version&gt;4.0.Alpha2&lt;/version&gt; or &lt;version&gt;4.3&lt;/version&gt; and commit.&#160; Make sure that you don't accidently mess with the referenced versions of the designer, console or parser.&#160; 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>&#160; 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.&#160; 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;">&#160;</p><pre class="jive-pre"><code class="jive-code">&#160; &lt;distributionManagement&gt;
&#160;&#160;&#160; &lt;repository&gt;
&#160;&#160;&#160;&#160;&#160; &lt;id&gt;repository.jboss.org&lt;/id&gt;
&#160;&#160;&#160;&#160;&#160; &lt;name&gt;JBoss Maven Repository&lt;/name&gt;
&#160;&#160;&#160;&#160;&#160; &lt;url&gt;file://${jboss.maven.repository}&lt;/url&gt;
&#160;&#160;&#160; &lt;/repository&gt;</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</p><pre class="jive-pre"><code class="jive-code">&lt;settings xmlns="http://maven.apache.org/POM/4.0.0"
&#160; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&#160; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; http://maven.apache.org/xsd/settings-1.0.0.xsd"&gt;
&#160; &lt;profiles&gt;
&#160;&#160;&#160; &lt;profile&gt;
&#160;&#160;&#160;&#160;&#160; &lt;id&gt;publish&lt;/id&gt;
&#160;&#160;&#160;&#160;&#160; &lt;activation&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
&#160;&#160;&#160;&#160;&#160; &lt;/activation&gt;
&#160;&#160;&#160;&#160;&#160; &lt;properties&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;jboss.maven.repository&gt;c/MyLocalRepo&lt;/jboss.maven.repository&gt;
&#160;&#160;&#160;&#160;&#160; &lt;/properties&gt;
&#160;&#160;&#160; &lt;/profile&gt;
&#160; &lt;/profiles&gt;
&lt;/settings&gt;</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Then build the distribution like this.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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.&#160; If you use this script, you still need to build the distro as shown above up to the <strong>deploy</strong>.&#160; The test demo setup only does a distro build with <strong>install</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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.&#160; As that profile includes the generation of the source jars.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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.&#160; 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>