I apologize that this will probably be both vague and slightly wrong,
but I don't have a way to demonstrate the problem I'm facing (I'm open
to suggestions on how to do so, ivy-report won't run to completion given
the following error).

I've been using Ivy for a year or two here at work (and at home) and
have run into an issue when I changed the available configurations for a
package.

Let's say that we have 3 packages, A, B, C, with A depending on B and B
depending on C (A->B->C).  We also have a package, D, that depends on C
and is depended upon by A (A->D->C).

C has three configurations, library, server, and client, with Server and
Client extending Library.  B and D both depend on C's "client"
configuration.  Due to a recent change, C no longer exposes the "client"
configuration, now only exposing the "Library" configuration.

I update B with "*->library" on the C dependency, but when I attempt to
resolve dependencies, I get a hard error saying that C's "client"
configuration cannot be found and so Ivy halts.  This makes sense, as D
depends on C's configuration, and I haven't updated D.  While this
simple case is easy to fix, our real world case is not.

In the real world case, we have a hierarchy about 7 levels deep, and
changing our core library's configurations has caused cascade failures
throughout the dependencies in the system (a total of maybe 50 libraries
in total).  Updating each library is not only time consuming, but in
some cases near impossible, as older branches of code that rely on the
now-missing configuration can't be mixed with newer code that uses a
different/existing configuration.

I think I understand why this happens, but frankly, it's caused me to
stop using configurations entirely and move to using exclusions where
possible, because they're easier to maintain given the state of our code
base.

Is there a better way to manage this?  Is there a fix I'm missing?  Any
help would be appreciated.  We're very happy with Ivy for the most part
(we'd like to help with the docs, but we don't know enough to help
rewrite them), but this "problem" (Ivy's fault or not) is causing us
serious trouble.

Thanks for your time, and keep up the good work,
Matt

Reply via email to