[Zope-CMF] Re: Genericsetup design rules
y.2007- at wcm-solutions.de
Mon Mar 5 07:42:38 EST 2007
Disclaimer: I believe that the current way extension profiles are
implemented has some fundamental issues, see:
Reinout van Rees wrote:
> Is there a generally accepted rule for what generic setup (or a GS
> profile, please pardon some possibly shaky terminology)
The terminology is important here, because it helps you to understand
- GenericSetup is in the first place a tool. For the tool most files in
a profile are just data without any meaning.
- Profiles are just data, they don't do anything unless interpreted by a
- Setup handlers (and adapters) implement the behavior of import steps
and export steps. This is where directives like 'insert-before' are
implemented. GenericSetup ships with some handlers for generic Zope
objects. But most setup handlers ship with the products that implement
the corresponding objects.
> is supposed to
> do in case you have an existing list of things? As an example, take
> the skins.xml. That's one of the better ones. You have "add-before"
> and "add-after" or however they're called to position an *extra* skin
> in just the right spot. But I don't believe you've got a "zap
> everything, this is the new list" option.
> There are some other profiles where you don't even have the option of
> add-before or add-after. And purge=YESPLEASE also doesn't work in
> quite a lot of cases (sometimes even giving parse errors). That
> regularly makes me want to revert to doing such things in custom .py
> files again instead of doing it nice and tidy
> with genericsetup.
> * Is there some generic guideline for what a genericsetup profile, in
> general, should implement?
Are you aware of this file?
It describes some generally useful update directives. But that doesn't
mean all handlers have to implement them.
> * Some of those missing addBefore=.. things strike me as pretty
> essential, is that something I could file bugs for or is it perhaps
> intentional (as there is a better way to handle it)?
I would categorize that as feature request, not bug report. The handlers
are not broken if they don't implement these directives, but they are
missing a useful feature.
For many objects there are still no setup handlers at all, so people
might have other priorities. Implementing update directives in every
handler is a lot of work, so in the long run it might make more sense to
make them obsolete by more fundamental changes.
More information about the Zope-CMF