[Zope3-dev] Re: Known working sets II [was: Eggification redux]
Martijn Faassen
faassen at startifact.com
Wed Sep 26 16:13:43 EDT 2007
Dieter Maurer wrote:
> Martijn Faassen wrote at 2007-9-25 19:57 +0200:
>> ...
>> If you choose for flexibility first, people will need to think about
>> versions all the time.
>
> I follow Tres argumentation: somehow the Linux distributors
> have this problem mostly solved:
While I don't dispute we should look at package management systems, they
don't have *our* problems exactly solved. I have 20 different buildouts
installed, which may or may use the same pool of eggs, and may use
different versions of the same package. I am the one who wants to have
the final say in what versions of packages. I want to use. A linux
distributor needs to have one working set of packages, instead.
> Standard distributions come with a set of known working components
> and quite weak dependancy declarations.
>
> When I install additional components, I will be told about
> potential conflicts (based on the weak dependancies) and
> asked what to do (install nevertheless, upgrade more things to
> get dependancies right or abort).
>
> Usually, I do not have to worry about versions -- only
> occationally (when I see conflict lists) or even more rarely,
> when something breaks even though there has not been a conflict.
A linux distribution, unless you're on debian unstable, has quite a
strict control over what packages enter a common pool. They do not
release a newer version of a library unless they know the software that
depends on it either works or can be upgraded to it.
We have a situation where we have developers, not maintainers, uploading
new versions of packages. There will be no integrated testing done for
all software built on all packages in the cheeseshop. Again, I can see
similarities, but I don't believe linux distributions have *exactly* our
problems solved. Our buildouts are used as development environments, not
only deployment environments.
> We currently made bad experiences with weak dependancies.
>
> I see several reasons for this:
>
> * not yet ready distributions (insufficiently tested,
> alpha quality) have been uploaded to PyPI
>
> We are now aware that we must not do things like this
Better diligence here would help. It would help me most as a framework
developer developing the framework - I can upgrade to newer versions of
my dependencies without so much stuff breaking.
> * installation tools have prefered newer versions over
> older ones, even when the newer versions were development/alpha
> while the older ones have been stable
>
> The tools meanwhile have changed and stick preferably to
> stable versions
Sticking to stable versions helps, until a new stable version is
released. Then all the old stuff suddenly starts using the *new* stable
version, and probably break.
>
> * The installation tools work incrementally with dependancies
> rather than based on a global dependancy graph.
>
> This is not yet changed.
> Maybe, our bad experience are drastically reduced when the above
> reasons are taken care of -- even with weak dependancies?
I used to believe that, but after seeing Grok 0.10 break once or twice
*every* week for the last month, I don't believe it anymore. We're
talking about the same release, breaking over and over again as
something goes wrong with some egg somewhere. I want these dependencies
pinned down hard. That said, I believe there are ways to solve these
problems without hardcoding them in install_requires. I hope we can have
the benefits of weak dependencies while having the safetly of hardcoded
ones. See here:
http://faassen.n--tree.net/blog/view/weblog/2007/09/26/0
Regards,
Martijn
More information about the Zope3-dev
mailing list