Howdy, all --

I have a reproducer for an issue similar to IVY-1333 ("impossible to get
artifacts when data has not been loaded") which demonstrates some
surprising behavior, and would appreciate feedback from folks more familiar
with the ResolveEngine's internals:

An <override> tag in a transitive dependency is impacting the overall
resolution, even when no child of that dependency matches the pattern
described by the tag in question.

The tree looks as follows:

reproducer/top-level
 |- conflict/conflict==1 [conf="with-direct-dep->default"]
 |- reproducer/phase-one==1 [conf="master->*"]
 |  |- conflict/conflict==2
 |  |- reproducer/phase-two==1
 |  |  |- empty-module/empty-module==1
 |  |  |- [override:conflict/conflict==1]

Because phase-two has no children with a dependency on conflict/conflict
(its only child being empty-module), it is entirely surprising to me that
its override tag has any effect whatsoever. (However, removing the
dependency on empty-module *also* circumvents the bug).

The top-level reproducer has two confs descended from master,
"with-direct-dep" and "without-direct-dep". In both, conflict/conflict is
resolved to version 2, but in the latter, conflict/conflict==1 is not
loaded at all. Only when both of these confs are invoked within a single
ivy:resolve task does the issue in question trigger.

Could I ask for some pointers in the right direction to get a better handle
on what might be going on here?

The reproducer in question is attached to IVY-1455 as a zip file.


Many thanks,
-- Charles

Reply via email to