[Zope-CMF] GenericSetup: Apply profile dependencies only once
Maurits van Rees
m.van.rees at zestsoftware.nl
Fri Sep 11 16:49:29 CEST 2015
Hi yuppie,
Op 11-09-15 om 09:00 schreef yuppie:
> The Import tab wasn't built with extension profiles and upgrade steps in
> mind. It is not exactly the UI you expect for installing add-ons.
>
> One issue you want to fix is this:
>
> Someone installs an add-on on a site that has outdated configuration.
> Because nobody warns him, he messes up the configuration of his site.
>
> Your answer is: Don't bother him with this detail, I'm sure he wanted to
> upgrade his dependencies first. I'll do that for him silently.
>
> My answer is: His site is in a bad state if he didn't run the upgrades.
> He should fix that before he starts installing add-ons.
Someone has a site with profile hoopyfrood up to date. He has no idea
what this does, it was just applied as a dependency of another add-on.
He adds an addon with profile towel to the buildout config. This
requires a new version of the package that has profile hoopyfrood.
Fine, he updates the version pins, runs buildout and restarts the site.
He installs the towel add-on.
Old answer: no matter what the state of the hoopyfrood profile, we apply
it. This may be mostly harmless (I swear I did not plan this culture
reference), but it does more than necessary and may be harmful in some
cases.
My answer: apply the upgrade step of hoopyfrood. Everybody happy.
Your answer: give an error, pointing to the Upgrades tab, telling him to
run the upgrades of hoopyfrood first? Then nothing happens.
Your answer may be fine when applying a profile in the ZMI, but then
again, I have updated the pull request to give the user more options in
the ZMI so that may be fine already. So maybe you are happy with that
already.
From the point of view of existing code in add-ons that call
runAllImportStepsFromProfile and expect it to maybe do too much but at
least work, your answer would be a regression: either nothing is done or
you get an exception.
BTW, the add-ons control panel in Plone 5 lists the available upgrades
first, and then the installable new add-ons. We could improve the ZMI
similarly, like:
- add a warning at the top of the Imports tab if there are upgrades
- Show on the Upgrades tab which profiles actually have upgrades that
need to be applied. Now I sometimes click through the entire list to
check this.
Maybe something for another pull request.
But, for me, this is not about how it works in the ZMI. I am sure with
some back and forth like this we can work something out. It is mostly
about: what happens when in code you do runAllImportStepsFromProfile
with the default settings.
BTW 2, Plone 5 is still also using CMFQuickInstaller, but that is going
the way of the dodo. Slowly.
> In other words: 'profile-' is the default prefix. All methods handle ids
> without prefix the same way as ids with the default prefix. Correct?
Yes, exactly.
Thanks for the feedback,
--
Maurits van Rees: http://maurits.vanrees.org/
Zest Software: http://zestsoftware.nl
More information about the Zope-CMF
mailing list