discussion on package-version numbers... (PR 56961)
Garance A Drosihn
drosih at rpi.edu
Fri May 7 11:01:08 PDT 2004
At 5:08 PM -0500 5/6/04, Jacques A. Vidrine wrote:
>On Thu, May 06, 2004 at 02:36:41PM -0700, Kris Kennaway wrote:
> > On Thu, May 06, 2004 at 04:24:42PM -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
Is it fair to say that the real problem is that we are trying to
impose order on version-numbers which are being picked by the
10,000 different developers of the original programs that we are
creating ports for? So, basically, no matter what scheme we come
up with, we have absolutely no way to force any of the original
authors to conform to our scheme. None. We can not do it. It
will not happen. We have no way to make it happen. Even if we
pick something that works today, there is nothing we can do to
prevent 1,000 of those independent developers deciding on some
new version-numbering scheme for *their* products tomorrow, and
thus break whatever clever grammar we dreamed up today.
If so, then let's just give up on that. Alternate idea for
<portversion> -> *our* idea of the version of the sources
for this port. Make it a date string.
[personal twist on that idea: make the month
a letter from A-L, instead of 01-12]
<portrevision> -> incremented when *our* files for a port
changes (our makefiles, our patches, etc),
but we are still basing the port on the
same sources from the original developer.
<origversion> -> the version which the original developer
tagged on their source files.
So, a full portname might look like:
We use the '2003E16.0' part for all our own FreeBSD-ports
processing, and we basically ignore whatever version the
original author gave their source. The *author's* version is
only there for humans to eyeball and nod at, when they want to
compare what they have installed on FreeBSD to what they have
on other operating systems. It is not to be used by ports-
processing, since we have no control over those values.
. . . . . . or was my initial premise not fair to say? :-)
Garance Alistair Drosehn = gad at gilead.netel.rpi.edu
Senior Systems Programmer or gad at freebsd.org
Rensselaer Polytechnic Institute or drosih at rpi.edu
More information about the cvs-ports