lazy attr bug found by ashley
[gitmo/Moose.git] / Changes
CommitLineData
e522431d 1Revision history for Perl extension Moose
2
4fd69d6c 30.14
4
5 * Moose::Meta::Attribute
6 - fixed lazy attributes which were not getting
7 checked with the type constraint (thanks ashley)
8 - added tests for this
9
c0c41f76 100.13 Sat. Sept. 30, 2006
093b12c2 11 ++ NOTE ++
12 This version of Moose *must* have Class::MOP 0.35 in order
13 to work correctly. A number of small internal tweaks have
14 been made in order to be compatible with that release.
15
3c2bc5e2 16 * Moose
17 - Removed the use of UNIVERSAL::require to be a better
093b12c2 18 symbol table citizen and remove a dependency
19 (thanks Adam Kennedy)
3c2bc5e2 20
2a0f3bd3 21 **~~ removed experimental & undocumented feature ~~**
22 - commented out the 'method' and 'self' keywords, see the
23 comments for more info.
24
e95c7c42 25 * Moose::Cookbook
26 - added a FAQ and WTF files to document frequently
27 asked questions and common problems
b805c70c 28
3f7376b0 29 * Moose::Util::TypeConstraints
0a5bd159 30 - added GlobRef and FileHandle type constraint
3f7376b0 31 - added tests for this
32
33 * Moose::Meta::Attribute
34 - if your attribute 'isa' ArrayRef of HashRef, and you have
35 not explicitly set a default, then make the default DWIM.
94b8bbb8 36 This will also work for subtypes of ArrayRef and HashRef
37 as well.
38 - you can now auto-deref subtypes of ArrayRef or HashRef too.
39 - new test added for this (thanks to ashley)
3f7376b0 40
b805c70c 41 * Moose::Meta::Role
42 - added basic support for runtime role composition
0a5bd159 43 but this is still *highly experimental*, so feedback
44 is much appreciated :)
b805c70c 45 - added tests for this
e95c7c42 46
0a5bd159 47 * Moose::Meta::TypeConstraint
48 - the type constraint now handles the coercion process
49 through delegation, this is to support the coercion
50 of unions
51
52 * Moose::Meta::TypeConstraint::Union
53 - it is now possible for coercions to be performed
54 on a type union
55 - added tests for this (thanks to konobi)
56
e95c7c42 57 * Moose::Meta::TypeCoercion
58 - properly capturing error when type constraint
59 is not found
60
3c2bc5e2 61 * Build.PL
62 - Scalar::Util 1.18 is bad on Win32, so temporarily
63 only require version 1.17 for Win32 and cygwin.
093b12c2 64 (thanks Adam Kennedy)
3c2bc5e2 65
40e89659 660.12 Sat. Sept. 1, 2006
2bdd01cd 67 * Moose::Cookbook
68 - Recipe5 (subtypes & coercion) has been written
69
70 * Moose
3279ab4a 71 - fixed "bad meta" error message to be more descriptive
72 - fixed &unimport to not remove the &inner and &super
73 keywords because we need to localize them.
68efb014 74 - fixed number of spelling/grammer issues, thanks Theory :)
0558683c 75
76 **~~ experimental & undocumented feature ~~**
68efb014 77 - added the method and self keywords, they are basically
78 just sugar, and they may not stay around.
f742dfef 79
80 * Moose::Object
68efb014 81 - added &dump method to easily Data::Dumper
82 an object
b26e162e 83
84 * Moose::Meta::TypeConstraint
85 - added the &is_a_type_of method to check both the current
86 and the subtype of a method (similar to &isa with classes)
f008ac1f 87
68efb014 88 * Moose::Meta::Role
89 - this is now a subclass of Class::MOP::Module, and no longer
90 creates the _role_meta ugliness of before.
91 - fixed tests to reflect this change
92
8c835eba 930.11 Wed. July 12, 2006
31f8ec72 94 * Moose
95 - added an &unimport method to remove all the keywords
8c835eba 96 that Moose will import, simply add 'no Moose' to the
97 bottom of your class file.
31f8ec72 98
99 * t/
100 - fixed some test failures caused by a forgotten test
101 dependency.
102
864cd714 1030.10 Thurs. July 6, 2006
01a8e221 104 * Moose
105 - improved error message when loading modules so
106 it is less confusing when you load a role.
2b14ac61 107 - added &calculate_all_roles method to
108 Moose::Meta::Class and Moose::Meta::Role
109
110 NOTE:
111 This module has been tested against Class::MOP 0.30
112 but it does not yet utilize the optimizations
113 it makes available. Stay tuned for that ;)
114
2b14ac61 1150.09_03 Fri. June 23, 2006
715ea0b7 116 ++ DEVELOPER RELEASE ++
4276ccb4 117 * Moose
118 - 'use strict' and 'use warnings' are no longer
119 needed in Moose classes, Moose itself will
120 turn them on for you.
121 - added tests for this
1341f10c 122 - moved code from exported subs to private methods
123 in Moose::Meta::Class
4276ccb4 124
125 * Moose::Role
126 - as with Moose, strict and warnings are
127 automatically turned on for you.
128 - added tests for this
e39d707f 129
130 * Moose::Meta::Role
131 - now handles an edge case for override errors
132 - added tests for this
b7f2d25b 133 - added some more edge case tests
1341f10c 134
43d599e5 1350.09_02 Tues. May 16, 2006
715ea0b7 136 ++ DEVELOPER RELEASE ++
2c0cbef7 137 * Moose
138 - added prototypes to the exported subs
43d599e5 139 - updated docs
2c0cbef7 140
141 * Moose::Role
142 - added prototypes to the exported subs
43d599e5 143 - updated docs
2c0cbef7 144
145 * Moose::Util::TypeConstraints
146 - cleaned up prototypes for the subs
43d599e5 147 - updated docs
2c0cbef7 148
72c4f6d1 1490.09_01 Fri. May 12, 2006
150 ++ DEVELOPER RELEASE ++
151 - This release works in combination with
152 Class::MOP 0.29_01, it is a developer
153 release because it uses the a new
154 instance sub-protocol and a fairly
155 complete Role implementation. It has
156 not yet been optimized, so it slower
157 the the previous CPAN version. This
158 release also lacks good updated docs,
159 the official release will have updated docs.
160
98aae381 161 * Moose
162 - refactored the keyword exports
db1ab48d 163 - 'with' now checks Role validaity and
164 accepts more than one Role at a time
98aae381 165 - 'extends' makes metaclass adjustments as
166 needed to ensure metaclass compatability
167
72c4f6d1 168 * Moose::Role
169 - refactored the keyword exports
170 - 'with' now checks Role validaity and
171 accepts more than one Role at a time
172
98aae381 173 * Moose::Util::TypeConstraints
174 - added the 'enum' keyword for simple
175 string enumerations which can be used as
176 type constraints
db1ab48d 177 - see example of usage in t/202_example.t
98aae381 178
179 * Moose::Object
180 - more careful checking of params to new()
181
72c4f6d1 182 * Moose::Meta::Role
183 - much work done on the role composition
184 - many new tests for conflict detection
185 and composition edge cases
186 - not enough documentation, I suggest
187 looking at the tests
188
98aae381 189 * Moose::Meta::Instance
190 - added new Instance metaclass to support
191 the new Class::MOP instance protocol
192
193 * Moose::Meta::Class
194 - some small changes to support the new
195 instance protocol
72c4f6d1 196 - some small additions to support Roles
98aae381 197
198 * Moose::Meta::Attribute
199 - some improvements to the accessor generation code
200 by nothingmuch
201 - some small changes to support the new
202 instance protocol
203 - (still somewhat) experimental delegation support
204 with the 'handles' option
205 - added several tests for this
db1ab48d 206 - no docs for this yet
98aae381 207
35c8b8f2 2080.05 Thurs. April 27, 2006
2d562421 209 * Moose
210 - keywords are now exported with Sub::Exporter
211 thanks to chansen for this commit
590868a3 212 - has keyword now takes a 'metaclass' option
213 to support custom attribute meta-classes
214 on a per-attribute basis
daea75c9 215 - added tests for this
216 - the 'has' keyword not accepts inherited slot
217 specifications (has '+foo'). This is still an
218 experimental feature and probably not finished
219 see t/038_attribute_inherited_slot_specs.t for
220 more details, or ask about it on #moose
fcb7afc2 221 - added tests for this
2d562421 222
223 * Moose::Role
224 - keywords are now exported with Sub::Exporter
225
5204cd52 226 * Moose::Utils::TypeConstraints
cce8198b 227 - reorganized the type constraint hierarchy, thanks
228 to nothingmuch and chansen for his help and advice
229 on this
230 - added some tests for this
7eaef7ad 231 - keywords are now exported with Sub::Exporter
35c8b8f2 232 thanks to chansen for this commit
5204cd52 233
d500266f 234 * Moose::Meta::Class
235 - due to changes in Class::MOP, we had to change
236 construct_instance (for the better)
237
238 * Moose::Meta::Attribute
239 - due to changes in Class::MOP, we had to add the
240 initialize_instance_slot method (it's a good thing)
c07af9d2 241
cce8198b 242 * Moose::Meta::TypeConstraint
c07af9d2 243 - added type constraint unions
244 - added tests for this
cce8198b 245 - added the is_subtype_of predicate method
246 - added tests for this
d500266f 247
02a0fb52 2480.04 Sun. April 16th, 2006
1331430a 249 * Moose::Role
250 - Roles can now consume other roles
251 - added tests for this
252 - Roles can specify required methods now with
253 the requires() keyword
254 - added tests for this
255
bdabd620 256 * Moose::Meta::Role
257 - ripped out much of it's guts ,.. much cleaner now
1331430a 258 - added required methods and correct handling of
fa1be058 259 them in apply() for both classes and roles
260 - added tests for this
1331430a 261 - no longer adds a does() method to consuming classes
262 it relys on the one in Moose::Object
263 - added roles attribute and some methods to support
264 roles consuming roles
8c9d74e7 265
266 * Moose::Meta::Attribute
267 - added support for triggers on attributes
268 - added tests for this
02a0fb52 269 - added support for does option on an attribute
270 - added tests for this
8c9d74e7 271
272 * Moose::Meta::Class
273 - added support for attribute triggers in the
274 object construction
275 - added tests for this
256903b6 276
277 * Moose
278 - Moose no longer creates a subtype for your class
279 if a subtype of the same name already exists, this
280 should DWIM in 99.9999% of all cases
281
282 * Moose::Util::TypeConstraints
283 - fixed bug where incorrect subtype conflicts were
284 being reported
8c9d74e7 285 - added test for this
286
287 * Moose::Object
288 - this class can now be extended with 'use base' if
289 you need it, it properly loads the metaclass class now
290 - added test for this
bdabd620 291
0677220d 2920.03_02 Wed. April 12, 2006
05d9eaf6 293 * Moose
294 - you must now explictly use Moose::Util::TypeConstraints
295 it no longer gets exported for you automatically
296
297 * Moose::Object
298 - new() now accepts hash-refs as well as key/value lists
0677220d 299 - added does() method to check for Roles
300 - added tests for this
05d9eaf6 301
0677220d 302 * Moose::Meta::Class
303 - added roles attribute along with the add_role() and
304 does_role() methods
305 - added tests for this
306
307 * Moose::Meta::Role
308 - now adds a does() method to consuming classes
309 which tests the class's hierarchy for roles
310 - added tests for this
311
3120.03_01 Mon. April 10, 2006
e9ec68d6 313 * Moose::Cookbook
76d37e5a 314 - added new Role recipe (no content yet, only code)
e9ec68d6 315
316 * Moose
317 - added 'with' keyword for Role support
318 - added test and docs for this
319 - fixed subtype quoting bug
320 - added test for this
321
322 * Moose::Role
323 - Roles for Moose
324 - added test and docs
76d37e5a 325
326 * Moose::Util::TypeConstraints
327 - added the message keyword to add custom
328 error messages to type constraints
e9ec68d6 329
330 * Moose::Meta::Role
331 - the meta role to support Moose::Role
332 - added tests and docs
333
334 * Moose::Meta::Class
335 - moved a number of things from Moose.pm
336 to here, they should have been here
337 in the first place
338
339 * Moose::Meta::Attribute
340 - moved the attribute option macros here
341 instead of putting them in Moose.pm
e185c027 342
76d37e5a 343 * Moose::Meta::TypeConstraint
344 - added the message attributes and the
345 validate method
346 - added tests and docs for this
347
0ac928d2 3480.03 Thurs. March 30, 2006
e9bb8a31 349 * Moose::Cookbook
350 - added the Moose::Cookbook with 5 recipes,
351 describing all the stuff Moose can do.
352
d7f17ebb 353 * Moose
354 - fixed an issue with &extends super class loading
355 it now captures errors and deals with inline
356 packages correctly (bug found by mst, solution
357 stolen from alias)
159da176 358 - added super/override & inner/augment features
359 - added tests and docs for these
d7f17ebb 360
361 * Moose::Object
362 - BUILDALL now takes a reference of the %params
363 that are passed to &new, and passes that to
364 each BUILD as well.
471c4f09 365
366 * Moose::Util::TypeConstraints
367 - Type constraints now survive runtime reloading
368 - added test for this
d7f17ebb 369
8339fae2 370 * Moose::Meta::Class
371 - fixed the way attribute defaults are handled
372 during instance construction (bug found by chansen)
373
d7f17ebb 374 * Moose::Meta::Attribute
375 - read-only attributes now actually enforce their
9deed647 376 read-only-ness (this corrected in Class::MOP as
377 well)
d7f17ebb 378
076c81ed 3790.02 Tues. March 21, 2006
fc5609d2 380 * Moose
b841b2a3 381 - many more tests, fixing some bugs and
382 edge cases
b841b2a3 383 - &extends now loads the base module with
384 UNIVERSAL::require
385 - added UNIVERSAL::require to the
386 dependencies list
6ba6d68c 387 ** API CHANGES **
b841b2a3 388 - each new Moose class will also create
389 and register a subtype of Object which
390 correspond to the new Moose class.
b841b2a3 391 - the 'isa' option in &has now only
392 accepts strings, and will DWIM in
393 almost all cases
394
395 * Moose::Util::TypeConstraints
396 - added type coercion features
397 - added tests for this
398 - added support for this in attributes
399 and instance construction
6ba6d68c 400 ** API CHANGES **
b841b2a3 401 - type construction no longer creates a
402 function, it registers the type instead.
403 - added several functions to get the
404 registered types
6ba6d68c 405
406 * Moose::Object
407 - BUILDALL and DEMOLISHALL were broken
408 because of a mis-named hash key, Whoops :)
b841b2a3 409
410 * Moose::Meta::Attribute
411 - adding support for coercion in the
412 autogenerated accessors
413
414 * Moose::Meta::Class
415 - adding support for coercion in the
6ba6d68c 416 instance construction
417
418 * Moose::Meta::TypeConstraint
419 * Moose::Meta::TypeCoercion
420 - type constraints and coercions are now
421 full fledges meta-objects
fc5609d2 422
e522431d 4230.01 Wed. March 15, 2006
424 - Moooooooooooooooooose!!!