ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <xavier.ha...@gmail.com>
Subject Re: Relationship between branches, revisions; integration, and release.
Date Thu, 07 Jun 2007 07:22:20 GMT
On 6/6/07, Buck, Robert <rbuck@verisign.com> wrote:
>
> In an earlier thread on "best repository layout" a suggestion was made
> by Xavier where I should consider how to handle branches, and also how
> to handle integation and releases.
>
> From what I can determine this comes down to two settings:
>
> A. the status fields in the ivys files in the repository
> B. the [branch] vs [release] attributes in the patterns
>
> Would then it make sense to do something like the following? (wondering
> if I pulled the concepts together correctly).
>
> <?xml version="1.0"?>
> <ivyconf>
>   <resolvers>
>     <url name="public-resolver">
>       <ivy
> pattern="http://localhost:20080/ivyrep/release/[organisation]/[module]/[
> revision]/ivys/ivy-[revision].xml"/>
>       <artifact
> pattern="http://localhost:20080/ivyrep/release/[organisation]/[module]/[
> revision]/[type]s/[artifact].[ext]"/>
>       <artifact
> pattern="http://localhost:20080/ivyrep/release/[organisation]/[module]/[
> revision]/[type]s/[artifact]-[revision].[ext]"/>
>       <artifact
> pattern="http://localhost:20080/ivyrep/integration/[organisation]/[modul
> e]/[branch]/[type]s/[artifact].[ext]"/>
>       <artifact
> pattern="http://localhost:20080/ivyrep/integration/[organisation]/[modul
> e]/[branch]/[type]s/[artifact]-[revision].[ext]"/>
>     </url>
>   </resolvers>
> </ivyconf>
>
> Here, nothing is released unless it has a number, otherwise it is always
> on a branch, even if the branch were "mainline". And, we partition the
> ivyrep between release and integration, which may make it easier to
> manage.
>
> Thoughts?


This sounds like a good layout according to your development rules. If you
never release things on a branch it's fine. There is one thing you should
take into account though: the way you declare your dependencies and how they
evolve over time. When you depend on a branch in integration, you will have
something like this:
<dependency org="acme" name="foo" branch="bar" rev="latest.integration"/>

The problem you might have is that if you have release which is yougest than
the integration version on branch 'bar', Ivy will pick it up, because you
have no branch information in your release repository. Thus having a
[branch] token in your release layout could make sense, even if the value is
always 'mainline' for instance. This would let Ivy know that release can
only be used when the branch is 'mainline'.

Xavier

Thanks in advance,
>
> Bob
>



-- 
Xavier Hanin - Independent Java Consultant
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/

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