The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for CHI

** denotes an incompatible change

0.31  Nov 17, 2009

* Improvements
  - ** Rename file_digest to key_digest, so it can be made a generic driver feature later on
  - Allow key_digest to be passed as a string, hash or object
  - Create Digest object once per CHI object, rather than once per read/write

0.30  Nov 5, 2009

* Fixes
  - Fix bug with size-aware L1 cache not keeping track of size
  - Fix description of never-expiring set in logs and errors

* Improvements
  - Add file_digest and file_extension options to File driver
  - Improve l1 cache performance by reusing packed CacheObject data
  - Document options that cannot be overriden by subcache, and warn if user tries to override these

0.29  Oct 14, 2009

* Fixes
  - Make sure Memory cache is cleared when multiple objects use the same datastore, or when datastore hash itself is emptied
  - Fix synopsis of Memory cache in main docs - RT #50360 - reported by zloyrusskiy
  - Fix get_namespaces when File root dir doesn't exist
  - Fix tests to use label for log matching

0.28  Aug 31, 2009

* Fixes
  - Add Test::Exception, Log::Any::Adapter::Dispatch to dependencies
  - Remove use of no-longer-existent CHI::Test::Logger from test modules - RT #49252
  - Fix get_multi_* when $@ already contains an error - RT #48988 - reported by Sergey Panteleev
  - Fix docs to mention root_dir - RT #43409 - reported by anirvan

* Implementation
  - Remove private debugging methods dp and dps

0.27  Aug 27, 2009

** Incompatible Changes **
  - ** Switch to using Log::Any for controlling logging, instead of custom CHI->logger()

* Implementation
  - Move internal tests to xt/release, as per standard

0.26  Jul 14, 2009

* Fixes
  - Eliminate is_subcache redefinition of attribute (causes CHI to fail to load under latest Moose)

* Implementation
  - Make sure that tests are only using keys from a particular list; this is necessary for
    memcached tests, which has to simulate get_keys by checking for all the possible ones

0.25  Jun 2, 2009

* Improvements
  - Non-Moose drivers should be fully functional again (reversing the change in 0.23)

* Implementation
  - Moved role composition to CHI.pm factory (ala MooseX::Traits), so that each role can have its
    own attributes and initialization
  - Moved all Moose types to CHI::Types
  - Replaced require_dynamic with Class::MOP::load_class

0.241  May 26, 2009

* Fixes
  - Actually add Moose to requirements, in place of Any::Moose

0.24  May 26, 2009

* Fixes
  - Reverted test scripts to previous format, as they were causing problems with other
    driver distributions

0.23  May 24, 2009

** Incompatible Changes **
  - ** Drivers must now be Moose based to be fully functional, since we use Moose roles to
    implement various features. For backward compatibility, non-Moose drivers will still work
    at a basic level (for now).

* Improvements
  - Added concepts of size awareness, maximum size, and discard policies for any driver.
    See "Size Awareness" section of docs.

* Implementation
  - Added a metacache, which resides in a separate _CHI_META namespace and stores meta-information
    about caches. Initially for tracking size for size-aware caches.
  - Added dependency on Carp::Assert
  - Eliminate boilerplate in test scripts

* Fixes
  - Croak if specify both 'global' and 'datastore' for memory driver

0.22  May 13, 2009

* Implementation
  - Switch from Mouse back to Moose - six week experiment over. Once we started using roles,
    Mouse became increasingly unattractive and the Moose community encouraged us not to go
    further with it. We can hope (or help ensure) that Moose installation and startup time improves.
  - Moved subcache code to a separate role, CHI::Driver::Role::HasSubcaches. API remains
    the same -- activated via l1_cache and mirror_cache options to CHI->new.

0.21  May 5, 2009

** Incompatible Changes **
  - ** Deprecate get_multi_array - silly to have this along with get_multi_arrayref
  - ** CHI::Driver::Memory will no longer use a global datastore by default - it was too easy
    to accidentally share the same datstore in unrelated code. Either a datastore or the
    'global' flag must be specified. Right now the absence of either will issue a warning,
    eventually this may become an error.

* Improvements
  - To implement get_multi_*, drivers now define the simpler fetch_multi_hashref
  - Made get_multi_* work optimally with l1 caches

