Thank you Marc for your sanity check,

As I'm brand new to Ivy and experimenting with it, there's always this nagging 
doubt I made a stupid mistake somewhere ;-)
We're working on putting together a new CI and CD process for embedded software 
projects, and Ivy could prove to be a major part of it.

I only just noticed that the "packaging" attribute is something new, only 
introduced in Ivy 2.4, so I'm probably experimenting with features that don't 
have a widespread usage currently.

Thanks for your help,

Jérémie

-----Original Message-----
From: Marc De Boeck [mailto:mdeb...@gmail.com] 
Sent: June 30, 2016 9:29 AM
To: ivy-user@ant.apache.org
Subject: Re: Packaging attribute, unpack location

Jérémie,

Your settings look correct to me. We also work with the extra-attributes to 
distinguish artifacts, but we don't the package attribute. If I need to unpack 
something, I do it outside of Ivy in an ant-task (like you suggest as 
alternative).
I also agree that the extra-attributes in the <conf> section are not needed. We 
don't have them either, but we do use them inside the publications sections.
If I have some time tomorrow, I will try to make a test with the 
package-attribute in our environment and see if I can reproduce your problem.

Regards,
Marc

2016-06-29 22:50 GMT+02:00 Jeremie Faucher-Goulet <
jeremie.faucher-gou...@trilliantinc.com>:

