<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>Products.CacheSetup</name>
<shortdesc>Control caching of Plone sites</shortdesc>
<description>Introduction
============

CacheFu speeds up Plone sites transparently using a combination 
of memory, proxy, and browser caching. Can be used by itself or 
with Squid, Varnish, and/or Apache. Once installed, your site
should run much faster (about 10x faster by itself or
about 50x faster with Squid).

CacheFu is a collection of products and recipes.  The central 
product is ``Products.CacheSetup`` which when installed via 
easy_install or buildout takes care of pulling in the rest of
the products from the bundle.

The full bundle includes:

* http://pypi.python.org/pypi/Products.CacheSetup

* http://pypi.python.org/pypi/Products.CMFSquidTool

* http://pypi.python.org/pypi/Products.PageCacheManager

* http://pypi.python.org/pypi/Products.PolicyHTTPCacheManager

Additional optional components include some Squid, Varnish, and
Apache configuration helpers.  See the installation instructions
for more info about these.

The latest information about releases can be found at 
http://plone.org/products/cachefu

CacheFu has been tested with Plone 2.5+ and Plone 3.0.
For earlier Plone versions, try the CacheFu 1.0.3 bundle 
instead.


Products.CacheSetup Installation
================================

``Products.CacheSetup`` is the python egg version of the old
``CacheSetup`` product.  The egg version automatically takes
care of installing all the dependancies that make up the
CacheFu bundle.  However, the proxy cache configs must
still be downloaded and configured separately.

References to the "Manual" below refer to the new CacheFu
manual nearing completion as of this release.  Visit the 
official CacheFu site, http://plone.org/products/cachefu, 
for the latest instructions.

There are three options for installation, and then some
post-installation steps:


(1) Global Install
------------------

To install ``Products.CacheSetup`` into the global Python
environment (or a workingenv) using a traditional Zope 2
instance:

* Run ``easy_install Products.CacheSetup``. 
  Find out how to install setuptools (and EasyInstall) here:
  http://peak.telecommunity.com/DevCenter/EasyInstall

* If you are using Zope 2.9 (not 2.10), get `pythonproducts`_
  and install it into your Zope instance via::

      python setup.py install --home /path/to/instance

.. _pythonproducts: http://plone.org/products/pythonproducts


(2) Local Install (standard buildout install)
---------------------------------------------

To install ``Products.CacheSetup`` into the local zope instance
if you are using ``zc.buildout`` and the ``plone.recipe.zope2instance``
recipe to manage your project:

* Add ``Products.CacheSetup`` to the list of eggs to
  install::
 
      [buildout]
      ...
      eggs =
          ...
          Products.CacheSetup

* Re-run buildout::

      $ ./bin/buildout


(3) Local Install (old style Product install)
---------------------------------------------

Because its top level python namespace package is called
``Products``, this package can also be installed in Zope 2
as an old style *Zope 2 Product*.

For an old style Product install, move (or symlink) the
``CacheSetup`` folder of this project
(``Products.CacheSetup/Products/CacheSetup``) into the
``Products`` directory of the Zope instance, and restart
the server.

Note that in this case, dependancies are not automatically
installed so you will have to repeat this process for
the rest of the CacheFu bundle: ``Products.CMFSquidTool``,
``Products.PageCacheManager``, and ``Products.PolicyHTTPCacheManager``.


Post-Installation Steps
-----------------------

If installing for the first time:

* After starting up Zope, install the CacheSetup product 
  via the Plone "Add/Remove Products" page

* Optional: Configure via the "Cache Configuration Tool"
  (see "Configuring CacheFu" in the Manual)

* Optional: Install and configure Squid or Varnish
  (see below)


If upgrading from a pre-1.2 version:

* Remove the previous version from the Products 
  directory of the instance.  ``CacheSetup``, ``CMFSquidTool``,
  ``PageCacheManager``, and ``PolicyHTTPCacheManager`` have all
  been replaced by ``Products.CacheSetup``, ``Products.CMFSquidTool``,
  etc.  If CacheFu was previously installed in a buildout
  via ``plone.recipe.distros``, then remove the old CacheFu
  settings from this section and re-run buildout.

* Restart Zope

* Click on the reinstall link next to the CacheSetup
  product in the Plone "Add/Remove Products" page

* Note: A reinstall keeps your old pre-1.1 configuration
  in a Cache Policy named "Old Cache Policy".  Any other
  cache policies with ids that conflict with the new ones
  will be backed up and relabeled appropriately

* Optional: Configure via the "Cache Configuration Tool"
  (see "Configuring CacheFu" in the Manual)

* Optional: Install and configure Squid or Varnish
  (see below)

* IMPORTANT: There is no upgrade path from the pre-1.0
  versions of CacheFu.  In this case, the old CacheFu
  products should be completely uninstalled via the Plone
  "Add/Remove Products" page and then deleted from the
  Products directory of the instance BEFORE installing
  the new version.


Proxy Cache Installation and Configuration
------------------------------------------

Buildout recipes for building and configuring Squid, Varnish,
and Apache are available:

