Upgrading from ctools-6.x-1.x to ctools-7.x-2.x:

  - Remove ctools_ajax_associate_url_to_element as it shouldn't be necessary
    with the new AJAX api's in Drupal core.

  - All calls to the ctools_ajax_command_prepend() should be replace with 
    the core function ajax_command_prepend();
    This is also the case for append, insert, after, before, replace, html, 
    and remove commands. 
    Each of these commands have been incorporated into the 
    Drupal.ajax.prototype.commands.insert   
    function with a corresponding parameter specifying which method to use.

  - All calls to ctools_ajax_render() should be replaced with calls to core
    ajax_render(). Note that ctools_ajax_render() printed the json object and
    exited, ajax_render() gives you this responsibility. 

    ctools_ajax_render() 

    becomes

    print ajax_render();
    exit;

  - All calls to ctools_static*() should be replaced with corresponding calls
    to drupal_static*().

  - All calls to ctools_css_add_css should be replaced with calls to
    drupal_add_css(). Note that the arguments to drupal_add_css() have changed.

  - All wizard form builder functions must now return a form array().

  - ctools_build_form is very close to being removed.  In anticipation of this, 
    all $form_state['wrapper callback']s must now be 
    $form_state['wrapper_callback']. In addition to this $form_state['args'] 
    must now be $form_state['build_info']['args'].

    NOTE: Previously checking to see if the return from ctools_build_form()
    is empty would be enough to see if the form was submitted. This is no
    longer true. Please check for $form_state['executed']. If using a wizard
    check for $form_state['complete'].

  - Plugin types now must be explicitly registered via a registration hook,
    hook_ctools_plugin_type(); info once provided in magically-named functions
    (e.g., ctools_ctools_plugin_content_types() was the old function to
    provide plugin type info for ctools' content_type plugins) now must be
    provided in that global hook. See http://drupal.org/node/910538 for more
    details.

  - Plugins that use 'theme arguments' now use 'theme variables' instead.

  - Context, argument and relationship plugins now use 'add form' and/or
    'edit form' rather than 'settings form'. These plugins now support 
    form wizards just like content plugins. These forms now all take
    $form, &$form_state as arguments, and the configuration for the plugin
    can be found in $form_state['conf'].

    For all these forms, the submit handler MUST put appropriate data in
    $form_state['conf']. Data will no longer be stored automatically.

    For all of these forms, the separate settings #trees in the form are now
    gone, so form ids may be adjusted. Also, these are now all real forms
    using CTools form wizard instead of fake subforms as previously.