maven-m2-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason van Zyl <>
Subject Re: setting jar:install on its head
Date Thu, 23 Sep 2004 14:51:54 GMT
On Thu, 2004-09-23 at 10:05, John Casey wrote:
> > 
> > - what "m2 release" means for poms with <version>0.16</version> (not
> > <version>0.16-SNAPSHOT</version>
> > 
> why do we need to specify x.x-SNAPSHOT in the version element? If we 
> assume that we're producing a snapshot artifact unless we use one of the 
> myriad *-release goals (proposed, not currently in place), then this is 
> a useless annotation.
> I'd propose that in all cases, we have the "next" version in the POM...

That would be entirely unclear. Someone looking at the version and
seeing 0.17 would probably not understand that it was what you were
moving toward. I think the simple tag of SNAPSHOT serves well as an
indicator that things are in flux. I am happy with SNAPSHOT designation
and that at release time it is simply removed.

> If we're releasing snapshots building toward 0.17, then it's 
> <version>0.17</version>
> Then, everything we build that's not the result of a *-release goal 
> might look similar to:
> myartifact-0.17-20040922.120000-5.jar
> as a timestamp, or else using some sort of serial counter.


I think the idea of always producing a timestamped version is a good
thing but allowing "SNAPSHOT" in versions, whether that be in the POM or
dependencies, triggers certain behaviours.

> I just don't understand the value of distinguishing a -SNAPSHOT 
> versioned POM from a regularly versioned one...

What about dependencies? Are we then going to mark them differently? If
there is no marker for a SNAPSHOT we lose all control over how our
snapshots work. If we have no SNAPSHOT designation how will we actually
download SNAPSHOTs? I don't like the idea of the versioning being
different for the artifact itself and its dependencies.

> unless we assume that 
> it's legitimate to build both snapshots and releases as part of everyday 
> development activity for a particular project. 

Why do we have to make that assumption?

I think the notion of everything being in state of flux until release is
what actually happens. That until release every artifact is produced
with a timestamp and we have a mechanism to map the latest "SNAPSHOT"
with the artifact that was most recently produced.

> I'm not eager to do this. 
> I think that any place that has a release strategy at all would disagree 
> with this. Snapshot production should dominate the common usage of maven 
> by a factor of like 10 to 1, so it stands to reason - to me, at least - 
> that we should make and widely document the assumption that maven will 
> build snapshots, UNLESS a *-release goal is fired.

I agree with that, but that doesn't mean we need to get rid of the
SNAPSHOT designator. I think it would be detrimental because it's not
intuitive at all that "0.17" is what you're working toward. Someone
would check that out and think they were building "0.17".

> -j


Jason van Zyl

happiness is like a butterfly: the more you chase it, the more it will
elude you, but if you turn your attention to other things, it will come
and sit softly on your shoulder ...

 -- Thoreau 

View raw message