My Plone product doesn't show up in the quickinstaller

155 views Asked by At

I have a Plone site with a traditional product BaseProduct (versioned directly in the Products filesystem directory of the Zope installation); the rest of the setup is buildout-based.

For a fork of the project, I need another product AdditionalProduct, which I made the same way (I know it's not the current state-of-the art method; but that's how it worked before for me ...).

Now I was able to install AdditionalProduct using the quickinstaller (for now it contains a single skin directory with a single template only, but this will change, of course).

Sadly, this ceased to work; the product is not shown in the quickinstaller anymore. There is no visible error; I was able to pdb.set_trace() it during instance startup, and there is no error in the error.log either.

The profiles.zcml file looks like this:

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
    i18n_domain="BaseProduct">
  <include package="Products.GenericSetup" file="meta.zcml" />
  <genericsetup:registerProfile
      name="default"
      title="AdditionalProduct"
      directory="profiles/default"
      description="Extension profile for AdditionalProduct."
      provides="Products.GenericSetup.interfaces.EXTENSION"
      />
</configure>

(Copied and changed from an earlier AdditionalProduct of another fork; I don't really understand that "meta.zcml" part.)

How can I debug this?

I'd be willing to "eggify" my product (AdditionalProduct first, since it has the problem; perhaps BaseProduct later as well), but I'm not sure about the amount of work, and a How-To would be useful ...

2

There are 2 answers

1
Godefroid Chapelle On BEST ANSWER

Your product should have a configure.zcml file that includes your profiles.zcml with the following directive:

<include file="profiles.zcml" />

Is it the case ?

3
aclark On

You can debug this by ruling out the following:

  • The ZCML is not loaded (introduce a syntax error in profiles.zcml and restart Plone to ensure profiles.zcml is loaded.)
  • You don't have the 'z3c.autoinclude.plugin': 'target = plone' entry point (not applicable as you are not using a Python package)
  • Your product is not loaded by Zope2 because it's not in the products folder, or has some related issue e.g. missing __init__.py.

Also you may not need the following, as it should already be included by Plone before your products is loaded:

  <include package="Products.GenericSetup" file="meta.zcml" />

(And file='meta.zcml' means "load meta.zcml instead of the default file name i.e. configure.zcml")

Lastly, I'd recommend creating a Python package (AKA "eggify"). See the following for an overview: