forked from kiokudb/kiokudb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
346 lines (291 loc) · 13.1 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
0.52
- Fix an issue where streaming entries can sometimes cause them to
disappear.
- Fix overlap with the new 'union' keyword in Moose::Util::TypeConstraints.
0.51
- Die with an error when two objects try and register with the same ID but
don't both do the KiokuDB::Role::ID::Content role.
0.50
- Use new instance api in Moose to allow native traits to inline properly
when used with KiokuDB::Class (doy)
0.49
- Merge NUFFIN/0.48 and FLORA/0.48
0.48 [FLORA]
- Avoid warnings from Moose 1.10
0.48 [NUFFIN]
- Reupload with proper MANIFEST
0.47
- Avoid warnings from Moose 1.09 (Dave Rolsky)
- Numerous documentation fixes (David Leadbeater)
- Move the Japanese translation of the tutorial under POD2::JA to allow
perldoc -L ja KiokuDB::Tutorial
- Don't allow the live object cache to grow too big
0.46
- s/_03/ on the version
0.46_03
- Internals change cleanups regarding weakening $entry->{data} with
passthrough objects
- fiddle leak tracking code around to avoid keeping temporary refs around,
which makes Devel::FindRef more useful in the user's leak tracker
0.46_02
- Support for caching of live objects (i.e. immutable ones)
- Fix the =head1 NAME of Tutorial::JA
- Move t/set.t into a standalone test fixture
0.46_01
- Lots of refactoring to LiveObjects
- metadata is keyed by ID, not object
- keep_entries attribute allows entries to be discarded once used
(defaults to true for compatibility, may change in the future)
- clear_leaks/leak_tracker attributes
- remove txn_{begin,commit,rollback} methods, as they require maintaining a
stack to be properly used (#58166)
- KiokuDB::Cmd no longer tries to rerun itself after autoinstall, this is
very flakey when the installation is the result of an upgrade instead of
a fresh install
0.45
- Introduce KiokuDB::Backend::Role::GC which allows backends to construct
their own garbage collector for the GC command.
- name mangle inline classes in tests to avoid false failure reports (e.g.
when a Foo.pm is in @INC)
- add scoped_txn, txn_begin, txn_commit, txn_rollback
0.44
- Remove accidental use of namespace::autoclean instead of namespace::clean
(doy)
- Proper fix for class_version this time =(
0.43
- Now throws proper error objects instead of unintelligiable hash refs
- Fix JSON serialization (omitted keys necessary for version tracking and
GIN indexing)
- Add a 'clone' method to KiokuDB::Set
- Suppress additional recursion and repeated weaken() warnings
- Try harder to skip DateTime formatter serialization roundtripping on JSON based backends
0.42
- Update translation of tutorial (ktat)
- use RegexpRef type constraint instead of Regexp (Regexp look blessed but
not in C land) (doy)
- Force stringification of version objects before serialization
- 'mongodb' DSN moniker (omega)
- Typemap support for the REF reftype (just an alias for SCALAR)
- misc doc fixes
0.41
- Re-release without extra crap in the tarball.
0.40
- Allow using a JSON string as a DSN, e.g.
'{"dsn":"dbi:SQLite:foo","schema":"MyApp::DB"}'
- Added DateTime::Duration to the default typemap
0.39
- Allow a backend to provide a default typemap in addition to the serializer one
- call 'register_handle' on duck-typing backends in KiokuDB::BUILD
- plug a leak where the live object set kept an indirect reference to
passthrough entries
0.38
- Fix a bug where object streams would end prematurely (Graham Barr)
0.37
- Resolve long standing issues with TXN::Memory
- TXN::Memory::Scan role now implements proper enumeration
- Fixture::TXN::Scan verifies transactional semantics of enumeration
for all transactional backends
- Re-enable $linker->queue (fixed coderef failure case)
- Various doc fixes
- Class versioning (disabled by default)
0.36
- Resolve a bug when deleting objects that are still live,
lookup($dead_object_id) would still return the object even though it's
not actually in storage.
- Don't call $backend->exists with no arguments in FSCK
- various API methods now just return; when invoked with no arguments,
instead of potentially erroring at the backend level
0.35
- bump dependency version for MooseX::YAML to prevent bad interaction with
MooseX::Blessed::Reconstruct
- add insert_nonroot and store_nonroot methods
0.34
- fix an incorrect conversion to Try::Tiny (Dylan)
- remove ciruclar role definition that causes does_role to inf loop
- laxen the exception matching regex for missing .pm files in @INC to
address CPAN testers reports with a different formatting for that error
0.33
- Added Japanese tutorial KiokuDB::Tutorial::JA (ktat)
- Correct indexing tutorial example (ask)
- Use done_testing() instead of no_plan (dandv)
- Fix behavior of KiokuDB::Lazy attributes with a trigger (a Moose change
caused infinite recursion)
- add a refresh method (no deep_refresh yet)
0.32
- Don't assume all metaclasses have the does_role method
- Various documentation fixes
- Add no warnings 'recursion' to KiokuDB::Linker
0.31
- Remove MooseX::Getopt usage from verbosity role
- Don't depend on KiokuDB::Cmd in makefile, just warn (avoids recursive
dependency)
0.30
- Split KiokuDB::Cmd into a separate distribution
0.29
- work around Test::Exception leak relating to closures in 5.8
- fix various new warnings with Moose
0.28
- YAML serializer no longer stores extra data
- MooseX::Clone is available for entry/reference
- TypeMap::Entry::Std role was split up to smaller roles
- TXN::Memory implements get() properly now (but not iterations yet)
- ->connect("/path/to/config.yml") is now supported
- propagate errors when loading classes in the linker
- core reftypes (ARRAY, HASH etc) are handled by the typemap
- SCALAR refs can be stored in JSON by using a custom typemap
- Support for serializing closures
0.27
- Add roles for digest based IDs
- Change dep versions of IO and Tie::RefHash::Weak (they were wrong under
5.8) (Thanks to Otto Hirr)
- KiokuDB::Lazy did not have any effect unless the value was a first class
objects. Now it works for all refs (e.g. arrays of objects)
- TODO list updated
- correct dry_run option in WithDSN when transactions are unsupported
0.26
- avoid using deprecated Moose/Class::MOP features
- bump deps on Moose and Class::MOP
0.25
- attempt to reduce memory usage by using a custom destruction guard
- only run concurrency stress test if env var is set
- various doc fixes
0.24
- various doc fixes (Dan Dascalescu)
- fix semantics when a Set::Deferred outlives the scope in which it was
created and then gets vivified
- add a test for MooseX::Traits
- doc improvements
- concurrency stress test
- txn_do takes a 'scope' arg (calls new_scope automatically)
- various doc fixes
- add KiokuDB::Role::API
0.23
- Add KiokuDB::DoNotSerialize trait (MooseX::Storage trait is still respected)
- add Collapser::Buffer, which replaces the various temp attrs. Changes
from the buffer are only written to live objects after a successful write
to the backend. This also fixes duplicate ID::Content objects being
inserted when one is already live.
- Various doc improvements
0.22
- Add TXN::Memory role to provide memory bufferred transactions to backends only
supporting atomicity guarantees (e.g. CouchDB)
- Documentation improvements
- Allow skipping of test suite fixtures on broken backends
- Various minor fixes and improvements
0.21
- Readded the dependency on JSON in addition to JSON::XS
0.20
- Refactored KiokuDB::TypeMap::Composite out of KiokuDB::TypeMap::Default
- Added KiokuDB::TypeMap::Entry::StorableHook, which allows reusing of
existing STORABLE_freeze hooks
- Fixed handling of 'root' flag (was not being properly preserved)
- Added 'is_root', 'set_root', 'unset_root'
- Added a 'deep_update' method
- Now depends on YAML::XS and JSON::XS (not optional deps anymore)
- Various improvements to command line roles
- Added a new GC command and a naive mark & sweep collector
- Added a new Edit command using Proc::InvokeEditor to do a dump and a load
in a single transaction
- Added KiokuDB::Role::Intrinsic for objects which want to be collapsed
intrinsically
- Added KiokuDB::Role::Immutable for objects which never change after being inserted
- Added KiokUDB::Role::ID::Content for content addressible objects
- Test suite cleanups
- Added ID enumeration to Scan role
- Added 'allow_classes', 'allow_bases' and 'allow_class_builders' options
to KiokuDB allowing for easy typemap creation.
0.19
- Introduce KiokuDB::Stream::Objects, a Data::Stream::Bulk for objects that
automatically creates a new scope for each block. This makes it much
harder to leak when iterating through C<all_objects>.
0.18
- Fix KiokUDB->connect("foo", @args) when the dsn string has no parameters
(@args were being ignored)
- Add a fixture to test that overwriting an entry is not allowed.
0.17
- More docs
- remove KiokuDB::Backend::Null which was historically used for testing but
is long since useless.
- remove deprecated command line tools
- provide a 'txn_do' method in Role::TXN for backends which only implement
txn_begin, txn_rollback and txn_commit
- correct plan for t/uuid.t when a module is missing
0.16
- Lots of docs
- Fix KiokuDB::Reference's Storable hook limitation using a simple
workaround. Not a real fix yet.
- Remove unnecessary code from the UUID generation roles.
- In KiokuDB::Cmd::OutputHandle, don't clobber the file before the command
has actually run (remove EarlyBuild attr)
0.15
- Last version was accidentally released off a problematic branch,
rereleasing without that change
0.14
- skip incremental JSON parsing tests if JSON::XS is missing
- load IO::Handle to attempt to work around some weird test failures
0.13
- t/serializer.t was causing bogus failures by not skipping if YAML::XS is
unavailable
- Cleanup of ( is => 'rw' ) bits in KiokuDB::Entry that should have really
had private writers instead
- Introduce partial handling of anonymous classes created due to runtime
application of roles ( My::Role->meta->apply($instance) )
0.12
- Remove a use Devel::PartialDump that accidentally got committed
0.11
- Fetching now queues items so that the backend's get() method is called
fewer times, with more IDs each time. This significantly increases the
performance of high latency backends, such as DBI or CouchDB.
- fill in SimpleSearch stub fixture
- Various fixes for Binary fixture
- Make the various fields of the JSPON format customizable
- Serialization is now pluggable using the Delegate serialization role
0.10
- Load classes in the typemap resolution code, so that objects whose
classes aren't necessarily loaded at compile time can still be inflated.
- add 'import_yaml' to KiokuDB::Util
- Refactor parts of the JSPON file backend into a JSON serialization role
- Don't load thunks when updating partially loaded objects
- No longer dies if txn_do is used but the backend doesn't supports it
(implicit noop)
- Add a new role and test for nested transaction supporting backends
(partial rollback)
0.09
- Remove KiokuDB::Resolver, moving ID assignment functionality into the
collapser and the typemap
- Fix bogus failures on 5.8 due to weird leaks (perl bug affecting test suite)
0.08
- Fix a breakage in inflating passthrough intrinsic objects created with
older versions of KiokuDB
- Refactor command line tools to use App::Cmd
- Add KiokuDB::LinkChecker and a FSCK command
0.07
- Rename backend roles to KiokuDB::Backend::Role::Foo (omega)
- Change entry packing format in Storable to something less idiotic
0.06
- Use epoch, not ISO 8601 dates in JSPON map by default to avoid issues
with DateTime::Format::ISO8601 dependency in testing. Will support both in the future
- Fix tied support for JSPON
0.05
- Add default typemaps for JSON and Storable serialization
0.04
- Fix ->clear in KiokuDB::GIN
0.03
- Lots of new docs
- Smaller set of dependencies
- Many deps are now optional (skips tests)
- Some dependencies weren't necessary
- Hand written code instead of MooseX::AttributeHelpers in live objects
- Fixed an random test failure in live_objects.t that accidentally depended
on address space ordering
0.02
- Lazy meta trait for attributes
- DoNotSerialize meta trait is now respected
- Documentation updates
- Removes several unrelated files form the dist
- NoGetopt related fixes for command line tools
- Remove JSPON backend files
- Dependency fixes
- KiokuDB::Role::ID
0.01
- Initial Release