How to deal with major versions? (was Re: [Zope3-dev] Re: egg version numbers and zope releases)

Jodok Batlogg jodok at lovelysystems.com
Wed May 30 16:36:30 EDT 2007


On 30.05.2007, at 22:20, Jim Fulton wrote:

>
> 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.

you are able to specify dependencies (http://devmanual.gentoo.org/ 
general-concepts/dependencies/index.html) like:

 >=app-misc/foo-1.23 	Version 1.23 or later is required.
 >app-misc/foo-1.23 	A version strictly later than 1.23 is required.
~app-misc/foo-1.23 	Version 1.23 (or any 1.23-r*) is required.
=app-misc/foo-1.23 	Exactly version 1.23 is required. If at all  
possible, use the ~ form to simplify revision bumps.
<=app-misc/foo-1.23 	Version 1.23 or older is required.
<app-misc/foo-1.23 	A version strictly before 1.23 is required.



jodok





>
> 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
>
>
>
> _______________________________________________
> Zope3-dev mailing list
> Zope3-dev at zope.org
> Unsub: http://mail.zope.org/mailman/options/zope3-dev/batlogg.lists% 
> 40lovelysystems.com
>

--
"Namespaces are one honking great idea -- let's do more of those!"
   -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
phone: +43 5572 908060, fax: +43 5572 908060-77


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2454 bytes
Desc: not available
Url : http://mail.zope.org/pipermail/zope3-dev/attachments/20070530/afa603e5/smime-0001.bin


More information about the Zope3-dev mailing list