Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-1137

Better granularity for imported BOMs

    Details

    • Type: Enhancement
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 6.4.0.Final
    • Fix Version/s: None
    • Component/s: build
    • Labels:
      None
    • Docs QE Status:
      NEW
    • QE Status:
      NEW

      Description

      Projects/modules like Drools or OptaPlanner transitively require BOMs which are not actually needed at all (e.g. uberfire-bom or guvnor-bom). This brings a lot of issues for RPMs and is also weird.

      We also need to make sure we an easily override dependencies coming from ip-bom. The only sensible way seem to directly inherit from ip-bom (instead of importing it). That of course results in a need to have a different parent for user BOMs, as we don't want to pollute them with all the 3rd party deps.

      Proposal to fix this (discussed with Geoffrey De Smet as the best option):

      kie-parent (created from kie-parent-metadata)

      • has ip-bom as it’s parent
      • inherits the whole depMgmt from ip-bom. Contains all required dependency overrides.
      • kie-user-bom-parent (new POM)
      • has ip-parent as parent
      • contains no depMgmt
      • needs to copy some metadata from kie-parent (URL, SCM info, links, etc)

      user-boms (kie-bom, drools-bom, optaplanner-bom, etc)

      • have kie-user-bom-parent as their parent
      • contain only depMgmt for the specific groupIds (e.g. org.optaplanner for optaplanner-bom)
      • from user's POV nothing changes here

      kie-platform-bom

      • has kie-parent as it's parent
      • import all the other BOMs (uberfire-bom, errai-internal-bom, etc)
      • this BOM is useful in downstream projects, like tests

      Specific projects then import only what they need (obviously not 100 % true as the kie-third-party-bom would define many more versions than we need, but that is not easily fixable atm):

      Drools parent POM (top-level pom in drools repo)

      • has kie-parent as it’s parent
      • imports drools-bom (kie-bom is imported transitively)

      jBPM Console NG parent POM

      • has kie-parent as it’s parent
      • drools-bom? + jbpm-bom + uf-bom + errai-bom+ dashuilder-bom + guvnor-bom

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                psiroky Petr Široký
                Reporter:
                psiroky Petr Široký
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: