Finding dependent projects

View: New views
7 Messages — Rating Filter:   Alert me  

Finding dependent projects

by Craig Setera-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Has anyone used Ivy to map in reverse to find the modules that are
dependent on a particular module?  Does anyone have any suggestions in
this regard?  What I'd like to be able to do is trigger a build of all
dependent modules (in Hudson) when a module is changed to avoid things
like IncompatibleClassChangeError's from occurring.

Any suggestions appreciated.
Thanks,
Craig


Re: Finding dependent projects

by Joshua Tharp :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Have you looked at the Ivy plugin for Hudson? It does that already.

On Mon, Nov 2, 2009 at 12:51 PM, Craig Setera <craig@...> wrote:

> Has anyone used Ivy to map in reverse to find the modules that are
> dependent on a particular module?  Does anyone have any suggestions in this
> regard?  What I'd like to be able to do is trigger a build of all dependent
> modules (in Hudson) when a module is changed to avoid things like
> IncompatibleClassChangeError's from occurring.
>
> Any suggestions appreciated.
> Thanks,
> Craig
>
>

Re: Finding dependent projects

by topher1120 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've started looking into the Ivy plugin for Hudson to do this, but haven't
implemented it into my build process yet.  See
http://wiki.hudson-ci.org/display/HUDSON/Ivy+Plugin for more info on the
plugin.

Thanks,
topher


On Mon, Nov 2, 2009 at 1:51 PM, Craig Setera <craig@...> wrote:

> Has anyone used Ivy to map in reverse to find the modules that are
> dependent on a particular module?  Does anyone have any suggestions in this
> regard?  What I'd like to be able to do is trigger a build of all dependent
> modules (in Hudson) when a module is changed to avoid things like
> IncompatibleClassChangeError's from occurring.
>
> Any suggestions appreciated.
> Thanks,
> Craig
>
>

Re: Finding dependent projects

by Craig Setera-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks.  I've been picking up some of our build infrastructure, so I
apologize for not having a good background on all of this.

On 11/2/09 2:54 PM, Joshua Tharp wrote:

> Have you looked at the Ivy plugin for Hudson? It does that already.
>
> On Mon, Nov 2, 2009 at 12:51 PM, Craig Setera<craig@...>  wrote:
>
>    
>> Has anyone used Ivy to map in reverse to find the modules that are
>> dependent on a particular module?  Does anyone have any suggestions in this
>> regard?  What I'd like to be able to do is trigger a build of all dependent
>> modules (in Hudson) when a module is changed to avoid things like
>> IncompatibleClassChangeError's from occurring.
>>
>> Any suggestions appreciated.
>> Thanks,
>> Craig
>>
>>
>>      
>    

Re: Finding dependent projects

by Joshua Tharp :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

No worries. I've been using Hudson and the plugin for several months. My
only complaint is that a module build can kick off a "build storm" as all
the downstream modules get scheduled, and then if any of those modules are
in turn dependencies, many modules can get placed back on the queue. If you
don't mind your build numbers increasing rather rapidly, and the build
machine cycles aren't in high demand otherwise, then it is a pretty good
solution.

On Mon, Nov 2, 2009 at 12:57 PM, Craig Setera <craig@...> wrote:

> Thanks.  I've been picking up some of our build infrastructure, so I
> apologize for not having a good background on all of this.
>
>
> On 11/2/09 2:54 PM, Joshua Tharp wrote:
>
>> Have you looked at the Ivy plugin for Hudson? It does that already.
>>
>> On Mon, Nov 2, 2009 at 12:51 PM, Craig Setera<craig@...>  wrote:
>>
>>
>>
>>> Has anyone used Ivy to map in reverse to find the modules that are
>>> dependent on a particular module?  Does anyone have any suggestions in
>>> this
>>> regard?  What I'd like to be able to do is trigger a build of all
>>> dependent
>>> modules (in Hudson) when a module is changed to avoid things like
>>> IncompatibleClassChangeError's from occurring.
>>>
>>> Any suggestions appreciated.
>>> Thanks,
>>> Craig
>>>
>>>
>>>
>>>
>>
>>
>

Re: Finding dependent projects

by Craig Setera-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hmm... That doesn't sound really appealing.  We are already really
fighting with time to build.  I'm still not convinced we don't have some
serious issues related to caching and TTL, but I haven't been able to
pin it down.  But we are definitely spending WAY more time doing Ivy
resolution than I would like to see and I don't entirely know why that
is.  In my mind, Ivy is a very simple set of tools that can be amazingly
difficult to use well.  Getting it working isn't bad... getting it
working well seems to be alluding me.

On 11/2/09 3:01 PM, Joshua Tharp wrote:

