Copyright (c) 2002, 2003 Infrae. All rights reserved.
See also LICENSE.txt

Meta::

  Valid for:  Silva 0.9.1.x
  Author:     Martijn Faassen
  Email:      faassen@infrae.com
  CVS:        $Revision: 1.26.2.17 $

Upgrading from 0.8.6 and below

  Please upgrade your Silva to 0.9 first. Be careful to read its
  upgrade instructions! You can find Silva 0.9 here:

  "Silva 0.9.0.4":http://www.zope.org/Members/faassen/Silva/Silva-0.9.0.4.tgz

  Please read the UPGRADE.txt included with that release.

Upgrading from 0.9.1 to 0.9.1.x

  There shouldn't be any problems (also not for upgrading from the beta
  directly). Just do a 'refresh all' and all things should work. If you 
  are using Groups, please upgrade to Groups 0.3.2 as it contains a 
  bugfix. Groups can be found here:

    "Groups 0.3.2":http://www.zope.org/Members/faassen/Groups/Groups-0.3.2.tgz.

  The Silva Indexer object have slightly change to make them work better in
  virtualhost environment. If you point you browser to:

    http://[path/to/your/silvaroot/]/service_utils/find_indexers

  you will get a list of all Indexer object currently in use on your site.
  Pressing the "update index" button in the edit screen of this Indexer
  object should bring it up to date with the new implementation.

Upgrading Silva 0.9.0.x to 0.9.1.x

  This document applies to upgrading Silva only; if you are newly
  installing Silva please look at 'INSTALL.txt'.

  NOTE: It makes of course sense to make a backup of Silva before
  trying to upgrade! Silva used to make a backup copy automatically
  but in effect this copying action takes place *after* updating some
  Silva code. This causes the upgrade to fail in some cases (notably
  with Silva News which uses the catalog, and backup copying triggers
  a re-cataloging). In order to evade these problems we have disabled
  the creation of the backup copy from the upgrade code. Instead you
  need to do a backup copy *before* you upgrade the product code and
  restart Zope. The simplest way to make sure you have a functional
  backup is to backup the whole ZODB; make a copy of 'var/Data.fs'.

  NOTE: The Groups functionality is changing. With this release existing
  Group definitions are still working but not directly accessible. To get
  access to a Group definition (you can list existing groups by clicking
  the service_groups object in the Silva root in the ZMI) place - in
  the ZMI - a Silva Group object. If you specify an existing name AND check
  the "only create asset" checkbox, you are again able to edit this Group
  definition.

  Silva Filesystem Products

    In order to upgrade to 0.9.1.x you need a new version of Silva
    (0.9.1.10) and FileSystemSite (1.2). Download them here:

      * "Silva-0.9.1.10.tgz":http://www.zope.org/Members/faassen/Silva/Silva-0.9.1.10.tgz
  
      * "FileSystemSite-1.2.tgz":http://www.zope.org/Members/faassen/Silva/FileSystemSite-1.2.tgz

    The latter is a temporary location, it should be downloadable here
    soon:

      * "FileSystemSite-1.2.tgz":http://www.zope.org/Members/k_vertigo/Products/FileSystemSite

    If you are using Groups, you also need to download and install the
    new Groups 0.3.1. Find it here:

      * "Groups-0.3.1.tgz":http://www.zope.org/Members/faassen/Groups/Groups-0.3.1.tgz

    To upgrade, remove the Silva, FileSystemSite and (if you have it)
    Groups directories from your 'Products' directory first. Then
    unpack the new files you downloaded.

    Formulator, XMLWidgets and ParsedXML do not require an upgrade in
    this release.

    Note that LDAP integration of Silva has changed with the new
    membership system. If you are using LDAP integration with your
    Silva, you will notice that the old system has disappeared. In its
    stead we have a new member extension mechanism that takes it
    place. If you need help enabling membership please contact
    Infrae. We will place a demo membership extension that uses LDAP
    online soon.

    If you are using Silva's ExtFile support (turned off by default),
    you should consult the section in 'INSTALL.txt' to see how to
    configure the newly installed Silva product to use this again.

    Restart Zope to make the new product code take effect. Now go on
    to the next step.

  Refreshing and upgrading the Silva product

    If you are upgrading from 0.9 to 0.9.1.x, you need to upgrade the
    content of Silva, as some of the structures have changed. After
    the restart, go to 'service_extensions' in the Silva Root as Zope
    manager and click the 'upgrade content' button. This will
    automatically refresh all installed Silva extensions as well as
    upgrade the Silva content that needs upgrading. Note that this
    will take a while if your site is large.

    Upgrading the content from 0.9 to 0.9.1.x will change the following
    things:
  
      * List titles are changed to headings. The list title option is
        gone, as it was too hard to integrate with external systems,
        and not really useful when the heading option is available.

      * In the image element, 'image_id' and 'image_path' are
        transformed to 'path' for consistency with other elements
        which reference assets.

      * Last author information is stored in a new way after the
        membership changes; the upgrade script updates this
        information.

    If you are upgrading a minor version (bugfix release) it should be
    enough to just press the 'refresh all' button to upgrade. This
    lets Silva update various configurations in the Zope object
    database.

    You should be done upgrading now!
 
  Page templates for presentation of public views
    
    The upgrade will likely carry new default versions of the page
    templates and style sheets used for presentation of the public
    website. You can install these examples in your Silva root by
    going to 'service_extensions' in the Silva Root and pressing the
    'install default layout' button.

    Doing this won't overwrite your public layout code; the only thing
    overwritten will be whatever in the current 'default_' objects, if
    any exist. You can then look at this code for examples. If you're
    satisfied with their contents you can also rename them to versions
    without the 'default_' prefix and start using them.
 
  Upgrading Custom Content Types.

    If you have custom content types in a separate Zope Product,
    and these content types use same the XML as the Silva Document,
    you should include the objects of your content types in the upgrade
    process.

    For this you need to register an upgrade function associated with
    the meta type of your content type class at the
    'upgrade_registry', before you upgrade. to achieve this place
    something along the lines of the following code in the
    '__init__.py' of your product::

       from Products.Silva.upgrade import upgrade_registry, upgrade_list_titles_in_parsed_xml

       def upgrade_sampledoc(obj):
		       for o in obj.objectValues():				
			         upgrade_list_titles_in_parsed_xml(o.documentElement)

      upgrade_registry.register('Silva Sample Document', upgrade_sampledoc)

    The helper function 'upgrade_list_titles_in_parsed_xml' actually
    does all the XML upgrades mentioned in the section above.

    If you only need to update the "last author" information, you do
    not need to take any action; the upgrade process will do this
    automatically for you.

    You also may want to take a look at the most current version of
    the "SilvaDemoExtension
    Product":http://cvs.infrae.com/SilvaDemoExtension/ for an example
    of upgrading a custom content type.
