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