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 Ma...@amis.com on 2007/09/24 18:02:48 UTC

Publish Event Trigger?

Hi All, 

I am looking at the documentation on triggers and I have also browsed the 
source and it appears to my new-to-Ivy eyes that there is no way to hook 
up a trigger to the delivery or publishing of an artifact.  Is this, in 
fact, the case?  What I am trying to do is trigger a rebuild of any 
modules that depend on a given artifact, whenever a new version of that 
artifact has been published.

If Ivy doesn't support this - has anyone else done something like this? 
The only other way I can see to do it would be to actually monitor the 
filesystem where the artifact repository is kept.

Thanks,
Mark.

AMI Semiconductor - "Silicon Solutions for the Real World"
NOTICE: 
This electronic message contains information that may be confidential or privileged. The information is intended for the use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you received this electronic message in error, please notify the sender and delete the copy you received.

Re: Publish Event Trigger?

Posted by Ma...@amis.com.
"Xavier Hanin" <xa...@gmail.com> wrote on 09/25/2007 01:54:23 AM:

> On 9/24/07, Mark_Melvin@amis.com <Ma...@amis.com> wrote:
> >
> > "Xavier Hanin" <xa...@gmail.com> wrote on 09/24/2007 12:22:12 
PM:
> >
> > > On 9/24/07, Mark_Melvin@amis.com <Ma...@amis.com> wrote:
> > > >
> > > > Hi All,
> > > >
> > > > I am looking at the documentation on triggers and I have also 
browsed the
> > > > source and it appears to my new-to-Ivy eyes that there is no way 
to hook
> > > > up a trigger to the delivery or publishing of an artifact.  Is 
this, in
> > > > fact, the case?  What I am trying to do is trigger a rebuild of 
any
> > > > modules that depend on a given artifact, whenever a new version of 
that
> > > > artifact has been published.
> > >
> > > Indeed, there is no such trigger, but to publish a module you need 
to call
> > > explicitly the publish action, so you can pretty easily call 
something else
> > > after the publish. If you are thinking about something like a 
repository
> > > event, Ivy is a client side tool, and thus do not provide repository 
events.
> > > BTW, to get all modules depending on one module, you can use the 
build list
> > > task with the leaf attribute.
> > >
> >
> > Yes - I was thinking about this over lunch and came to this 
realization.
> > It is more something I can just call/broadcast as part of my build 
script.
> > Although, it isn't such a far-fetched idea is it?  It can still be a
> > client thing couldn't it as ultimately it is Ivy that is still doing 
the
> > publishing.  It would be a lot simpler to hook up a generic trigger to 
all
> > "post-publish" events than it would be to call it after every publish 
from
> > every build script.
> 
> 
> You can still define your own publish task using ant macrodef for 
example,
> then call this one, and you'll be sure your post publish stuff is always
> called as long as you use this task. It doesn't work when you use Ivy 
from
> the command line though, nor with the API. So if you really consider we
> should add a post publish event for the triggers, feel free to add a 
JIRA
> issue.
> 
> Xavier
> 

I guess I'll see how my build scripts turn out when I get that far.  If 
nobody else has run into this before it must not be a big deal. ;)

Thanks for the help,
Mark.
AMI Semiconductor - "Silicon Solutions for the Real World"
NOTICE: 
This electronic message contains information that may be confidential or privileged. The information is intended for the use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you received this electronic message in error, please notify the sender and delete the copy you received.

Re: Publish Event Trigger?

Posted by Xavier Hanin <xa...@gmail.com>.
On 9/24/07, Mark_Melvin@amis.com <Ma...@amis.com> wrote:
>
> "Xavier Hanin" <xa...@gmail.com> wrote on 09/24/2007 12:22:12 PM:
>
> > On 9/24/07, Mark_Melvin@amis.com <Ma...@amis.com> wrote:
> > >
> > > Hi All,
> > >
> > > I am looking at the documentation on triggers and I have also browsed
> the
> > > source and it appears to my new-to-Ivy eyes that there is no way to
> hook
> > > up a trigger to the delivery or publishing of an artifact.  Is this,
> in
> > > fact, the case?  What I am trying to do is trigger a rebuild of any
> > > modules that depend on a given artifact, whenever a new version of
> that
> > > artifact has been published.
> >
> >
> > Indeed, there is no such trigger, but to publish a module you need to
> call
> > explicitly the publish action, so you can pretty easily call something
> else
> > after the publish. If you are thinking about something like a repository
> > event, Ivy is a client side tool, and thus do not provide repository
> events.
> > BTW, to get all modules depending on one module, you can use the build
> list
> > task with the leaf attribute.
> >
>
> Yes - I was thinking about this over lunch and came to this realization.
> It is more something I can just call/broadcast as part of my build script.
> Although, it isn't such a far-fetched idea is it?  It can still be a
> client thing couldn't it as ultimately it is Ivy that is still doing the
> publishing.  It would be a lot simpler to hook up a generic trigger to all
> "post-publish" events than it would be to call it after every publish from
> every build script.


