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 bhatia <Bh...@OFAC.CH> on 2007/09/13 13:37:04 UTC

building only whats necessary with Ivy

On the xooctory site, I read this:

"leveraging Ivy to manage the dependencies between the modules, and rebuild
exactly what is necessary, in the correct order, blocking builds when a
dependency is currently building, and so on"

Can someone provide more inputs/ideas on how to rebuild exactly what is
necessary using Ivy ? What are the (best) practices you use to determine
what has changed ? 

thanks


-- 
View this message in context: http://www.nabble.com/building-only-whats-necessary-with-Ivy-tf4435147.html#a12653121
Sent from the ivy-user mailing list archive at Nabble.com.

Re: building only whats necessary with Ivy

Posted by bhatia <Bh...@OFAC.CH>.
Well, thanks so much for your insights. Xooctory is worth waiting for:
1) it will build only whats needed to be built ( unlike CC which rebuilds
everything so cant scale)
2) it will do so using ivy module files
These 2 points are so logical I cant help getting my hands on it... I have
been able to move all our developers to Ivy in RAD7, so have eliminated the
need to cvs co all dependant projects in the workspace; ity Ivy that
retrieves our dependencies from the repository.

Saurabh



bhatia wrote:
> 
> On the xooctory site, I read this:
> 
> "leveraging Ivy to manage the dependencies between the modules, and
> rebuild exactly what is necessary, in the correct order, blocking builds
> when a dependency is currently building, and so on"
> 
> Can someone provide more inputs/ideas on how to rebuild exactly what is
> necessary using Ivy ? What are the (best) practices you use to determine
> what has changed ? 
> 
> thanks
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/building-only-whats-necessary-with-Ivy-tf4435147.html#a13037430
Sent from the ivy-user mailing list archive at Nabble.com.


Re: building only whats necessary with Ivy

Posted by Xavier Hanin <xa...@gmail.com>.
On 9/13/07, Gilles Scokart <gs...@gmail.com> wrote:
>
> Note that the view of cruise control evolve slowly.  They have introduced
> a
> veto plugins some months ago, and recently they have made a new step with
> this : http://jira.public.thoughtworks.org/browse/CC-680


Thanks for the update Gilles, I'm glad to hear they finally go in this
direction. It would be very nice if all CI servers out there were able to
deal with dependencies properly!

Xavier

Gilles
>
> > -----Original Message-----
> > From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> > Sent: jeudi 13 septembre 2007 15:37
> > To: ivy-user@incubator.apache.org
> > Subject: Re: building only whats necessary with Ivy
> >
> > This would be a good question for the xooctory user list :-) More
> comments
> > below.
> >
> > On 9/13/07, Stephan Zeissler (KUTTIG) <st...@kuttig.com>
> wrote:
> > >
> > > I don't think thats a feature of Ivy, more a feature of xooctory. The
> CI
> > > server may parse the ivy.xml files and build a dependency tree from
> > > this. So when your projects depends on a library and you build a new
> > > version of the lib, all dependent projects get rebuild, too.
> >
> >
> > That's exactly what xooctory does (or is about to do, since this feature
> > is
> > still in developement). Basically some continuous integration servers do
> > not
> > implement project dependencies at all, and recommend to build your whole
> > codebase at once whenever one module in your app change (this is what
> has
> > been recommended with cruisecontrol for a long time). This does not
> scale
> > very well, and you happen to rebuild and retest your whole application
> > only
> > when a very small subset is changed. Hence some CI servers implement
> > project
> > dependencies, so that you create one project in your server per module
> in
> > your app, describe their dependencies, then the server takes care of
> > rebuilding the right modules depending on your modifications. But then
> > when
> > you a dependency manager like Ivy, you still have to maintain your
> > dependencies in your CI server by hand to keep them in sync with your
> > metadata. So the idea is to make the CI server aware of metadata
> available
> > in your modules. That's what the IvyCruise plugin tried to achieve a
> long
> > time ago, but the CC architecture didn't make that easy. So that's what
> > xooctory will achieve pretty soon.
> >
> > As i dont know xooctory, I dont know how it determines, what has
> > > changed, but from hudson I know that you can e.g. pull a scm
> repository
> > > (svn,cvs,..) regularly or start a build via the invocation of an URL.
> > > But all this is part of the CI server, not Ivy.
> >
> >
> > Indeed. The singularity is that Xooctory considers module dependencies
> as
> > first class citizens in the CI process, as the SCM is. Hudson has pretty
> > good support of project dependencies, but you still need to maintain
> them
> > by
> > hand as far as I know (at least it was the case when I started the
> > xooctory
> > project some months ago).
> >
> > Xavier
> >
> > - Stephan
> > >
> > > bhatia schrieb:
> > > > On the xooctory site, I read this:
> > > >
> > > > "leveraging Ivy to manage the dependencies between the modules, and
> > > rebuild
> > > > exactly what is necessary, in the correct order, blocking builds
> when
> > a
> > > > dependency is currently building, and so on"
> > > >
> > > > Can someone provide more inputs/ideas on how to rebuild exactly what
> > is
> > > > necessary using Ivy ? What are the (best) practices you use to
> > determine
> > > > what has changed ?
> > > >
> > > > thanks
> > > >
> > >
> >
> >
> >
> > --
> > Xavier Hanin - Independent Java Consultant
> > http://xhab.blogspot.com/
> > http://incubator.apache.org/ivy/
> > http://www.xoocode.org/
>
>


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

