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.]
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.]
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', +