On 9/25/07, Dieter Maurer <[EMAIL PROTECTED]> wrote:
> Martijn Faassen wrote at 2007-9-25 17:22 +0200:
> > ...
> >Should we then encourage everyone to hardcode version numbers in their
> >setup.py's dependencies list?
> I think this goes against building applications from components --
> as it drastically increases the probability of conflicts.
> Components should are week dependancy requirements to be
> maximally usable -- not fixed dependancies.
> I think, this holds for frameworks, too, as they are also components.
I understand this point of view, and I appreciate it.
But on the other hand, if someone uses a framework, it should continue
to work tomorrow. If someone releases a framework, it should remain
installable tomorrow. If someone communicates to someone else about
framework versions (important in open source software!), they
shouldn't have to give a list of 50 version numbers, but just one.
We therefore have two different requirements pulling on our system. On
the one hand you don't want to lose flexibility, on the other hand if
you want to have a community working and reusing chunks of software,
you want to be able to rely on stability, and frequently you even want
to count on bug for bug compatibility.
If you choose to put the dependencies in lightly, you choose for
flexibility. If then need to pin versions somewhere else. If you
choose to pin strict dependencies right away, you choose for
stability. You then need to have a way to override such dependency
relationships somewhere else.
The advantage of choosing for stability first is that people can
install your software without the need to know details about versions.
They only need to start thinking about it when they arrive at a reason
to explicitly break them.
If you choose for flexibility first, people will need to think about
versions all the time.
Zope3-dev mailing list