Re: [Zope-dev] Please no version numbers in setup.py [was: SVN: Zope2.buildout/tags/2.11.1/setup.py Pin / fix up dependencies based on comparison with monolith.]

2008-08-05 Thread Christophe Combelles

Philipp von Weitershausen a écrit :

Tres Seaver wrote:

Log message for revision 89399:
  Pin / fix up dependencies based on comparison with monolith.



Thanks for picking this up!

I do, however, strongly object to pinning versions of dependencies in 
setup.py like this. What's the point of eggifying Zope 2 in the first 
place then if not for the ability to upgrade individual libraries to 
newer versions with bugfixes or features?


Instead of pinning versions in setup.py, we should rather include a list 
of known-good versions, or even better, add the Zope 2 eggs to the Zope 
KGS. That way, by default, you'd get the known good set but you could 
deviate from it as necessary. More importantly, by having one good set 
(instead of a setup.py here, a versions.cfg there and another list 
somewhere else), the KGS becomes much easier to maintain.


The problem here (see my other message about controlled-packages.cfg) is that 
the KGS is not really tested with all the combinations : each new package is 
tested against all the latest versions, but not against *all* the versions.
That means: if you upgrade only one package for your application, something can 
break unless you upgrade all the packages to the set that has been tested when 
the package has been added to the KGS.


In my opinion we have two options:

- keep only ONE package version in the KGS (controlled-packages.cfg).
Someone wanting to upgrade a specific package for his app can do the tests 
himself, or wait for the next KGS, for example zope 3.4.1.


or

- set up a buildbot that will test every combination. A big job...

The simpler the better, I vote for 1).

Christophe



Philipp



