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

Martijn Faassen faassen at startifact.com
Tue Feb 26 09:04:10 EST 2008


David Pratt wrote:
> Hi Martijn. I respect the points you make, but disagree with your 
> comments. Wichert's reply accurately articulates what we are asking 
> buildout to do. I share this view.

It's not very useful to talk about a "we" asking buildout to do things 
when there is clearly a debate and no "we".

> On a personal note, I tend to rely on my own version lists but refer to 
> the online lists (for support in creating them). On explicit vs 
> implicit, it is debatable any time you consider incorporating implicit 
> behaviour.

We're not considering incorporating implicit behavior. We're debating 
two competing explicit behaviors.

> When you make the point about versions duplication, you may not be 
> considering the utility of buildout. In fact, a buildout does not 
> require a setup.py at all. setup.py is only a requirement for packaging 
> in python. Buildout is already being used together with other packaging 
> solutions and in other ways as I have previously mentioned.

I don't understand your point. Explain to me how you can use the 
'develop' line *without* it pointing to a package with a setup.py? 
Explain to me how 'versions' can be applied to version numbers of things 
that are *not* eggs?

There is a genuine debate possible over what 'develop' actually does. If 
you ignore version pinning, you can have two descriptions:

* if you want to develop a package, put it under 'develop'.

* listing a package under 'develop' adds it to the package search path 
for packages *and* this package will trump any other versions available 
elsewhere on the path.

These descriptions are equivalent, though one is task-oriented and the 
other one talks about the details of what's going on. I had internalized 
the former model, and was surprised when it was broken when version 
pinning was included.

Evidently the rule for 'develop' is now:

* listing a package under 'develop' adds it to the package search path 
for packages *and* this package will trump any other versions available 
elsewhere on the path *unless* there is an explicit version pinning 
indicator that says you want to use that version of the package.

The task oriented description to develop a package becomes:

* if you want to develop a package, put it under 'develop', and just to 
be sure it isn't pinned in some version list somewhere, add a 'versions' 
entry to your buildout if it doesn't exist already, and then list 
"package_name =" in it to make sure it is being picked up.

(alternatively you can make the user check the versions lists for the 
presence of the package and only if it there have the user list it. Or 
yet another alternative is to run the buildout in verbose mode and look 
at what versions pass by)

Regards,

Martijn



More information about the Zope-Dev mailing list