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>