* http://pypi.python.org/pypi/plone.recipe.squid

* http://pypi.python.org/pypi/plone.recipe.varnish

* http://pypi.python.org/pypi/plone.recipe.apache

Previously, the CacheFu bundle also included a collection of
auto-generated proxy configs for Squid, Varnish, and Apache.
Starting with version 1.2, this collection is now maintained
as a separate download found at http://plone.org/products/cachefu



Changelog
=========

Changelog for the current CacheFu release.  For a history of changes
prior to this release, see docs/HISTORY.txt


1.2.1 - released 2009-05-17
---------------------------

Release manager:
  Ricardo Newbery, ric@digitalmarbles.com
Compatible with:
  Plone 3.2, 3.1, 3.0, and 2.5

- Convert view name to string type before looking up matching cache rules.
  Also fix up base_cache_rule._associateTemplate to ignore NotFound errors.
  Thanks to Silvio Tomatis for the report.
  [newbery]

- Fixed a Plone 2.5 incompatibility in exportimport/atcontent.py.
  Thanks to Kai Lautaportti for the patch.
  [newbery]

- Added a workaround to fix creating GenericSetup snapshots.
  [rossp]

- Added at_download purge URLs for files and images.  Fixes a problem
  with stale file downloads.
  [rossp]

- Changed over to a "version-less" naming of policies to make GenericSetup
  updates more sane.
  [newbery]

- Don't throw an error in Plone 2.5 if all the 'folder_buttons' actions
  have been deleted/hidden.  That's an odd configuration since it makes
  folder_contents views useless but we should still not throw an error.
  Fixes http://plone.org/products/cachefu/issues/141
  [newbery]

- Fixed a bug where Accept-Encoding was showing up twice in the Vary
  header.  Also made setVaryHeader a bit smarter about what values
  are required so instead of throwing a validation error we now just
  quietly fix the obvious omissions.
  [newbery]

- Added a free-form, syntax-checked field to the list of headers
  that a headerset can apply.  We now support surrogate cache control.
  [newbery]

- A CMFQuickInstaller uninstall/install after a GenericSetup install
  appears broken somehow. It's as if GS-installed tools do not get
  properly unregistered by QI (this is unconfirmed), but oddly a zope
  restart after a QI uninstall fixes this.  But if a restart is not done,
  one consequence is that setTitle never gets called because getToolByName
  says the cachetool exists already.  Since title is a required field
  but hidden in the edit form, this makes it impossible to enable CacheFu.
  QI is going away soon anyway so we punt on this bug and just call
  setTitle unconditionally.
  [newbery]

- Added missing workflow binding for CachePolicy entry in the
  GenericSetup workflow.xml settings.
  [newbery]

- Added missing title for RuleFolder/HeaderSetFolder entries in the
  GenericSetup cache settings.
  [newbery]

- Fixed a GS setuphandlers issue where importing ObjectInitializedEvent
  breaks in Plone 2.5.  Thanks to Kai Lautaportti for the report.
  [newbery]

- Fixed a boolean issue seen in Plone 2.5 where setEnabled() fails due
  to an inappropriate type comparison.  Thanks to Kai Lautaportti for
  the report.  Fixes http://plone.org/products/cachefu/issues/143
  [newbery]

- Fixed up the version checking.  We now no longer rely on quickinstaller
  to keep track of the installed version since qi is unreliable on
  product path changes and during some GS installs.  We also now no
  longer do a "full" disable during version mismatches -- we don't need
  need to anymore since everything now respects the 'enabled' flag.
  [newbery]

- Fixed up the CacheFu Caching Policy Manager so that it respects the
  CacheSetup 'enabled' field.  We don't have to delete this tool now
  in order to turn off caching behavior.
  [newbery]

- Use the FasterStringIO from CMFPlone/patches/unicodehacks instead of the
  standard StringIO to avoid issues due to a mix of strings and unicode.
  [fschulze]

- Improve the GenericSetup export code:

  - Also export the title field for header and rule sets.
  - PolicyHTTPCacheManagerCacheRule also needs the basic header set fields.
  - Import sub-items before importing the object itself so references
    work correctly.

  [wichert]

- Add missing title for entries in the GenericSetup cache settings.
  [wichert]


- If we silently ignore the 'enable CacheFu' option when the user is changing
  the cache tool settings show a very clear warning.
  [wichert]

- Fixed two return values in patch_cmf.py. In Plone 3 you need to return
  Unicode all the time. Otherwise PageTemplate files in the ZODB would generate
  an assertion error in pt_render, complaining about the empty string not being
  Unicode.
  [hannosch]

- Add a vocabulary which lists all header sets.
  [wichert]</description>
<homepage rdf:resource="http://svn.plone.org/svn/collective/Products.CacheSetup" />
<maintainer><foaf:Person><foaf:name>Geoff Davis</foaf:name>
<foaf:mbox_sha1sum>7a7fecc394759b12e477801b9a3b3df2747d421c</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>1.2.1</revision></Version></release>
</Project></rdf:RDF>