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