Awesome. Thanks, Geoff. Whenever you get back from your travels, I'd be
curious to know if you had to specify your own latest-revision strategy to
get this working.

If anyone else out there is prolifically versioning integration builds,
whether with a buildnumber or a timestamp, how'd you get that working? Did
you have to define your own latest-revision strategy?

Now that I think of it, one very simple approach is to just prolifically
version all integration builds, including those on a developer machine. For
this, you don't even need a special suffix. So you might produce:
2.0-201008250832
2.0-201008250842
etc.

And then in dependencies you can ask for:
rev="2.0-+"
(assuming you know you want an integration version)

The only downside to this approach is that each developer is producing a new
revision on their local machine every time they do a publish. This seems
like overkill, but maybe it's not such a bad thing. Maybe it's a good thing
if you want to compare how a change affects a dependency's behavior.

This looks like what happens with Geoff's codegeo project. Developer builds
will prolifically version with the *-SNAPSHOTx auto-incrementing. This
raises the potential for a conflict if a developer build produces
*-SNAPSHOT5 based on ivy:buildnumber because the latest version in the
shared repo is *-SNAPSHOT4 and then subsequently the shared repo gets its
own *-SNAPSHOT5.

On Tue, Aug 24, 2010 at 2:19 PM, Geoff Clitheroe <g.clithe...@gmail.com>wrote:

> Hi Mitch,
>
> I'm heading for a plane and will be away for a while.  This may be useful -
> how we're doing snapshots (for this repo anyhow)
>
> http://codegeo.org/confluence/display/codegeo/Publishing
>
> http://codegeo.org/repos/codegeo/build/trunk/build-base.xml
>
>
> Cheers,
> Geoff
>
>
> On Wed, Aug 25, 2010 at 3:14 AM, Mitch Gitman <mgit...@gmail.com> wrote:
>
> > Bumping this to the top to see if I can get any takers. I'm particularly
> > interested in seeing how anyone was able to work a timestamp or
> buildnumber
> > into the mix and whether that needed a custom revision strategy.
> >
> > On Sun, Aug 22, 2010 at 4:19 PM, Mitch Gitman <mgit...@gmail.com> wrote:
> >
> > > I'm grappling with some of the choices surrounding integration
> versions.
> > >
> > > One assumption I want to make is that non-integration versions—versions
> > > that represent releases—do not have any special suffixes. So I would
> > release
> > > version 2.0 of something rather than 2.0-FINAL or 2.0-RELEASE or
> > something
> > > like that.
> > >
> > > I do want to use a special suffix to represent integration versions.
> One
> > > combination that makes sense to me is -DEV and -CI. It seems that I
> > should
> > > specify something like the following in my Ivy settings:
> > >   <latest-revision name="mylatest-revision"
> > > usedefaultspecialmeanings="false">
> > >     <specialMeaning name="CI" value="-2"/>
> > >     <specialMeaning name="DEV" value="-1"/>
> > >   </latest-revision>
> > >
> > > Does this look right? Notice no hyphen prefix. And as long I'm
> mentioning
> > > the suffixes -DEV and -CI, anyone care to suggest a better suffix or
> > > combination? Of course there's always -SNAPSHOT.
> > >
> > > Now suppose I want to do prolific versioning where each integration
> > version
> > > gets its own timestamp. It seems like overkill to do prolific
> versioning
> > on
> > > publishes on a developer machine. Only for the CI server do I only want
> > to
> > > produce a unique, timestamped version on each publish. So I want to
> have
> > the
> > > ordering from newest to oldest go something like:
> > > 1. 2.1-DEV on developer machine
> > > 2. 2.1-CI-201008221522 on CI-published repository
> > > 3. 2.1-CI-201008220801 on CI-published repository
> > > 4. 2.1-CI-201008201948 on CI-published repository
> > > 5. 2.0 on release repository
> > >
> > > Do these look like reasonable conventions, or could someone recommend a
> > > better convention for producing a unique version from each successful
> CI
> > > build?
> > >
> > > If these conventions do look reasonable, how do I incorporate the extra
> > > timestamp suffix into my latest-revision latest-strategy in Ivy
> settings
> > to
> > > ensure that CI versions get ordered by timestamp but still get treated
> as
> > > older than DEV and release builds?
> > >
> > > P.S. I need to go back over some old ivy-user threads on this topic.
> > >
> >
>

Reply via email to