On 6/7/07, Buck, Robert <[EMAIL PROTECTED]> wrote:

Hi Xavier,

It might be that you simply missed it in all that xml code. But on the
integration side I thought the branch was handled:

<artifact
pattern="http://localhost:20080/ivyrep/integration/[organisation]/[modul
e]/[branch]/[type]s/[artifact]-[revision].[ext]"/>

Or am I missing something?


I saw the branch on the integration side. What I was talking about is the
release side. If you configure Ivy like you suggest, when you ask for a
latest version, Ivy will try to find it both in your release repo and
integration one. So Ivy may take a version in the release repo believing
it's more recent than the other one in the integration repo, even if you
asked for a particular branch, because your release repo do not have a
branch token in the pattern. This may or may not be an issue depending on
your release and dependencies policy.

Xavier

Bob

> -----Original Message-----
> From: Xavier Hanin [mailto:[EMAIL PROTECTED]
> Sent: Thursday, June 07, 2007 3:22 AM
> To: [email protected]
> Subject: Re: Relationship between branches, revisions;
> integration, and release.
>
> On 6/6/07, Buck, Robert <[EMAIL PROTECTED]> 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]/[mod
> > ul e]/[branch]/[type]s/[artifact].[ext]"/>
> >       <artifact
> >
> pattern="http://localhost:20080/ivyrep/integration/[organisation]/[mod
> > ul 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/
>




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

Reply via email to