use correct metaclass when applying roles to instances
[gitmo/Moose.git] / Changes
CommitLineData
e522431d 1Revision history for Perl extension Moose
2
3a0c064a 30.44 Sat. May 10, 2008
c0b37457 4 * Moose
3a0c064a 5 - made make_immutable warning cluck to
ca0e380d 6 show where the error is (thanks mst)
3a0c064a 7
8 * Moose::Object
9 - BUILDALL and DEMOLISHALL now call
10 ->body when looping through the
11 methods, to avoid the overloaded
12 method call.
ca0e380d 13 - fixed issue where DEMOLISHALL was
14 eating the $@ values, and so not
15 working correctly, it still kind of
16 eats them, but so does vanilla perl
17 - added tests for this
3a0c064a 18
ceb8945d 19 * Moose::Cookbook::Recipe7
3a0c064a 20 - added new recipe for immutable
21 functionality (thanks Dave Rolsky)
22
ceb8945d 23 * Moose::Cookbook::Recipe9
3a0c064a 24 - added new recipe for builder and
25 lazy_build (thanks Dave Rolsky)
26
37332f31 27 * Moose::Cookbook::Recipe11
3a0c064a 28 - added new recipe for method aliasing
29 and exclusion with Roles (thanks Dave Rolsky)
30
31 * t/
ca0e380d 32 - fixed Win32 test failure (thanks spicyjack)
ceb8945d 33
1a28289d 34 ~ removed Build.PL and Module::Build compat
35 since Module::Install has done that.
36
27cabcda 370.43 Wed. April, 30, 2008
cbd141ca 38 * NOTE TO SELF:
39 drink more coffee before
40 doing release engineering
41
42 - whoops, forgot to do the smolder tests,
43 and we broke some of the custom meta-attr
44 modules. This fixes that.
45
c93e8e7d 460.42 Mon. April 28, 2008
47 - some bad tests slipped by, nothing else
48 changed in this release (cpantesters++)
49
50 - upped the Class::MOP dependency to 0.55
51 since we have tests which need the C3
52 support
53
a5e883ae 540.41 Mon. April 28, 2008
004222dc 55 ~~ numerous documentation updates ~~
547dda77 56
57 - Changed all usage of die to Carp::croak for better
58 error reporting (initial patch by Tod Hagan)
004222dc 59
c2922d69 60 ** IMPORTANT NOTE **
61 - the make_immutable keyword is now deprecated, don't
62 use it in any new code and please fix your old code
63 as well. There will be 2 releases, and then it will
64 be removed.
65
6c36eeaa 66 * Moose
67 Moose::Role
68 Moose::Meta::Class
69 - refactored the way inner and super work to avoid
70 any method/@ISA cache penalty (nothingmuch)
71
4078709c 72 * Moose::Meta::Class
73 - fixing &new_object to make sure trigger gets the
74 coerced value (spotted by Charles Alderman on the
75 mailing list)
76 - added test for this
77
51c107ef 78 * Moose::Meta::Method::Constructor
79 - immutable classes which had non-lazy attributes were calling
80 the default generating sub twice in the constructor. (bug
81 found by Jesse Luehrs, fixed by Dave Rolsky)
82 - added tests for this (Dave Rolsky)
ae8d63f2 83 - fix typo in initialize_body method (nothingmuch)
84
85 * Moose::Meta::Method::Destructor
86 - fix typo in initialize_body method (nothingmuch)
51c107ef 87
6c36eeaa 88 * Moose::Meta::Method::Overriden
89 Moose::Meta::Method::Augmented
90 - moved the logic for these into their own
91 classes (nothingmuch)
92
5e98d2b6 93 * Moose::Meta::Attribute
aed87761 94 - inherited attributes may now be extended without
2ea379cb 95 restriction on the type ('isa', 'does') (Sartak)
cf12a691 96 - added tests for this (Sartak)
547dda77 97 - when an attribute property is malformed (such as lazy without
98 a default), give the name of the attribute in the error
99 message (Sartak)
88f23977 100 - added the &applied_traits and &has_applied_traits methods
101 to allow introspection of traits
102 - added tests for this
37905a64 103 - moved 'trait' and 'metaclass' argument handling to here from
104 Moose::Meta::Class
105 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
106 '+foo' syntax) (nothingmuch)
107 - added tests for this (t0m)
7c60f730 108
109 * Moose::Object
110 - localize $@ inside DEMOLISHALL to avoid it
111 eating $@ (found by Ernesto)
112 - added test for this (thanks to Ernesto)
cf12a691 113
ae8d63f2 114 * Moose::Util::TypeConstraints
115 - &find_type_constraint now DWIMs when given an
6c36eeaa 116 type constraint object or name (nothingmuch)
37905a64 117 - &find_or_create_type_constraint superseded with a number of more
118 specific functions:
119 - find_or_create_{isa,does}_type_constraint
120 - find_or_parse_type_constraint
ae8d63f2 121
122 * Moose::Meta::TypeConstraint
4078709c 123 Moose::Meta::TypeConstraint::Class
37905a64 124 Moose::Meta::TypeConstraint::Role
4078709c 125 Moose::Meta::TypeConstraint::Enum
126 Moose::Meta::TypeConstraint::Union
127 Moose::Meta::TypeConstraint::Parameterized
128 - added the &equals method for comparing two type
129 constraints (nothingmuch)
130 - added tests for this (nothingmuch)
131
132 * Moose::Meta::TypeConstraint
ae8d63f2 133 - add the &parents method, which is just an alias to &parent.
37905a64 134 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
ae8d63f2 135
136 * Moose::Meta::TypeConstraint::Class
ae8d63f2 137 - added the class attribute for introspection purposes
138 (nothingmuch)
139 - added tests for this
4078709c 140
141 * Moose::Meta::TypeConstraint::Enum
6c36eeaa 142 Moose::Meta::TypeConstraint::Role
37905a64 143 - broke these out into their own classes (nothingmuch)
ae8d63f2 144
145 * Moose::Cookbook::Recipe*
146 - fixed references to test file locations in the POD
147 and updated up some text for new Moose features
37905a64 148 (Sartak)
149
150 * Moose::Util
151 - Added &resolve_metaclass_alias, a helper function for finding an actual
152 class for a short name (e.g. in the traits list)
ae8d63f2 153
52338af5 1540.40 Fri. March 14, 2008
6e2840b7 155 - I hate Pod::Coverage
156
e0328ed4 1570.39 Fri. March 14, 2008
8d62bf6d 158 * Moose
159 - documenting the use of '+name' with attributes
160 that come from recently composed roles. It makes
161 sense, people are using it, and so why not just
162 officially support it.
9c10b5ad 163 - fixing the 'extends' keyword so that it will not
164 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
94075501 165
1321f087 166 * oose
167 - added the perl -Moose=+Class::Name feature to allow
168 monkeypatching of classes in one liners
169
9c10b5ad 170 * Moose::Util
171 - fixing the 'apply_all_roles' keyword so that it will not
172 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
8d62bf6d 173
48045612 174 * Moose::Meta::Class
175 - added ->create method which now supports roles (thanks to jrockway)
176 - added tests for this
6d5cbd2b 177 - added ->create_anon_class which now supports roles and caching of
178 the results (thanks to jrockway)
179 - added tests for this
81c3738f 180 - made ->does_role a little more forgiving when it is
181 checking a Class::MOP era metaclasses.
48045612 182
94075501 183 * Moose::Meta::Role::Application::ToInstance
184 - it is now possible to pass extra params to be used when
185 a role is applied to an the instance (rebless_params)
186 - added tests for this
187
9f4334a1 188 * Moose::Util::TypeConstraints
4ab662d6 189 - class_type now accepts an optional second argument for a
190 custom message. POD anotated accordingly (groditi)
191 - added tests for this
9f4334a1 192 - it is now possible to make anon-enums by passing 'enum' an
193 ARRAY ref instead of the $name => @values. Everything else
194 works as before.
195 - added tests for this
196
8d62bf6d 197 * t/
198 - making test for using '+name' on attributes consumed
199 from a role, it works and makes sense too.
200
80d955e4 201 * Moose::Meta::Attribute
202 - fix handles so that it doesn't return nothing
203 when the method cannot be found, not sure why
f4f3e701 204 it ever did this originally, this means we now
205 have slightly better support for AUTOLOADed
206 objects
207 - added more delegation tests
587e457d 208 - adding ->does method to this so as to better
209 support traits and their introspection.
210 - added tests for this
1a386a6c 211
212 * Moose::Object
213 - localizing the Data::Dumper configurations so
214 that it does not pollute others (RT #33509)
9b1aa0c3 215 - made ->does a little more forgiving when it is
216 passed Class::MOP era metaclasses.
80d955e4 217
2180.38 Fri. Feb. 15, 2008
c3b81505 219 * Moose::Meta::Attribute
220 - fixed initializer to correctly do
221 type checking and coercion in the
222 callback
223 - added tests for this
224
1a740d8a 225 * t/
226 - fixed some finicky tests (thanks to konobi)
227
80d955e4 2280.37 Thurs. Feb. 14, 2008
688fcdda 229 * Moose
230 - fixed some details in Moose::init_meta
231 and its superclass handling (thanks thepler)
232 - added tests for this (thanks thepler)
a28fe77b 233 - 'has' now dies if you don't pass in name
234 value pairs
2a5e59d0 235 - added the 'make_immutable' keyword as a shortcut
9df136d0 236 to make_immutable
688fcdda 237
238 * Moose::Meta::Class
239 Moose::Meta::Method::Constructor
240 Moose::Meta::Attribute
649b9340 241 - making (init_arg => undef) work here too
242 (thanks to nothingmuch)
be771c43 243
244 * Moose::Meta::Attribute
245 Moose::Meta::Method::Constructor
246 Moose::Meta::Method::Accessor
5fec9b97 247 - make lazy attributes respect attr initializers (rjbs)
be771c43 248 - added tests for this
688fcdda 249
250 * Moose::Util::TypeConstraints
251 Moose::Util::TypeConstraints::OptimizedConstraints
c14746bc 252 Moose::Meta::TypeConstraints
688fcdda 253 Moose::Meta::Attribute
254 Moose::Meta::Method::Constructor
255 Moose::Meta::Method::Accessor
649b9340 256 - making type errors use the
257 assigned message (thanks to Sartak)
258 - added tests for this
259
260 * Moose::Meta::Method::Destructor
261 - making sure DESTROY gets inlined properly
262 with successive DEMOLISH calls (thanks to manito)
688fcdda 263
ab76842e 264 * Moose::Meta::Attribute
265 Moose::Meta::Method::Accessor
266 - fixed handling of undef with type constraints
267 (thanks to Ernesto)
268 - added tests for this
c14746bc 269
270 * Moose::Util
271 - added &get_all_init_args and &get_all_attribute_values
272 (thanks to Sartak and nothingmuch)
ab76842e 273
e472c9a5 2740.36 Sat. Jan. 26, 2008
238b424d 275 * Moose::Role
276 Moose::Meta::Attribute
277 - role type tests now support when roles are
278 applied to non-Moose classes (found by ash)
279 - added tests for this (thanks to ash)
e472c9a5 280 - couple extra tests to boost code coverage
238b424d 281
282 * Moose::Meta::Method::Constructor
283 - improved fix for handling Class::MOP attributes
284 - added test for this
285
286 * Moose::Meta::Class
287 - handled the add_attribute($attribute_meta_object)
288 case correctly
289 - added test for this
290
3285fae9 2910.35 Tues. Jan. 22, 2008
45fd4af3 292 * Moose::Meta::Method::Constructor
293 - fix to make sure even Class::MOP attributes
472b7401 294 are handled correctly (Thanks to Dave Rolsky)
c3b35392 295 - added test for this (also Dave Rolsky)
4498537c 296
297 * Moose::Meta::Class
298 - improved error message on _apply_all_roles,
299 you should now use Moose::Util::apply_all_roles
300 and you shouldnt have been using a _ prefixed
301 method in the first place ;)
45fd4af3 302
fe05ce9c 3030.34 Mon. Jan. 21, 2008
778db3ac 304 ~~~ more misc. doc. fixes ~~~
305 ~~ updated copyright dates ~~
9b28d20b 306
307 Moose is now a postmodern object system :)
8bdc7f13 308 - (see the POD for details)
ccf49e80 309
310 * <<Role System Refactoring>>
311 - this release contains a major reworking and
312 cleanup of the role system
9b28d20b 313 - 100% backwards compat.
314 - Role application now restructured into seperate
315 classes based on type of applicants
316 - Role summation (combining of more than one role)
ccf49e80 317 is much cleaner and anon-classes are no longer
9b28d20b 318 used in this process
ccf49e80 319 - new Composite role metaclass
9b28d20b 320 - runtime application of roles to instances
321 is now more efficient and re-uses generated
322 classes when applicable
ccf49e80 323
9b28d20b 324 * <<New Role composition features>>
ccf49e80 325 - methods can now be excluded from a given role
9b28d20b 326 during composition
ccf49e80 327 - methods can now be aliased to another name (and
328 still retain the original as well)
4734114b 329
330 * Moose::Util::TypeConstraints::OptimizedConstraints
331 - added this module (see above)
332
d7d8a8c7 333 * Moose::Meta::Class
334 - fixed the &_process_attribute method to be called
4734114b 335 by &add_attribute, so that the API is now correct
336
e7c06c1e 337 * Moose::Meta::Method::Accessor
4734114b 338 - fixed bug when passing a list of values to
e7c06c1e 339 an accessor would get (incorrectly) ignored.
340 Thanks to Sartak for finding this ;)
341 - added tests for this (Sartak again)
32dd4a95 342
a4e516f6 343 * Moose::Meta::Method::Accessor
344 Moose::Meta::Method::Constructor
28412c0b 345 Moose::Meta::Attribute
ccf49e80 346 Moose::Meta::TypeConstraint
347 Moose::Meta::TypeCoercion
348 - lots of cleanup of such things as:
28412c0b 349 - generated methods
350 - type constraint handling
ccf49e80 351 - error handling/messages
352 (thanks to nothingmuch)
a4e516f6 353
4734114b 354 * Moose::Meta::TypeConstraint::Parameterizable
355 - added this module to support the refactor
356 in Moose::Meta::TypeConstraint::Parameterized
357
358 * Moose::Meta::TypeConstraint::Parameterized
359 - refactored how these types are handled so they
360 are more generic and not confined to ArrayRef
361 and HashRef only
a4e516f6 362
2de7e794 363 * t/
364 - shortened some file names for better VMS support (RT #32381)
365
25374f01 3660.33 Fri. Dec. 14, 2007
32dd4a95 367 !! Moose now loads 2 x faster !!
368 !! with new Class::MOP 0.49 !!
25374f01 369
f7865ec8 370 ++ new oose.pm module to make command line
25374f01 371 Moose-ness easier (see POD docs for more)
4734114b 372
25374f01 373 * Moose::Meta::Class
374 * Moose::Meta::Role
4734114b 375 - several tweaks to take advantage of the
25374f01 376 new method map caching in Class::MOP
377
39aba5c9 378 * Moose::Meta::TypeConstraint::Parameterized
379 - allow subtypes of ArrayRef and HashRef to
acb8a5db 380 be used as a container (sartak)
4734114b 381 - added tests for this
acb8a5db 382 - basic support for coercion to ArrayRef and
383 HashRef for containers (sartak)
4734114b 384 - added tests for this
385
25374f01 386 * Moose::Meta::TypeCoercion
387 - coercions will now create subtypes as needed
388 so you can now add coercions to parameterized
389 types without having to explictly define them
390 - added tests for this
391
ac211120 392 * Moose::Meta::Method::Accessor
393 - allow subclasses to decide whether we need
394 to copy the value into a new variable (sartak)
39aba5c9 395
dc26a424 3960.32 Tues. Dec. 4, 2007
8de73ff1 397 * Moose::Util::TypeConstraints
398 - fixing how subtype aliases of unions work
399 they should inherit the parent's coercion
400 - added tests for this
4734114b 401 - you can now define multiple coercions on
41e007e4 402 a single type at different times instead of
403 having to do it all in one place
404 - added tests for this
4734114b 405
8de73ff1 406 * Moose::Meta::TypeConstraint
407 - there is now a default constraint of sub { 1 }
408 instead of Moose::Util::TypeConstraints setting
409 this for us
410
4734114b 411 * Moose::Meta::TypeCoercion
412 * Moose::Meta::TypeCoercion::Union
413 - added the &has_coercion_for_type and
414 &add_type_coercions methods to support the
41e007e4 415 new features above (although you cannot add
416 more type coercions for Union types)
417
ffcb48b4 4180.31 Mon. Nov. 26, 2007
f3c4e20e 419 * Moose::Meta::Attribute
4734114b 420 - made the +attr syntax handle extending types with
f3c4e20e 421 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
422 now works if the original foo is an ArrayRef.
423 - added tests for this.
424 - delegation now works even if the attribute does not
425 have a reader method using the get_read_method_ref
4734114b 426 method from Class::MOP::Attribute.
f3c4e20e 427 - added tests for this
428 - added docs for this
4734114b 429
f3c4e20e 430 * Moose::Util::TypeConstraints
4734114b 431 - passing no "additional attribute info" to
432 &find_or_create_type_constraint will no longer
433 attempt to create an __ANON__ type for you,
f3c4e20e 434 instead it will just return undef.
435 - added docs for this
436
1edfdf1c 4370.30 Fri. Nov. 23, 2007
ca168e89 438 * Moose::Meta::Method::Constructor
439 -builder related bug in inlined constructor. (groditi)
440
3822d5ee 441 * Moose::Meta::Method::Accessor
442 - genereate unnecessary calls to predicates and refactor
443 code generation for runtime speed (groditi)
444
5d776bdf 445 * Moose::Util::TypeConstraints
0e0709ea 446 - fix ClassName constraint to introspect symbol table (mst)
a0f8153d 447 - added more tests for this (mst)
448 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
449 with work correctly.
450 - added tests for this
5d776bdf 451
1edfdf1c 452 * Moose::Cookbook
453 - adding the link to Recipie 11 (written by Sartak)
454 - adding test for SYNOPSIS code
455
4734114b 456 * t/
ca168e89 457 - New tests for builder bug. Upon instantiation, if an
458 attribute had a builder, no value and was not lazy the
459 builder default was not getting run, oops. (groditi)
460
b97b9655 4610.29 Tues. Nov. 13, 2007
0b26305c 462 * Moose::Meta::Attribute
5d776bdf 463 - Fix error message on missing builder method (groditi)
0b26305c 464
465 * Moose::Meta::Method::Accessor
5d776bdf 466 - Fix error message on missing builder method (groditi)
0b26305c 467
4734114b 468 * t/
5d776bdf 469 - Add test to check for the correct error message when
470 builder method is missing (groditi)
0b26305c 471
98c4c382 4720.28 Tues. Nov. 13, 2007
4734114b 473 - 0.27 packaged incorrectly (groditi)
98c4c382 474
e134cd19 4750.27 Tues. Nov. 13, 2007
26fbace8 476 * Moose::Meta::Attribute
477 - Added support for the new builder option (groditi)
6af1a927 478 - Added support for lazy_build option (groditi)
1ed0b94f 479 - Changed slot initialization for predicate changes (groditi)
26fbace8 480
481 * Moose::Meta::Method::Accessor
6af1a927 482 - Added support for lazy_build option (groditi)
4734114b 483 - Fix inline methods to work with corrected predicate
28669f89 484 behavior (groditi)
26fbace8 485
7a5b07b3 486 * Moose::Meta::Method::Constructor
487 - Added support for lazy_build option (groditi)
488
26fbace8 489 * t/
28669f89 490 - tests for builder and lazy_build (groditi)
26fbace8 491
4734114b 492 * fixing some misc. bits in the docs that
28669f89 493 got mentioned on CPAN Forum & perlmonks
4734114b 494
e7f8d0c2 495 * Moose::Meta::Role
4734114b 496 - fixed how required methods are handled
e7f8d0c2 497 when they encounter overriden or modified
498 methods from a class (thanks to confound).
499 - added tests for this
5af6a16d 500
3796382a 501 * Moose::Util::TypeConstraint
4734114b 502 - fixed the type notation parser so that
503 the | always creates a union and so is
504 no longer a valid type char (thanks to
505 konobi, mugwump and #moose for working
3796382a 506 this one out.)
507 - added more tests for this
508
77a18c28 5090.26 Thurs. Sept. 27, 2007
510 == New Features ==
4734114b 511
77a18c28 512 * Parameterized Types
4734114b 513 We now support parameterized collection types, such as:
77a18c28 514 ArrayRef[Int] # array or integers
515 HashRef[Object] # a hash with object values
516 They can also be nested:
517 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
518 And work with the type unions as well:
519 ArrayRef[Int | Str] # array of integers of strings
4734114b 520
77a18c28 521 * Better Framework Extendability
4734114b 522 Moose.pm is now "extendable" such that it is now much
523 easier to extend the framework and add your own keywords
77a18c28 524 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
525 section of the Moose.pm docs.
4734114b 526
77a18c28 527 * Moose Snacks!
4734114b 528 In an effort to begin documenting some of the various
529 details of Moose as well as some common idioms, we have
530 created Moose::Cookbook::Snacks as a place to find
77a18c28 531 small (easily digestable) nuggets of Moose code.
4734114b 532
77a18c28 533 ====
fb697a87 534 ~ Several doc updates/cleanup thanks to castaway ~
4734114b 535
536 - converted build system to use Module::Install instead of
e46f5cc2 537 Module::Build (thanks to jrockway)
fb697a87 538
d67145ed 539 * Moose
4734114b 540 - added all the meta classes to the immutable list and
d67145ed 541 set it to inline the accessors
4734114b 542 - fix import to allow Sub::Exporter like { into => }
e59a5c29 543 and { into_level => } (perigrin)
4734114b 544 - exposed and documented init_meta() to allow better
e59a5c29 545 embedding and extending of Moose (perigrin)
4734114b 546
e59a5c29 547 * t/
548 - complete re-organization of the test suite
4734114b 549 - added some new tests as well
77a18c28 550 - finally re-enabled the Moose::POOP test since
551 the new version of DBM::Deep now works again
552 (thanks rob)
b468a3d3 553
554 * Moose::Meta::Class
4734114b 555 - fixed very odd and very nasty recursion bug with
b468a3d3 556 inner/augment (mst)
557 - added tests for this (eilara)
d67145ed 558
3726f905 559 * Moose::Meta::Attribute
560 Moose::Meta::Method::Constructor
561 Moose::Meta::Method::Accessor
4734114b 562 - fixed issue with overload::Overloaded getting called
f1917f58 563 on non-blessed items. (RT #29269)
3726f905 564 - added tests for this
4734114b 565
3ccdc84a 566 * Moose::Meta::Method::Accessor
4734114b 567 - fixed issue with generated accessor code making
3ccdc84a 568 assumptions about hash based classes (thanks to dexter)
4734114b 569
3726f905 570 * Moose::Coookbook::Snacks
4734114b 571 - these are bits of documentation, not quite as big as
572 Recipes but which have no clear place in the module docs.
3726f905 573 So they are Snacks! (horray for castaway++)
574
07cde929 575 * Moose::Cookbook::Recipe4
576 - updated it to use the new ArrayRef[MyType] construct
577 - updated the accompanying test as well
578
3726f905 579 +++ Major Refactor of the Type Constraint system +++
580 +++ with new features added as well +++
581
22aed3c0 582 * Moose::Util::TypeConstraint
4734114b 583 - no longer uses package variable to keep track of
22aed3c0 584 the type constraints, now uses the an instance of
585 Moose::Meta::TypeConstraint::Registry to do it
f1917f58 586 - added more sophisticated type notation parsing
587 (thanks to mugwump)
588 - added tests for this
22aed3c0 589
d67145ed 590 * Moose::Meta::TypeConstraint
591 - some minor adjustments to make subclassing easier
4734114b 592 - added the package_defined_in attribute so that we
22aed3c0 593 can track where the type constraints are created
4734114b 594
d67145ed 595 * Moose::Meta::TypeConstraint::Union
4734114b 596 - this is now been refactored to be a subclass of
3726f905 597 Moose::Meta::TypeConstraint
4734114b 598
3726f905 599 * Moose::Meta::TypeCoercion::Union
600 - this has been added to service the newly refactored
4734114b 601 Moose::Meta::TypeConstraint::Union and is itself
3726f905 602 a subclass of Moose::Meta::TypeCoercion
4734114b 603
0fbd4b0a 604 * Moose::Meta::TypeConstraint::Parameterized
d67145ed 605 - added this module (taken from MooseX::AttributeHelpers)
606 to help construct nested collection types
607 - added tests for this
4734114b 608
22aed3c0 609 * Moose::Meta::TypeConstraint::Registry
610 - added this class to keep track of type constraints
d67145ed 611
887169d7 6120.25 Mon. Aug. 13, 2007
8eca434b 613 * Moose
4734114b 614 - Documentation update to reference Moose::Util::TypeConstraints
615 under 'isa' in 'has' for how to define a new type
8eca434b 616 (thanks to shlomif).
617
ab859145 618 * Moose::Meta::Attribute
4734114b 619 - required attributes now will no longer accept undef
ab859145 620 from the constructor, even if there is a default and lazy
621 - added tests for this
4734114b 622 - default subroutines must return a value which passes the
7a5ebc40 623 type constraint
624 - added tests for this
4734114b 625
a909a4df 626 * Moose::Meta::Attribute
627 * Moose::Meta::Method::Constructor
4734114b 628 * Moose::Meta::Method::Accessor
a909a4df 629 - type-constraint tests now handle overloaded objects correctly
630 in the error message
4734114b 631 - added tests for this (thanks to EvanCarroll)
ab859145 632
8eca434b 633 * Moose::Meta::TypeConstraint::Union
4734114b 634 - added (has_)hand_optimized_constraint to this class so that
8eca434b 635 it behaves as the regular Moose::Meta::TypeConstraint does.
636
5868294f 637 * Moose::Meta::Role
887169d7 638 - large refactoring of this code
4734114b 639 - added several more tests
640 - tests for subtle conflict resolition issues
7125b244 641 added, but not currently running
642 (thanks to kolibre)
643
4734114b 644 * Moose::Cookbook::Recipe7
645 - added new recipe for augment/inner functionality
887169d7 646 (still in progress)
7125b244 647 - added test for this
5868294f 648
24a8fe99 649 * Moose::Spec::Role
7125b244 650 - a formal definition of roles (still in progress)
24a8fe99 651
9a641848 652 * Moose::Util
887169d7 653 - utilities for easier working with Moose classes
7125b244 654 - added tests for these
9a641848 655
656 * Test::Moose
887169d7 657 - This contains Moose specific test functions
7125b244 658 - added tests for these
9a641848 659
6b4c1bdd 6600.24 Tues. July 3, 2007
661 ~ Some doc updates/cleanup ~
c84f324f 662
663 * Moose::Meta::Attribute
4734114b 664 - added support for roles to be given as parameters
c84f324f 665 to the 'handles' option.
666 - added tests and docs for this
4734114b 667 - the has '+foo' attribute form now accepts changes to
83cc9094 668 the lazy option, and the addition of a handles option
669 (but not changing the handles option)
670 - added tests and docs for this
c84f324f 671
1db8ecc7 672 * Moose::Meta::Role
673 - required methods are now fetched using find_method_by_name
674 so that required methods can come from superclasses
675 - adjusted tests for this
676
81941e9b 6770.23 Mon. June 18, 2007
73b84d2e 678 * Moose::Meta::Method::Constructor
679 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
ac2dc464 680 * Moose::Meta::Class
681 - Modify make_immutable to work with the new Class::MOP immutable
682 mechanism + POD + very basic test (groditi)
cbe25729 683 * Moose::Meta::Attribute
4734114b 684 - Fix handles to use goto() so that caller() comes out properly on
cbe25729 685 the other side (perigrin)
ac2dc464 686
db53853c 6870.22 Thurs. May 31, 2007
3969267d 688 * Moose::Util::TypeConstraints
4734114b 689 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
db53853c 690 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
691 prototypes for functions
4734114b 692 - added the ClassName type constraint, this checks for strings
693 which will respond true to ->isa(UNIVERSAL).
9af1d28b 694 - added tests and docs for this
4734114b 695 - subtyping just in name now works correctly by making the
86629f93 696 default for where be { 1 }
4734114b 697 - added test for this
3969267d 698
d7611a4a 699 * Moose::Meta::Method::Accessor
4734114b 700 - coerce and lazy now work together correctly, thanks to
d7611a4a 701 merlyn for finding this bug
702 - tests added for this
df492bba 703 - fix reader presedence bug in Moose::Meta::Attribute + tests
d7611a4a 704
86629f93 705 * Moose::Object
706 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
4734114b 707 a HASH-ref and missed. This produces better error messages then
86629f93 708 having it die cause undef is not a HASH.
709 - added tests for this
710
74a0a945 7110.21 Thursday, May 2nd, 2007
52c7c330 712 * Moose
713 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
714 - modified unimport to remove super and inner along with the rest
715 - altered unimport tests to handle this
716
717 * Moose::Role
718 - altered super export to populate SUPER_SLOT
719
720 * Moose::Meta::Class
721 - altered augment and override modifier application to use *_SLOT
722 - modified tests for these to unimport one test class each to test
723
492d4d76 724 * Moose::Meta::Role
725 - fixed issue where custom attribute metaclasses
726 where not handled correctly in roles
727 - added tests for this
4734114b 728
5cb193ed 729 * Moose::Meta::Class
4734114b 730 - fixed issue where extending metaclasses with
5cb193ed 731 roles would blow up. Thanks to Aankhen`` for
732 finding this insidious error, and it's solution.
4734114b 733
734 ~~ lots of spelling and grammer fixes in the docs,
0305961b 735 many many thanks to rlb3 and Aankhen for these :)
492d4d76 736
e518dfb4 7370.20 Friday, April 6th, 2007
a60285b3 738 >> I messed up the SKIP logic in one test
739 so this release is just to fix that.
740
93c435b3 741 * Moose
742 - 'has' now also accepts an ARRAY ref
743 to create multiple attrs (see docs)
744 (thanks to konobi for this)
4734114b 745 - added tests and docs
93c435b3 746
cd7eeaf5 7470.19 Thurs. April 5th, 2007
748 ~~ More documentation updates ~~
749
c899258b 750 * Moose::Util::TypeConstraints
c1935ade 751 - 'type' now supports messages as well
ddbdc0cb 752 thanks to phaylon for finding this
c899258b 753 - added tests for this
4734114b 754 - added &list_all_type_constraints and
c1935ade 755 &list_all_builtin_type_constraints
943596a6 756 functions to facilitate introspection.
4734114b 757
d022f632 758 * Moose::Meta::Attribute
4734114b 759 - fixed regexp 'handles' declarations
d022f632 760 to build the list of delegated methods
4734114b 761 correctly (and not override important
762 things like &new) thanks to ashleyb
ddbdc0cb 763 for finding this
764 - added tests and docs for this
c1935ade 765 - added the 'documentation' attributes
4734114b 766 so that you can actually document your
767 attributes and inspect them through the
ddbdc0cb 768 meta-object.
d022f632 769 - added tests and docs for this
770
c1935ade 771 * Moose::Meta::Class
772 - when loading custom attribute metaclasses
4734114b 773 it will first look in for the class in the
774 Moose::Meta::Attribute::Custom::$name, and
c1935ade 775 then default to just loading $name.
776 - added tests and docs for this
777
900466d6 778 * Moose::Meta::TypeConstraint
779 - type constraints now stringify to their names.
780 - added test for this
781
d022f632 782 * misc.
4734114b 783 - added tests to assure we work with Module::Refresh
784 - added stricter test skip logic in the Moose POOP
ddbdc0cb 785 test, ask Rob Kinyon why.
786 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
c899258b 787
af5199c6 7880.18 Sat. March 10, 2007
789 ~~ Many, many documentation updates ~~
ddbdc0cb 790
791 * misc.
4734114b 792 - We now use Class::MOP::load_class to
793 load all classes.
794 - added tests to show types and subtypes
ddbdc0cb 795 working with Declare::Constraints::Simple
796 and Test::Deep as constraint engines.
b77fdbed 797
587ae0d2 7980.18_001
d01f1dab 799 !! You must have Class::MOP 0.37_001 !!
800 !! for this developer release to work !!
801
734d1752 802 This release was primarily adding the immutable
4734114b 803 feature to Moose. An immutable class is one which
804 you promise not to alter. When you set the class
805 as immutable it will perform various bits of
734d1752 806 memoization and inline certain part of the code
4734114b 807 (constructors, destructors and accessors). This
734d1752 808 minimizes (and in some cases totally eliminates)
4734114b 809 one of Moose's biggest performance hits. This
734d1752 810 feature is not on by default, and is 100% optional.
4734114b 811 It has several configurable bits as well, so you
734d1752 812 can pick and choose to your specific needs.
4734114b 813
814 The changes involved in this were fairly wide and
815 highly specific, but 100% backwards compatible, so
816 I am not going to enumerate them here. If you are
817 truely interested in what was changed, please do
734d1752 818 a diff :)
587ae0d2 819
8200.17 Tues. Nov. 14, 2006
821 * Moose::Meta::Method::Accessor
4734114b 822 - bugfix for read-only accessors which
587ae0d2 823 are have a type constraint and lazy.
824 Thanks to chansen for finding it.
825
8260.16 Tues. Nov. 14, 2006
827 ++ NOTE ++
4734114b 828 There are some speed improvements in this release,
587ae0d2 829 but they are only the begining, so stay tuned.
4734114b 830
587ae0d2 831 * Moose::Object
4734114b 832 - BUILDALL and DEMOLISHALL no longer get
587ae0d2 833 called unless they actually need to be.
834 This gave us a signifigant speed boost
4734114b 835 for the cases when there is no BUILD or
587ae0d2 836 DEMOLISH method present.
4734114b 837
587ae0d2 838 * Moose::Util::TypeConstraints
839 * Moose::Meta::TypeConstraint
4734114b 840 - added an 'optimize_as' option to the
587ae0d2 841 type constraint, which allows for a
4734114b 842 hand optimized version of the type
587ae0d2 843 constraint to be used when possible.
844 - Any internally created type constraints
845 now provide an optimized version as well.
846
ecb59493 8470.15 Sun. Nov. 5, 2006
946289d1 848 ++ NOTE ++
4734114b 849 This version of Moose *must* have Class::MOP 0.36 in order
850 to work correctly. A number of small internal tweaks have
946289d1 851 been made in order to be compatible with that release.
571dd39f 852
853 * Moose::Util::TypeConstraints
4734114b 854 - added &unimport so that you can clean out
855 your class namespace of these exported
571dd39f 856 keywords
4734114b 857
37ee30c9 858 * Moose::Meta::Class
4734114b 859 - fixed minor issue which occasionally
860 comes up during global destruction
37ee30c9 861 (thanks omega)
4734114b 862 - moved Moose::Meta::Method::Overriden into
946289d1 863 its own file.
4734114b 864
865 * Moose::Meta::Role
866 - moved Moose::Meta::Role::Method into
946289d1 867 its own file.
4734114b 868
43123819 869 * Moose::Meta::Attribute
4734114b 870 - changed how we do type checks so that
871 we reduce the overall cost, but still
7623f774 872 retain correctness.
946289d1 873 *** API CHANGE ***
4734114b 874 - moved accessor generation methods to
875 Moose::Meta::Method::Accessor to
876 conform to the API changes from
946289d1 877 Class::MOP 0.36
4734114b 878
43123819 879 * Moose::Meta::TypeConstraint
880 - changed how constraints are compiled
881 so that we do less recursion and more
4734114b 882 iteration. This makes the type check
43123819 883 faster :)
946289d1 884 - moved Moose::Meta::TypeConstraint::Union
885 into its own file
4734114b 886
946289d1 887 * Moose::Meta::Method::Accessor
4734114b 888 - created this from methods formerly found in
946289d1 889 Moose::Meta::Attribute
4734114b 890
946289d1 891 * Moose::Meta::Role::Method
892 - moved this from Moose::Meta::Role
4734114b 893
946289d1 894 * Moose::Meta::Method::Overriden
895 - moved this from Moose::Meta::Class
4734114b 896
946289d1 897 * Moose::Meta::TypeConstraint::Union
898 - moved this from Moose::Meta::TypeConstraint
37ee30c9 899
3ec7b7a3 9000.14 Mon. Oct. 9, 2006
4fd69d6c 901
902 * Moose::Meta::Attribute
4734114b 903 - fixed lazy attributes which were not getting
4fd69d6c 904 checked with the type constraint (thanks ashley)
905 - added tests for this
4734114b 906 - removed the over-enthusiastic DWIMery of the
907 automatic ArrayRef and HashRef defaults, it
3ec7b7a3 908 broke predicates in an ugly way.
909 - removed tests for this
4fd69d6c 910
c0c41f76 9110.13 Sat. Sept. 30, 2006
093b12c2 912 ++ NOTE ++
4734114b 913 This version of Moose *must* have Class::MOP 0.35 in order
914 to work correctly. A number of small internal tweaks have
093b12c2 915 been made in order to be compatible with that release.
916
3c2bc5e2 917 * Moose
918 - Removed the use of UNIVERSAL::require to be a better
4734114b 919 symbol table citizen and remove a dependency
093b12c2 920 (thanks Adam Kennedy)
3c2bc5e2 921
2a0f3bd3 922 **~~ removed experimental & undocumented feature ~~**
4734114b 923 - commented out the 'method' and 'self' keywords, see the
2a0f3bd3 924 comments for more info.
925
e95c7c42 926 * Moose::Cookbook
4734114b 927 - added a FAQ and WTF files to document frequently
e95c7c42 928 asked questions and common problems
4734114b 929
3f7376b0 930 * Moose::Util::TypeConstraints
0a5bd159 931 - added GlobRef and FileHandle type constraint
3f7376b0 932 - added tests for this
4734114b 933
3f7376b0 934 * Moose::Meta::Attribute
935 - if your attribute 'isa' ArrayRef of HashRef, and you have
936 not explicitly set a default, then make the default DWIM.
4734114b 937 This will also work for subtypes of ArrayRef and HashRef
94b8bbb8 938 as well.
939 - you can now auto-deref subtypes of ArrayRef or HashRef too.
940 - new test added for this (thanks to ashley)
4734114b 941
b805c70c 942 * Moose::Meta::Role
943 - added basic support for runtime role composition
4734114b 944 but this is still *highly experimental*, so feedback
0a5bd159 945 is much appreciated :)
b805c70c 946 - added tests for this
e95c7c42 947
0a5bd159 948 * Moose::Meta::TypeConstraint
949 - the type constraint now handles the coercion process
4734114b 950 through delegation, this is to support the coercion
0a5bd159 951 of unions
4734114b 952
0a5bd159 953 * Moose::Meta::TypeConstraint::Union
4734114b 954 - it is now possible for coercions to be performed
0a5bd159 955 on a type union
956 - added tests for this (thanks to konobi)
957
e95c7c42 958 * Moose::Meta::TypeCoercion
4734114b 959 - properly capturing error when type constraint
e95c7c42 960 is not found
961
3c2bc5e2 962 * Build.PL
963 - Scalar::Util 1.18 is bad on Win32, so temporarily
964 only require version 1.17 for Win32 and cygwin.
4734114b 965 (thanks Adam Kennedy)
3c2bc5e2 966
40e89659 9670.12 Sat. Sept. 1, 2006
2bdd01cd 968 * Moose::Cookbook
969 - Recipe5 (subtypes & coercion) has been written
4734114b 970
2bdd01cd 971 * Moose
4734114b 972 - fixed "bad meta" error message to be more descriptive
973 - fixed &unimport to not remove the &inner and &super
3279ab4a 974 keywords because we need to localize them.
68efb014 975 - fixed number of spelling/grammer issues, thanks Theory :)
4734114b 976
0558683c 977 **~~ experimental & undocumented feature ~~**
4734114b 978 - added the method and self keywords, they are basically
68efb014 979 just sugar, and they may not stay around.
4734114b 980
f742dfef 981 * Moose::Object
4734114b 982 - added &dump method to easily Data::Dumper
68efb014 983 an object
4734114b 984
b26e162e 985 * Moose::Meta::TypeConstraint
986 - added the &is_a_type_of method to check both the current
987 and the subtype of a method (similar to &isa with classes)
f008ac1f 988
68efb014 989 * Moose::Meta::Role
990 - this is now a subclass of Class::MOP::Module, and no longer
4734114b 991 creates the _role_meta ugliness of before.
68efb014 992 - fixed tests to reflect this change
4734114b 993
8c835eba 9940.11 Wed. July 12, 2006
31f8ec72 995 * Moose
996 - added an &unimport method to remove all the keywords
4734114b 997 that Moose will import, simply add 'no Moose' to the
998 bottom of your class file.
999
31f8ec72 1000 * t/
4734114b 1001 - fixed some test failures caused by a forgotten test
31f8ec72 1002 dependency.
1003
864cd714 10040.10 Thurs. July 6, 2006
01a8e221 1005 * Moose
1006 - improved error message when loading modules so
1007 it is less confusing when you load a role.
4734114b 1008 - added &calculate_all_roles method to
2b14ac61 1009 Moose::Meta::Class and Moose::Meta::Role
4734114b 1010
2b14ac61 1011 NOTE:
1012 This module has been tested against Class::MOP 0.30
4734114b 1013 but it does not yet utilize the optimizations
2b14ac61 1014 it makes available. Stay tuned for that ;)
4734114b 1015
2b14ac61 10160.09_03 Fri. June 23, 2006
715ea0b7 1017 ++ DEVELOPER RELEASE ++
4276ccb4 1018 * Moose
1019 - 'use strict' and 'use warnings' are no longer
4734114b 1020 needed in Moose classes, Moose itself will
4276ccb4 1021 turn them on for you.
1022 - added tests for this
1341f10c 1023 - moved code from exported subs to private methods
1024 in Moose::Meta::Class
4734114b 1025
4276ccb4 1026 * Moose::Role
4734114b 1027 - as with Moose, strict and warnings are
4276ccb4 1028 automatically turned on for you.
4734114b 1029 - added tests for this
1030
e39d707f 1031 * Moose::Meta::Role
1032 - now handles an edge case for override errors
1033 - added tests for this
b7f2d25b 1034 - added some more edge case tests
1341f10c 1035
43d599e5 10360.09_02 Tues. May 16, 2006
715ea0b7 1037 ++ DEVELOPER RELEASE ++
2c0cbef7 1038 * Moose
1039 - added prototypes to the exported subs
43d599e5 1040 - updated docs
4734114b 1041
2c0cbef7 1042 * Moose::Role
4734114b 1043 - added prototypes to the exported subs
43d599e5 1044 - updated docs
4734114b 1045
2c0cbef7 1046 * Moose::Util::TypeConstraints
4734114b 1047 - cleaned up prototypes for the subs
1048 - updated docs
2c0cbef7 1049
72c4f6d1 10500.09_01 Fri. May 12, 2006
1051 ++ DEVELOPER RELEASE ++
4734114b 1052 - This release works in combination with
1053 Class::MOP 0.29_01, it is a developer
1054 release because it uses the a new
72c4f6d1 1055 instance sub-protocol and a fairly
4734114b 1056 complete Role implementation. It has
72c4f6d1 1057 not yet been optimized, so it slower
4734114b 1058 the the previous CPAN version. This
1059 release also lacks good updated docs,
72c4f6d1 1060 the official release will have updated docs.
1061
4734114b 1062 * Moose
98aae381 1063 - refactored the keyword exports
4734114b 1064 - 'with' now checks Role validaity and
db1ab48d 1065 accepts more than one Role at a time
4734114b 1066 - 'extends' makes metaclass adjustments as
98aae381 1067 needed to ensure metaclass compatability
4734114b 1068
72c4f6d1 1069 * Moose::Role
1070 - refactored the keyword exports
4734114b 1071 - 'with' now checks Role validaity and
72c4f6d1 1072 accepts more than one Role at a time
4734114b 1073
98aae381 1074 * Moose::Util::TypeConstraints
4734114b 1075 - added the 'enum' keyword for simple
1076 string enumerations which can be used as
98aae381 1077 type constraints
db1ab48d 1078 - see example of usage in t/202_example.t
4734114b 1079
98aae381 1080 * Moose::Object
1081 - more careful checking of params to new()
4734114b 1082
72c4f6d1 1083 * Moose::Meta::Role
1084 - much work done on the role composition
4734114b 1085 - many new tests for conflict detection
72c4f6d1 1086 and composition edge cases
4734114b 1087 - not enough documentation, I suggest
1088 looking at the tests
1089
98aae381 1090 * Moose::Meta::Instance
4734114b 1091 - added new Instance metaclass to support
98aae381 1092 the new Class::MOP instance protocol
4734114b 1093
98aae381 1094 * Moose::Meta::Class
4734114b 1095 - some small changes to support the new
98aae381 1096 instance protocol
72c4f6d1 1097 - some small additions to support Roles
4734114b 1098
98aae381 1099 * Moose::Meta::Attribute
1100 - some improvements to the accessor generation code
1101 by nothingmuch
4734114b 1102 - some small changes to support the new
98aae381 1103 instance protocol
4734114b 1104 - (still somewhat) experimental delegation support
98aae381 1105 with the 'handles' option
1106 - added several tests for this
db1ab48d 1107 - no docs for this yet
98aae381 1108
35c8b8f2 11090.05 Thurs. April 27, 2006
2d562421 1110 * Moose
1111 - keywords are now exported with Sub::Exporter
1112 thanks to chansen for this commit
4734114b 1113 - has keyword now takes a 'metaclass' option
1114 to support custom attribute meta-classes
590868a3 1115 on a per-attribute basis
4734114b 1116 - added tests for this
daea75c9 1117 - the 'has' keyword not accepts inherited slot
4734114b 1118 specifications (has '+foo'). This is still an
daea75c9 1119 experimental feature and probably not finished
4734114b 1120 see t/038_attribute_inherited_slot_specs.t for
daea75c9 1121 more details, or ask about it on #moose
fcb7afc2 1122 - added tests for this
4734114b 1123
2d562421 1124 * Moose::Role
1125 - keywords are now exported with Sub::Exporter
1126
5204cd52 1127 * Moose::Utils::TypeConstraints
cce8198b 1128 - reorganized the type constraint hierarchy, thanks
4734114b 1129 to nothingmuch and chansen for his help and advice
cce8198b 1130 on this
1131 - added some tests for this
7eaef7ad 1132 - keywords are now exported with Sub::Exporter
35c8b8f2 1133 thanks to chansen for this commit
5204cd52 1134
d500266f 1135 * Moose::Meta::Class
1136 - due to changes in Class::MOP, we had to change
1137 construct_instance (for the better)
4734114b 1138
d500266f 1139 * Moose::Meta::Attribute
4734114b 1140 - due to changes in Class::MOP, we had to add the
d500266f 1141 initialize_instance_slot method (it's a good thing)
4734114b 1142
cce8198b 1143 * Moose::Meta::TypeConstraint
4734114b 1144 - added type constraint unions
c07af9d2 1145 - added tests for this
cce8198b 1146 - added the is_subtype_of predicate method
1147 - added tests for this
d500266f 1148
02a0fb52 11490.04 Sun. April 16th, 2006
1331430a 1150 * Moose::Role
1151 - Roles can now consume other roles
1152 - added tests for this
4734114b 1153 - Roles can specify required methods now with
1331430a 1154 the requires() keyword
1155 - added tests for this
1156
bdabd620 1157 * Moose::Meta::Role
1158 - ripped out much of it's guts ,.. much cleaner now
4734114b 1159 - added required methods and correct handling of
fa1be058 1160 them in apply() for both classes and roles
1161 - added tests for this
4734114b 1162 - no longer adds a does() method to consuming classes
1331430a 1163 it relys on the one in Moose::Object
4734114b 1164 - added roles attribute and some methods to support
1331430a 1165 roles consuming roles
8c9d74e7 1166
1167 * Moose::Meta::Attribute
1168 - added support for triggers on attributes
1169 - added tests for this
4734114b 1170 - added support for does option on an attribute
02a0fb52 1171 - added tests for this
4734114b 1172
8c9d74e7 1173 * Moose::Meta::Class
4734114b 1174 - added support for attribute triggers in the
8c9d74e7 1175 object construction
1176 - added tests for this
4734114b 1177
256903b6 1178 * Moose
4734114b 1179 - Moose no longer creates a subtype for your class
1180 if a subtype of the same name already exists, this
256903b6 1181 should DWIM in 99.9999% of all cases
4734114b 1182
256903b6 1183 * Moose::Util::TypeConstraints
4734114b 1184 - fixed bug where incorrect subtype conflicts were
256903b6 1185 being reported
8c9d74e7 1186 - added test for this
4734114b 1187
8c9d74e7 1188 * Moose::Object
1189 - this class can now be extended with 'use base' if
1190 you need it, it properly loads the metaclass class now
1191 - added test for this
bdabd620 1192
0677220d 11930.03_02 Wed. April 12, 2006
05d9eaf6 1194 * Moose
1195 - you must now explictly use Moose::Util::TypeConstraints
1196 it no longer gets exported for you automatically
4734114b 1197
05d9eaf6 1198 * Moose::Object
1199 - new() now accepts hash-refs as well as key/value lists
0677220d 1200 - added does() method to check for Roles
1201 - added tests for this
05d9eaf6 1202
0677220d 1203 * Moose::Meta::Class
4734114b 1204 - added roles attribute along with the add_role() and
0677220d 1205 does_role() methods
4734114b 1206 - added tests for this
0677220d 1207
1208 * Moose::Meta::Role
4734114b 1209 - now adds a does() method to consuming classes
0677220d 1210 which tests the class's hierarchy for roles
1211 - added tests for this
1212
12130.03_01 Mon. April 10, 2006
e9ec68d6 1214 * Moose::Cookbook
76d37e5a 1215 - added new Role recipe (no content yet, only code)
4734114b 1216
e9ec68d6 1217 * Moose
1218 - added 'with' keyword for Role support
1219 - added test and docs for this
1220 - fixed subtype quoting bug
4734114b 1221 - added test for this
e9ec68d6 1222
1223 * Moose::Role
1224 - Roles for Moose
1225 - added test and docs
76d37e5a 1226
1227 * Moose::Util::TypeConstraints
1228 - added the message keyword to add custom
4734114b 1229 error messages to type constraints
1230
e9ec68d6 1231 * Moose::Meta::Role
1232 - the meta role to support Moose::Role
1233 - added tests and docs
4734114b 1234
e9ec68d6 1235 * Moose::Meta::Class
4734114b 1236 - moved a number of things from Moose.pm
1237 to here, they should have been here
e9ec68d6 1238 in the first place
1239
1240 * Moose::Meta::Attribute
1241 - moved the attribute option macros here
1242 instead of putting them in Moose.pm
e185c027 1243
76d37e5a 1244 * Moose::Meta::TypeConstraint
4734114b 1245 - added the message attributes and the
76d37e5a 1246 validate method
1247 - added tests and docs for this
1248
0ac928d2 12490.03 Thurs. March 30, 2006
e9bb8a31 1250 * Moose::Cookbook
4734114b 1251 - added the Moose::Cookbook with 5 recipes,
e9bb8a31 1252 describing all the stuff Moose can do.
1253
d7f17ebb 1254 * Moose
1255 - fixed an issue with &extends super class loading
4734114b 1256 it now captures errors and deals with inline
1257 packages correctly (bug found by mst, solution
d7f17ebb 1258 stolen from alias)
159da176 1259 - added super/override & inner/augment features
1260 - added tests and docs for these
4734114b 1261
d7f17ebb 1262 * Moose::Object
4734114b 1263 - BUILDALL now takes a reference of the %params
1264 that are passed to &new, and passes that to
d7f17ebb 1265 each BUILD as well.
4734114b 1266
471c4f09 1267 * Moose::Util::TypeConstraints
1268 - Type constraints now survive runtime reloading
1269 - added test for this
d7f17ebb 1270
8339fae2 1271 * Moose::Meta::Class
4734114b 1272 - fixed the way attribute defaults are handled
8339fae2 1273 during instance construction (bug found by chansen)
1274
d7f17ebb 1275 * Moose::Meta::Attribute
1276 - read-only attributes now actually enforce their
4734114b 1277 read-only-ness (this corrected in Class::MOP as
9deed647 1278 well)
d7f17ebb 1279
076c81ed 12800.02 Tues. March 21, 2006
fc5609d2 1281 * Moose
4734114b 1282 - many more tests, fixing some bugs and
b841b2a3 1283 edge cases
b841b2a3 1284 - &extends now loads the base module with
4734114b 1285 UNIVERSAL::require
1286 - added UNIVERSAL::require to the
b841b2a3 1287 dependencies list
6ba6d68c 1288 ** API CHANGES **
4734114b 1289 - each new Moose class will also create
1290 and register a subtype of Object which
1291 correspond to the new Moose class.
1292 - the 'isa' option in &has now only
1293 accepts strings, and will DWIM in
b841b2a3 1294 almost all cases
4734114b 1295
b841b2a3 1296 * Moose::Util::TypeConstraints
1297 - added type coercion features
1298 - added tests for this
4734114b 1299 - added support for this in attributes
b841b2a3 1300 and instance construction
6ba6d68c 1301 ** API CHANGES **
4734114b 1302 - type construction no longer creates a
b841b2a3 1303 function, it registers the type instead.
4734114b 1304 - added several functions to get the
1305 registered types
6ba6d68c 1306
1307 * Moose::Object
4734114b 1308 - BUILDALL and DEMOLISHALL were broken
6ba6d68c 1309 because of a mis-named hash key, Whoops :)
4734114b 1310
b841b2a3 1311 * Moose::Meta::Attribute
1312 - adding support for coercion in the
1313 autogenerated accessors
4734114b 1314
b841b2a3 1315 * Moose::Meta::Class
1316 - adding support for coercion in the
4734114b 1317 instance construction
6ba6d68c 1318
1319 * Moose::Meta::TypeConstraint
1320 * Moose::Meta::TypeCoercion
4734114b 1321 - type constraints and coercions are now
6ba6d68c 1322 full fledges meta-objects
fc5609d2 1323
e522431d 13240.01 Wed. March 15, 2006
900466d6 1325 - Moooooooooooooooooose!!!