buildout не уважает закрепленную версию - PullRequest
2 голосов
/ 07 февраля 2012

Получение этой странной ошибки от buildot.Сборка предназначена для plone3 и имеет закрепленные версии.

$ bin/buildout -Nv 
While:
  Initializing.
  Getting section buildout.
  Initializing section buildout.
  Getting option buildout:parts.
  Getting section filestorage.
  Initializing section filestorage.
  Installing recipe collective.recipe.filestorage.
Error: There is a version conflict.
We already have: zope.location 0.0
but zope.site 3.9.2 requires 'zope.location>=3.7.0'.

Если я удаляю фальшивые яйца, я получаю

$ rm -r fake-eggs/
$ bin/buildout -Nvv
While:
  Initializing.
  Getting section buildout.
  Initializing section buildout.
  Getting option buildout:parts.
  Getting section filestorage.
  Initializing part filestorage.
  Getting section supervisor.
  Initializing section supervisor.
  Getting option supervisor:programs.
  Getting section instance1.
  Initializing section instance1.
  Getting option instance1:eggs.
  Getting section instance.
  Initializing section instance.
  Loading recipe 'plone.recipe.zope2instance==2.7'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1804, in main
    user_defaults, windows_restart, command)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 252, in __init__
    options = self['buildout']
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1056, in __getitem__
    options._initialize()
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1130, in _initialize
    self._dosub(k, v)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1177, in _dosub
    v = '$$'.join([self._sub(s, seen) for s in v.split('$$')])
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1241, in _sub
    v = self.buildout[section].get(option, None, seen)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1056, in __getitem__
    options._initialize()
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1144, in _initialize
    self.recipe = recipe_class(buildout, name, self)
  File "/Users/dylanjay/Projects/csep/src/collective.recipe.filestorage/collective/recipe/filestorage/__init__.py", line 25, in __init__
    part = self.buildout[part_name]
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1056, in __getitem__
    options._initialize()
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1130, in _initialize
    self._dosub(k, v)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1177, in _dosub
    v = '$$'.join([self._sub(s, seen) for s in v.split('$$')])
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1241, in _sub
    v = self.buildout[section].get(option, None, seen)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1056, in __getitem__
    options._initialize()
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1130, in _initialize
    self._dosub(k, v)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1177, in _dosub
    v = '$$'.join([self._sub(s, seen) for s in v.split('$$')])
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1241, in _sub
    v = self.buildout[section].get(option, None, seen)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1056, in __getitem__
    options._initialize()
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1141, in _initialize
    recipe_class = _install_and_load(reqs, 'zc.buildout', entry, buildout)
  File "/Users/dylanjay/Projects/download-cache/eggs/zc.buildout-1.5.2-py2.4.egg/zc/buildout/buildout.py", line 1078, in _install_and_load
    if pkg_resources.working_set.find(req) is None:
  File "/Users/dylanjay/Projects/download-cache/eggs/distribute-0.6.24-py2.4.egg/pkg_resources.py", line 474, in find
    raise VersionConflict(dist,req)     # XXX add more info
VersionConflict: (plone.recipe.zope2instance 4.2 (/Users/dylanjay/Projects/download-cache/eggs/plone.recipe.zope2instance-4.2-py2.4.egg), Requirement.parse('plone.recipe.zope2instance==2.7'))

Так что, кажется, что коллективно.recipe.filestorage требует plone.recipe.zope2instance.zope2instance закреплен за 2.7, однако во время инициализации рецепта сборки эта версия не используется, а вместо этого выбирается 4.2.

Если я удаляю хранилище файлов из частей, сборка работает нормально, и аннотация показывает, что версия в настоящее время закреплена.

Есть какие-нибудь идеи о том, как выбраться из этого или почему здесь не работает закрепление версии?

1 Ответ

2 голосов
/ 08 февраля 2012

Вы, вероятно, используете некоторые надстройки с расширенной зависимостью: использование plver.app.discussion goodversion мне очень помогло (я не хочу добавлять также продукт plone.app.discussion)!

[buildout]
...
extends =
    ...
    http://good-py.appspot.com/release/plone.app.discussion/1.0
...