[
https://issues.jboss.org/browse/DROOLS-1137?page=com.atlassian.jira.plugi...
]
Petr Široký updated DROOLS-1137:
--------------------------------
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 [~ge0ffrey] 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
was:
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.
Proposal to fix this (discussed with [~ge0ffrey] as the best option):
*kie-parent (created from kie-parent-metadata)*
* has ip-parent as it’s parent
* Does not contain dependency versions (empty dependencyManagement)
*user-boms (kie-bom, drools-bom, optaplanner-bom, etc)*
* have kie-parent as their parent
* contain only depMgmt for the specific groupIds (e.g. org.optaplanner for
optaplanner-bom)
* nothing really changes here
*kie-third-party-bom*
* imports ip-bom to get the depMgmt
* contains required overrides
* does _not_ declare any versions for KIE deps (not even UF or Dashbuilder)
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 kie-third-party-bom + drools-bom
*jBPM Console NG parent POM*
* has kie-parent as it’s parent
* imports kie-third-party-bom + drools-bom? + jbpm-bom + uf-bom + uf-ext-bom +
dashuilder-bom + guvnor-bom
Better granularity for imported BOMs
------------------------------------
Key: DROOLS-1137
URL:
https://issues.jboss.org/browse/DROOLS-1137
Project: Drools
Issue Type: Enhancement
Components: build
Affects Versions: 6.4.0.Final
Reporter: Petr Široký
Assignee: Petr Široký
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 [~ge0ffrey] 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
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)