[Distutils] upgrading buildout
Jim Fulton
jim at zope.com
Tue Jul 29 17:30:00 CEST 2008
On Jul 29, 2008, at 10:39 AM, whit morriss wrote:
> whit morriss wrote:
>> I'm perhaps running buildout in a bit of unusual fashion (from my
>> virtual env bin rather than the builds bin) and updated it recently
>> from 1.0.2 to 1.1.0 to debug some issue folks were having with
>> fresh checkouts of one of my builds (see previous message).
>
> as a caveat for others, we also noticed a number of older recipes
> which are cached don't take the new allowed hosts arg. It looks
> like older copies (in this case zc.recipe.egg) got installed in the
> virtualenv sitepackages (probably for the purposes of investigation)
> or egg caches and did not get updated.
This sounds like a bug. I expect buildout to get and use the newest
distributions that satisfy its requirements regardless of whether
older versions are in site-packages. One way that this would fail is
if eggs are installed into site-packages as develop eggs, aka "single-
version-externally-managed". buildout gives preference to develop
eggs even if there are newer non-develop eggs. Distributions installed
using -single-version-externally-managed are tagged by setuptools as
develop eggs. I really wish setuptools made a distinction between
single-version-externally-managed and develop eggs.
Was the zc.recipe.egg distribution installed into your site- packages
using -single-version-externally-managed? (This will be the case if
the egg contents are stored directly in site-packages rather than
having egg files or directories.)
> In systems like buildout where every buildout is necessarily a patch
> work of called dependencies (most frameworks or component systems
> are like this in one way or another, sometimes referred as what
> separates frameworks from libs), it would be useful to have some
> mechanism for propagate an update of a downstream component.
By "downstream", do you mean a dependency?
> Does setuptool support anything like this (I'm doubting it?)?
> could or does zc.buildout?
>
> for builds, I could see this being handled more as a migration.
> Update the framework library, run a migration to upgrade all the
> component libraries, rebuild.
As a general rule, buildout always tries to find the latest versions
of all distributions used, including dependencies. One exception to
this is that it prefers develop eggs.
Jim
--
Jim Fulton
Zope Corporation
More information about the Distutils-SIG
mailing list