[Product-Developers] Re: Releasing products (betas) and pypi

Dylan Jay gmane at dylanjay.com
Sun Apr 13 04:36:32 UTC 2008


Martin Aspeli wrote:
> Reinout van Rees wrote:
>> Martin Aspeli schreef:
>>> Right - buildout is a configuration management tool (more or less).
>>>
>>> If you require people to use a specific buildout.cfg (or even 
>>> block-copy one
>>> from your product's buildout.cfg) for your product to be reasonably
>>> deployable, then you are not using it right. :)
>>>
>>> Installing a package should mean including a single egg, in general. 
>>> That
>>> should use setup.py install_requires to pull in other eggs as required.
>>
>> Are many of the non-buildout-using people used to do this? An 
>> easy_install call is easy, but also global by default. All instances 
>> using the same python get the newly easy_installed item in their 
>> python path. (Unless they're using virtualenv).
>>
>> I get the feeling that most people don't use easy_install, though. 
>> They copy things into their lib/python.
>>
>> And telling people to use a specific buildout is waaaay easier than 
>> telling them how to move things into lib/python. So I can understand 
>> buildout is sometimes treated as a deployment tool...
> 
> easy_install if you're not in a virtualenv is painful, too. Buildout is 
> fine as a deployment tool for your own projects (in which case I'd call 
> it "configuration management" rather than deployment), or if you want a 
> number of people to share the same development environment (this is what 
> "ploneout" is to the Plone developers).
> 
> It's definitely not fine if you're releasing a third party product that 
> you want people to use. Asking people to merge your buildout with their 
> own is dangerous and irritating.
> 
> I think most people continue to use buildout - that's a good thing. 
> However, buildout is ultimately just about automating the downloading 
> and installing of eggs and products. We should package our eggs and 
> packages so that they are properly installable (in the setuptools sense) 
> no matter what environment you're in.

Is there a description of a lifecycle process of a module? of going from 
development to publishing, to bug fixing and then republishing? esp 
using buildout?
It seems to me a little confusing because a development buildout would 
look quite different from the production buildout that users of your 
public module would be using, for instance if I develop and egg it 
exists in src and I use svn:externals to get it, but egg user uses setup 
tools right?







More information about the Product-Developers mailing list