[jboss-jira] [JBoss JIRA] (DROOLS-1137) Better granularity for imported BOMs
Petr Široký (JIRA)
issues at jboss.org
Tue Jun 7 09:54:00 EDT 2016
[ https://issues.jboss.org/browse/DROOLS-1137?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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)
More information about the jboss-jira
mailing list