On 16 September 2013 12:26, Fred Cooke <fred.co...@gmail.com> wrote:

> Version ranges are extremely useful for this case: lib 0.2.4 >> 0.3.0 non
> inclusive where lib has a guaranteed stable API with only non-breaking bug
> fixes and additions. There are other uses, too. I sincerely hope it's never
> dropped or broken.
>
>
What I want to see, and it would be a change that requires a POM
specification change, is that version ranges are never provided without a
"recommended" version.

So I would see something like 1.0.3:[1.0.0,1.1.0),[1.1.1,2.0.0) as meaning
use 1.0.3 but it should work with anything >= 1.0.0 and < 1.1.0 or >=1.1.1
but < 2.0.0 (presumably 1.1.0 is known broken)

You could even allow meta-labels when the pom itself is a -SNAPSHOT
version, e.g.

SNAPSHOT:[1.0.0,1.1.0),[1.1.1,2.0.0)
LATEST:[1.0.0,1.1.0),[1.1.1,2.0.0)
STABLE:[1.0.0,1.1.0),[1.1.1,2.0.0)

The first says pick the highest version that is in the range and -SNAPSHOT
is allowed
The second says pick the highest release version that is in the range,
-SNAPSHOT is not allowed
The third says pick the lowest release version that is in the range,
-SNAPSHOT is not allowed

When the release plugin runs, it would replace the SNAPSHOT, LATEST or
STABLE with the most appropriate corresponding release version *at the time
of release*.

Thus release builds are reproducible always and developers would not need
to worry about updating poms. Some tooling or CLI options on Maven could
allow for switching a build from the meta-label in the POM to a specific
meta-label so that CI builds could probe the extremes easily... and I am
sure we could provide additional tooling to probe data points within the
various ranges.

But I would like to see naked ranges dropped from release builds as they
lead to irreproducible release builds, which is a very bad thing


> On Mon, Sep 16, 2013 at 10:09 AM, Stephen Connolly <
> stephen.alan.conno...@gmail.com> wrote:
>
> > On 16 September 2013 08:20, Jörg Schaible <joerg.schai...@scalaris.com
> > >wrote:
> >
> > > Hi Jason,
> > >
> > > Jason van Zyl wrote:
> > >
> > > > When a release fails like this it is annoying to have to rev back the
> > > > version of the POM. I'm not sure who flipped the versions in the POM
> > and
> > > > while it's a little more visible to see what you're moving toward I
> > > prefer
> > > > the pattern of:
> > > >
> > > > 3.1-SNAPSHOT --> 3.1.1 --> 3.1-SNAPSHOT --> 3.1.2 --> 3.1-SNAPSHOT
> > > >
> > > > I know this may not be obvious to the casual observer as they may
> think
> > > > 3.1 is next, but I'm personally fine with that.
> > >
> > > That's quite funny, because we did this years ago when we started using
> > M2
> > > and then we were told here in the list it is an anti-pattern, because
> > 3.1-
> > > SNAPSHOT is always minor for the dependency resolution than any 3.1.x
> > > release.
> > >
> > >
> > That was before it was decided that version ranges were a bad plan. If we
> > were using version ranges then this would indeed be crapulent
> >
> >
> > > - Jörg
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > For additional commands, e-mail: dev-h...@maven.apache.org
> > >
> > >
> >
>

Reply via email to