+  install_requires=['Acquisition==2.11.1',
+'DateTime==2.11.1',
+'docutils==0.4.0',
+'ExtensionClass==2.11.1',
+'Interface==2.11.1',
+'Persistence==2.11.1',
+'pytz==2007f', # latest is fine?
+'RestrictedPython==3.4.2',
+'StructuredText==2.11.1',
+'tempstorage==2.11.1',
+'ZConfig==2.5.1',
+'zLOG==2.11.1',
+'zdaemon==2.0.1',
+'ZODB3==3.8.0',
+'zodbcode==3.4.0',
+'zope.annotation==3.4.0',
+'zope.cachedescriptors==3.4.0',
+'zope.component==3.4.0',
+'zope.configuration==3.4.0',
+'zope.contentprovider==3.4.0',
+'zope.contenttype==3.4.0',
+'zope.copypastemove==3.4.0',
+'zope.datetime==3.4.0',
+'zope.decorator==3.4.0',
+'zope.deferredimport==3.4.0',
+'zope.deprecation==3.4.0',
+'zope.documenttemplate==3.4.0',
+'zope.dottedname==3.4.0',
+'zope.dublincore==3.4.0',
+'zope.error==3.5.1',
+'zope.event==3.4.0',
+'zope.exceptions==3.4.0',
+'zope.filerepresentation==3.4.0',
+'zope.formlib==3.4.0',
+'zope.hookable==3.4.0',
+'zope.i18nmessageid==3.4.0',
+'zope.i18n==3.4.0',
+'zope.index==3.4.0',
+'zope.interface==3.4.0',
+'zope.lifecycleevent==3.4.0',
+'zope.location==3.4.0',
+'zope.minmax==3.4.0',
+'zope.modulealias==3.4.0',
+'zope.pagetemplate==3.4.0',
+'zope.proxy==3.4.0',
+'zope.publisher==3.4.0',
+'zope.rdb==3.4.0',
+'zope.schema==3.4.0',
+'zope.security==3.4.0',
+'zope.sequencesort==3.4.0',
+'zope.sendmail==3.4.0',
+'zope.server==3.4.0',
+'zope.session==3.4.0',
+'zope.size==3.4.0',
+'zope.securitypolicy==3.4.0',
+'zope.structuredtext==3.4.0',
+'zope.tales==3.4.0',
+'zope.tal==3.4.0',
+'zope.testbrowser==3.4.0',
+'zope.testing==3.4.0',
+'zope.thread==3.4.0',
+'zope.traversing==3.4.0',
+'zope.viewlet==3.4.0',
+'zope.wfmc==3.4.0',
+'zope.app.annotation==3.4.0',
+'zope.app.apidoc==3.4.3',
+'zope.app.application

[Zope-dev] Please no version numbers in setup.py [was: SVN: Zope2.buildout/tags/2.11.1/setup.py Pin / fix up dependencies based on comparison with monolith.]

2008-08-05 Thread Philipp von Weitershausen

Tres Seaver wrote:

Log message for revision 89399:
  Pin / fix up dependencies based on comparison with monolith.



Thanks for picking this up!

I do, however, strongly object to pinning versions of dependencies in 
setup.py like this. What's the point of eggifying Zope 2 in the first 
place then if not for the ability to upgrade individual libraries to 
newer versions with bugfixes or features?


Instead of pinning versions in setup.py, we should rather include a list 
of known-good versions, or even better, add the Zope 2 eggs to the Zope 
KGS. That way, by default, you'd get the known good set but you could 
deviate from it as necessary. More importantly, by having one good set 
(instead of a setup.py here, a versions.cfg there and another list 
somewhere else), the KGS becomes much easier to maintain.


Philipp



+  install_requires=['Acquisition==2.11.1',
+'DateTime==2.11.1',
+'docutils==0.4.0',
+'ExtensionClass==2.11.1',
+'Interface==2.11.1',
+'Persistence==2.11.1',
+'pytz==2007f', # latest is fine?
+'RestrictedPython==3.4.2',
+'StructuredText==2.11.1',
+'tempstorage==2.11.1',
+'ZConfig==2.5.1',
+'zLOG==2.11.1',
+'zdaemon==2.0.1',
+'ZODB3==3.8.0',
+'zodbcode==3.4.0',
+'zope.annotation==3.4.0',
+'zope.cachedescriptors==3.4.0',
+'zope.component==3.4.0',
+'zope.configuration==3.4.0',
+'zope.contentprovider==3.4.0',
+'zope.contenttype==3.4.0',
+'zope.copypastemove==3.4.0',
+'zope.datetime==3.4.0',
+'zope.decorator==3.4.0',
+'zope.deferredimport==3.4.0',
+'zope.deprecation==3.4.0',
+'zope.documenttemplate==3.4.0',
+'zope.dottedname==3.4.0',
+'zope.dublincore==3.4.0',
+'zope.error==3.5.1',
+'zope.event==3.4.0',
+'zope.exceptions==3.4.0',
+'zope.filerepresentation==3.4.0',
+'zope.formlib==3.4.0',
+'zope.hookable==3.4.0',
+'zope.i18nmessageid==3.4.0',
+'zope.i18n==3.4.0',
+'zope.index==3.4.0',
+'zope.interface==3.4.0',
+'zope.lifecycleevent==3.4.0',
+'zope.location==3.4.0',
+'zope.minmax==3.4.0',
+'zope.modulealias==3.4.0',
+'zope.pagetemplate==3.4.0',
+'zope.proxy==3.4.0',
+'zope.publisher==3.4.0',
+'zope.rdb==3.4.0',
+'zope.schema==3.4.0',
+'zope.security==3.4.0',
+'zope.sequencesort==3.4.0',
+'zope.sendmail==3.4.0',
+'zope.server==3.4.0',
+'zope.session==3.4.0',
+'zope.size==3.4.0',
+'zope.securitypolicy==3.4.0',
+'zope.structuredtext==3.4.0',
+'zope.tales==3.4.0',
+'zope.tal==3.4.0',
+'zope.testbrowser==3.4.0',
+'zope.testing==3.4.0',
+'zope.thread==3.4.0',
+'zope.traversing==3.4.0',
+'zope.viewlet==3.4.0',
+'zope.wfmc==3.4.0',
+'zope.app.annotation==3.4.0',
+'zope.app.apidoc==3.4.3',
+'zope.app.applicationcontrol==3.4.1',
+'zope.app.appsetup==3.4.1',
+'zope.app.authentication==3.4.1',
+'zope.app.basicskin==3.4.0',
+'zope.app.broken==3.4.0',
+'zope.app.cache==3.4.0',
+'zope.app.component==3.4.1',
+'zope.app.container==3.5.3',
+'zope.app.content==3.4.0',
+#'zope.app.content_types==3.4.0',   XXX
+'zope.app.debug==3.4.0',
+'zope.app.dependable==3.4.0',
+'zope.app.error==3.5.1',
+#'zope.app.event==3.4.0',   XXX
+'zope.app.exception==3.4.1',
+'zope.app.file==3.4.2',
+