> Other useful tidbits....
>
> Here is my retrieve task in build.xml:
>
>         <target name="retrieve" description="Resolve dependencies">
>                 <ivy:retrieve
> pattern="lib/[artifact]/[artifact](_[arch])(_[compiler])(_[locInfo])-[revision](-[classifier]).[ext]"
> />
>         </target>
>
> So in my cache I get the following directory structure:
>
> +.ivy2\cache\com.trilliantinc\slf4ec\1.0.0+15.db80236\
> |----+slf4ec-1.0.0+15.db80236 (unpack folder) 
> |----+slf4ec-x86-gcc-withLoc-1.0.0+15.db80236.zip (artifact downloaded
> according to cache pattern)
>
>
> And in my project I get:
>
> +lib\
> |----+slf4ec
>         |----+slf4ec_x86_gcc_withLoc-1.0.0+15.db80236 (Unpacked 
> artifact copied from cache, content of the "unpack folder" but 
> following the retrieve pattern)
>
> Regards,
>
> Jérémie
>
> -----Original Message-----
> From: Jeremie Faucher-Goulet [mailto:
> jeremie.faucher-gou...@trilliantinc.com]
> Sent: June 29, 2016 4:35 PM
> To: ivy-user@ant.apache.org
> Subject: RE: Packaging attribute, unpack location
>
> Hi Marc,
>
> When not specifying the packaging attribute, everything seems to work 
> as expected. I suppose I could always write a custom Ant action to 
> unzip the files. I was trying to use the Ivy feature.
>
> Here is my current cache configuration in ivysettings.xml :
> <caches
> ivyPattern="[organisation]/[module]/[revision]/[artifact](-[arch])(-[compiler])(-[locInfo])-[revision].xml"
> artifactPattern="[organisation]/[module]/[revision]/[artifact](-[arch])(-[compiler])(-[locInfo])-[revision](-[classifier]).[ext]"
> />
>
> Of course, [arch], [compiler] and [locInfo] are extra-attributes that 
> are defined in the library I'm resolving from Artifactory. Here is the 
> ivy.xml file of that library:
>
> <ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra";>
>         <info organisation="com.trilliantinc" module="slf4ec" />
>         <configurations>
>                 <conf name="cortex-m4_gcc_withLoc" e:arch="cortex-m4"
> e:compiler="gcc"
>                         e:locInfo="withLoc"
>                         description="Binary for ARM Cortex-M4 compiled 
> with GCC with location information" />
>                 <conf name="cortex-m4_gcc_withoutLoc" e:arch="cortex-m4"
>                         e:compiler="gcc" e:locInfo="withoutLoc"
>                         description="Binary for ARM Cortex-M4 compiled 
> with GCC without location information" />
>                 <conf name="cortex-m4_iar_withLoc" e:arch="cortex-m4"
> e:compiler="iar"
>                         e:locInfo="withLoc"
>                         description="Binary for ARM Cortex-M4 compiled 
> with IAR with location information" />
>                 <conf name="cortex-m4_iar_withoutLoc" e:arch="cortex-m4"
>                         e:compiler="iar" e:locInfo="withoutLoc"
>                         description="Binary for ARM Cortex-M4 compiled 
> with IAR without location information" />
>                 <conf name="x86_gcc_withLoc" e:arch="x86" e:compiler="gcc"
>                         e:locInfo="withLoc"
>                         description="Binary for x86 compiled with GCC 
> with location information" />
>                 <conf name="x86_gcc_withoutLoc" e:arch="x86"
> e:compiler="gcc"
>                         e:locInfo="withoutLoc"
>                         description="Binary for x86 compiled with GCC 
> without location information" />
>                 <conf name="artifacts" visibility="private"
> description="Build's artifacts" />
>                 <conf name="all" extends="*" description="All artifacts" />
>         </configurations>
>         <publications>
>                 <artifact name="slf4ec" e:arch="x86" e:compiler="gcc"
>                         e:locInfo="withLoc" ext="zip" type="native"
> conf="x86_gcc_withLoc"
>                         packaging="zip" />
>                 <artifact name="slf4ec" e:arch="x86" e:compiler="gcc"
>                         e:locInfo="withoutLoc" ext="zip" type="native"
> conf="x86_gcc_withoutLoc"
>                         packaging="zip" />
>                 <artifact name="slf4ec" e:arch="cortex-m4" e:compiler="gcc"
>                         e:locInfo="withLoc" ext="zip" type="native"
> conf="cortex-m4_gcc_withLoc"
>                         packaging="zip" />
>                 <artifact name="slf4ec" e:arch="cortex-m4" e:compiler="gcc"
>                         e:locInfo="withoutLoc" ext="zip" type="native"
> conf="cortex-m4_gcc_withoutLoc"
>                         packaging="zip" />
>                 <artifact name="slf4ec" e:arch="cortex-m4" e:compiler="iar"
>                         e:locInfo="withLoc" ext="zip" type="native"
> conf="cortex-m4_iar_withLoc"
>                         packaging="zip" />
>                 <artifact name="slf4ec" e:arch="cortex-m4" e:compiler="iar"
>                         e:locInfo="withoutLoc" ext="zip" type="native"
> conf="cortex-m4_iar_withoutLoc"
>                         packaging="zip" />
>                 <artifact name="doc" ext="zip" type="html" conf="artifacts"
>                         packaging="zip" />
>                 <artifact name="tests" ext="zip" type="xUnit"
> conf="artifacts"
>                         packaging="zip" />
>         </publications>
> </ivy-module>
>
> I'm not exactly sure what use the extra-attributes could have inside 
> the <conf /> section. Currently they don’t seem to impact anything and 
> I'm probably going to remove them.
> Ideally I would have proffered to use these extra-attributes instead 
> of configurations (and a long configuration name string) when 
> resolving dependencies, but the resolver looks for these 
> extra-attributes in the module, not the artifacts so cannot resolve 
> when using extra-attributes. At least that's what I found out with my 
> experimentations.
>
> Best regards,
>
> Jérémie
>
> -----Original Message-----
> From: Marc De Boeck [mailto:mdeb...@gmail.com]
> Sent: June 29, 2016 4:16 PM
> To: ivy-user@ant.apache.org
> Subject: Re: Packaging attribute, unpack location
>
> Can you tell us the cache pattern that you have configured ?
> Maybe you can also try to retrieve the same artifacts but with a 
> module descriptor (ivy-file) where the packaging attribute is not set.
> This way, you could find out if it is related to the packaging 
> attribute, or related to something else.
>
> Regards,
> Marc
>
> 2016-06-29 21:22 GMT+02:00 Jeremie Faucher-Goulet <
> jeremie.faucher-gou...@trilliantinc.com>:
>
> > Hello,
> >
> >
> >
> > I’m encountering an issue where, when using a different 
> > configuration for the same artifact during a retrieve operation, the 
> > artifact is downloaded but the wrong artifact is copied in my project.
> >
> > Is it a limitation of the automatic unpacking (zip file in my case) 
> > not keeping the extra attributes? I’m new to Ivy so there might be a 
> > configuration option I haven’t found yet.
> >
> >
> >
> > For example, I’m using a custom pattern for the Ivy cache so I can 
> > get the different configuration downloaded and a similar custom 
> > pattern for the retrieve itself so I can get these different 
> > artifacts in my
> project.
> > However, calling retrieve with a different configuration does create 
> > a new folder in my project (retrieve pattern), but it’s content is 
> > the same as with the previous configuration.
> >
> > Looking in the Ivy cache, I see that the download did create a new
> > (proper) artifact in my cache according to my custom cache pattern, 
> > but the same folder was used (and not overridden) for unpacking.
> >
> >
> >
> > It seems whatever pattern I set, the unpacking location will happen 
> > here in the cache:
> > [organisation]/[module]/[revision]/[artifact]-[revision]/*
> >
> >
> >
> > My assumption currently, is that Ivy will find the same unpacking 
> > location so will skip the unpacking step. Retrieve will then copy 
> > over a dirty/invalid version of what was unpacked. Are my assumptions 
> > correct?
> >
> >
> >
> > Is there a way to configure the unpacking location, if my 
> > understanding of the issue is correct?
> >
> >
> >
> > P.S. I’m using configuration to differentiate different native C/C++ 
> > builds (x86, arm, etc…) Perhaps I’m not using the proper approach?
> >
> >
> >
> > Thank you,
> >
> >
> >
> > [image: Description: cid:image001.jpg@01C9B6D4.5B951A30]
> >
> > Jeremie Faucher-Goulet, Jr. Eng.
> > Firmware Developer
> > Trilliant Inc
> > Tel: 450.375.0556 ext. 368
> > jeremie.faucher-gou...@trilliantinc.com
> >
> > www.trilliantinc.com
> >
> >
> >
> >
> >
>

Reply via email to