Composite tool import resets my set viewlets?

We use composite pack layout heavily here, and keep our composite_tool.xml profile config in version control.

Instead of going to the ZMI, we do most of our configuration via setup profiles, and use portal_setup -> import selected steps to configure our site setup.

So, we added a new content type, and want to configure this type as a composible, and assign some viewlets to it. No problem - edit composite_tool.xml, add the new XML config, and re-import through site setup right?

This composite_tool.xml has A LOT of existing composables, and they are used extensively through our content.

The effect is that all the existing content that our editors add through the 'layout' tab changed on us. The viewlet that was chosen was reset back to the default viewlet specified in composite_tool.xml

For example, I have this in composite_tool.xml:

<composable name="Portlet">
   <c_viewlet name="title_description_with_link"/>
   <c_viewlet name="portlet_static"/>
   <c_viewlet name="portlet_editors_pick"/>
   <c_viewlet name="portlet_most_read_emailed_commented"/>
   <c_viewlet name="portlet_tgt_w_headline"/>
   <c_viewlet name="portlet_tgt_w_headline_tease"/>
   <c_viewlet name="portlet_tgt_w_image_headline_tease" default="True"/>

  <viewlet name="portlet_tgt_w_headline" title="Portlet Target Headline"
 <viewlet name="portlet_tgt_w_headline_tease"
                         title="Portlet Target Headline and Tease"

Now, go to a layout-enabled object, and insert a "Portlet" into the layout.
Next, change the viewlet to use something that's not default - "portlet_tgt_w_headline" for example
All is fine.

But when I run the import step on composite tool, this portlet magically changes back to portlet_tgt_w_image_headline_tease - the default.

I didn't expect this. Our web editors are quite mad at us.

I'm not even sure if I'm using ZMI portal_settings correctly - maybe I shouldn't even be running this import step.

Is this a bug in CompositePack import? Or am I abusing import steps? Maybe both?

(cross posted to )

BTW - this was very easy to solve - it's a bug in composite pack generic setup handler.

Pull request is ready, but I'm just waiting on someone else to review. Unfortunately, I think I'm the only one in the world who uses compositepack.

Basically, the generic setup handler needs to honor the "purge=false" attribute on the generic setup profile.

Then, of course, you need to add 'purge=false' to your own profile.