fix hash order randomization issue: use canonical mode with JSON (RT#84287)
[gitmo/MooseX-Storage.git] / Changes
CommitLineData
e9739624 1Revision history for MooseX-Storage
e59193fb 2
6f80d403 3 * always JSONify data with sorted keys, to handle hash order randomization
4 introduced in 5.17.* (RT#84287, Karen Etheridge)
5
e44b5f54 60.32
7d5ab57c 7 * Change to use core Digest and Digest::SHA dists, rather than Digest::SHA1.
e44b5f54 8 RT#69811
0edcbfee 9 * Create a JSON::Any object, so setting $ENV{JSON_ANY_CONFIG} works.
e44b5f54 10 Adjust tests that were setting the wrong values and the default
11 happened to work.
cd4cef76 12 * Don't rely on hash key order in tests (RT#81695)
7d5ab57c 13
a0e1d538 140.31
cb534011 15 * Add example for add_custom_type_handler to the MooseX::Storage::Engine docs. (perigrin)
16
9ca35902 17 * Incorrect documentation for ->unpack method's inject parameter fixed.
18
9d3c60f5 19 * The test suite now uses Test::Fatal instead of Test::Exception (Karen
20 Etheridge).
21
9566cef2 220.30
23 * Make Makefile.PL features work again. RT#67170
24
08d0f48e 250.29
26 * Remove use of Test::TempDir in favor of File::Temp (gphat)
27
004bf3ea 280.28
29 * Make the engine_traits parameter be able to use a '+My::Trait::Name'
30 prefix to specify a trait name which isn't in the
00993f69 31 MooseX::Storage::Engine::Trait namespace
004bf3ea 32 * Misc POD and test cleanups.
33
39535ada 340.27
35 * use of parameterized roles (first added in 0.22) now works in Deferred
36 Example: $object->freeze({ format => [ $role_name => \%args ] })
37
8919e01e 380.26
c557e792 39 * Fix URI for repository in metadata.
049541bd 40 * Fix infinite recursion when collapsing objects which overload stringify
41 to freeze themselves.
c557e792 42
c905cefb 430.25
44 * Add support for Union types (bumps Moose dep to 0.99)
45
68cf3423 460.24
47 * Add additional YAML implementation tests.
48 * Switch from using Best to YAML::Any.
49 * Remove Test::YAML::Valid.
50
0e45b8f5 510.23
52 * Revert whitespace change in tests which breaks the tests if you
53 have Test::YAML::Valid installed.
54
75b4d0b3 550.22
e0f8f2ee 56 * Fix warnings when types do not have a parent type.
9ff679e4 57 * allow the use of roles outside MooseX::Storage:: (rjbs)
58 * allow the use of parameterized roles (rjbs)
e0f8f2ee 59
14e5132a 600.21
61 * Fix inconsistent dist versions with Perl::Version
62
e43a61ed 630.20
64 * Add support for Storage( traits => [...] ) with a MooseX::Storage::Traits::XX
65 namespace to alter the behaviour of the storage engine.
66 (Suggestions for how to make this less fugly appreciated)
67 * Add feature to disable cycle checking, either via engine trait or option
68 * add docs & tests (including 1 TODO test)
69 * Add feature to only serialize attributes whose predicate returns 'true'
70 * Implement the unpack( $data, inject => {...} ) feature.
71 * add docs & tests
72 * Move Base::WithChecksum to build upon Basic.pm, avoid code duplication
73 * Add extra test to ensure restoring fails if required argument isn't provided
74 * Fix a bug where if a required constructor argument was not serialized, it was
75 impossible to ->unpack again.
76
770.19
78 * Skip pod tests when not in author mode
79
ef87e4a6 800.18
8f677182 81 * Fix test failures without JSON::Any. Patch from RT#46343 (Nicholas Clarke)
82 * Added support for Maybe[...] constraints fixing RT#43165 (plu)
ef87e4a6 83
f4ffa4ef 840.17
85 * Change MooseX::Storage::Engine to use get_all_attributes,
86 rather than the deprecated compute_all_applicable_attributes (t0m)
87
5aaf0d46 880.16
89 * Don't fail tests when Best is unavailable (t0m)
90
f9143059 910.15
92 * MooseX::Storage
93 - Remove use of deprecated alias_method routine
94 which was causing issues when you used multiple
95 Roles which used MooseX::Storage (t0m).
96
df7bb436 970.14
98 * MooseX::Storage::Engine
99 - cycles are now tracked by refaddr instead
100 of stringified object, which broke for any
101 overloaded objects (Thanks to Jonathan Rockway)
102
cfd008fa 103 * Don't fail tests when YAML is unavailable
104
105 * Use temporary files in test suite, instead of cwd
106
6d0abbe8 1070.13 Sat. May 24, 2008
3defafb9 108 * MooseX::Storage::Engine
109 - added find_type_handler_for($name) method
110 to make finding type handlers easier
111 - improved error messages
112
6d0abbe8 113 ~ removed Build.PL since Module::Install
114 no longer supports it
115
4fa64e86 1160.12 Fri. March 14, 2008
eaa26357 117
118 - added build_requires for Test::Deep (awwaiid)
4fa64e86 119 - upped the Moose dependency to support the custom
120 meta-attribute-traits
121
122 * t/
123 - fixing all the tests to properly skip if optional
124 features are not being used, this should help get
125 rid of all our CPANtester failures
126 - tested against 5.10 as well
127
04990d7a 128 * MooseX::Storage::Engine
129 MooseX::Storage::Meta::Attribute::DoNotSerialize
4fa64e86 130 MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize
131 - adding meta-attribute-trait support for
132 DoNotSerialize
133 - added tests for this
eaa26357 134
cfee09ad 1350.11 Thurs. Jan. 10, 2008
136
137 - upped the Test::JSON dependency
138 so that we use the version that
139 supports JSON::Any
140 - upped the JSON::Any requirement
141 - minor test cleanups to handle
142 optional dependencies better
143
144 * MooseX::Storage::Engine
145 - the numbers now have to numify (+0) in the
146 expand/collapse so that certain JSON engines
147 will not choke on them
148
1490.10 Thurs. Jan. 10, 2008
1f3074ea 150 ~~ updated copyright information ~~
151
152 * MooseX::Storage::Deferred
153 - added this role, which allows you to wait until
154 you actually call a method to determine what
155 formatter and/or IO engine you want to use
156 - added tests for this
157
399f3500 1580.09 Tue. Oct. 23, 2007
6f491fae 159 * MooseX::Storage::Util
160 - added support to deal with utf8 strings correctly
6237d568 161
162 * MooseX::Storage::Engine::File
163 MooseX::Storage::Engine::AtomicFile
164 - fixed utf8 handling when storing string
165 - added tests for this
9740e0b7 166
167 * t/
9237d6b4 168 - added an extra test for the utf8 handling
399f3500 169
170 * Change build system to Module::Install
6f491fae 171
1720.08 Wed. Oct. 10, 2007
6c9f2c85 173 * MooseX::Storage::Format::JSON
174 - added support to deal with utf8 strings correctly
175
124c2ba5 1760.07 Thurs. Sept. 27, 2007
177 + MooseX::Storage::Format::Storable
178 - this will use Storable to freeze/thaw objects
179 - added tests for this
180
181 + MooseX::Storage::IO::StorableFile
182 - this will use Storable to load/store objects
183 - added tests for this
4747c531 184
185 * t/
186 - fixed tests in 030_with_checksum.t
187 (thanks to sartak)
188
917411c2 1890.06 Tues. Aug. 7, 2007
190 * MooseX::Storage::Engine
191 - added the Bool type and fixed a few bugs
192 that it exposed (thanks to Sartak)
193 - added tests for this
194
a7f358fb 1950.05 Sun. July 15. 2007
196 * MooseX::Storage::Base::WithChecksum
197 - Fixed minor issue where the WithChecksum would
198 choke with a bad checksum due to odd Data::Dumper
199 output.
200
201 * t/
202 - forced JSON::Any in the basic JSON tests to use
203 JSON.pm since this is what Test::JSON uses and
204 subtle (and annoying) issues can arise.
205
8cd124d3 2060.04 Tues. July 3, 2007
021c860a 207 * MooseX::Storage::Util
208 - made this more robust when it tries
209 to use YAML and JSON loaders and fails
210 to find one
211 - fixed tests to reflect this
212
b04cbd47 2130.03 Wed. June 27, 2007
69b45b7d 214 * MooseX::Storage::Util
215 - this is a collection of useful tools
216 for working with MooseX::Storage data
217 - added docs and test
218
219 * t/
220 - added test for a custom type handler
bc0c5bf9 221 - fixed checksum test to skip if Digest::SHA1
222 (our default) is not available
1c6ac775 223
c86a46cc 2240.02 Fri. June 8, 2007
c4a322ec 225 * MooseX::Storage::Base::WithChecksum
226 - added a simple base role which makes a checksum of
227 the data structure before packing, and checks the
228 checksum before unpacking.
229 - added tests for this
230
45d9a73c 231 * MooseX::Storage::Engine
232 - better error reporting when cycles are found
c1830046 233 - class names are now stored as the full identifier
234 (<class>-<version>-<authority>) and are checked
235 when they are expanded.
236 - added docs and tests for this
45d9a73c 237
06a66732 238 * MooseX::Storage::Engine::IO::(AtomicFile, File)
239 - added checks to make sure the file gets opened correctly
240 and dies if it does not.
241
7b428d1f 2420.01 Mon. April 30, 2007
243 This was Chris's idea originally (blame him), and
244 we expanded on it to create what you see here :)
e59193fb 245