Re: building only whats necessary with Ivy

Posted by Xavier Hanin <xa...@gmail.com>.
On 9/13/07, Stephan Zeissler (KUTTIG) <st...@kuttig.com> wrote:
>
>
> > Indeed. The singularity is that Xooctory considers module dependencies
> as
> > first class citizens in the CI process, as the SCM is. Hudson has pretty
> > good support of project dependencies, but you still need to maintain
> them by
> > hand as far as I know (at least it was the case when I started the
> xooctory
> > project some months ago).
> >
> Yes, this is still the case. I'm already thinking about writing a plugin
> for that, but my knowledge in hudson development is still at 0% XD


I thought about that too before creating xooctory, the problem was that
hudson architecture didn't met my requirements (not on this particular
subject, but others like scalability). But it would be very nice to have an
Ivy plugin for hudson.

Xavier

- Stephan
>
>


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

Re: building only whats necessary with Ivy

Posted by "Stephan Zeissler (KUTTIG)" <st...@kuttig.com>.
> Indeed. The singularity is that Xooctory considers module dependencies as
> first class citizens in the CI process, as the SCM is. Hudson has pretty
> good support of project dependencies, but you still need to maintain them by
> hand as far as I know (at least it was the case when I started the xooctory
> project some months ago).
>   
Yes, this is still the case. I'm already thinking about writing a plugin for that, but my knowledge in hudson development is still at 0% XD

- Stephan


RE: building only whats necessary with Ivy

Posted by Gilles Scokart <gs...@gmail.com>.
Note that the view of cruise control evolve slowly.  They have introduced a
veto plugins some months ago, and recently they have made a new step with
this : http://jira.public.thoughtworks.org/browse/CC-680


Gilles

> -----Original Message-----
> From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> Sent: jeudi 13 septembre 2007 15:37
> To: ivy-user@incubator.apache.org
> Subject: Re: building only whats necessary with Ivy
> 
> This would be a good question for the xooctory user list :-) More comments
> below.
> 
> On 9/13/07, Stephan Zeissler (KUTTIG) <st...@kuttig.com> wrote:
> >
> > I don't think thats a feature of Ivy, more a feature of xooctory. The CI
> > server may parse the ivy.xml files and build a dependency tree from
> > this. So when your projects depends on a library and you build a new
> > version of the lib, all dependent projects get rebuild, too.
> 
> 
> That's exactly what xooctory does (or is about to do, since this feature
> is
> still in developement). Basically some continuous integration servers do
> not
> implement project dependencies at all, and recommend to build your whole
> codebase at once whenever one module in your app change (this is what has
> been recommended with cruisecontrol for a long time). This does not scale
> very well, and you happen to rebuild and retest your whole application
> only
> when a very small subset is changed. Hence some CI servers implement
> project
> dependencies, so that you create one project in your server per module in
> your app, describe their dependencies, then the server takes care of
> rebuilding the right modules depending on your modifications. But then
> when
> you a dependency manager like Ivy, you still have to maintain your
> dependencies in your CI server by hand to keep them in sync with your
> metadata. So the idea is to make the CI server aware of metadata available
> in your modules. That's what the IvyCruise plugin tried to achieve a long
> time ago, but the CC architecture didn't make that easy. So that's what
> xooctory will achieve pretty soon.
> 
> As i dont know xooctory, I dont know how it determines, what has
> > changed, but from hudson I know that you can e.g. pull a scm repository
> > (svn,cvs,..) regularly or start a build via the invocation of an URL.
> > But all this is part of the CI server, not Ivy.
> 
> 
> Indeed. The singularity is that Xooctory considers module dependencies as
> first class citizens in the CI process, as the SCM is. Hudson has pretty
> good support of project dependencies, but you still need to maintain them
> by
> hand as far as I know (at least it was the case when I started the
> xooctory
> project some months ago).
> 
> Xavier
> 
> - Stephan
> >
> > bhatia schrieb:
> > > On the xooctory site, I read this:
> > >
> > > "leveraging Ivy to manage the dependencies between the modules, and
> > rebuild
> > > exactly what is necessary, in the correct order, blocking builds when
> a
> > > dependency is currently building, and so on"
> > >
> > > Can someone provide more inputs/ideas on how to rebuild exactly what
> is
> > > necessary using Ivy ? What are the (best) practices you use to
> determine
> > > what has changed ?
> > >
> > > thanks
> > >
> >
> 
> 
> 
> --
> Xavier Hanin - Independent Java Consultant
> http://xhab.blogspot.com/
> http://incubator.apache.org/ivy/
> http://www.xoocode.org/


