[ 
https://issues.apache.org/jira/browse/MRESOLVER-345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tamas Cservenak updated MRESOLVER-345:
--------------------------------------
    Summary: Conflict resolution in verbose mode is sensitive to version 
ordering  (was: Conflict resolution is sensitive to version ordering)

> Conflict resolution in verbose mode is sensitive to version ordering
> --------------------------------------------------------------------
>
>                 Key: MRESOLVER-345
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-345
>             Project: Maven Resolver
>          Issue Type: Bug
>            Reporter: Tamas Cservenak
>            Priority: Major
>
> It all started with MENFORCER-426. In short, if we have layout of 
> dependencies like this below (ranges are key here), *conflict resolution in 
> verbose mode* will misbehave, is sensitive on version ordering in the "dirty 
> tree" (collected graph, output of DependencyCollector).
> {noformat}
> A -> B -> C[1..2]
> \--> C[1..2] {noformat}
> (explained: A depends on B and C[1..2] range, and B depends on C[1..2] as 
> well)
> As when "dirty tree" is being collected by DependencyCollector (and we have 
> two, old DF and new BF), the ranges are turned into series of discovered (by 
> VersionRangeResolver) versions, so the input above while collecting A from 
> above would yield some tree like this (in this example {{some-group:c:jar}} 
> has versions 1.0 and 2.0 ):
> {noformat}
> some-group:a:jar:1.0 [compile]
> +- some-group:b:jar:1.0 [compile]
> |  +- some-group:c:jar:1.0 [compile]
> |  \- some-group:c:jar:2.0 [compile]
> +- some-group:c:jar:1.0 [compile]
> \- some-group:c:jar:2.0 [compile] {noformat}
> This "dirty tree" is then transformed using {{ConflictResolver}} into final 
> graph. Conflict resolver in "normal" mode works OK and produces stable 
> outputs, that is not sensitive to ordering, this is OK.
> But, conflict resolver supports so called "verbose" mode as well, mostly used 
> to perform some "analysis" on graph (like for example "dependency 
> convergence" is). Conflict resolver in "verbose" mode {*}is version ordering 
> sensitive{*}.
> Conflict resolver "verbose" 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to