Заставьте quintagroup.transmogrifier работать (конфликт версий, configuration_id) (Plone)

Я хотел бы использовать transmogrifier скопировать небольшую выдержку из одного сайта Plone 4 в другой. Я следовал инструкциям в документации по quintagroup, например, здесь.

Я добавил оба collective.transmogrifier а также quintagroup.transmogrifier в мою сборку:

[instance]
eggs +=
    Products.Marshall
    collective.transmogrifier
    quintagroup.transmogrifier

zcml +=
    collective.transmogrifier
    quintagroup.transmogrifier

Тем не менее, установленная версия 1.4 collective.transmogrifier было недостаточно, так как ему не хватает traverse функция в utils модуль:

  File ".../eggs/plone.app.transmogrifier-1.3-py2.7.egg/plone/app/transmogrifier/atschemaupdater.py", line 8, in <module>
    from collective.transmogrifier.utils import traverse
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File ".../parts/instance/etc/site.zcml", line 15.2-15.55
    ZopeXMLConfigurationError: File ".../parts/instance/etc/package-includes/027-quintagroup.transmogrifier-configure.zcml", line 1.0-1.70
    ZopeXMLConfigurationError: File ".../eggs/quintagroup.transmogrifier-0.5-py2.7.egg/quintagroup/transmogrifier/configure.zcml", line 11.4-11.50
    ZopeXMLConfigurationError: File ".../eggs/plone.app.transmogrifier-1.3-py2.7.egg/plone/app/transmogrifier/configure.zcml", line 9.2-12.8
    ImportError: cannot import name traverse

Я уточнил collective.transmogrifier = 1.5 в моем versions.cfgа потом поменял eggs/quintagroup.transmogrifier-0.5-py2.7.egg/EGG-INFO/requires.txt который настоял на collective.transmogrifier<1.5 (почему?) чтобы

collective.transmogrifier<=1.5

После восстановления и перезапуска я смог добавить quintagroup.transmogrifier в представлении быстрой установки. Однако, когда я попытался экспортировать сайт в Generic Setup Tool, я потерпел неудачу:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module Products.GenericSetup.tool, line 583, in manage_exportSelectedSteps
  Module Products.GenericSetup.tool, line 1038, in _doRunExportSteps
  Module quintagroup.transmogrifier.exportimport, line 72, in exportSiteStructure
  Module collective.transmogrifier.utils, line 118, in constructPipeline
  Module quintagroup.transmogrifier.sitewalker, line 32, in __init__
  Module collective.transmogrifier.utils, line 225, in __init__
AttributeError: Transmogrifier instance has no attribute 'configuration_id'

Не имело значения, спасла ли я default экспортировать профиль раньше или нет.

Отсутствует ли какой-либо шаг настройки или есть какая-то причина для collective.transmogrifier <1.5 ограничение? Я хотел бы увидеть эту работу, прежде чем приступить к выбору содержимого из белого списка...

1 ответ

Я сталкивался с этим раньше, но я смог избежать использования quintagroup.transmogrifier в этом случае.

Пин был удален в этом коммите в master (хотя это было немного сложнее, чем если бы вы проверили историю setup.py).

В общем, вам нужно проверить этот продукт в вашей сборке:

[sources]
...
quintagroup.transmogrifier = git https://github.com/collective/quintagroup.transmogrifier.git

и повторная сборка (возможно bin/buildout -c develop.cfg), но это следует рассматривать как краткосрочный взлом, а не как долгосрочное решение, если вы делаете это на производстве. Долгосрочное решение состоит в том, чтобы создать свое собственное яйцо "0,5 тобиаса", используя jarn.mkrelease или zest.releaser (более современный, чем mkrelease, но сложнее разобраться), или поднять проблему на https://github.com/collective/quintagroup.transmogrifier.git чтобы попросить кого-то сделать официальный релиз для вас!

Другие вопросы по тегам