Re: building only whats necessary with Ivy

Posted by Xavier Hanin <xa...@gmail.com>.
This would be a good question for the xooctory user list :-) More comments
below.

On 9/13/07, Stephan Zeissler (KUTTIG) <st...@kuttig.com> wrote:
>
> I don't think thats a feature of Ivy, more a feature of xooctory. The CI
> server may parse the ivy.xml files and build a dependency tree from
> this. So when your projects depends on a library and you build a new
> version of the lib, all dependent projects get rebuild, too.


That's exactly what xooctory does (or is about to do, since this feature is
still in developement). Basically some continuous integration servers do not
implement project dependencies at all, and recommend to build your whole
codebase at once whenever one module in your app change (this is what has
been recommended with cruisecontrol for a long time). This does not scale
very well, and you happen to rebuild and retest your whole application only
when a very small subset is changed. Hence some CI servers implement project
dependencies, so that you create one project in your server per module in
your app, describe their dependencies, then the server takes care of
rebuilding the right modules depending on your modifications. But then when
you a dependency manager like Ivy, you still have to maintain your
dependencies in your CI server by hand to keep them in sync with your
metadata. So the idea is to make the CI server aware of metadata available
in your modules. That's what the IvyCruise plugin tried to achieve a long
time ago, but the CC architecture didn't make that easy. So that's what
xooctory will achieve pretty soon.

As i dont know xooctory, I dont know how it determines, what has
> changed, but from hudson I know that you can e.g. pull a scm repository
> (svn,cvs,..) regularly or start a build via the invocation of an URL.
> But all this is part of the CI server, not Ivy.


Indeed. The singularity is that Xooctory considers module dependencies as
first class citizens in the CI process, as the SCM is. Hudson has pretty
good support of project dependencies, but you still need to maintain them by
hand as far as I know (at least it was the case when I started the xooctory
project some months ago).

Xavier

- Stephan
>
> bhatia schrieb:
> > On the xooctory site, I read this:
> >
> > "leveraging Ivy to manage the dependencies between the modules, and
> rebuild
> > exactly what is necessary, in the correct order, blocking builds when a
> > dependency is currently building, and so on"
> >
> > Can someone provide more inputs/ideas on how to rebuild exactly what is
> > necessary using Ivy ? What are the (best) practices you use to determine
> > what has changed ?
> >
> > thanks
> >
>



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

Re: building only whats necessary with Ivy

Posted by "Stephan Zeissler (KUTTIG)" <st...@kuttig.com>.
I don't think thats a feature of Ivy, more a feature of xooctory. The CI 
server may parse the ivy.xml files and build a dependency tree from 
this. So when your projects depends on a library and you build a new 
version of the lib, all dependent projects get rebuild, too.

As i dont know xooctory, I dont know how it determines, what has 
changed, but from hudson I know that you can e.g. pull a scm repository 
(svn,cvs,..) regularly or start a build via the invocation of an URL. 
But all this is part of the CI server, not Ivy.

- Stephan

bhatia schrieb:
> On the xooctory site, I read this:
>
> "leveraging Ivy to manage the dependencies between the modules, and rebuild
> exactly what is necessary, in the correct order, blocking builds when a
> dependency is currently building, and so on"
>
> Can someone provide more inputs/ideas on how to rebuild exactly what is
> necessary using Ivy ? What are the (best) practices you use to determine
> what has changed ? 
>
> thanks
>