How to deal with major versions? (was Re: [Zope3-dev] Re: egg
version numbers and zope releases)
Jim Fulton
jim at zope.com
Wed May 30 16:20:09 EDT 2007
On May 30, 2007, at 3:36 PM, Jodok Batlogg wrote:
>
> On 30.05.2007, at 21:30, Jim Fulton wrote:
>
>>
>> On May 30, 2007, at 3:20 PM, Christian Theune wrote:
>>
>>> Hi,
>>>
>>> Am Mittwoch, den 30.05.2007, 15:12 -0400 schrieb Benji York:
>>>> Jim Fulton wrote:
>>>>> It's actually worse than that. <2.0 would admit 2.0a1. :) You'd
>>>>> probably need something like < 1.99.
>>>>
>>>> I can deal with spelling dependencies on major version X as <= X.
>>>> 999.
>>>>
>>>>> Even if developers remembered, it would be icky to have to
>>>>> spell out
>>>>> something like >=3.4 <=3.99 on everwhere.
>>>>
>>>> Not as icky (IMHO) as having distribution names with embedded major
>>>> version numbers. I'm interested in other people's opinions here.
>>>
>>> I don't like version numbers encoded in package names. I consider
>>> this
>>> to be a work-around for packaging systems that aren't rich enough.
>>>
>>> (Gentoo for example gets this right.)
>>
>> Could you elaborate on this?
>
> well :) i'm co-maintainer of the net-zope herd in gentoo:
>
> read my attempt to improve the plone versioning: http://
> article.gmane.org/gmane.comp.web.zope.plone.devel/3227/match=version
> +gentoo+batlogg
tmi :)
> in summary:
>
> Naming release tarballs (adapted from the gentoo conventions ;-))
>
> file names consist of three logical sections:
>
> The first section is the package name, which should only contain
> lowercase
> letters, the digits 0-9, and any number of single hyphen ('-') or
> underscore ('_') characters. Some examples are cmfplone,
> cmfquickinstaller,
> formulator,...
>
> The second section is the version of the package, which should
> normally be
> same as the version of the contained product. The version is
> normally made
> up of two or three numbers separated by periods, such as 1.2 or
> 4.5.2, and
> may have a single letter immediately following the last digit;
> e.g., 1.4b
> or 2.6h. The package version is joined to the package name with a
> hyphen;
> for example: foo-1.0, bar-2.4.6, etc.
>
> Important: If you're thinking of using a trailing letter in your
> version
> string, note that the trailing letter should not be used to signify
> alpha
> or beta status for the package, since alphas and betas are
> prereleases and
> letter revisions are newer versions. It's very important that version
> numbers faithfully represent the version of the package so that
> depenency
> checking is possible.
>
> The third (optional) section contains a special suffix; either _alpha,
> _beta, _pre (pre-release), _rc (release candidate), or _p (patch).
> Any of
> these suffixes may be immediately followed my a number; e.g.,
> linux-2.4.0_pre10; Assuming identical version parts, an _alpha
> package is
> older than _beta, _beta older than _pre, _pre older than _rc, and
> _rc older
> than _p. This section is meant to reflect upstream versions only.
>
> Note: An _rc package is older than a package without an underscore
> prefix
> (i.e. linux-2.4.0), and linux-2.4.0 is older than a package with a
> single
> letter prefix, i.e. linux-2.4.0b. As you would expect, the
> linux-2.4.0b
> package is considered older than linux-2.4.0c.
>
> ... and I suppose that we actually have a fourth section of the
> file name --
> the .tar.gz extension itself.
I don't see how this helps one say that they want to depend on a
minimum version of a major version. That is, how does it prevent
dependencies like:
foo >=1.0 <1.999
?
I'm wondering how Gentoo got *that* right.
Jim
--
Jim Fulton mailto:jim at zope.com Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
More information about the Zope3-dev
mailing list