You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Shawn Castrianni <Sh...@halliburton.com> on 2009/02/10 19:44:16 UTC

bug fixed

I have not upgraded to the latest ivy 2.0 yet, but have a question.  The version I am currently using was built from source a while ago, can't remember when.  The bug I find is this:

C depends on D
A depends on C (non-transitively)
B depends on C
E depends on A and B

       E
    A      B
       C
       D

so you get the above diamond problem.  My problem is the conflict resolution at C combined with the non-transitive dependency between A and C.  If A depends on a newer C than B does, conflict management takes the most recent C via A, but then the non-transitive nature of that dependency wins and I get NO D at all.  D is still needed by B so I get missing dependencies.  I don't think non-transitive dependencies should prevent transitive dependencies from being retrieved if another transitive path is available that need those dependencies.  Is this considered a bug and is it fixed in the latest IVY 2.0?  If this is not a bug, what do I do to fix this?

---
Shawn Castrianni

----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message.

Re: bug fixed

Posted by Niklas Matthies <ml...@nmhq.net>.
On Tue 2009-02-10 at 13:06h, Maarten Coene wrote on ivy-user:
> ok I see, I misunderstood the problem.
> 
> I'm not sure it's a bug. I think there are probably good arguments
> for both scenario's, it all depends on your usecase.

If I understand correctly, the current behavior depends on the order
in which dependencies are specified for E (i.e. A first or B first).
In my opinion, the order in which dependencies are specified should
never matter, hence I would consider this to be a bug.

> I don't know how to fix it. You say the conflict-manager takes the
> non-transitive C. If that is true, maybe you can implement your own
> conflict-manager which takes the transitive C instead?
> 
> Maarten
> 
> 
> 
> 
> ----- Original Message ----
> From: Jim Adams <Ji...@sas.com>
> To: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
> Sent: Tuesday, February 10, 2009 9:56:14 PM
> Subject: RE: bug fixed
> 
> I think it is a bug. I see that C does have a dependency on D.
> 
> > -----Original Message-----
> > From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> > Sent: Tuesday, February 10, 2009 3:52 PM
> > To: ivy-user@ant.apache.org
> > Subject: Re: bug fixed
> >
> > I don't think this is a bug.
> > If your new C doesn't has a dependency on D, why should Ivy resolve it?
> > And if B needs D in order to function properly, you should maybe add a direct dependency from B to D?
> >
> > Maarten
> >
> >
> >
> >
> > ----- Original Message ----
> > From: Shawn Castrianni <Sh...@halliburton.com>
> > To: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
> > Sent: Tuesday, February 10, 2009 7:44:16 PM
> > Subject: bug fixed
> >
> > I have not upgraded to the latest ivy 2.0 yet, but have a question.  The version I am currently using was built
> > from source a while ago, can't remember when.  The bug I find is this:
> >
> > C depends on D
> > A depends on C (non-transitively)
> > B depends on C
> > E depends on A and B
> >
> >        E
> >     A      B
> >        C
> >        D
> >
> > so you get the above diamond problem.  My problem is the conflict resolution at C combined with the non-
> > transitive dependency between A and C.  If A depends on a newer C than B does, conflict management takes the
> > most recent C via A, but then the non-transitive nature of that dependency wins and I get NO D at all.  D is
> > still needed by B so I get missing dependencies.  I don't think non-transitive dependencies should prevent
> > transitive dependencies from being retrieved if another transitive path is available that need those
> > dependencies.  Is this considered a bug and is it fixed in the latest IVY 2.0?  If this is not a bug, what do I
> > do to fix this?
> >
> > ---
> > Shawn Castrianni
> >
> > ----------------------------------------------------------------------
> > This e-mail, including any attached files, may contain confidential and privileged information for the sole use
> > of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If
> > you are not the intended recipient (or authorized to receive information for the intended recipient), please
> > contact the sender by reply e-mail and delete all copies of this message.
> >
> >
> >
> >
> 
> 
>       


-- Niklas Matthies

Re: bug fixed

Posted by Maarten Coene <ma...@yahoo.com>.
ok I see, I misunderstood the problem.

I'm not sure it's a bug. I think there are probably good arguments for both scenario's, it all depends on your usecase.
Maybe it should be possible to configure this behaviour?

I don't know how to fix it. You say the conflict-manager takes the non-transitive C. If that is true, maybe you can implement your own conflict-manager which takes the transitive C instead?

Maarten




----- Original Message ----
From: Jim Adams <Ji...@sas.com>
To: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
Sent: Tuesday, February 10, 2009 9:56:14 PM
Subject: RE: bug fixed

I think it is a bug. I see that C does have a dependency on D.

