[Zope-dev] Re: buildout 'versions' and 'develop' conflict

Christian Theune ct at gocept.com
Tue Feb 26 01:13:42 EST 2008


Hi,

Martijn Faassen schrieb:
> David Pratt wrote:
>> Hi. I agree with Jim. Buildout is doing the right thing. This is not a 
>> conflict since you have explicitly identified the software with a 
>> version already. I think the right thing to do under the circumstances 
>> would be to append a custom versions.cfg to nail the versions you 
>> want. KGS versions is a point in time list and it does not apply to 
>> the full scope of what buildout is being used for. I believe this 
>> should be kept in mind since it serves more than z3.
>>
>> Changes to buildout to have it automatically do the 'right' thing 
>> opens the implicit versus explicit argument. A developer would then 
>> need to be aware of the implicit cases that would cause a different 
>> software selection. Much like zcml configuration in zope, I want to 
>> tell buildout what to do and have it do it without surprise (or for 
>> that matter fighting any implicit nature folks may be inclined to give 
>> it). While I understand the concern about the development egg for your 
>> build, I would see any move in this direction as corrupting the nature 
>> of buildout to 'do what you have told it to do'
> 
> I want to tell buildout what to do have it do it without surprise as 
> well. I was surprised when it didn't do what I expected: give priority 
> to the develop package. Why else would I choose to put it on the develop 
> line?
> 
> I take it you have run into this and weren't surprised at all, then?
> 
> I think the explicit versus implicit discussion has no place here. 
> Placing a package on the 'develop' line is a very explicit action, and 
> you place it on that line because you want to *develop on it*. Having 
> another package being picked up is surprising.

OTOH it makes you aware about potential version mismatches very early, 
because you try to develop on a package that doesn't seem to be 
supported by that particular buildout. So maybe you, for example 
actually wanted/should increase the version number.

> I realize that it has a reason: it does what you tell it do. But lists 
> of locked versions are things that are frequently maintained offline - 
> even sitting off on some URL, and maintained by someone else. Yes, 
> indirectly you are telling buildout about versions, but you may not be 
> very aware of it. These are long lists, after all. It'd be nice if these 
> lists could be treated as mostly opaque (encapsulation) and that you can 
> simply look at what's in setup.py instead.
> 
> That is not possible now. You need to *know* that it lists the package 
> you are trying to hack on, and you need to know that you need to add it 
> to [versions]. The workaround I find myself using frequently now is this:
> 
> [versions]
> the_package =
> 
> I don't see the point when I already say this in 'develop'.

See above. However, I agree that buildout should make it more obvious 
what's happening. Maybe, as a supportive action, buildout could tell 
that or why a development package was not picked (whenever an egg with a 
similar name is required) and give a warning (like when variables are 
unused)

Christian

-- 
gocept gmbh & co. kg - forsterstrasse 29 - 06112 halle (saale) - germany
www.gocept.com - ct at gocept.com - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development


More information about the Zope-Dev mailing list