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