> No worries. I've been using Hudson and the plugin for several months. My
> only complaint is that a module build can kick off a "build storm" as all
> the downstream modules get scheduled, and then if any of those modules are
> in turn dependencies, many modules can get placed back on the queue. If you
> don't mind your build numbers increasing rather rapidly, and the build
> machine cycles aren't in high demand otherwise, then it is a pretty good
> solution.
>
> On Mon, Nov 2, 2009 at 12:57 PM, Craig Setera<craig@...>  wrote:
>
>    
>> Thanks.  I've been picking up some of our build infrastructure, so I
>> apologize for not having a good background on all of this.
>>
>>
>> On 11/2/09 2:54 PM, Joshua Tharp wrote:
>>
>>      
>>> Have you looked at the Ivy plugin for Hudson? It does that already.
>>>
>>> On Mon, Nov 2, 2009 at 12:51 PM, Craig Setera<craig@...>   wrote:
>>>
>>>
>>>
>>>        
>>>> Has anyone used Ivy to map in reverse to find the modules that are
>>>> dependent on a particular module?  Does anyone have any suggestions in
>>>> this
>>>> regard?  What I'd like to be able to do is trigger a build of all
>>>> dependent
>>>> modules (in Hudson) when a module is changed to avoid things like
>>>> IncompatibleClassChangeError's from occurring.
>>>>
>>>> Any suggestions appreciated.
>>>> Thanks,
>>>> Craig
>>>>
>>>>
>>>>
>>>>
>>>>          
>>>
>>>        
>>      
>    

AW: Finding dependent projects

by Klaas Prause :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I don't know if this is helpful, but here is what we did to trigger builds preventing a build storm with nearly infinite rebuilds.

you don't like "build storms" you should base your triggers on the old CruiseControl plugin Ivycruise or something like this. It does the triggering roughly in the following way:
1. check all projects if the DIRECTLY depend on build project, no transitive dependencies for triggering
2. use the ivy feature to order all depend builds, this results in a list where the projects that have most dependencies on other projects are at the end.

Example (x -> y, x depends on y):
A -> B -> C
D -> C
B -> D
E -> C

1. C is build.
2. B, D and E will be triggered
3. sort projects so that least depend projects come first: E, D, B, or D, E, B

After E is build it triggers B and no build storm occurs. If you have a lot of build queue it could happen that B is build several times.

Regards Klaas


-----Ursprüngliche Nachricht-----
Von: Craig Setera [mailto:craig@...]
Gesendet: Montag, 2. November 2009 22:07
An: ivy-user@...
Betreff: Re: Finding dependent projects

Hmm... That doesn't sound really appealing.  We are already really
fighting with time to build.  I'm still not convinced we don't have some
serious issues related to caching and TTL, but I haven't been able to
pin it down.  But we are definitely spending WAY more time doing Ivy
resolution than I would like to see and I don't entirely know why that
is.  In my mind, Ivy is a very simple set of tools that can be amazingly
difficult to use well.  Getting it working isn't bad... getting it
working well seems to be alluding me.

On 11/2/09 3:01 PM, Joshua Tharp wrote:

> No worries. I've been using Hudson and the plugin for several months. My
> only complaint is that a module build can kick off a "build storm" as all
> the downstream modules get scheduled, and then if any of those modules are
> in turn dependencies, many modules can get placed back on the queue. If you
> don't mind your build numbers increasing rather rapidly, and the build
> machine cycles aren't in high demand otherwise, then it is a pretty good
> solution.
>
> On Mon, Nov 2, 2009 at 12:57 PM, Craig Setera<craig@...>  wrote:
>
>    
>> Thanks.  I've been picking up some of our build infrastructure, so I
>> apologize for not having a good background on all of this.
>>
>>
>> On 11/2/09 2:54 PM, Joshua Tharp wrote:
>>
>>      
>>> Have you looked at the Ivy plugin for Hudson? It does that already.
>>>
>>> On Mon, Nov 2, 2009 at 12:51 PM, Craig Setera<craig@...>   wrote:
>>>
>>>
>>>
>>>        
>>>> Has anyone used Ivy to map in reverse to find the modules that are
>>>> dependent on a particular module?  Does anyone have any suggestions in
>>>> this
>>>> regard?  What I'd like to be able to do is trigger a build of all
>>>> dependent
>>>> modules (in Hudson) when a module is changed to avoid things like
>>>> IncompatibleClassChangeError's from occurring.
>>>>
>>>> Any suggestions appreciated.
>>>> Thanks,
>>>> Craig
>>>>
>>>>
>>>>
>>>>
>>>>          
>>>
>>>        
>>      
>