<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi guys,<br>
    <br>
    <b>Please read this, especially the bold parts.</b><br>
    <br>
    We've created user-facing boms: drools-bom, jbpm-bom,
    optaplanner-bom, guvnor-bom and kie-bom.<br>
    This way, users can do:<br>
    <br>
    &lt;dependencyManagement&gt;<br>
        &lt;dependencies&gt;<br>
          &lt;dependency&gt;<br>
                &lt;groupId&gt;org.drools&lt;/groupId&gt;<br>
                &lt;artifactId&gt;drools-bom&lt;/artifactId&gt;<br>
                &lt;type&gt;pom&lt;/type&gt;<br>
                &lt;version&gt;6.0.0.Final&lt;/version&gt;<br>
                &lt;scope&gt;import&lt;/scope&gt;<br>
          &lt;/dependency&gt;<br>
        &lt;/dependencies&gt;<br>
    &lt;/dependencyManagement&gt;<br>
    ...<br>
    &lt;dependencies&gt;<br>
       &lt;dependency&gt;<br>
           &lt;groupId&gt;org.drools&lt;/groupId&gt;<br>
           &lt;artifactId&gt;drools-compiler&lt;/artifactId&gt;&lt;!--
    No version needed :) --&gt;<br>
       &lt;dependency&gt;<br>
       &lt;dependency&gt;<br>
           &lt;groupId&gt;org.drools&lt;/groupId&gt;<br>
          
    &lt;artifactId&gt;drools-decisiontables&lt;/artifactId&gt;&lt;!-- No
    version needed :) --&gt;<br>
       &lt;dependency&gt;<br>
    &lt;/dependencies&gt;<br>
    <br>
    <b>1) When you create a new module in any kie repository (for
      example jbpm-foo),<br>
      instead of adding an entry in droolsjbpm-build-bootstrap,<br>
      now add an entry in the appropriate bom file.<br>
    </b>- The bom files are in the git repo droolsjbpm-build-bootstrap.<br>
    - The new module's groupId determines its bom file:<br>
    -- groupId org.kie =&gt; kie-bom<br>
    -- groupId org.drools =&gt; drools-bom<br>
    -- groupId org.optaplanner =&gt; optaplanner-bom<br>
    -- groupId org.jbpm =&gt; jbpm-bom<br>
    -- groupId org.guvnor =&gt; guvnor-bom<br>
    - Normally you 'll add 2-3 entries: normal, classifier sources and
    classifier test-jar<br>
    For example: modules in drools-bom:<br>
     
<a class="moz-txt-link-freetext" href="https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/drools-bom/pom.xml#L86">https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/drools-bom/pom.xml#L86</a><br>
    <br>
    <b>2) When you add a new external dependency (for example
      richfaces-core) or update/delete an existing one,</b><b><br>
    </b><b>instead of changing droolsjbpm-build-bootstrap,</b><b><br>
    </b><b>now change the pom file </b><b>kie-parent-with-dependencies</b><br>
    - the bom files do not extend kie-parent-with-dependencies, but
    kie-parent-with-dependencies imports the bom files<br>
    - kie-parent-with-dependencies is in a subdirectory of git
    repository droolsjbpm-build-bootstrap<br>
      
<a class="moz-txt-link-freetext" href="https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/kie-parent-with-dependencies/pom.xml#L22">https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/kie-parent-with-dependencies/pom.xml#L22</a><br>
    - kie-parent-with-dependencies holds a properties list of all
    versions and the dependencyManagement section<br>
    -- Note: the ongoing platform bom work will affect this, but I 'll
    explain that in a new mail when it's done.<br>
    - All new repo's root poms should extend
    kie-parent-with-dependencies (NOT kie-parent-metadata)<br>
    <b>- Reminder (long time standing rule): No poms except for
      kie-parent-with-dependencies should mention versions of
      dependencies</b><br>
    -- Some modules violate this and might run into issues during
    productization when their dependency versions don't align with the
    rest.<br>
    <br>
    <b>3) When you add/change/delete a build plugin or any other
      metadata (anything except dependencies),</b><b><br>
    </b><b>
    </b><b>instead of changing droolsjbpm-build-bootstrap,</b><b><br>
    </b><b>
    </b><b>now change the pom file </b><b>kie-parent-metadata</b><br>
    - the bom files do extends kie-parent-metadata.<br>
    - kie-parent-with-dependencies extends kie-parent-metadata - so
    effectively everything extends kie-parent-metadata<br>
    - kie-parent-metadata is in the root of git repository
    droolsjbpm-build-bootstrap<br>
      
<a class="moz-txt-link-freetext" href="https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/pom.xml">https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/pom.xml</a><br>
    <br>
    Questions, suggestions, feedback: let me know.<br>
    <br>
    The repo droolsjbpm-build-bootstrap's restructure is now finished -
    feel free to make changes there again.<br>
  </body>
</html>