> -----Original Message-----
> From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> Sent: Tuesday, February 10, 2009 3:52 PM
> To: ivy-user@ant.apache.org
> Subject: Re: bug fixed
>
> I don't think this is a bug.
> If your new C doesn't has a dependency on D, why should Ivy resolve it?
> And if B needs D in order to function properly, you should maybe add a direct dependency from B to D?
>
> Maarten
>
>
>
>
> ----- Original Message ----
> From: Shawn Castrianni <Sh...@halliburton.com>
> To: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
> Sent: Tuesday, February 10, 2009 7:44:16 PM
> Subject: bug fixed
>
> I have not upgraded to the latest ivy 2.0 yet, but have a question.  The version I am currently using was built
> from source a while ago, can't remember when.  The bug I find is this:
>
> C depends on D
> A depends on C (non-transitively)
> B depends on C
> E depends on A and B
>
>        E
>     A      B
>        C
>        D
>
> so you get the above diamond problem.  My problem is the conflict resolution at C combined with the non-
> transitive dependency between A and C.  If A depends on a newer C than B does, conflict management takes the
> most recent C via A, but then the non-transitive nature of that dependency wins and I get NO D at all.  D is
> still needed by B so I get missing dependencies.  I don't think non-transitive dependencies should prevent
> transitive dependencies from being retrieved if another transitive path is available that need those
> dependencies.  Is this considered a bug and is it fixed in the latest IVY 2.0?  If this is not a bug, what do I
> do to fix this?
>
> ---
> Shawn Castrianni
>
> ----------------------------------------------------------------------
> This e-mail, including any attached files, may contain confidential and privileged information for the sole use
> of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If
> you are not the intended recipient (or authorized to receive information for the intended recipient), please
> contact the sender by reply e-mail and delete all copies of this message.
>
>
>
>


      

RE: bug fixed

Posted by Jim Adams <Ji...@sas.com>.
I think it is a bug. I see that C does have a dependency on D.

> -----Original Message-----
> From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> Sent: Tuesday, February 10, 2009 3:52 PM
> To: ivy-user@ant.apache.org
> Subject: Re: bug fixed
>
> I don't think this is a bug.
> If your new C doesn't has a dependency on D, why should Ivy resolve it?
> And if B needs D in order to function properly, you should maybe add a direct dependency from B to D?
>
> Maarten
>
>
>
>
> ----- Original Message ----
> From: Shawn Castrianni <Sh...@halliburton.com>
> To: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
> Sent: Tuesday, February 10, 2009 7:44:16 PM
> Subject: bug fixed
>
> I have not upgraded to the latest ivy 2.0 yet, but have a question.  The version I am currently using was built
> from source a while ago, can't remember when.  The bug I find is this:
>
> C depends on D
> A depends on C (non-transitively)
> B depends on C
> E depends on A and B
>
>        E
>     A      B
>        C
>        D
>
> so you get the above diamond problem.  My problem is the conflict resolution at C combined with the non-
> transitive dependency between A and C.  If A depends on a newer C than B does, conflict management takes the
> most recent C via A, but then the non-transitive nature of that dependency wins and I get NO D at all.  D is
> still needed by B so I get missing dependencies.  I don't think non-transitive dependencies should prevent
> transitive dependencies from being retrieved if another transitive path is available that need those
> dependencies.  Is this considered a bug and is it fixed in the latest IVY 2.0?  If this is not a bug, what do I
> do to fix this?
>
> ---
> Shawn Castrianni
>
> ----------------------------------------------------------------------
> This e-mail, including any attached files, may contain confidential and privileged information for the sole use
> of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If
> you are not the intended recipient (or authorized to receive information for the intended recipient), please
> contact the sender by reply e-mail and delete all copies of this message.
>
>
>
>


Re: bug fixed

Posted by Maarten Coene <ma...@yahoo.com>.
I don't think this is a bug.
If your new C doesn't has a dependency on D, why should Ivy resolve it?
And if B needs D in order to function properly, you should maybe add a direct dependency from B to D?

Maarten




----- Original Message ----
From: Shawn Castrianni <Sh...@halliburton.com>
To: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
Sent: Tuesday, February 10, 2009 7:44:16 PM
Subject: bug fixed

I have not upgraded to the latest ivy 2.0 yet, but have a question.  The version I am currently using was built from source a while ago, can't remember when.  The bug I find is this:

C depends on D
A depends on C (non-transitively)
B depends on C
E depends on A and B

       E
    A      B
       C
       D

so you get the above diamond problem.  My problem is the conflict resolution at C combined with the non-transitive dependency between A and C.  If A depends on a newer C than B does, conflict management takes the most recent C via A, but then the non-transitive nature of that dependency wins and I get NO D at all.  D is still needed by B so I get missing dependencies.  I don't think non-transitive dependencies should prevent transitive dependencies from being retrieved if another transitive path is available that need those dependencies.  Is this considered a bug and is it fixed in the latest IVY 2.0?  If this is not a bug, what do I do to fix this?

---
Shawn Castrianni

----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message.