CacheFu History =============== This file contains change information for previous versions of CacheFu. Change information for the current release can be found in the file CHANGES.txt. 1.2 - released 2008-05-02 ------------------------- Release manager: Ricardo Newbery, ric@digitalmarbles.com Compatible with: Plone 3.0 and Plone 2.5.x - Refactor the GS export/import code. Add support for multiple caching policies. The format of the XML file is now consistent with standard property and object manager formats. [wichert] - Allow installation via a GenericSetup profile. Keep using the old style external method as default installation option. This means you can now install CacheSetup completely through a GenericSetup profile dependency. [wichert] - Repackaged as an egg. [wichert] 1.1.2 - released 2008-04-23 --------------------------- Release manager: Ricardo Newbery, ric@digitalmarbles.com Compatible with: Plone 3.0 and Plone 2.5.x - Removed some deprecated tests. [newbery] - Synced up the squid and varnish configs with the changes in plone.recipe.squid and plone.recipe.varnish. Mostly removed the special handling of cookie-authenticated requests and in the varnish case, added some handling of cache-control tokens. [newbery] - Added a default_ttl of zero seconds to the varnish runner. [newbery] - Unauthorized requests now do not trigger a full CacheFu disable. CacheFu is still disabled but no objects are actually removed. A temporary fix for http://plone.org/products/cachefu/issues/134 [newbery] - Removed no-cache from the default cache policies and added a warning to the noCache and noStore fields about the IE/SSL bug. Fixes http://plone.org/products/cachefu/issues/117 [newbery] - Fixed reordering UI. http://plone.org/products/cachefu/issues/131 [newbery] - Removed lazy expression cleanup routine since we don't do macro caching anymore. [newbery] - Fixed UnicodeDecodeError in PT_pt_render() http://plone.org/products/cachefu/issues/126 [newbery] - Fixed rewritePurgeUrls.py. Was referencing the method before its definition. [newbery] - Cleaned up the descriptions of some cache rules. [newbery] - Removed RSS from the container rule since we do this in a separate rule now. [newbery] - Fixed typo in getHeaderSetIdForCSSAndJs.py which would throw an error if still using the old cache policy (pre-1.1.1). [newbery] 1.1.1 - released 2008-02-03 --------------------------- Release manager: Ricardo Newbery, ric@digitalmarbles.com Compatible with: Plone 3.0 and Plone 2.5.3 - Added an VHM 'inside-out' example to the custom rewritePurgeUrls script. [newbery] - Fixed the migration from pre-1.1 cache policies. [newbery] - After reinstall we now move the new policies to the top of the list. [newbery] - For most use cases, Accept-Language in Vary is unnecessarily conservative. Even in many multi-lingual sites, Accept-Language is not common. So it's no longer the default. [newbery] - Cachefu is now disabled if filesystem version doesn't match installed version. We also update the schemas upon reinstall. The combination of both of these should catch most problems with mutating schemas. [newbery] - Implemented feature enhancement #9: stale-while-revalidate / stale-if-error [newbery] - We no longer magically override the headerset settings based on the proxy cache configuration selection. We might have a reverse proxy cache that is not purgeable so now we always respect the policy settings. This is better done explicitly anyway. [newbery] - The id widget for the cachetool is now always hidden. Changing this id would break things badly. [newbery] - Fixed several svn external properties broken because of svn reorganization. [erral] - Reorganized several imports and schema definitions to improve code readablity. [newbery] - Fixed the reinstall sequence to route around potential cachepolicy id collisions. [newbery] - Removed two policy sets from the default install. Squid-without-vary because latest squid now properly supports purge with vary. Default-cache-policy-v2 because tests don't show any improvement over the old default policy and because of potential (but unconfirmed) problems with the no-cache rule. [newbery] - Added kss registry to resource cache rule [newbery] - Added a cache rule for RSS feeds [newbery] - Added 'b_start' to etag for templates cache rule. Fixes http://plone.org/products/cachefu/issues/97 [newbery] - Removed cachetool.unindexObject() from Install.py since we've already disabled the indexing and it was contributing to http://plone.org/products/cachefu/issues/92 [newbery] - Eliminated a possible source for zodb write conflicts in high write scenarios. Hopefully fixes http://plone.org/products/cachefu/issues/105 [newbery] - Fixed traceback_supplement for Plone 3.0 [rossp] - After Plone 3.0.1, something changed in Archetypes trunk that breaks a couple of our templates. Added an explicit definition for the "allow_tabbing" variable in these templates to fix it. [newbery] - Fixed references to 'CacheFu' in install instructions where it should be 'CacheSetup' [erikrose] - Products.PageTemplates.TALES is obsolete. We now import zope.tales.tales instead [wichert] - With plone 3 trunk and zope 2.10.4 the (un)registerUtility keywords are 'component' and 'provided', in IFiveSiteManager (Five 1.5.5) they are the old way (utility, interface) but IFiveSiteManager does not seem to be used here so this is changed [svincic] - Added keyword arguments when calling (un)registerUtility, because the order of the arguments is the other way round in the IFiveSiteManager interface (at least with Five 1.4.4) [witsch] - Was previously doing a naive check for Plone 3 style site managers which would fail on Plone 2.5 if the portal had been converted to a local site with Five 1.4. Fixed to test for five.localsitemanager. [rocky] - Added method getEnabled to cache_tool to partly fix http://plone.org/products/cachefu/issues/96 [maurits] - Cleaned up the icon. Properly transparent with no white border, slightly bigger, a little color, and a bit of 3D embellishment [newbery] - Added a documentFirstHeading class and removed the icon from the main tab to match the other control panels -- don't want to stand out do we? [newbery] - Added BaseCacheRule to types_not_searched. Fixes http://plone.org/products/cachefu/issues/113 [newbery] - Some tests were updated; some new tests added; some test refactoring. Added policy http cache manager cache rule implementation tests. Testing schemas is deprecated. Added tests for class and skeleton tests for methods. Removed unused imports [hvelarde] - Moved BaseContent class inheritance to BaseCacheRule to simplify code in final classes. BaseCacheRule class is initialized now to avoid potential security issues. Updated test suite to reflect these changes. [hvelarde] - Added plone_tool marker to cache_tool [hvelarde] - Brought back cachingPoliciesDummy.html. This was accidently removed in the last release. It's a cosmetic thing; caching_policy_manager needs this for it's ZMI view. [newbery] - Proxy config changes: 1) Cleaned up and updated the proxy configs. Moved 'config' directory to the more descriptive 'cachefu-proxy-configs'. Cleaned up the readme instructions. Renamed the makeconfig configuration to makeconfig.cfg, to clarify it's purpose. Added new configs for Squid and Varnish proxy cache setups. Added some example configs for an Apache-only proxy cache setup. Eventually, we're probably going to deprecate this and recommend buildouts for the proxy configs. [newbery] 2) Bug fixes: Corrected the log file path for squid log files, but kept them commented. Removed references to unexistent scripts in proxy config deploy script [erral] 3) Bug fix: Moved ';' to the tal:define in xxxxxxx. Was just behind it [redcor] 4) Bug fixes: Fixed print statement in makeconfig. Removed unnecessary squid_direct condition. Removed "direct" directive and adjusted makeconfig to match. [newbery] 5) Bug fixes: In apache configs, uncommented the "RewriteEngine On" line. Added an 'all' acl to the Squid configs, since Squid appears to need this in some situations. Fixed the proxy deploy script to not try to chmod files that do not exist. Fixed some bugs in makeconfig. [wichert] - Bundled the current tagged CMFSquidTool which includes the latest changes: 1) Many Squid configurations ignore query strings, but not all. Query strings are not retained in purge urls. [alecm] 2) Fixed getUrlsToPurge when the object has no REQUEST. [maurits, reinout] 3) Fixed a blocking Queue.put call that never raised Queue.Full and so was never caught [rossp] 4) Squid (at least version 2.6.STABLE14) returns 404's for PURGE requests using HTTP 1.1 when an "Accept-Encoding: identity" header is included in the request. Squid now doesn't generate this header. [dunny] 1.1 - released 2007-08-17 ------------------------- Release manager: Ricardo Newbery, ric@digitalmarbles.com Compatible with: Plone 3.0 and Plone 2.5.3 - Added an INSTALL.txt [newbery] - Fixed http://plone.org/products/cachefu/issues/69 [newbery] - Applied patch from http://plone.org/products/cachefu/issues/57 [newbery] - Removed CacheSetup content items from catalog [newbery] - Unadvertised the GenericSetup profile since it's currently broken [newbery] - Archived some old docs and updated a couple [newbery] - Added cache policies framework (and some alternative policies) [newbery] - Added subscription adapters: getRelativeUrls, getAbsoluteUrls [wichert] - Overhauled and simplified Squid configs [newbery] - Added Varnish configs [newbery] - Added a bunch of tests [hvelarde] - Refactored Install.py [hvelarde] - Removed CookierCrumbler setup since it's deprecated in Plone 2.5 [hvelarde] - Consolidated interfaces. Both old style and new. Will convert all to new style in next release. [newbery] - Made 'ids' visible in the UI to ease diagnostics of response headers [newbery] - Fixed potential cross-site vulnerabilty, http://plone.org/products/cachefu/issues/88 [newbery] - Added a customizable rewritePurgeUrls.py [newbery] - Added 'enabler.py' module. An "off" switch. [newbery] - Fixed caching of Zope 3 views for Plone 2.5 [rafrombrc] - Added caching of Zope 3 views for Plone 3.0 [optilude] - Fixed template when in Plone 3 to use deprecated old_folder_contents [optilude] - Added getFolderButtons.py since folder_button actions are not available as global actions in Plone 3 [newbery] - Install.py now removes the old unused 'cached_macros' folder during upgrade [newbery] - Added lastDate() and getLastTransactionDate() functions for better Last-Modified dates [newbery] - Added an aliases lookup, to find the default view for objects. Fixes caching for PloneHelpCenter types [wichert] - Added invalidation of file and image fields in content objects [wichert] - Added some acquisition safety to getRelativeUrlsToPurge in content_cache_rule.py [wichert] - Added invalidation of content item instead of discussion item [wichert] - Added 'statusmessages' to 'cachestop' items [reinout] - Added a check for installed types in installation test in preparation for migration to GS [tomster] - Removed macro caching code (which doesn't work in v2.5-v3.0) [tomster] - Fixed bailout when encountering "views" [fschulze] - Added more stuff to GS profiles [fschulze] - Merged misc. fixes from sorrento branch [fschulze, reinout, mdziergwa] - Fixed some bugs in old-style squid configs [justizin] - Fixed potential AttributeError with getObjectDefaultView in base_cache_rule.py [alecm] - Updated imports for new Zope [tesdal] - Fixed fields using StringField when they should be using TextField [witsch] - Fixed some functional tests in "/tests/cache_manager.txt" and "/tests/test_doctests.py" [witsch] - Fixed login_form name in /tests/test_functional.py [tesdal] - Fixed patch_cmf.py so tests work in Plone 3 [tesdal] - Fixed traceback in patch_cmf.py [tesdal] 1.0.3 - released 2007-08-16 --------------------------- Release manager: Ricardo Newbery, ric@digitalmarbles.com Compatible with: Plone 2.1 and Plone 2.5 - Fixed potential cross-site vulnerabilty, http://plone.org/products/cachefu/issues/88 [newbery] - Applied patch from http://plone.org/products/cachefu/issues/57 [newbery] - Added an aliases lookup, to find the default view for objects. Fixes caching for PloneHelpCenter types [wichert] - Added logic to invalidate file and image fields in content objects [wichert] - Added some acquisition safety to getRelativeUrlsToPurge in content_cache_rule.py [wichert] - Added invalidation of content item instead of discussion item [wichert] - Fixed potential AttributeError with getObjectDefaultView in base_cache_rule.py [alecm] 1.0.2 - released 2006-12-19 --------------------------- Release manager: Alec Mitchell, apm13@columbia.edu Compatible with: Plone 2.1 and Plone 2.5 - Addresses some minor issues with generated configuration, documentation, and version compatibility with Plone and Squid. 1.0.1 - released 2006-06-29 --------------------------- Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.5 - Bug fix release. - Fixes some thread safety issues. - Fixes several potential race conditions that can cause your site to deadlock or consume 100% CPU. It is strongly recommended that you upgrade to 1.0.1. 1.0 - released 2006-06-16 ------------------------- Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.5 - Now ready for production! 1.0-rc-3 - released 2006-06-13 ------------------------------ Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.5 - Fixed a macro cache bug that caused conflict errors when recataloging a site in heavy traffic. - Minor bug fix: The macro cache was persisting some variables that should have been volatile. The variables have been made volatile. 1.0-rc-2 - released 2006-06-09 ------------------------------ Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.5 - Fixes some threading problems in the macro cache and some problems with asynchronous purging of squid. - The macro cache is now threadsafe. RC1 and beta 2 had some non-threadsafe code that could lead to deadlocks. - The squid purge queue has been fixed (thanks, Sidnei!) - Squid purging is done with HTTP 1.0 and the correct URL is used (thanks, Alec!) - Added a rule for CSS files generated by DTML (e.g. IEFixes.css) - Added the host to the cache key for cached macros so that absolute_url works consistently in cached content. 1.0-rc-1 - released 2006-06-02 ------------------------------ Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.5 - Memory related fixes. The various memory caches are now much more space-efficient, and a major memory leak has been fixed. - A number of smaller UI fixes are included as well. 1.0-beta-2 - released 2006-05-12 -------------------------------- Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.1 and Plone 2.5 - Workarounds for IE bugs - Script to auto-generate and deploy squid config files for squid standalone and for squid behind apache - Macro caching. Speeds up all pages using main_template (Plone 2.0 and 2.1 only; experimental, off by default). 1.0-beta-1 (codename: spoon) - released 2006-03-29 -------------------------------------------------- Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.1 and Plone 2.5 - The first official CacheFu release. - Major refactoring. - Added lots of unit tests and functional tests. 0.1 (codename: danielsan) - released ? -------------------------------------- Release manager: Geoff Davis, geoffd@phds.org Compatible with: Plone 2.1 - The original release of CacheFu, very guerilla, but still very good, with no configlet. Don't use it unless you're crazy.