s/container/parameterized/
[gitmo/Moose.git] / Changes
CommitLineData
e522431d 1Revision history for Perl extension Moose
2
d67145ed 30.26
fb697a87 4 ~ Several doc updates/cleanup thanks to castaway ~
5
d67145ed 6 * Moose
7 - added all the meta classes to the immutable list and
8 set it to inline the accessors
9bcfbab1 9 - fix import to allow Sub::Exporter like { into => }
e59a5c29 10 and { into_level => } (perigrin)
9bcfbab1 11 - exposed and documented init_meta() to allow better
e59a5c29 12 embedding and extending of Moose (perigrin)
13
14 * t/
15 - complete re-organization of the test suite
b468a3d3 16 - added some new tests as well
17
18 * Moose::Meta::Class
19 - fixed very odd and very nasty recursion bug with
20 inner/augment (mst)
21 - added tests for this (eilara)
d67145ed 22
3726f905 23 * Moose::Meta::Attribute
24 Moose::Meta::Method::Constructor
25 Moose::Meta::Method::Accessor
26 - fixed issue with overload::Overloaded getting called
f1917f58 27 on non-blessed items. (RT #29269)
3726f905 28 - added tests for this
29
30 * Moose::Coookbook::Snacks
31 - these are bits of documentation, not quite as big as
32 Recipes but which have no clear place in the module docs.
33 So they are Snacks! (horray for castaway++)
34
07cde929 35 * Moose::Cookbook::Recipe4
36 - updated it to use the new ArrayRef[MyType] construct
37 - updated the accompanying test as well
38
3726f905 39 +++ Major Refactor of the Type Constraint system +++
40 +++ with new features added as well +++
41
22aed3c0 42 * Moose::Util::TypeConstraint
43 - no longer uses package variable to keep track of
44 the type constraints, now uses the an instance of
45 Moose::Meta::TypeConstraint::Registry to do it
f1917f58 46 - added more sophisticated type notation parsing
47 (thanks to mugwump)
48 - added tests for this
22aed3c0 49
d67145ed 50 * Moose::Meta::TypeConstraint
51 - some minor adjustments to make subclassing easier
22aed3c0 52 - added the package_defined_in attribute so that we
53 can track where the type constraints are created
d67145ed 54
55 * Moose::Meta::TypeConstraint::Union
3726f905 56 - this is now been refactored to be a subclass of
57 Moose::Meta::TypeConstraint
58
59 * Moose::Meta::TypeCoercion::Union
60 - this has been added to service the newly refactored
61 Moose::Meta::TypeConstraint::Union and is itself
62 a subclass of Moose::Meta::TypeCoercion
d67145ed 63
0fbd4b0a 64 * Moose::Meta::TypeConstraint::Parameterized
d67145ed 65 - added this module (taken from MooseX::AttributeHelpers)
66 to help construct nested collection types
67 - added tests for this
18ea2bcc 68
22aed3c0 69 * Moose::Meta::TypeConstraint::Registry
70 - added this class to keep track of type constraints
d67145ed 71
887169d7 720.25 Mon. Aug. 13, 2007
8eca434b 73 * Moose
74 - Documentation update to reference Moose::Util::TypeConstraints
75 under 'isa' in 'has' for how to define a new type
76 (thanks to shlomif).
77
ab859145 78 * Moose::Meta::Attribute
79 - required attributes now will no longer accept undef
80 from the constructor, even if there is a default and lazy
81 - added tests for this
7a5ebc40 82 - default subroutines must return a value which passes the
83 type constraint
84 - added tests for this
a909a4df 85
86 * Moose::Meta::Attribute
87 * Moose::Meta::Method::Constructor
88 * Moose::Meta::Method::Accessor
89 - type-constraint tests now handle overloaded objects correctly
90 in the error message
91 - added tests for this (thanks to EvanCarroll)
ab859145 92
8eca434b 93 * Moose::Meta::TypeConstraint::Union
94 - added (has_)hand_optimized_constraint to this class so that
95 it behaves as the regular Moose::Meta::TypeConstraint does.
96
5868294f 97 * Moose::Meta::Role
887169d7 98 - large refactoring of this code
24a8fe99 99 - added several more tests
7125b244 100 - tests for subtle conflict resolition issues
101 added, but not currently running
102 (thanks to kolibre)
103
104 * Moose::Cookbook::Recipe7
887169d7 105 - added new recipe for augment/inner functionality
106 (still in progress)
7125b244 107 - added test for this
5868294f 108
24a8fe99 109 * Moose::Spec::Role
7125b244 110 - a formal definition of roles (still in progress)
24a8fe99 111
9a641848 112 * Moose::Util
887169d7 113 - utilities for easier working with Moose classes
7125b244 114 - added tests for these
9a641848 115
116 * Test::Moose
887169d7 117 - This contains Moose specific test functions
7125b244 118 - added tests for these
9a641848 119
6b4c1bdd 1200.24 Tues. July 3, 2007
121 ~ Some doc updates/cleanup ~
c84f324f 122
123 * Moose::Meta::Attribute
124 - added support for roles to be given as parameters
125 to the 'handles' option.
126 - added tests and docs for this
83cc9094 127 - the has '+foo' attribute form now accepts changes to
128 the lazy option, and the addition of a handles option
129 (but not changing the handles option)
130 - added tests and docs for this
c84f324f 131
1db8ecc7 132 * Moose::Meta::Role
133 - required methods are now fetched using find_method_by_name
134 so that required methods can come from superclasses
135 - adjusted tests for this
136
81941e9b 1370.23 Mon. June 18, 2007
73b84d2e 138 * Moose::Meta::Method::Constructor
139 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
ac2dc464 140 * Moose::Meta::Class
141 - Modify make_immutable to work with the new Class::MOP immutable
142 mechanism + POD + very basic test (groditi)
cbe25729 143 * Moose::Meta::Attribute
144 - Fix handles to use goto() so that caller() comes out properly on
145 the other side (perigrin)
ac2dc464 146
db53853c 1470.22 Thurs. May 31, 2007
3969267d 148 * Moose::Util::TypeConstraints
db53853c 149 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
150 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
151 prototypes for functions
9af1d28b 152 - added the ClassName type constraint, this checks for strings
153 which will respond true to ->isa(UNIVERSAL).
154 - added tests and docs for this
86629f93 155 - subtyping just in name now works correctly by making the
156 default for where be { 1 }
157 - added test for this
3969267d 158
d7611a4a 159 * Moose::Meta::Method::Accessor
160 - coerce and lazy now work together correctly, thanks to
161 merlyn for finding this bug
162 - tests added for this
df492bba 163 - fix reader presedence bug in Moose::Meta::Attribute + tests
d7611a4a 164
86629f93 165 * Moose::Object
166 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
167 a HASH-ref and missed. This produces better error messages then
168 having it die cause undef is not a HASH.
169 - added tests for this
170
74a0a945 1710.21 Thursday, May 2nd, 2007
52c7c330 172 * Moose
173 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
174 - modified unimport to remove super and inner along with the rest
175 - altered unimport tests to handle this
176
177 * Moose::Role
178 - altered super export to populate SUPER_SLOT
179
180 * Moose::Meta::Class
181 - altered augment and override modifier application to use *_SLOT
182 - modified tests for these to unimport one test class each to test
183
492d4d76 184 * Moose::Meta::Role
185 - fixed issue where custom attribute metaclasses
186 where not handled correctly in roles
187 - added tests for this
5cb193ed 188
189 * Moose::Meta::Class
190 - fixed issue where extending metaclasses with
191 roles would blow up. Thanks to Aankhen`` for
192 finding this insidious error, and it's solution.
b7c751dc 193
0305961b 194 ~~ lots of spelling and grammer fixes in the docs,
195 many many thanks to rlb3 and Aankhen for these :)
492d4d76 196
e518dfb4 1970.20 Friday, April 6th, 2007
a60285b3 198 >> I messed up the SKIP logic in one test
199 so this release is just to fix that.
200
93c435b3 201 * Moose
202 - 'has' now also accepts an ARRAY ref
203 to create multiple attrs (see docs)
204 (thanks to konobi for this)
205 - added tests and docs
206
cd7eeaf5 2070.19 Thurs. April 5th, 2007
208 ~~ More documentation updates ~~
209
c899258b 210 * Moose::Util::TypeConstraints
c1935ade 211 - 'type' now supports messages as well
ddbdc0cb 212 thanks to phaylon for finding this
c899258b 213 - added tests for this
c1935ade 214 - added &list_all_type_constraints and
215 &list_all_builtin_type_constraints
943596a6 216 functions to facilitate introspection.
d022f632 217
218 * Moose::Meta::Attribute
219 - fixed regexp 'handles' declarations
220 to build the list of delegated methods
221 correctly (and not override important
ddbdc0cb 222 things like &new) thanks to ashleyb
223 for finding this
224 - added tests and docs for this
c1935ade 225 - added the 'documentation' attributes
ddbdc0cb 226 so that you can actually document your
227 attributes and inspect them through the
228 meta-object.
d022f632 229 - added tests and docs for this
230
c1935ade 231 * Moose::Meta::Class
232 - when loading custom attribute metaclasses
233 it will first look in for the class in the
234 Moose::Meta::Attribute::Custom::$name, and
235 then default to just loading $name.
236 - added tests and docs for this
237
900466d6 238 * Moose::Meta::TypeConstraint
239 - type constraints now stringify to their names.
240 - added test for this
241
d022f632 242 * misc.
ddbdc0cb 243 - added tests to assure we work with Module::Refresh
244 - added stricter test skip logic in the Moose POOP
245 test, ask Rob Kinyon why.
246 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
c899258b 247
af5199c6 2480.18 Sat. March 10, 2007
249 ~~ Many, many documentation updates ~~
ddbdc0cb 250
251 * misc.
252 - We now use Class::MOP::load_class to
253 load all classes.
254 - added tests to show types and subtypes
255 working with Declare::Constraints::Simple
256 and Test::Deep as constraint engines.
b77fdbed 257
587ae0d2 2580.18_001
d01f1dab 259 !! You must have Class::MOP 0.37_001 !!
260 !! for this developer release to work !!
261
734d1752 262 This release was primarily adding the immutable
263 feature to Moose. An immutable class is one which
264 you promise not to alter. When you set the class
265 as immutable it will perform various bits of
266 memoization and inline certain part of the code
267 (constructors, destructors and accessors). This
268 minimizes (and in some cases totally eliminates)
269 one of Moose's biggest performance hits. This
270 feature is not on by default, and is 100% optional.
271 It has several configurable bits as well, so you
272 can pick and choose to your specific needs.
273
274 The changes involved in this were fairly wide and
275 highly specific, but 100% backwards compatible, so
276 I am not going to enumerate them here. If you are
277 truely interested in what was changed, please do
278 a diff :)
587ae0d2 279
2800.17 Tues. Nov. 14, 2006
281 * Moose::Meta::Method::Accessor
282 - bugfix for read-only accessors which
283 are have a type constraint and lazy.
284 Thanks to chansen for finding it.
285
2860.16 Tues. Nov. 14, 2006
287 ++ NOTE ++
288 There are some speed improvements in this release,
289 but they are only the begining, so stay tuned.
290
291 * Moose::Object
292 - BUILDALL and DEMOLISHALL no longer get
293 called unless they actually need to be.
294 This gave us a signifigant speed boost
295 for the cases when there is no BUILD or
296 DEMOLISH method present.
297
298 * Moose::Util::TypeConstraints
299 * Moose::Meta::TypeConstraint
300 - added an 'optimize_as' option to the
301 type constraint, which allows for a
302 hand optimized version of the type
303 constraint to be used when possible.
304 - Any internally created type constraints
305 now provide an optimized version as well.
306
ecb59493 3070.15 Sun. Nov. 5, 2006
946289d1 308 ++ NOTE ++
309 This version of Moose *must* have Class::MOP 0.36 in order
310 to work correctly. A number of small internal tweaks have
311 been made in order to be compatible with that release.
571dd39f 312
313 * Moose::Util::TypeConstraints
314 - added &unimport so that you can clean out
315 your class namespace of these exported
316 keywords
317
37ee30c9 318 * Moose::Meta::Class
319 - fixed minor issue which occasionally
320 comes up during global destruction
321 (thanks omega)
946289d1 322 - moved Moose::Meta::Method::Overriden into
323 its own file.
324
325 * Moose::Meta::Role
326 - moved Moose::Meta::Role::Method into
327 its own file.
328
43123819 329 * Moose::Meta::Attribute
330 - changed how we do type checks so that
7623f774 331 we reduce the overall cost, but still
332 retain correctness.
946289d1 333 *** API CHANGE ***
334 - moved accessor generation methods to
335 Moose::Meta::Method::Accessor to
336 conform to the API changes from
337 Class::MOP 0.36
43123819 338
339 * Moose::Meta::TypeConstraint
340 - changed how constraints are compiled
341 so that we do less recursion and more
342 iteration. This makes the type check
343 faster :)
946289d1 344 - moved Moose::Meta::TypeConstraint::Union
345 into its own file
346
347 * Moose::Meta::Method::Accessor
348 - created this from methods formerly found in
349 Moose::Meta::Attribute
350
351 * Moose::Meta::Role::Method
352 - moved this from Moose::Meta::Role
353
354 * Moose::Meta::Method::Overriden
355 - moved this from Moose::Meta::Class
356
357 * Moose::Meta::TypeConstraint::Union
358 - moved this from Moose::Meta::TypeConstraint
37ee30c9 359
3ec7b7a3 3600.14 Mon. Oct. 9, 2006
4fd69d6c 361
362 * Moose::Meta::Attribute
363 - fixed lazy attributes which were not getting
364 checked with the type constraint (thanks ashley)
365 - added tests for this
3ec7b7a3 366 - removed the over-enthusiastic DWIMery of the
367 automatic ArrayRef and HashRef defaults, it
368 broke predicates in an ugly way.
369 - removed tests for this
4fd69d6c 370
c0c41f76 3710.13 Sat. Sept. 30, 2006
093b12c2 372 ++ NOTE ++
373 This version of Moose *must* have Class::MOP 0.35 in order
374 to work correctly. A number of small internal tweaks have
375 been made in order to be compatible with that release.
376
3c2bc5e2 377 * Moose
378 - Removed the use of UNIVERSAL::require to be a better
093b12c2 379 symbol table citizen and remove a dependency
380 (thanks Adam Kennedy)
3c2bc5e2 381
2a0f3bd3 382 **~~ removed experimental & undocumented feature ~~**
383 - commented out the 'method' and 'self' keywords, see the
384 comments for more info.
385
e95c7c42 386 * Moose::Cookbook
387 - added a FAQ and WTF files to document frequently
388 asked questions and common problems
b805c70c 389
3f7376b0 390 * Moose::Util::TypeConstraints
0a5bd159 391 - added GlobRef and FileHandle type constraint
3f7376b0 392 - added tests for this
393
394 * Moose::Meta::Attribute
395 - if your attribute 'isa' ArrayRef of HashRef, and you have
396 not explicitly set a default, then make the default DWIM.
94b8bbb8 397 This will also work for subtypes of ArrayRef and HashRef
398 as well.
399 - you can now auto-deref subtypes of ArrayRef or HashRef too.
400 - new test added for this (thanks to ashley)
3f7376b0 401
b805c70c 402 * Moose::Meta::Role
403 - added basic support for runtime role composition
0a5bd159 404 but this is still *highly experimental*, so feedback
405 is much appreciated :)
b805c70c 406 - added tests for this
e95c7c42 407
0a5bd159 408 * Moose::Meta::TypeConstraint
409 - the type constraint now handles the coercion process
410 through delegation, this is to support the coercion
411 of unions
412
413 * Moose::Meta::TypeConstraint::Union
414 - it is now possible for coercions to be performed
415 on a type union
416 - added tests for this (thanks to konobi)
417
e95c7c42 418 * Moose::Meta::TypeCoercion
419 - properly capturing error when type constraint
420 is not found
421
3c2bc5e2 422 * Build.PL
423 - Scalar::Util 1.18 is bad on Win32, so temporarily
424 only require version 1.17 for Win32 and cygwin.
093b12c2 425 (thanks Adam Kennedy)
3c2bc5e2 426
40e89659 4270.12 Sat. Sept. 1, 2006
2bdd01cd 428 * Moose::Cookbook
429 - Recipe5 (subtypes & coercion) has been written
430
431 * Moose
3279ab4a 432 - fixed "bad meta" error message to be more descriptive
433 - fixed &unimport to not remove the &inner and &super
434 keywords because we need to localize them.
68efb014 435 - fixed number of spelling/grammer issues, thanks Theory :)
0558683c 436
437 **~~ experimental & undocumented feature ~~**
68efb014 438 - added the method and self keywords, they are basically
439 just sugar, and they may not stay around.
f742dfef 440
441 * Moose::Object
68efb014 442 - added &dump method to easily Data::Dumper
443 an object
b26e162e 444
445 * Moose::Meta::TypeConstraint
446 - added the &is_a_type_of method to check both the current
447 and the subtype of a method (similar to &isa with classes)
f008ac1f 448
68efb014 449 * Moose::Meta::Role
450 - this is now a subclass of Class::MOP::Module, and no longer
451 creates the _role_meta ugliness of before.
452 - fixed tests to reflect this change
453
8c835eba 4540.11 Wed. July 12, 2006
31f8ec72 455 * Moose
456 - added an &unimport method to remove all the keywords
8c835eba 457 that Moose will import, simply add 'no Moose' to the
458 bottom of your class file.
31f8ec72 459
460 * t/
461 - fixed some test failures caused by a forgotten test
462 dependency.
463
864cd714 4640.10 Thurs. July 6, 2006
01a8e221 465 * Moose
466 - improved error message when loading modules so
467 it is less confusing when you load a role.
2b14ac61 468 - added &calculate_all_roles method to
469 Moose::Meta::Class and Moose::Meta::Role
470
471 NOTE:
472 This module has been tested against Class::MOP 0.30
473 but it does not yet utilize the optimizations
474 it makes available. Stay tuned for that ;)
475
2b14ac61 4760.09_03 Fri. June 23, 2006
715ea0b7 477 ++ DEVELOPER RELEASE ++
4276ccb4 478 * Moose
479 - 'use strict' and 'use warnings' are no longer
480 needed in Moose classes, Moose itself will
481 turn them on for you.
482 - added tests for this
1341f10c 483 - moved code from exported subs to private methods
484 in Moose::Meta::Class
4276ccb4 485
486 * Moose::Role
487 - as with Moose, strict and warnings are
488 automatically turned on for you.
489 - added tests for this
e39d707f 490
491 * Moose::Meta::Role
492 - now handles an edge case for override errors
493 - added tests for this
b7f2d25b 494 - added some more edge case tests
1341f10c 495
43d599e5 4960.09_02 Tues. May 16, 2006
715ea0b7 497 ++ DEVELOPER RELEASE ++
2c0cbef7 498 * Moose
499 - added prototypes to the exported subs
43d599e5 500 - updated docs
2c0cbef7 501
502 * Moose::Role
503 - added prototypes to the exported subs
43d599e5 504 - updated docs
2c0cbef7 505
506 * Moose::Util::TypeConstraints
507 - cleaned up prototypes for the subs
43d599e5 508 - updated docs
2c0cbef7 509
72c4f6d1 5100.09_01 Fri. May 12, 2006
511 ++ DEVELOPER RELEASE ++
512 - This release works in combination with
513 Class::MOP 0.29_01, it is a developer
514 release because it uses the a new
515 instance sub-protocol and a fairly
516 complete Role implementation. It has
517 not yet been optimized, so it slower
518 the the previous CPAN version. This
519 release also lacks good updated docs,
520 the official release will have updated docs.
521
98aae381 522 * Moose
523 - refactored the keyword exports
db1ab48d 524 - 'with' now checks Role validaity and
525 accepts more than one Role at a time
98aae381 526 - 'extends' makes metaclass adjustments as
527 needed to ensure metaclass compatability
528
72c4f6d1 529 * Moose::Role
530 - refactored the keyword exports
531 - 'with' now checks Role validaity and
532 accepts more than one Role at a time
533
98aae381 534 * Moose::Util::TypeConstraints
535 - added the 'enum' keyword for simple
536 string enumerations which can be used as
537 type constraints
db1ab48d 538 - see example of usage in t/202_example.t
98aae381 539
540 * Moose::Object
541 - more careful checking of params to new()
542
72c4f6d1 543 * Moose::Meta::Role
544 - much work done on the role composition
545 - many new tests for conflict detection
546 and composition edge cases
547 - not enough documentation, I suggest
548 looking at the tests
549
98aae381 550 * Moose::Meta::Instance
551 - added new Instance metaclass to support
552 the new Class::MOP instance protocol
553
554 * Moose::Meta::Class
555 - some small changes to support the new
556 instance protocol
72c4f6d1 557 - some small additions to support Roles
98aae381 558
559 * Moose::Meta::Attribute
560 - some improvements to the accessor generation code
561 by nothingmuch
562 - some small changes to support the new
563 instance protocol
564 - (still somewhat) experimental delegation support
565 with the 'handles' option
566 - added several tests for this
db1ab48d 567 - no docs for this yet
98aae381 568
35c8b8f2 5690.05 Thurs. April 27, 2006
2d562421 570 * Moose
571 - keywords are now exported with Sub::Exporter
572 thanks to chansen for this commit
590868a3 573 - has keyword now takes a 'metaclass' option
574 to support custom attribute meta-classes
575 on a per-attribute basis
daea75c9 576 - added tests for this
577 - the 'has' keyword not accepts inherited slot
578 specifications (has '+foo'). This is still an
579 experimental feature and probably not finished
580 see t/038_attribute_inherited_slot_specs.t for
581 more details, or ask about it on #moose
fcb7afc2 582 - added tests for this
2d562421 583
584 * Moose::Role
585 - keywords are now exported with Sub::Exporter
586
5204cd52 587 * Moose::Utils::TypeConstraints
cce8198b 588 - reorganized the type constraint hierarchy, thanks
589 to nothingmuch and chansen for his help and advice
590 on this
591 - added some tests for this
7eaef7ad 592 - keywords are now exported with Sub::Exporter
35c8b8f2 593 thanks to chansen for this commit
5204cd52 594
d500266f 595 * Moose::Meta::Class
596 - due to changes in Class::MOP, we had to change
597 construct_instance (for the better)
598
599 * Moose::Meta::Attribute
600 - due to changes in Class::MOP, we had to add the
601 initialize_instance_slot method (it's a good thing)
c07af9d2 602
cce8198b 603 * Moose::Meta::TypeConstraint
c07af9d2 604 - added type constraint unions
605 - added tests for this
cce8198b 606 - added the is_subtype_of predicate method
607 - added tests for this
d500266f 608
02a0fb52 6090.04 Sun. April 16th, 2006
1331430a 610 * Moose::Role
611 - Roles can now consume other roles
612 - added tests for this
613 - Roles can specify required methods now with
614 the requires() keyword
615 - added tests for this
616
bdabd620 617 * Moose::Meta::Role
618 - ripped out much of it's guts ,.. much cleaner now
1331430a 619 - added required methods and correct handling of
fa1be058 620 them in apply() for both classes and roles
621 - added tests for this
1331430a 622 - no longer adds a does() method to consuming classes
623 it relys on the one in Moose::Object
624 - added roles attribute and some methods to support
625 roles consuming roles
8c9d74e7 626
627 * Moose::Meta::Attribute
628 - added support for triggers on attributes
629 - added tests for this
02a0fb52 630 - added support for does option on an attribute
631 - added tests for this
8c9d74e7 632
633 * Moose::Meta::Class
634 - added support for attribute triggers in the
635 object construction
636 - added tests for this
256903b6 637
638 * Moose
639 - Moose no longer creates a subtype for your class
640 if a subtype of the same name already exists, this
641 should DWIM in 99.9999% of all cases
642
643 * Moose::Util::TypeConstraints
644 - fixed bug where incorrect subtype conflicts were
645 being reported
8c9d74e7 646 - added test for this
647
648 * Moose::Object
649 - this class can now be extended with 'use base' if
650 you need it, it properly loads the metaclass class now
651 - added test for this
bdabd620 652
0677220d 6530.03_02 Wed. April 12, 2006
05d9eaf6 654 * Moose
655 - you must now explictly use Moose::Util::TypeConstraints
656 it no longer gets exported for you automatically
657
658 * Moose::Object
659 - new() now accepts hash-refs as well as key/value lists
0677220d 660 - added does() method to check for Roles
661 - added tests for this
05d9eaf6 662
0677220d 663 * Moose::Meta::Class
664 - added roles attribute along with the add_role() and
665 does_role() methods
666 - added tests for this
667
668 * Moose::Meta::Role
669 - now adds a does() method to consuming classes
670 which tests the class's hierarchy for roles
671 - added tests for this
672
6730.03_01 Mon. April 10, 2006
e9ec68d6 674 * Moose::Cookbook
76d37e5a 675 - added new Role recipe (no content yet, only code)
e9ec68d6 676
677 * Moose
678 - added 'with' keyword for Role support
679 - added test and docs for this
680 - fixed subtype quoting bug
681 - added test for this
682
683 * Moose::Role
684 - Roles for Moose
685 - added test and docs
76d37e5a 686
687 * Moose::Util::TypeConstraints
688 - added the message keyword to add custom
689 error messages to type constraints
e9ec68d6 690
691 * Moose::Meta::Role
692 - the meta role to support Moose::Role
693 - added tests and docs
694
695 * Moose::Meta::Class
696 - moved a number of things from Moose.pm
697 to here, they should have been here
698 in the first place
699
700 * Moose::Meta::Attribute
701 - moved the attribute option macros here
702 instead of putting them in Moose.pm
e185c027 703
76d37e5a 704 * Moose::Meta::TypeConstraint
705 - added the message attributes and the
706 validate method
707 - added tests and docs for this
708
0ac928d2 7090.03 Thurs. March 30, 2006
e9bb8a31 710 * Moose::Cookbook
711 - added the Moose::Cookbook with 5 recipes,
712 describing all the stuff Moose can do.
713
d7f17ebb 714 * Moose
715 - fixed an issue with &extends super class loading
716 it now captures errors and deals with inline
717 packages correctly (bug found by mst, solution
718 stolen from alias)
159da176 719 - added super/override & inner/augment features
720 - added tests and docs for these
d7f17ebb 721
722 * Moose::Object
723 - BUILDALL now takes a reference of the %params
724 that are passed to &new, and passes that to
725 each BUILD as well.
471c4f09 726
727 * Moose::Util::TypeConstraints
728 - Type constraints now survive runtime reloading
729 - added test for this
d7f17ebb 730
8339fae2 731 * Moose::Meta::Class
732 - fixed the way attribute defaults are handled
733 during instance construction (bug found by chansen)
734
d7f17ebb 735 * Moose::Meta::Attribute
736 - read-only attributes now actually enforce their
9deed647 737 read-only-ness (this corrected in Class::MOP as
738 well)
d7f17ebb 739
076c81ed 7400.02 Tues. March 21, 2006
fc5609d2 741 * Moose
b841b2a3 742 - many more tests, fixing some bugs and
743 edge cases
b841b2a3 744 - &extends now loads the base module with
745 UNIVERSAL::require
746 - added UNIVERSAL::require to the
747 dependencies list
6ba6d68c 748 ** API CHANGES **
b841b2a3 749 - each new Moose class will also create
750 and register a subtype of Object which
751 correspond to the new Moose class.
b841b2a3 752 - the 'isa' option in &has now only
753 accepts strings, and will DWIM in
754 almost all cases
755
756 * Moose::Util::TypeConstraints
757 - added type coercion features
758 - added tests for this
759 - added support for this in attributes
760 and instance construction
6ba6d68c 761 ** API CHANGES **
b841b2a3 762 - type construction no longer creates a
763 function, it registers the type instead.
764 - added several functions to get the
765 registered types
6ba6d68c 766
767 * Moose::Object
768 - BUILDALL and DEMOLISHALL were broken
769 because of a mis-named hash key, Whoops :)
b841b2a3 770
771 * Moose::Meta::Attribute
772 - adding support for coercion in the
773 autogenerated accessors
774
775 * Moose::Meta::Class
776 - adding support for coercion in the
6ba6d68c 777 instance construction
778
779 * Moose::Meta::TypeConstraint
780 * Moose::Meta::TypeCoercion
781 - type constraints and coercions are now
782 full fledges meta-objects
fc5609d2 783
e522431d 7840.01 Wed. March 15, 2006
900466d6 785 - Moooooooooooooooooose!!!