ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mitch Gitman <mgit...@gmail.com>
Subject Re: feature request: configuration intersections only implemented halfway
Date Wed, 29 Jul 2009 23:09:09 GMT
Shawn, I think your last paragraph really captures the fundamental
difference between your use case and the one I'm facing (which parallels the
use case Garima broached):
I don't understand Garima's request as putting the intersection logic into
the <publications> section of the ivy.xml file like:  <artifact name="art1d"
type="dll" conf="windows+debug"/> means that the ONLY way a consumer can get
this artifact is by specifying "default->windows+debug" in the
<dependencies> section.  This prevents me from getting all windows artifacts
or all debug artifacts.  It just doesn't make sense to me.

For me, being able to get "ALL Windows artifacts" or "ALL Windows OR debug
artifacts" would be at best an academic exercise. As a practical matter,
though, the simple ability to do this is trouble. The simple inability to
express intersection-only means that I can't communicate in Ivy the true
semantics of my Ivy module.

In other words, I really do have artifacts that should only be available in
the intersection of certain confs of their Ivy module. Being able to get
unions containing these particular artifacts does me no good, but it does
potentially do me harm.

To put things in simple terms, what Shawn asked for was to make the
following possible on the *consumer *Ivy module:
if (A && B)
In addition to:
if (A || B)

What Garima is asking for—and what I'm seconding—is to make the same
possible on the *producer *Ivy module.

On Wed, Jul 29, 2009 at 3:15 PM, Shawn Castrianni <
Shawn.Castrianni@halliburton.com> wrote:

> 1. Yes, I agree that adding what Garima wants will not compromise my use
> case.  I just haven't been convinced why Garima is requesting this.  Either
> Garima is not understanding configurations in general (which might be the
> case as Garima admitted not knowing about the '@' character) or you are not
> understanding configurations in general (which might be the case based on
> your comment that "windows,debug" is inaccurate) or I am not understanding
> your use case.
>
> 2. "The following, by itself, is inaccurate: <artifact name="art1d"
> type="dll" conf="windows,debug" />"
>
> How can you say this is inaccurate?  I am thinking you are getting confused
> about configurations (or maybe I am).  The conf attribute of an artifact is
> simply a comma delimited list of all configuration names that this artifact
> is applicable for.  The art1d.dll is a windows related file so it is
> definitely applicable for the windows configuration.  The art1d.dll is a
> debug version of the dll so it is definitely applicable for the debug
> configuration.  The "windows,debug" does NOT mean union in this section of
> the ivy.xml file where the artifacts are defined.
>
> It is in the <dependencies? section of the ivy.xml file where
> "windows,debug" would mean union.  So the comma notation of configurations
> means two different things depending on what section of the ivy.xml you are
> talking about.  In the <publications> section, the comma doesn't mean
> anything.  It is just a delimiter separating configuration names for all of
> the configurations that this artifact is applicable for.  In the
> <dependencies> section, the conf mapping attribute like
> "default->windows,debug" means the default configuration of my current
> module is dependent on BOTH (UNION) of the windows and debug configurations
> of the dependent module.
>
> IVY configurations are just a way to subset all the artifacts of a module
> since you may not want all artifacts of a module all the time.  Sometimes
> you just want all windows artifacts so you would use the conf mapping in the
> <dependencies> section as "default->windows".  Sometimes you just want all
> debug artifacts so you would use the conf mapping in the <dependencies>
> section as "default->debug".  Sometimes you just want the windows debug
> artifacts so you would use the new intersection capability in the
> <dependencies> section as "default->windows+debug".  It is purely a download
> efficiency enhancement for me.  Before the intersection capability, I would
> have to use "default->windows" and then manually delete the non-debug
> artifacts.  But even with that, I had to wait for IVY to download them into
> the cache.  Over a slow network line, this can waste a lot of time for
> artifacts that are just going to be deleted manually.
>
> I don't understand Garima's request as putting the intersection logic into
> the <publications> section of the ivy.xml file like:  <artifact name="art1d"
> type="dll" conf="windows+debug"/> means that the ONLY way a consumer can get
> this artifact is by specifying "default->windows+debug" in the
> <dependencies> section.  This prevents me from getting all windows artifacts
> or all debug artifacts.  It just doesn't make sense to me.
>
> ---
> Shawn Castrianni
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message