Issues with dependency tag in profiles/default/metadata.xml

I created a Plone add-on with a dependency of the add-on cioppino.twothumbs (https://github.com/collective/cioppino.twothumbs). Thus I added a dependency tag to profilex/default/metadata.xml:

<dependency>profile-cioppino.twothumbs:default</dependency>

This seemed to work in my add-on but I get a traceback in Travis-CI which I'm keen to fix:

 File "/home/travis/buildout-cache/eggs/zope.testrunner-5.0-py3.7.egg/zope/testrunner/runner.py", line 451, in run_layer

    setup_layer(options, layer, setup_layers)

  File "/home/travis/buildout-cache/eggs/zope.testrunner-5.0-py3.7.egg/zope/testrunner/runner.py", line 787, in setup_layer

    setup_layer(options, base, setup_layers)

  File "/home/travis/buildout-cache/eggs/zope.testrunner-5.0-py3.7.egg/zope/testrunner/runner.py", line 792, in setup_layer

    layer.setUp()

  File "/home/travis/buildout-cache/eggs/plone.app.testing-6.1.3-py3.7.egg/plone/app/testing/helpers.py", line 381, in setUp

    self.setUpPloneSite(portal)

  File "/home/travis/build/collective/collective.addons/src/collective/addons/testing.py", line 26, in setUpPloneSite

    applyProfile(portal, 'collective.addons:default')

  File "/home/travis/buildout-cache/eggs/plone.app.testing-6.1.3-py3.7.egg/plone/app/testing/helpers.py", line 140, in applyProfile

    blacklisted_steps=blacklisted_steps)

  File "/home/travis/buildout-cache/eggs/Products.GenericSetup-2.0-py3.7.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile

    dependency_strategy=dependency_strategy)

   - __traceback_info__: profile-collective.addons:default

  File "/home/travis/buildout-cache/eggs/Products.GenericSetup-2.0-py3.7.egg/Products/GenericSetup/tool.py", line 1390, in _runImportStepsFromContext

    chain = self.getProfileDependencyChain(profile_id)

  File "/home/travis/buildout-cache/eggs/Products.GenericSetup-2.0-py3.7.egg/Products/GenericSetup/tool.py", line 1332, in getProfileDependencyChain

    dependencies = self.getDependenciesForProfile(profile_id)

  File "/home/travis/buildout-cache/eggs/Products.GenericSetup-2.0-py3.7.egg/Products/GenericSetup/tool.py", line 956, in getDependenciesForProfile

    % (profile_id, dependency_id))

KeyError: 'Profile "profile-collective.addons:default" requires the dependency-profile "profile-cioppino.twothumbs:default", which does not exist.'

I had a look into cioppino.twothumbs and its configure.zcml and I found there this entries for the profile:


  <genericsetup:registerProfile
      name="install-base"
      title="cioppino.twothumbs base profile"
      directory="profiles/base"
      description="The cioppino.twothumbs package base profile."
      provides="Products.GenericSetup.interfaces.EXTENSION"
      />

  <genericsetup:registerProfile
      zcml:condition="not-have plone-5"
      name="default"
      title="cioppino.twothumbs"
      directory="profiles/plone4"
      description="Installs the cioppino.twothumbs add-on Plone4 specific configuration"
      provides="Products.GenericSetup.interfaces.EXTENSION"
      />

  <genericsetup:registerProfile
      zcml:condition="have plone-5"
      name="default"
      title="cioppino.twothumbs"
      directory="profiles/plone5"i
      description="Installs the cioppino.twothumbs add-on Plone5 specific configuration"
      provides="Products.GenericSetup.interfaces.EXTENSION"
/>

My add-on is created against Plone 5.2 and Python 3.6. Is there a way to point the Travis-CI check to the profile of cioppino.twothumbs. I couldn't find a hint in https://docs.plone.org/ for this issue that solved my issue (and was different to my entry in metadata.xml).

Thanks for any hint in advance.

Just a few guesses. Did you add cioppino.twothumbs to your dependencies in setup.py? Do you have z3c.autoinclude configured properly to load it?

Hi Timo,
thanks for the hints.

I had a further closer look into my configure.zcml and the setup.py and found out that the include dependencies were not set. I also added the dependency for cioppino.twothumbs to the wrong section of the setup.py file. Fixed that and the traceback about cioppino.twothumbs was gone :wink:

1 Like