discussion on package-version numbers... (PR 56961)

Jacques A. Vidrine nectar at FreeBSD.org
Wed May 12 09:10:17 PDT 2004


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 at celabo.org / jvidrine at verio.net / nectar at freebsd.org


More information about the cvs-ports mailing list