[Zope-CMF] Re: Multiple GS profiles per product
Tres Seaver
tseaver at palladion.com
Fri May 16 13:35:17 EDT 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Maurits van Rees wrote:
> Some observations here with a few questions sprinkled through.
>
> For Plone we at Zest Software made eXtremeManagement (affectionately
> called xm), a project management tool. See
> http://plone.org/products/extreme-management-tool
>
> For upgrading from Plone 2.5 to 3.0 I made an "upgrade profile":
> basically just a regular extension profile that is not meant to be run
> directly from the portal_quickinstaller or portal_setup but that is
> only hooked up to an upgrade step like this:
>
> def from_plone25_to_30(context):
> context.runAllImportStepsFromProfile(
> 'profile-Products.eXtremeManagement:eXtremeManagement-30-types',
> purge_old=False)
>
> It removes some actions from some portal types, which seemed handy to
> do in a GS profile instead of manually coding some python. Works fine
> actually. This is on Plone 3.0 with CMFQuickInstaller 2.0.4.
>
> Note that for GS upgrade steps you do not really need "upgrade
> profiles". That was just my understanding/expectation of how to do
> upgrade steps at the time.
Sees reasonable, although I should say that I don't use the "upgrade"
machinery in GS at all.
> But: along comes Plone 3.1.1 with CMFQuickInstaller 2.1.4. This has
> slightly different handling of GS profiles. In this case when
> visiting the portal_quickinstaller in the ZMI it does not seem to care
> much for the Extensions/Install.py, it finds the two profiles (the
> "upgrade" profile and the default profile) and picks the first one it
> finds and print its name in the list of installed/installable
> products. So the QI now gives eXtremeManagement the dopey title of
> "eXtremeManagement types fix for Plone 3.0", which is the title of the
> upgrade profile.
This is a bug: QI should probably be displaying *all* extension
profiles registered for the site root interface, rather than trying to
bless one per product.
> Question 1: can I influence which profile is picked here? Should we
> add some code to the QuickInstaller.getInstallProfile(s) methods to
> for instance prefer a profile with a name like "productname:default"?
> For reference, this is info from the two profiles I now have:
>
> [{'description': u'eXtremeManagement types actions fix for Plone 3.0.',
> 'for': <InterfaceClass Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot>,
> 'id': u'Products.eXtremeManagement:eXtremeManagement-30-types',
> 'path': u'/home/maurits/buildout/test/products/eXtremeManagement/profiles/30',
> 'product': 'Products.eXtremeManagement',
> 'title': u'eXtremeManagement types fix for Plone 3.0',
> 'type': 2,
> 'version': '1.5.2'},
> {'description': 'Profile for Extreme Management',
> 'for': <InterfaceClass Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot>,
> 'id': 'eXtremeManagement:default',
> 'path': 'profiles/default',
> 'product': 'eXtremeManagement',
> 'title': 'Extreme Management',
> 'type': 2,
> 'version': '1.5.2'}]
>
> The first one is the upgrade profile, only meant to be used via the
> Upgrades tab in portal_setup. The second one is the default profile
> that I want to have available in the quick installer.
>
>
> Now, I tested with eXtremeManagement 1.5.2, the latest stable release,
> in case anyone wants to try it out (remember to add a Poi 1.1 bundle
> too). That release also has Extensions/(App)Install.py files. I
> moved those out of the way and restarted. On Plone 3.0 everything
> seems to go fine: the name in quick installer is 'Extreme Management'
> and installing it does everything it needs to do, using the default
> profile. This is because the upgrade profile is not found, due to a
> slightly different implementation of the getInstallProfile method.
>
> Now, on Plone 3.1.1 (QI 2.1.4) with a fresh zodb the QI lists that
> strange name of the upgrade profile instead of the name of the default
> profile. And indeed when installing it only that upgrade profile is
> executed, not the default profile.
Proposed changes to QI aren't exactly in scope on this list.
> Question 2: I am used to having a profiles directory in a product and
> a subdirectory inside it named 'default'. eXtremeManagement is the
> only product I know that has a second profile next to it. Are others
> using more than one profile? Well, CMFPlone does a few things here.
Yes, I use multiple profiles.
> Question 3: Should we encourage programmers to only use one profile,
> presumably simply in a directory named 'profile' by default?
No. The name 'default' should *definitely* not be majyk.
> In the case of eXtremeManagement, the day is saved because it still
> has an Extensions/Install.py. That is the installer that is actually
> executed and it has some code to run the correct profile, including a
> dependency. The only hickup so far is that with the newer QI the name
> of the other profile is listed instead of the default profile.
>
> Meanwhile on trunk (and on the 1.6rc5 I released on the cheese shop
> last night) I have removed the upgrade profile as I do not like the
> side effects of having two profiles.
>
>
> Hm, hiding profiles by using
> Products.CMFQuickInstallerTool.interfaces.INonInstallable could be an
> option too, now that I think of it. Should work.
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFILcXV+gerLs4ltQ4RAjNCAJwOucCo9ReYq3IzCufEy66tHR6q+gCgz7zI
Fa1hgTbGR1rN99/F4HRCUfk=
=Q0j0
-----END PGP SIGNATURE-----
More information about the Zope-CMF
mailing list