You can still define your own publish task using ant macrodef for example,
then call this one, and you'll be sure your post publish stuff is always
called as long as you use this task. It doesn't work when you use Ivy from
the command line though, nor with the API. So if you really consider we
should add a post publish event for the triggers, feel free to add a JIRA
issue.

Xavier

Thanks for the reminder on ivy:buildlist as well.
>
>
> > If Ivy doesn't support this - has anyone else done something like this?
> > > The only other way I can see to do it would be to actually monitor the
> > > filesystem where the artifact repository is kept.
> >
> >
> > What can be done is use a CI server which is Ivy aware like xooctory
> [1],
> > but I guess you already know about that :-)
> >
> > Xavier
> > [1] http://xooctory.xoocode.org/
>
>
> Yup.  I can't wait. ;)
>
> M.
> AMI Semiconductor - "Silicon Solutions for the Real World"
> NOTICE:
> This electronic message contains information that may be confidential or
> privileged. The information is intended for the use of the individual or
> entity named above. If you are not the intended recipient, please be aware
> that any disclosure, copying, distribution or use of the contents of this
> information is prohibited. If you received this electronic message in error,
> please notify the sender and delete the copy you received.
>



-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://incubator.apache.org/ivy/
http://www.xoocode.org/

Re: Publish Event Trigger?

Posted by Ma...@amis.com.
"Xavier Hanin" <xa...@gmail.com> wrote on 09/24/2007 12:22:12 PM:

> On 9/24/07, Mark_Melvin@amis.com <Ma...@amis.com> wrote:
> >
> > Hi All,
> >
> > I am looking at the documentation on triggers and I have also browsed 
the
> > source and it appears to my new-to-Ivy eyes that there is no way to 
hook
> > up a trigger to the delivery or publishing of an artifact.  Is this, 
in
> > fact, the case?  What I am trying to do is trigger a rebuild of any
> > modules that depend on a given artifact, whenever a new version of 
that
> > artifact has been published.
> 
> 
> Indeed, there is no such trigger, but to publish a module you need to 
call
> explicitly the publish action, so you can pretty easily call something 
else
> after the publish. If you are thinking about something like a repository
> event, Ivy is a client side tool, and thus do not provide repository 
events.
> BTW, to get all modules depending on one module, you can use the build 
list
> task with the leaf attribute.
> 

Yes - I was thinking about this over lunch and came to this realization. 
It is more something I can just call/broadcast as part of my build script. 
 Although, it isn't such a far-fetched idea is it?  It can still be a 
client thing couldn't it as ultimately it is Ivy that is still doing the 
publishing.  It would be a lot simpler to hook up a generic trigger to all 
"post-publish" events than it would be to call it after every publish from 
every build script.

Thanks for the reminder on ivy:buildlist as well.


> If Ivy doesn't support this - has anyone else done something like this?
> > The only other way I can see to do it would be to actually monitor the
> > filesystem where the artifact repository is kept.
> 
> 
> What can be done is use a CI server which is Ivy aware like xooctory 
[1],
> but I guess you already know about that :-)
> 
> Xavier
> [1] http://xooctory.xoocode.org/


Yup.  I can't wait. ;)

M.
AMI Semiconductor - "Silicon Solutions for the Real World"
NOTICE: 
This electronic message contains information that may be confidential or privileged. The information is intended for the use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you received this electronic message in error, please notify the sender and delete the copy you received.

Re: Publish Event Trigger?

Posted by Xavier Hanin <xa...@gmail.com>.
On 9/24/07, Mark_Melvin@amis.com <Ma...@amis.com> wrote:
>
> Hi All,
>
> I am looking at the documentation on triggers and I have also browsed the
> source and it appears to my new-to-Ivy eyes that there is no way to hook
> up a trigger to the delivery or publishing of an artifact.  Is this, in
> fact, the case?  What I am trying to do is trigger a rebuild of any
> modules that depend on a given artifact, whenever a new version of that
> artifact has been published.


Indeed, there is no such trigger, but to publish a module you need to call
explicitly the publish action, so you can pretty easily call something else
after the publish. If you are thinking about something like a repository
event, Ivy is a client side tool, and thus do not provide repository events.
BTW, to get all modules depending on one module, you can use the build list
task with the leaf attribute.

If Ivy doesn't support this - has anyone else done something like this?
> The only other way I can see to do it would be to actually monitor the
> filesystem where the artifact repository is kept.


What can be done is use a CI server which is Ivy aware like xooctory [1],
but I guess you already know about that :-)

Xavier
[1] http://xooctory.xoocode.org/

Thanks,
> Mark.
>
> AMI Semiconductor - "Silicon Solutions for the Real World"
> NOTICE:
> This electronic message contains information that may be confidential or
> privileged. The information is intended for the use of the individual or
> entity named above. If you are not the intended recipient, please be aware
> that any disclosure, copying, distribution or use of the contents of this
> information is prohibited. If you received this electronic message in error,
> please notify the sender and delete the copy you received.
>



-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://incubator.apache.org/ivy/
http://www.xoocode.org/