Hello Folks,

 

I'd like to realize the following resolve strategy:

 

Master project A:

A -> D "1.0-build2"

A -> C "2.3"

A -> B "1.0"

 

B 1.0:

B -> D "[1.0,"

B -> C "[2.2,"

 

C and D depend on nothing.

 

When I resolve A, I expect: B 1.0, C 2.3, D 1.0build2. 

"Rules": 

- Get exactly the versions defined in the master project. If they
conflict with any direct or indirect dependency exit with error.

- 1.0-build2 is higher than 1.0 or 0.0.2 (and is lower than e.g.
1.0-build3 etc)

 

The story:

I started with the latest-compatible conflict manager and the default
latest strategy (latest-revision). Result: Ivy crashes since D
1.0-build2 and D [1.0,   is unresolvable in this configuration - bad. 

Then I tried the latest-compatible conflict manager and the lates-lexico
latest strategy. Result: Ivy resolves D 1.0build2 and D [1.0, to
D1.0-build2 which is exactly what I want, but has some unacceptable
secondary effects:

If there is also an e.g. C 2.4 available, Ivy resolves to that instead
of C 2.3 as defined in the master project. 

 

Any ideas ?  

 

PS: I already read that "2.3" in a master project is interpreted as "2.3
or compatible i.e. higher" but this is not the behaviour I would like to
have. Plus, in the setting latest-compatible/latest-revision it works
well but does not support

1.0 < 1.0-build2 :-(

 

 

 

Reply via email to