[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