* Fixes
  - Eliminated t/Multilevel.t which was causing test failures on new installations
  - Fixed get_namespaces for File driver to ignore non-standard dir names

* Docs
  - Tidied pod with Pod::Tidy
  - Added Features section and mention of Chris Leishman's Cache to docs

0.2  Apr 25, 2009

** Incompatibile Changes **
  - ** Removed CHI::Driver::Multilevel, replaced with subcaches
  - ** ref($driver) is no longer simply the driver class, it is an auto-generated wrapper
    class like CHI::Wrapped::CHI::Driver::Memory - this is so that certain driver methods
    can be automatically wrapped

* Improvements
  - Added a more practical and intuitive multi-level cache mechanism: subcaches. l1_cache
    and mirror_cache are the first two supported subcaches
  - Added customizable cache label, used in logs and error messages

0.102  Mar 6, 2009

* Fixes
  - Skip get_namespaces in tests with drivers that don't support it
  - Eliminate unconditional use of Data::Serializer in tests; improve error when Data::Serializer not installed

0.101  Mar 2, 2009

* Fixes
  - Don't use Data::Serializer up front

0.10  Feb 28, 2009

- ** Deprecate expire_if method - this can easily be done manually, and it now differs
    deceptively from the expire_if option to get()
- ** Change expire_if option to simply return undef, without actually expiring the item
- Switch to Mouse instead of Moose, to reduce install dependencies and overhead. Eliminate
  Moose-isms as needed. Eventually may switch to Any::Moose but want to get comfortable
  with Mouse first.
- Eliminate dependencies on Data::Serializer, File::Slurp, and Module::Find
- Revert Memory driver implementation to more readable and illustrative form
- Handle value-too-large errors in FastMmap driver
- When serializer passed as a string, use raw=>1 so as not to hex-encode or insert token
- Allow serializer to be passed as a hashref
- Fix bug when specifying serializer with multilevel driver

0.091 Jan 2, 2009

- Ensure that unlink_on_exit=0 is being passed to FastMmap
- Allow serializer to be passed as a simple string
- Documentation fixes

0.09  Dec 30, 2008

- Moved source to git
- Added Null driver
- Fixed main docs regarding Memcached driver
- Changed FastMmap driver to pass all unrecognized options onto Cache::FastMmap, to better
  handle future FastMmap versions
- Fixed small get_keys bug in File driver
- Added expires time to set logs
- Added get_multi_array alongside get_multi_arrayref
- Added test for get_namespaces

0.081  Sep 24, 2008

- Fix t/Driver/File.pm test so it does not depend on specific OS error message

0.08  Sep 23, 2008

- ** Move CHI::Driver::Memcached to its own distribution
- Many internal changes to make greater use of Moose (Dave Rolsky).
- Add serializer option, allowing control over how data is serialized/deserialized
- The FastMmap driver was not actually making use of the init_file,
  cache_size, page_size, or num_pages options. Reported by Mike
  Astle. RT #35819. (Dave Rolsky)
- Allow suppression of renames in CHI::Driver::File by overriding
  generate_temporary_filename

0.07  Mar 12, 2008

- Add Date::Parse to build dependencies

0.06  Feb 29, 2008

- Created separate manual for developing drivers (CHI::Driver::Development)
- Made standard CHI driver tests easily available to external drivers
- Fixed clear() in Memcached driver - RT #32859 - reported by Justin Ellison
- Add size to set logs

0.05  Jan 30, 2008

- Switched to Moose
- Added maximum full path length check to File driver, mainly for MSWin32
- Added TODO to pod

0.04  Jan 25, 2008

- Default unlink_on_exit to 0 for Cache::FastMmap to conform to the CHI API

0.03  Jan 23, 2008

- ** Eliminated automatic namespace selection based on caller; namespace now defaults to
  'Default', as in Cache::Cache.
- Added 5.6.0 requirement
- Made Memcached test internal-only for now, since test success depends on presence and
  configuration of an external server
- Changed README to generate from CHI.pm

0.02  Jan 19, 2008

- Changed Multilevel-Single test to use a temporary root dir
- Eliminated non-portable file permissions test
- Concealed use of test package name (Foo::Bar) from PAUSE indexer

0.01  Jan 15, 2008

- Initial version