Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 May 2004 11:10:14 -0500
From:      "Jacques A. Vidrine" <nectar@FreeBSD.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        Oliver Eikemeier <eikemeier@fillmore-labs.com>
Subject:   Re: discussion on package-version numbers... (PR 56961)
Message-ID:  <20040512161014.GC9065@madman.celabo.org>
In-Reply-To: <20040506224427.GA96804@xor.obsecurity.org>
References:  <20040416173857.GA50670@madman.celabo.org> <20040416174418.GC50670@madman.celabo.org> <40802354.3030202@fillmore-labs.com> <20040417152242.GA5543@madman.celabo.org> <20040506190729.GD1777@madman.celabo.org> <p0602040bbcc04f36c2aa@[128.113.24.47]> <20040506212442.GF2316@madman.celabo.org> <20040506213641.GA93452@xor.obsecurity.org> <20040506220855.GI2316@madman.celabo.org> <20040506224427.GA96804@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 06, 2004 at 03:44:27PM -0700, Kris Kennaway wrote:
> On Thu, May 06, 2004 at 05:08:55PM -0500, Jacques A. Vidrine wrote:
> 
> > > Some ports use "p1" for "patchlevel 1", some use it for "prerelease
> > > version 1".  Since we can't have it both ways, committers need to
> > > remember to use pkg_version -t and some careful foresight to avoid
> > > running version numbers backwards.  However ultimately there will be
> > > continue to be mistakes made, even if version monotonicity is somehow
> > > enforced at commit-time.
> > 
> > That's true, mistakes will happen.  But simpler conventions could make
> > the mistakes more obvious.
> > 
> > Strawman version grammar
> > 
> >   <version>  ::= <major> (<letter> (<minor>)? )?  '_' <revision> ',' <epoch>
> >   <major>    ::= <dotted>
> >   <minor>    ::= <dotted>
> >   <dotted>   ::= <integer> ('.' <dotted>)?
> >   <revision> ::= <integer>
> >   <epoch>    ::= <integer>
> >   <letter>   ::= 'a'..'z'
> >   <integer>  ::= 32-bit integer
> > 
> > 
> > The components are compared in this order:
> >   { epoch, major, letter, minor, revision }
> > with this exception:
> >   - Certain combinations represent `prereleases'.  These are
> >     versions with a <letter> component, but no <minor> component.
> >     All prerelease versions are less than all non-prerelease versions
> >     with the same <epoch> and <major> components.
> > 
> > The troublesome ports we discussed are now tame.
> > 
> >    3.8.1p2 > 3.8p2 > 3.8 > 3.8b > 3.8a
> >    1.0.1x2003.09.16 > 1.0x2003.09.16
> > 
> > Perhaps we want '+' to be a `letter' :-)
> > 
> > Obviously, things like 1.0rc1, 1.0rc2,... (where RC is release
> > candidate) would need to become 1.0a, 1.0b...  But one exception sure
> > seems like a win.  Now, what have I left out ? :-)
> 
> openssl 0.9.7d > 0.9.7

Just as it is today, not all `native' versions fit the Ports Collection
scheme, and so some adjustment is required.  For example, appending a
zero works well in this case:  0.9.7d0 > 0.9.7

> > You might even be able to kill the exception if you allow
> > <uppercase-letter> and <lowercase-letter> to have different meanings...
> 
> The more special cases, the more mistakes people will make and the
> more PORTEPOCH bumps that will need to be made to correct for it.

Yes, thus my desire to minimize them.  We have many now.  I think
Oliver's proposal introduces more.

Cheers,
-- 
Jacques Vidrine / nectar@celabo.org / jvidrine@verio.net / nectar@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040512161014.GC9065>