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>
