-
Notifications
You must be signed in to change notification settings - Fork 21
/
Changes
491 lines (344 loc) · 15.5 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
Revision history for CHI
** denotes an incompatible change
0.62
* Improvements
- Replace List::MoreUtils with List::Util to reduce dependencies - PR #34
0.61 Oct 13, 2021
* Fixes
- Unescaped left brace in regex is deprecated - RT #125596, #115022
- Missing dependency on Module::Mask - RT #114665
* Tests
- Added continuous integration (CI) via GitHub Actions
* Docs
- improved POD
0.60 Jun 7, 2015
* Fixes
- Switch JSON backends from JSON.pm to JSON::MaybeXS - https://github.com/jonswar/perl-chi/pull/20 (Karen Etheridge)
0.59 Jan 7, 2015
* Improvements
- Pass driver to expire_if - https://github.com/jonswar/perl-chi/pull/19 (rouzier)
* Fixes
- Fix DiscardPolicy type - RT #95291 (Josh Rosenbaum)
- Don't mandate that get_namespaces returns in same order - RT #89892 (nhorne)
0.58 May 18, 2014
* Implementation
- Use Moo instead of Moose for object system. This should be fully compatible
with existing code, including Moose drivers or other extensions. This
reduces the startup time and memory overhead.
* Improvements
- The Memory and RawMemory drivers now support zero as a valid value for
the global argument causing a new hashref datastore to be created. (Aran
Deltac)
* Fixes
- Fix busted packaging
- Fix the loading of additional roles or traits (jrouzierinverse)
0.57 Jan 26, 2014
* Improvements
- Use nfreeze instead of freeze for network portability - RT #74188 (Jeffrey Fuller)
0.56 Oct 22, 2012
* Fixes
- Mention testing_driver_class in CHI/Driver/Development.pm - RT #78921 (Nigel Horne)
* Tests
- Add test_multiple_processes for testing drivers under concurrent writes - RT #79132 (Nigel Horne)
* Docs
- Mention that driver tests are responsible for their own cleanup - RT #79100 (Nigel Horne)
- Various spelling fixes thanks to Pod::Spell
0.55 Jul 3, 2012
* Improvements
- Compute derived/aggregate stats in CHI::Stats::parse_stats_logs
* Fixes
- Eliminate "=for html" POD entries, which were mangling metacpan.org output (Pedro Melo)
0.54 May 30, 2012
** Incompatible Changes **
- ** Switch CHI::Stats format to JSON for easier generation and parsing
0.53 May 30, 2012
* Improvements
- Measure time elapsed in get, set, and compute; record in logs and stats. Only
measure when debug logging or stats are enabled.
- compute() now handles list or scalar caller context
- The driver parameter now accepts full classes prefixed by '+', as is standard.
driver_class is still accepted for backward compatibility but no longer documented.
* Fixes
- compute() no longer modifies passed-in options hashref
- Fix get_multi_* with partially empty l1 cache - perl-chi/pull/12 (Mike Cartmell)
- Fix get_keys when file_extension set on CHI::Driver::File - RT #76489 (Vitaliy Tokarev)
- Have set_multi call store_multi underneath as documented in Development.pod - RT
#76621 (Oliver Paukstadt)
- Minor POD fixes (Alessandro Ghedini)
0.52 Mar 7, 2012
* Improvements
- Subclasses inherit configuration from their parents unless they also call config()
* Fixes
- Fix Config test to not require memcached
0.51 Mar 4, 2012
* Improvements
- Add CHI->config() to register storage types, and set core and per-namespace defaults
* Fixes
- Fix new test_max_key_length test to work on drivers that do not support get_keys
0.50 Nov 30, 2011
* Docs
- Clarify busy_lock doc, add obj_ref doc (perlover)
* Fixes
- Override set() rather than set_object() in Role/HasSubcaches.pm so that
keys are not double-transformed when set in l1 or mirror caches. This is
simpler and should be more robust.
- Remove htdocs which were accidentally added into dist
0.49 Jun 23, 2011
* Fixes
- Go back to generating version numbers for all sub-modules again
0.48 Jun 15, 2011
* Fixes
- Disregard default expires_at and expires_in if either are provided - RT #67970 (spjw)
0.47 Apr 28, 2011
* Improvements
- Allow compute() to take get options - expire_if and busy_lock
- Add atomic operations: add, append, replace (alpha)
0.46 Apr 22, 2011
* Other
- Only generate version numbers for .pm files with documentation, to reduce inter-version churn
0.45 Apr 18, 2011
* Improvements
- Add expires_on_backend parameter
0.44 Mar 17, 2011
* Fixes
- Recreate tarball so that it can be read with older tars
- Remove more unnecessary packages from CPAN index
0.43 Mar 17, 2011
* Improvements
- Add compress_threshold parameter
0.42 Mar 3, 2011
* Fixes
- Put parens around qw in various places to fix for perl 5.13+
* Improvements
- Improve accuracy of benchmarks (nothingmuch)
0.41 Mar 1, 2011
* Improvements
- Add RawMemory driver, a faster version of Memory that does not serialize/deserialize
values
- Add etc/bench/bench.pl for benchmarking CHI and non-CHI caches
- Publish current benchmarking results in CHI::Benchmarks
* Testing
- Stop using test counts (http://stackoverflow.com/questions/690342/)
0.40 Feb 27, 2011
* Improvements
- Reverse order of 2nd and 3rd arguments in compute() (old order will still work)
- Throw error if arguments passed to clear()
* Fixes
- Fix CHI::Driver::Metacache::meta_cache to build lazily, eliminating intermittent bug
and making compatible with Moose 1.99+ (autarch)
- Check if get_object defined in purge - RT #63699 (forrest)
0.39 Feb 6, 2011
* Fixes
- Put missing module names back in POD
0.38 Feb 6, 2011
* Fixes
- Move some smoke tests back to author tests
0.37 Feb 6, 2011
* Fixes
- Eliminate Module::Load::Conditional which was causing problems with version.pm - RT
#64900 - reported by dgl@dgl.cx
* Implementation
- Switch to Dist::Zilla
0.36 Jun 9, 2010
* Fixes
- Only encode keys with wide characters
- In escape_for_filename, replace \w with A-Za-z0-9_ to avoid The Unicode Bug
0.35 Jun 4, 2010
* Improvements
- Automatically serialize keys that are references
- Automatically digest long keys, based on max_key_length and key_digester
- Handle utf-8 characters in keys and values
* Fixes
- Add Test::Builder and Test::Log::Dispatch to dependencies - RT #57091 - reported by Doug Bell
- Add line about installing Cache::FastMmap in CHI::Driver::FastMmap - RT #55920 - reported by RSAVAGE
0.34 Feb 9, 2010
* Improvements
- Add statistics recording with CHI::Stats
- Add max_build_depth to ward off accidental infinite subcache recursion
* Fixes
- Change unique_id so as not to seg fault with threads - RT #53591 - reported by Marc Tobias
- Eliminate existence check in File remove(), as it is prone to race condition - RT #50104 - reported by Aran Deltac
- In File clear(), rename directory before removing to reduce chance of conflict
0.33 Nov 29, 2009
* Fixes
- In CacheContainer, ensure that fetch returns scalar
- Include Role::IsSubcache attributes in CHI::Driver->non_common_constructor_params
0.32 Nov 24, 2009
* Fixes
- get_keys not supported in File driver when key_digest is used, for now
- Replace deprecated Class::MOP get_attribute_map with get_attribute_list - RT #52019 -
reported by Todd Caine
- Include Role::HasSubcaches and Role::IsSizeAware attributes in
CHI::Driver->non_common_constructor_params
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