Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Zope: CMF
<genericsetup:upgradeDepends>
 

Index | Next | Previous | View Flat


ra at burningman

Aug 7, 2008, 11:26 AM


Views: 805
Permalink
<genericsetup:upgradeDepends>

hi all,

i've got a GenericSetup branch called 'ra-depends-tag' with a working
implementation of a <genericsetup:upgradeDepends> ZCML tag. this tag can be
used anywhere that you could use a <genericsetup:upgradeStep> tag (i.e. either
standalone, or nested within a <genericsetup:upgradeSteps>). in fact,
upgradeDepends is simply a special case of upgradeStep that allows you to
specify a set of profile import steps to be re-applied to the site, rather
than calling a generic python handler.

here's an example of how it looks:

<genericsetup:upgradeDepends
profile="Products.Something:default"
source="1.0"
destination="1.1"
sortkey="10"
title="Re-run 'foo' import step"
import_steps="foo"
purge="True"
run_deps="False"
/>

or alternatively:

<genericsetup:upgradeSteps
profile="Products.Something:default"
source="1.0"
destination="1.1"
sortkey="10"
/>
<genericsetup:upgradeDepends
title="Re-run 'foo' and 'bar' import steps"
import_steps="foo bar"
purge="True"
run_deps="False"
/>
<genericsetup:upgradeStep
title="Do something else"
handler="Products.Something.upgrades.do_something_else"
/>
</genericsetup:upgradeSteps>

some notes:

- there is no problem nesting both upgradeStep and upgradeDepends tags within
the same upgradeSteps tag

- the purge and run_deps attributes are optional and both default to False

- the import_steps attribute is of token type, so you can list multiple steps
separated by whitespace and they will all be run

- the import_steps attribute is optional, if it is omitted then the entire
profile will be reapplied

- it's not demonstrated in the examples above, but the 'checker' attribute
(which points to a callable that can be run to determine whether or not the
upgrade action should be performed) is supported, it functions exactly as it
does within an upgradeStep tag

the justification for the existence of this tag should be pretty obvious. one
of the most frequent actions that need to be performed when upgrading to a new
version of a product is the reapplication of whichever import steps have been
modified since the last profile revision. you could use the upgradeStep tag
to point to a handler that performs this operation, but that requires
boilerplate python code, and there's no easy way to express whether or not you
want the dependencies to be run, or purge_old to be set, or even which steps
should be run. this tag resolves those issues.

please feel free to peek at the branch and provide feedback on the work. if
there are no objections, i'd like to merge this to the GS trunk as soon as it
is deemed appropriate by the release manager.

thanks,

-r

_______________________________________________
Zope-CMF maillist - Zope-CMF[at]lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests

Subject User Time
<genericsetup:upgradeDepends> ra at burningman Aug 7, 2008, 11:26 AM
    Re: <genericsetup:upgradeDepends> ra at burningman Aug 13, 2008, 4:22 PM
    Re: <genericsetup:upgradeDepends> wichert at wiggy Oct 8, 2008, 8:04 AM
        Re: <genericsetup:upgradeDepends> wichert at wiggy Oct 8, 2008, 8:05 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.