Add some tests for attr names with non-alphanumeric characters in them
[gitmo/Moose.git] / Changes
1 Also see Moose::Manual::Delta for more details of, and workarounds
2 for, noteworthy changes.
3
4 Next
5     * Moose::Meta::Attribute::Native::Trait::Counter
6     * Moose::Meta::Attribute::Native::Trait::String
7       - For these two traits, an attribute which did not explicitly provide
8         methods to handles magically ended up delegating *all* the helper
9         methods. This has been removed. You must be explicit in your handles
10         declaration for all Native Traits. (Dave Rolsky)
11
12 0.89_02 Thu, Sep 10, 2009
13     * Moose::Meta::Attribute::Native
14       - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
15
16     * Moose::Meta::Attribute::Native::Trait::Array
17       - Added a number of functions from List::Util and List::MoreUtils,
18         including reduce, shuffle, uniq, and natatime. (doy)
19
20     * Moose::Exporter
21       - This module will now generate an init_meta method for your exporting
22         class if you pass it options for
23         Moose::Util::MetaRole::apply_metaclass_roles or
24         apply_base_class_roles. This eliminates a lot of repetitive
25         boilerplate for typical MooseX modules. (doy).
26       - Documented the with_meta feature, which is a replacement for
27         with_caller. This feature was added by josh a while ago.
28       - The with_caller feature is now deprecated, but will not issue a
29         warning yet. (Dave Rolsky)
30       - If you try to wrap/export a subroutine which doesn't actually exist,
31         Moose::Exporter will warn you about this. (doy)
32
33     * Moose::Meta::Class
34       - Warn when calling make_immutable on a class with mutable ancestors.
35         (doy)
36
37     * Moose::Meta::Role::Application::ToRole
38       - When a role aliased a method from another role, it was only getting
39         the new (aliased) name, not the original name. This differed from what
40         happens when a class aliases a role's methods. If you _only_ want the
41         aliased name, make sure to also exclue the original name. (Dave
42         Rolsky)
43
44 0.89_01 Wed Sep 2, 2009
45     * Moose::Meta::Attribute
46       - Added the currying syntax for delegation from AttributeHelpers to the
47         existing delegation API. (hdp)
48
49     * Moose::Meta::Attribute::Native
50       - We have merged the functionality of MooseX::AttributeHelpers into the
51         Moose core with some API tweaks. You can continue to use
52         MooseX::AttributeHelpers, but it will not be maintained except
53         (perhaps) for critical bug fixes in the future. See
54         Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
55         perigrin, doy)
56
57     * Moose::Error::Croak
58     * Moose::Error::Confess
59       - Clarify documentation on how to use different error-throwing
60         modules. (Curtis Jewell)
61
62     * Moose
63       - Correct POD for builder to point to Recipe8, not 9. (gphat)
64
65     * Moose::Exporter
66       - When a nonexistent sub name is passed to as_is, with_caller, or
67         with_meta, throw a warning and skip the exporting, rather than
68         installing a broken sub. (doy)
69
70 0.89 Thu Aug 13, 2009
71     * Moose::Manual::Attributes
72       - Clarify "is", include discussion of "bare". (Sartak)
73
74     * Moose::Meta::Role::Method::Conflicting
75     * Moose::Meta::Role::Application::ToClass
76       - For the first set of roles involved in a conflict, report all
77         unresolved method conflicts, not just the first method. Fixes #47210
78         reported by Ovid. (Sartak)
79
80     * Moose::Meta::TypeConstraint
81       - Add assert_valid method to use a TypeConstraint for assertion (rjbs)
82
83     * Moose::Exporter
84       - Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
85         does. (doy)
86       - Allow specifying role options (alias, excludes, MXRP stuff) in the
87         arrayref passed to "use Moose -traits" (doy)
88
89     * Moose::Util
90       - Add functions meta_class_alias and meta_attribute_alias for creating
91         aliases for class and attribute metaclasses and metatraits. (doy)
92
93     * Moose::Meta::Attribute
94     * Moose::Meta::Method::Accessor
95       - A trigger now receives the old value as a second argument, if the
96         attribute had one. (Dave Rolsky)
97
98     * Moose::Meta::Method::Constructor
99       - Fix a bug with $obj->new when $obj has stringify overloading.
100         Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
101         - However, we will probably deprecate $obj->new, so please don't start
102           using it for new code!
103
104     * Moose::Meta::Role::Application
105     * Moose::Meta::Role::Application::RoleSummation
106       - Rename alias and excludes to -alias and -excludes (but keep the old
107         names for now, for backcompat) (doy)
108
109 0.88 Fri Jul 24, 2009
110     * Moose::Manual::Contributing
111       - Re-write the Moose::Manual::Contributing document to reflect
112         the new layout and methods of work for the Git repository. All
113         work now should be done in topic branches and reviewed by a
114         core committer before being applied to master. All releases
115         are done by a cabal member and merged from master to
116         stable. This plan was devised by Yuval, blame him. (perigrin)
117
118     * Moose::Meta::Role
119       - Create metaclass attributes for the different role application
120         classes.  (rafl)
121
122     * Moose::Util::MetaRole
123       - Allow applying roles to a meta role's role application
124         classes. (rafl)
125
126     * Moose::Meta::Attribute
127       - Add weak_ref to allowed options for "has '+foo'" (mst)
128
129     * Moose::Meta::Method::Accessor
130       - No longer uses inline_slot_access in accessors, to support
131         non-lvalue-based meta instances. (sorear)
132
133 0.87 Tue Jul 7, 2009
134     * Moose::Meta::Method::Delegation
135       - Once again allow class names as well as objects for
136         delegation. This was changed in 0.86.
137
138 0.86 Fri Jul 3, 2009
139     * Moose::Meta::Class::Immutable::Trait
140       - Fixes to work with the latest Class::MOP.
141
142     * Moose::Meta::Method::Delegation
143       - Delegation now dies with a more useful error message if the
144         attribute's accessor returns something defined but
145         unblessed. (hdp)
146
147 0.85 Fri, Jun 26, 2009
148     * Moose::Meta::Attribute
149       - The warning for 'no associated methods' is now split out into
150         the _check_associated_methods method, so that extensions can
151         safely call 'after install_accessors => ...'. This fixes a
152         warning from MooseX::AttributeHelpers. (hdp)
153
154 0.84 Fri, Jun 26, 2009
155     * Moose::Role
156       - has now sets definition_context for attributes defined in
157         roles. (doy)
158
159     * Moose::Meta::Attribute
160       - When adding an attribute to a metaclass, if the attribute has
161         no associated methods, it will give a deprecation
162         warning. (hdp)
163       - Methods generated by delegation were not being added to
164         associated_methods. (hdp)
165       - Attribute accessors (reader, writer, accessor, predicate,
166         clearer) now warn if they overwrite an existing method. (doy)
167       - Attribute constructors now warn very noisily about unknown (or
168         misspelled) arguments
169
170     * Moose::Util::TypeConstraints
171       - Deprecated the totally useless Role type name, which just
172         checked if $object->can('does'). Note that this is _not_ the
173         same as a type created by calling role_type('RoleName').
174
175     * Moose::Util::TypeConstraints
176     * Moose::Meta::TypeConstraint::DuckType
177       - Reify duck type from a regular subtype into an actual class
178         (Sartak)
179         - Document this because Sartak did all my work for me
180           (perigrin)
181
182     * Moose::Meta::Attribute
183       - Allow Moose::Meta::TypeConstraint::DuckType in handles, since
184         it is just a list of methods (Sartak)
185
186     * Moose::Meta::Role
187       - The get_*_method_modifiers methods would die if the role had
188         no modifiers of the given type (Robert Buels).
189
190 0.83 Tue, Jun 23, 2009
191     * Moose::Meta::Class
192       - Fix _construct_instance not setting the special __MOP__ object
193         key in instances of anon classes. (doy)
194
195 0.82 Sun, Jun 21, 2009
196     * Moose::Manual::Types
197       - Mention MooseX::Types early to avoid users falling down the
198         string parsing rathole (mst)
199
200     * Moose::Manual::MooseX
201       - Add warnings about class-level extensions and mention considering
202         using plain objects instead
203
204 0.81 Sun, Jun 7, 2009
205     * Bumped our Class::MOP prereq to the latest version (0.85), since
206       that's what we need.
207
208 0.80 Sat, Jun 6, 2009
209     * Moose::Manual::FAQ 
210       - Add FAQ about the coercion change from 0.76 because it came up
211         three times today (perigrin)
212         - Win doy $10 dollars because Sartak didn't think anybody
213           would document this fast enough (perigrin)
214
215     * Moose::Meta::Method::Destructor
216       - Inline a DESTROY method even if there are no DEMOLISH methods
217         to prevent unnecessary introspection in
218         Moose::Object::DEMOLISHALL
219
220     * Moose::*
221       - A role's required methods are now represented by
222         Moose::Meta::Role::Method::Required objects. Conflicts are now
223         represented by Moose::Meta::Role::Method::Conflicting
224         objects. The benefit for end-users in that unresolved
225         conflicts generate different, more instructive, errors,
226         resolving Ovid's #44895. (Sartak)
227
228     * Moose::Role
229       - Improve the error message of "extends" as suggested by Adam
230         Kennedy and confound (Sartak)
231       - Link to Moose::Manual::Roles from Moose::Role as we now have
232         excellent documentation (Adam Kennedy)
233
234     * Tests
235       - Update test suite for subname change in Class::MOP
236         (nothingmuch)
237       - Add TODO test for infinite recursion in Moose::Meta::Class
238         (groditi)
239
240 0.79 Wed, May 13, 2009
241     * Tests
242       - More fixes for Win32 problems. Reported by Robert Krimen.
243
244     * Moose::Object
245       - The DEMOLISHALL method could still blow up in some cases
246         during global destruction. This method has been made more
247         resilient in the face of global destruction's random garbage
248         collection order.
249
250     * Moose::Exporter
251       - If you "also" a module that isn't loaded, the error message
252         now acknowledges that (Sartak)
253
254     * Moose
255       - When your ->meta method does not return a Moose::Meta::Class,
256         the error message gave the wrong output (Sartak)
257
258 0.78 Tue, May 12, 2009
259     * Moose::Cookbook::FAQ and Moose::Cookbook::WTF
260       - Merged these documents into what is now Moose::Manual::FAQ
261
262     * Moose::Unsweetened
263       - Moved to Moose::Manual::Unsweetened
264
265     * Moose::Cookbook::Basics::Recipes 9-12
266       - Renamed to be 8-11, since recipe 8 did not exist
267
268     * Moose::Exporter
269       - Make Moose::Exporter import strict and warnings into packages
270         that use it (doy)
271
272     * Moose::Object
273       - Fix DEMOLISHALL sometimes not being able to find DEMOLISH
274         methods during global destruction (doy)
275
276     * Moose::Meta::Class
277     * Moose::Meta::Role::Application::ToClass
278       - Track the Role::Application objects created during class-role
279         consumption (Sartak)
280
281     * Moose::Meta::Class
282       - Fix metaclass incompatibility errors when extending a vanilla perl
283         class which isa Moose class with a metaclass role applied (t0m)
284
285     * Moose::Meta::Role
286       - Add a role-combination hook, _role_for_combination, for the
287         benefit of MooseX::Role::Parameterized (Sartak)
288
289     * Tests
290       - Some tests were failing on Win32 because they explicit checked
291         warning output for newlines. Reported by Nickolay Platonov.
292
293 0.77 Sat, May 2, 2009
294     * Moose::Meta::Role
295       - Add explicit use of Devel::GlobalDestruction and Sub::Name
296         (perigrin)
297
298     * Moose::Object
299       - Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
300         or not we are currently in global destruction (doy)
301       - Add explicit use of Devel::GlobalDestruction and Sub::Name
302         (perigrin)
303
304     * Moose::Cookbook::FAQ
305       - Reworked much of the existing content to be more useful to
306         modern Moose hackers (Sartak)
307
308     * Makefile.PL
309       - Depend on Class::MOP 0.83 instead of 0.82_01.
310
311 0.76 Mon, April 27, 2009
312     * Moose::Meta::TypeConstraint
313       - Do not run coercions in coerce() if the value already passes the type
314         constraint (hdp)
315
316     * Moose::Meta::TypeConstraint::Class
317       - In validation error messages, specifically say that the value is not
318         an instance of the class. This should alleviate some frustrating
319         forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
320
321     * Moose::Meta::Role::Application::ToClass
322       - Revert the class-overrides-role warning in favor of a solution outside
323         of the Moose core (Sartak)
324
325     * Tests
326       - Make Test::Output optional again, since it's only used in a few files
327         (Sartak)
328
329 0.75_01 Thu, April 23, 2009
330     * Moose::Meta::Role::Application::ToClass
331       - Moose now warns about each class overriding methods from roles it
332         consumes (Sartak)
333
334     * Tests
335       - Warnings tests have standardized on Test::Output which is now an
336         unconditionally dependency (Sartak)
337
338     * Moose::Meta::Class
339       - Changes to immutabilization to work with Class::MOP 0.82_01+.
340
341 0.75 Mon, April 20, 2009
342     * Moose
343     * Moose::Meta::Class
344       - Move validation of not inheriting from roles from Moose::extends to
345         Moose::Meta::Class::superclasses (doy)
346
347     * Moose::Util
348       - add ensure_all_roles() function to encapsulate the common "apply this
349         role unless the object already does it" pattern (hdp)
350
351     * Moose::Exporter
352       - Users can now select a different metaclass with the "-metaclass"
353         option to import, for classes and roles (Sartak)
354
355     * Moose::Meta::Role
356       - Make method_metaclass an attr so that it can accept a metarole
357         application.  (jdv)
358
359 0.74 Tue, April 7, 2009
360     * Moose::Meta::Role
361     * Moose::Meta::Method::Destructor
362       - Include stack traces in the deprecation warnings.
363         (Florian Ragwitz)
364
365     * Moose::Meta::Class
366       - Removed the long-deprecated _apply_all_roles method.
367
368     * Moose::Meta::TypeConstraint
369       - Removed the long-deprecated union method.
370
371
372 0.73_02 Mon, April 6, 2009
373     * More deprecations and renamings
374       - Moose::Meta::Method::Constructor
375         - initialize_body => _initialize_body (this is always called
376           when an object is constructed)
377
378     * Moose::Object
379       - The DEMOLISHALL method could throw an exception during global
380         destruction, meaning that your class's DEMOLISH methods would
381         not be properly called. Reported by t0m.
382
383     * Moose::Meta::Method::Destructor
384       - Destructor inlining was totally broken by the change to the
385         is_needed method in 0.72_01. Now there is a test for this
386         feature, and it works again.
387
388     * Moose::Util
389       - Bold the word 'not' in the POD for find_meta (t0m)
390
391 0.73_01 Sun, April 5, 2009
392     * Moose::*
393       - Call user_class->meta in fewer places, with the eventual goal
394         of allowing the user to rename or exclude ->meta
395         altogether. Instead uses Class::MOP::class_of. (Sartak)
396
397     * Moose::Meta::Method::Accessor
398       - If an attribute had a lazy default, and that value did not
399         pass the attribute's type constraint, it did not get the
400         message from the type constraint, instead using a generic
401         message. Test provided by perigrin.
402
403     * Moose::Util::TypeConstraints
404       - Add duck_type keyword. It's sugar over making sure an object
405         can() a list of methods. This is easier than jrockway's
406         suggestion to fork all of CPAN. (perigrin)
407         - add tests and documentation (perigrin)
408
409     * Moose
410       - Document the fact that init_meta() returns the target class's
411         metaclass object. (hdp)
412
413     * Moose::Cookbook::Extending::Recipe1
414     * Moose::Cookbook::Extending::Recipe2
415     * Moose::Cookbook::Extending::Recipe3
416     * Moose::Cookbook::Extending::Recipe4
417       - Make init_meta() examples explicitly return the metaclass and
418         point out this fact. (hdp)
419
420     * Moose::Cookbook::Basics::Recipe12
421       - A new recipe, creating a custom meta-method class.
422
423     * Moose::Cookbook::Meta::Recipe6
424       - A new recipe, creating a custom meta-method class.
425
426     * Moose::Meta::Class
427     * Moose::Meta::Method::Constructor
428       - Attribute triggers no longer receive the meta-attribute object
429         as an argument in any circumstance. Previously, triggers
430         called during instance construction were passed the
431         meta-attribute, but triggers called by normal accessors were
432         not. Fixes RT#44429, reported by Mark Swayne. (hdp)
433
434     * Moose::Manual::Attributes
435       - Remove references to triggers receving the meta-attribute object as an
436         argument. (hdp)
437
438     * Moose::Cookbook::FAQ
439       - Remove recommendation for deprecated Moose::Policy and
440         Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
441         instead. (hdp)
442
443     * Many methods have been renamed with a leading underscore, and a
444       few have been deprecated entirely. The methods with a leading
445       underscore are consider "internals only". People writing
446       subclasses or extensions to Moose should feel free to override
447       them, but they are not for "public" use.
448
449       - Moose::Meta::Class
450         - check_metaclass_compatibility => _check_metaclass_compatibility
451
452       - Moose::Meta::Method::Accessor
453         - initialize_body => _initialize_body (this is always called
454           when an object is constructed)
455         - /(generate_.*_method(?:_inline)?)/ => '_' . $1
456
457       - Moose::Meta::Method::Constructor
458         - initialize_body => _initialize_body (this is always called
459           when an object is constructed)
460         - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
461         - attributes => _attributes (now inherited from parent)
462         - meta_instance => _meta_instance (now inherited from parent)
463
464       - Moose::Meta::Role
465         - alias_method is deprecated. Use add_method
466
467 0.73 Fri, March 29, 2009
468     * No changes from 0.72_01.
469
470 0.72_01 Thu, March 26, 2009
471     * Everything
472       - Almost every module has complete API documentation. A few
473         methods (and even whole classes) have been intentionally
474         excluded pending some rethinking of their APIs.
475
476     * Moose::Util::TypeConstraints
477       - Calling subtype with a name as the only argument is now an
478         exception. If you want an anonymous subtype do:
479
480          my $subtype = subtype as 'Foo';
481
482     * Moose::Cookbook::Meta::Recipe7
483       - A new recipe, creating a custom meta-instance class.
484
485     * Moose::Cookbook::Basics::Recipe5
486       - Fix various typos and mistakes. Includes a patch from Radu
487         Greab.
488
489     * Moose::Cookbook::Basics::Recipe9
490       - Link to this recipe from Moose.pm's builder blurb
491
492     * Moose::Exporter
493       - When wrapping a function with a prototype, Moose::Exporter now
494         makes sure the wrapped function still has the same
495         prototype. (Daisuke Maki)
496
497     * Moose::Meta::Attribute
498       - Allow a subclass to set lazy_build for an inherited
499         attribute. (hdp)
500
501     * Makefile.PL
502       - Explicitly depend on Data::OptList. We already had this dependency
503         via Sub::Exporter, but since we're using it directly we're
504         better off with it listed. (Sartak)
505
506     * Moose::Meta::Method::Constructor
507       - Make it easier to subclass the inlining behaviour. (Ash
508         Berlin)
509
510     * Moose::Manual::Delta
511       - Details significant changes in the history of Moose, along
512         with recommended workarounds.
513
514     * Moose::Manual::Contributing
515       - Contributor's guide to Moose.
516
517     * Moose::Meta::Method::Constructor
518       - The long-deprecated intialize_body method has been removed
519         (yes, spelled like that).
520
521     * Moose::Meta::Method::Destructor
522       - This is_needed method is now always a class method.
523
524     * Moose::Meta::Class
525       - Changes to the internals of how make_immutable works to match
526         changes in latest Class::MOP.
527
528 0.72 Mon, February 23, 2009
529     * Moose::Object
530     * Moose::Meta::Method::Constructor
531       - A mutable class accepted Foo->new(undef) without complaint,
532         while an immutable class would blow up with an unhelpful
533         error. Now, in both cases we throw a helpful error
534         instead. Reported by doy.
535
536 0.71_01 Sun, February 22, 2009
537     * Moose::Cookbook
538       - Hopefully fixed some POD errors in a few recipes that caused
539         them to display weird on search.cpan.org.
540
541     * Moose::Util::TypeConstraints
542       - Calling type or subtype without the sugar helpers (as, where,
543         message) is now deprecated.
544       - The subtype function tried hard to guess what you meant, but
545         often got it wrong. For example:
546
547          my $subtype = subtype as 'ArrayRef[Object]';
548
549         This caused an error in the past, but now works as you'd
550         expect.
551
552     * Everywhere
553       - Make sure Moose.pm is loaded before calling
554         Moose->throw_error. This wasn't normally an issue, but could
555         bite you in weird cases.
556
557 0.71 Thu, February 19, 2009
558     * Moose::Cookbook::Basics::Recipe11
559       - A new recipe which demonstrates the use of BUILDARGS and
560         BUILD. (Dave Rolsky)
561
562     * Moose::Cookbook::Roles::Recipe3
563       - A new recipe, applying a role to an object instance. (Dave
564         Rolsky)
565
566     * Moose::Exporter
567       - Allow overriding specific keywords from "also" packages. (doy)
568
569     * Tests
570       - Replace hardcoded cookbook tests with Test::Inline to ensure
571         the tests match the actual code in the recipes. (Dave Rolsky)
572
573     * Moose::Cookbook
574       - Working on the above turned up a number of little bugs in the
575         recipe code. (Dave Rolsky)
576
577     * Moose::Util::TypeConstraints::Optimized
578       - Just use Class::MOP for the optimized ClassName check. (Dave
579         Rolsky)
580
581 0.70 Sat, February 14, 2009
582     * Moose::Util::TypeConstraints
583       - Added the RoleName type (stevan)
584         - added tests for this (stevan)
585
586     * Moose::Cookbook::Basics::Recipe3
587       - Updated the before qw[left right] sub to be a little more
588         defensive about what it accepts (stevan)
589         - added more tests to t/000_recipies/basics/003_binary_tree.t
590           (stevan)
591
592     * Moose::Object
593       - We now always call DEMOLISHALL, even if a class does not
594         define DEMOLISH. This makes sure that method modifiers on
595         DEMOLISHALL work as expected. (doy)
596         - added tests for this (EvanCarroll)
597
598     * Moose::Util::MetaRole
599       - Accept roles for the wrapped_method_metaclass (rafl)
600         - added tests for this (rafl)
601
602     * Moose::Meta::Attribute
603       - We no longer pass the meta-attribute object as a final
604         argument to triggers. This actually changed for inlined code a
605         while back, but the non-inlined version and the docs were
606         still out of date.
607
608     * Tests
609       - Some tests tried to use Test::Warn 0.10, which had bugs. Now
610         they require 0.11. (Dave Rolsky)
611
612     * Documentation
613       - Lots of small changes to the manual, cookbook, and
614         elsewhere. These were based on feedback from various
615         users, too many to list here. (Dave Rolsky)
616
617 0.69 Thu, February 12, 2009
618     * Moose
619       - Make some keyword errors use throw_error instead of croak
620         since Moose::Exporter wraps keywords now (Sartak)
621
622     * Moose::Cookbook::*
623       - Revised every recipe for style and clarity. Also moved some
624         documentation out of cookbook recipes and into Moose::Manual
625         pages. This work was funded as part of the Moose docs grant
626         from TPF. (Dave Rolsky)
627
628     * Moose::Meta::Method::Delegation
629       - If the attribute doing the delegation was not populated, the
630         error message did not specify the attribute name
631         properly. (doy)
632
633 0.68 Wed, February 4, 2009
634     * POD
635       - Many spelling, typo, and formatting fixes by daxim.
636
637     * Moose::Manual::Attributes
638       - The NAME section in the POD used "Attribute" so search.cpan
639         didn't resolve links from other documents properly.
640
641     * Moose::Meta::Method::Overriden
642       - Now properly spelled as Overridden. Thanks to daxim for
643         noticing this.
644
645 0.67 Tue, February 3, 2009
646     * Moose::Manual::*
647       - Lots of little typo fixes and a few clarifications. Several
648         pages didn't have proper titles, and so weren't actually
649         visible on search.cpan.org. Thanks to hanekomu for a variety
650         of fixes and formatting improvements.
651
652 0.66 Tue, February 3, 2009
653     * Moose::Manual
654       - This is a brand new, extensive manual for Moose. This aims to
655         provide a complete introduction to all of Moose's
656         features. This work was funded as part of the Moose docs grant
657         from TPF. (Dave Rolsky)
658
659     * Moose::Meta::Attribute
660       - Added a delegation_metaclass method to replace a hard-coded
661         use of Moose::Meta::Method::Delegation. (Dave Rolsky)
662
663     * Moose::Util::TypeConstraints
664       - If you created a subtype and passed a parent that Moose didn't
665         know about, it simply ignored the parent. Now it automatically
666         creates the parent as a class type. This may not be what you
667         want, but is less broken than before. (Dave Rolsky)
668
669     * Moose::Util::TypeConstraints
670       - This module tried throw errors by calling Moose->throw_error,
671         but it did not ensure that Moose was loaded first. This could
672         cause very unhelpful errors when it tried to throw an error
673         before Moose was loaded. (Dave Rolsky)
674
675     * Moose::Util::TypeConstraints
676       - You could declare a name with subtype such as "Foo!Bar" that
677         would be allowed, but if you used it in a parameterized type
678         such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
679         vetting on names created via the sugar functions, so that they
680         can only contain alphanumerics, ":", and ".". (Dave Rolsky)
681
682 0.65 Thu, January 22, 2008
683     * Moose and Moose::Meta::Method::Overridden
684       - If an overridden method called super(), and then the
685         superclass's method (not overridden) _also_ called super(),
686         Moose went into an endless recursion loop. Test provided by
687         Chris Prather. (Dave Rolsky)
688
689     * Moose::Meta::TypeConstraint
690       - All methods are now documented. (gphat)
691
692     * t/100_bugs/011_DEMOLISH_eats_exceptions.t
693       - Fixed some bogus failures that occurred because we tried to
694         validate filesystem paths in a very ad-hoc and
695         not-quite-correct way. (Dave Rolsky)
696
697     * Moose::Util::TypeConstraints
698       - Added maybe_type to exports. See docs for details. (rjbs)
699
700     * Moose
701       - Added Moose::Util::TypeConstraints to the SEE ALSO
702         section. (pjf)
703
704     * Moose::Role
705       - Methods created via an attribute can now fulfill a "requires"
706         declaration for a role. (nothingmuch)
707
708     * Moose::Meta::Method::*
709       - Stack traces from inlined code will now report its line and
710         file as being in your class, as opposed to in Moose
711         guts. (nothingmuch).
712
713 0.64 Wed, December 31, 2008
714     * Moose::Meta::Method::Accessor
715       - Always inline predicate and clearer methods (Sartak)
716
717     * Moose::Meta::Attribute
718       - Support for parameterized traits (Sartak)
719       - verify_against_type_constraint method to avoid duplication
720         and enhance extensibility (Sartak)
721
722     * Moose::Meta::Class
723       - Tests (but no support yet) for parameterized traits (Sartak)
724
725     * Moose
726       - Require Class::MOP 0.75+, which has the side effect of making
727         sure we work on Win32. (Dave Rolsky)
728
729 0.63 Mon, December 8, 2008
730     * Moose::Unsweetened
731       - Some small grammar tweaks and bug fixes in non-Moose example
732         code. (Dave Rolsky)
733
734 0.62_02 Fri, December 5, 2008
735     * Moose::Meta::Role::Application::ToClass
736       - When a class does not provide all of a role's required
737         methods, the error thrown now mentions all of the missing
738         methods, as opposed to just the first one found. Requested by
739         Curtis Poe (RT #41119). (Dave Rolsky)
740
741     * Moose::Meta::Method::Constructor
742       - Moose will no longer inline a constructor for your class
743         unless it inherits its constructor from Moose::Object, and
744         will warn when it doesn't inline. If you want to force
745         inlining anyway, pass "replace_constructor => 1" to
746         make_immutable. Addresses RT #40968, reported by Jon
747         Swartz. (Dave Rolsky)
748       - The quoting of default values could be broken if the default
749         contained a single quote ('). Now we use quotemeta to escape
750         anything potentially dangerous in the defaults. (Dave Rolsky)
751
752 0.62_01 Wed, December 3, 2008
753     * Moose::Object
754       - use the method->execute API for BUILDALL
755         and DEMOLISHALL (Sartak)
756
757     * Moose::Util::TypeConstraints
758       - We now make all the type constraint meta classes immutable
759         before creating the default types provided by Moose. This
760         should make loading Moose a little faster. (Dave Rolsky)
761
762 0.62 Wed November 26, 2008
763     * Moose::Meta::Role::Application::ToClass
764       Moose::Meta::Role::Application::ToRole
765       - fixed issues where excluding and aliasing the
766         same methods for a single role did not work
767         right (worked just fine with multiple
768         roles) (stevan)
769         - added test for this (stevan)
770
771     * Moose::Meta::Role::Application::RoleSummation
772       - fixed the error message when trying to compose
773         a role with a role it excludes (Sartak)
774
775     * Moose::Exporter
776       - Catch another case where recursion caused the value
777         of $CALLER to be stamped on (t0m)
778         - added test for this (t0m)
779
780     * Moose
781       - Remove the make_immutable keyword, which has been
782         deprecated since April. It breaks metaclasses that
783         use Moose without no Moose (Sartak)
784
785     * Moose::Meta::Attribute
786       - Removing an attribute from a class now also removes delegation
787         (handles) methods installed for that attribute (t0m)
788         - added test for this (t0m)
789
790     * Moose::Meta::Method::Constructor
791       - An attribute with a default that looked like a number (but was
792         really a string) would accidentally be treated as a number
793         when the constructor was made immutable (perigrin)
794         - added test for this (perigrin)
795
796     * Moose::Meta::Role
797       - create method for constructing a role
798         dynamically (Sartak)
799         - added test for this (Sartak)
800       - anonymous roles! (Sartak)
801         - added test for this (Sartak)
802
803     * Moose::Role
804       - more consistent error messages (Sartak)
805
806     * Moose::Cookbook::Roles::Recipe1
807       - attempt to explain why a role that just requires
808         methods is useful (Sartak)
809
810 0.61 Fri November 7, 2008
811     * Moose::Meta::Attribute
812       - When passing a role to handles, it will be loaded if necessary
813         (perigrin)
814
815     * Moose::Meta::Class
816       - Method objects returned by get_method (and other methods)
817         Could end up being returned without an associated_metaclass
818         attribute. Removing get_method_map, which is provided by
819         Class::MOP::Class, fixed this. The Moose version did nothing
820         different from its parent except introduce a bug. (Dave Rolsky)
821         - added tests for this (jdv79)
822
823     * Various
824       - Added a $VERSION to all .pm files which didn't have one. Fixes
825         RT #40049, reported by Adam Kennedy. (Dave Rolsky)
826
827     * Moose::Cookbook::Basics::Recipe4
828     * Moose::Cookbook::Basics::Recipe6
829       - These files had spaces on the first line of the SYNOPSIS, as
830         opposed to a totally empty line. According to RT #40432, this
831         confuses POD parsers. (Dave Rolsky)
832
833 0.60 Fri October 24, 2008
834     * Moose::Exporter
835       - Passing "-traits" when loading Moose caused the Moose.pm
836         exports to be broken. Reported by t0m. (Dave Rolsky)
837         - Tests for this bug. (t0m)
838
839     * Moose::Util
840       - Change resolve_metaclass alias to use the new
841         load_first_existing_class function. This makes it a lot
842         simpler, and also around 5 times faster. (t0m)
843       - Add caching to resolve_metaclass_alias, which gives an order
844         of magnitude speedup to things which repeatedly call the
845         Moose::Meta::Attribute->does method, notably MooseX::Storage
846         (t0m)
847
848     * Moose::Util::TypeConstraint
849       - Put back the changes for parameterized constraints that
850         shouldn't have been removed in 0.59. We still cannot parse
851         them, but MooseX modules can create them in some other
852         way. See the 0.58 changes for more details. (jnapiorkowski)
853       - Changed the way subtypes are created so that the job is
854         delegated to a type constraint parent. This clears up some
855         hardcoded checking and should allow correct subtypes of
856         Moose::Meta::Type::Constraint. Don't rely on this new API too
857         much (create_child_type) because it may go away in the
858         future. (jnapiorkowski)
859
860     * Moose::Meta::TypeConstraint::Union
861       - Type constraint names are sorted as strings, not numbers.
862         (jnapiorkowski)
863
864     * Moose::Meta::TypeConstraint::Parameterizable
865       - New parameterize method. This can be used as a factory method
866         to make a new type constraint with a given parameterized
867         type. (jnapiorkowski)
868         - added tests (jnapiorkowski)
869
870 0.59 Tue October 14, 2008
871     * Moose
872       - Add abridged documentation for builder/default/initializer/
873         predicate, and link to more details sections in
874         Class::MOP::Attribute. (t0m)
875
876     * Moose::Util::TypeConstraints
877       - removed prototypes from all but the &-based stuff (mst)
878
879     * Moose::Util::TypeConstraints
880       - Creating a anonymous subtype with both a constraint and a
881         message failed with a very unhelpful error, but should just
882         work. Reported by t0m. (Dave Rolsky)
883
884     * Tests
885       - Some tests that used Test::Warn if it was available failed
886         with older versions of Test::Warn. Reported by Fayland. (Dave
887         Rolsky)
888       - Test firing behavior of triggers in relation to builder/default/
889         lazy_build. (t0m)
890       - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
891         kinds of supported type. (t0m)
892
893     * Moose::Meta::Class
894       - In create(), do not pass "roles" option to the superclass
895         - added related test that creates an anon metaclass with
896           a required attribute
897
898     * Moose::Meta::TypeConstraint::Class
899     * Moose::Meta::TypeConstraint::Role
900       - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
901         other types (as per change in 0.55_02). (t0m)
902
903     * Moose::Meta::TypeConstraint::Registry
904       - Fix warning when dealing with unknown type names (t0m)
905
906     * Moose::Util::TypeConstraints
907       - Reverted changes from 0.58 related to handle parameterized
908         types. This caused random failures on BSD and Win32 systems,
909         apparently related to the regex engine. This means that Moose
910         can no longer parse structured type constraints like
911         ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
912         supported in a slightly different way via MooseX::Types some
913         time in the future. (Dave Rolsky)
914
915 0.58 Sat September 20, 2008
916     !! This release has an incompatible change regarding !!
917     !! how roles add methods to a class !!
918
919     * Roles and role application
920       ! Roles now add methods by calling add_method, not
921         alias_method. They make sure to always provide a method
922         object, which will be cloned internally. This means that it is
923         now possible to track the source of a method provided by a
924         role, and even follow its history through intermediate roles.
925
926         This means that methods added by a role now show up when
927         looking at a class's method list/map. (Dave Rolsky)
928
929     * Makefile.PL
930       - From this release on, we'll try to maintain a list of
931         conflicting modules, and warn you if you have one
932         installed. For example, this release conflicts with ...
933         - MooseX::Singleton        <= 0.11
934         - MooseX::Params::Validate <= 0.05
935         - Fey::ORM                 <= 0.10
936
937         In general, we try to not break backwards compatibility for
938         most Moose users, but MooseX modules and other code which
939         extends Moose's metaclasses is often affected by very small
940         changes in the Moose internals.
941
942     * Moose::Meta::Method::Delegation
943     * Moose::Meta::Attribute
944       - Delegation methods now have their own method class. (Dave
945         Rolsky)
946
947     * Moose::Meta::TypeConstraint::Parameterizable
948       - Added a new method 'parameterize' which is basically a factory
949         for the containing constraint. This makes it easier to create
950         new types of parameterized constraints. (jnapiorkowski)
951
952     * Moose::Meta::TypeConstraint::Union
953       - Changed the way Union types canonicalize their names to follow
954         the normalized TC naming rules, which means we strip all
955         whitespace. (jnapiorkowski)
956
957     * Moose::Util::TypeConstraints
958       - Parameter and Union args are now sorted, this makes Int|Str
959         the same constraint as Str|Int. (jnapiorkowski)
960       - Changes to the way Union types are parsed to more correctly
961         stringify their names. (jnapiorkowski)
962       - When creating a parameterized type, we now use the new
963         parameterize method. (jnapiorkowski)
964       - Incoming type constraint strings are now normalized to remove
965         all whitespace differences. (jnapiorkowski)
966       - Changed the way we parse type constraint strings so that we now
967         match TC[Int,Int,...] and TC[name=>Str] as parameterized type
968         constraints. This lays the foundation for more flexible type
969         constraint implementations.
970
971     * Tests and docs for all the above. (jnapiorkowski)
972
973     * Moose::Exporter
974     * Moose
975       - Moose::Exporter will no longer remove a subroutine that the
976         exporting package re-exports. Moose re-exports the
977         Carp::confess function, among others. The reasoning is that we
978         cannot know whether you have also explicitly imported those
979         functions for your own use, so we err on the safe side and
980         always keep them. (Dave Rolsky)
981         - added tests for this (rafl)
982
983     * Moose::Meta::Class
984       - Changes to how we fix metaclass compatibility that are much
985         too complicated to go into. The summary is that Moose is much
986         less likely to complain about metaclass incompatibility
987         now. In particular, if two metaclasses differ because
988         Moose::Util::MetaRole was used on the two corresponding
989         classes, then the difference in roles is reconciled for the
990         subclass's metaclass. (Dave Rolsky)
991       - Squashed an warning in _process_attribute (thepler)
992
993     * Moose::Meta::Role
994       - throw exceptions (sooner) for invalid attribute names (thepler)
995         - added tests for this (thepler)
996
997     * Moose::Util::MetaRole
998       - If you explicitly set a constructor or destructor class for a
999         metaclass object, and then applied roles to the metaclass,
1000         that explicitly set class would be lost and replaced with the
1001         default.
1002
1003     * Moose::Meta::Class
1004     * Moose::Meta::Attribute
1005     * Moose::Meta::Method
1006     * Moose
1007     * Moose::Object
1008     * Moose::Error::Default
1009     * Moose::Error::Croak
1010     * Moose::Error::Confess
1011       - All instances of confess() changed to use overridable
1012         C<throw_error> method. This method ultimately calls a class
1013         constructor, and you can change the class being called. In
1014         addition, errors now pass more information than just a string.
1015         The default C<error_class> behaves like C<Carp::confess>, so
1016         the behavior is not visibly different for end users.
1017
1018 0.57 Wed September 3, 2008
1019     * Moose::Intro
1020       - A new bit of doc intended to introduce folks familiar with
1021         "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
1022
1023     * Moose::Unsweetened
1024       - Shows examples of two classes, each done first with and then
1025         without Moose. This makes a nice parallel to
1026         Moose::Intro. (Dave Rolsky)
1027
1028     * Moose::Util::TypeConstraints
1029       - Fixed a bug in find_or_parse_type_constraint so that it
1030         accepts a Moose::Meta::TypeConstraint object as the parent
1031         type, not just a name (jnapiorkowski)
1032         - added tests (jnapiorkowski)
1033
1034     * Moose::Exporter
1035       - If Sub::Name was not present, unimporting failed to actually
1036         remove some sugar subs, causing test failures (Dave Rolsky)
1037
1038 0.56 Mon September 1, 2008
1039     For those not following the series of dev releases, there are
1040     several major changes in this release of Moose.
1041       ! Moose::init_meta should now be called as a method. See the
1042         docs for details.
1043
1044       - Major performance improvements by nothingmuch.
1045
1046       - New modules for extension writers, Moose::Exporter and
1047         Moose::Util::MetaRole by Dave Rolsky.
1048
1049       - Lots of doc improvements and additions, especially in the
1050         cookbook sections.
1051
1052       - Various bug fixes.
1053
1054     * Removed all references to the experimental-but-no-longer-needed
1055       Moose::Meta::Role::Application::ToMetaclassInstance.
1056
1057     * Require Class::MOP 0.65.
1058
1059 0.55_04 Sat August 30, 2008
1060     * Moose::Util::MetaRole
1061     * Moose::Cookbook::Extending::Recipe2
1062       - This simplifies the application of roles to any meta class, as
1063         well as the base object class. Reimplemented metaclass traits
1064         using this module. (Dave Rolsky)
1065
1066     * Moose::Cookbook::Extending::Recipe1
1067       - This a new recipe, an overview of various ways to write Moose
1068         extensions (Dave Rolsky)
1069
1070     * Moose::Cookbook::Extending::Recipe3
1071     * Moose::Cookbook::Extending::Recipe4
1072       - These used to be Extending::Recipe1 and Extending::Recipe2,
1073         respectively.
1074
1075 0.55_03 Fri August 29, 2008
1076     * No changes from 0.55_02 except increasing the Class::MOP
1077       dependency to 0.64_07.
1078
1079 0.55_02 Fri August 29, 2008
1080     * Makefile.PL and Moose.pm
1081       - explicitly require Perl 5.8.0+ (Dave Rolsky)
1082
1083     * Moose::Util::TypeConstraints
1084       - Fix warnings from find_type_constraint if the type is not
1085         found (t0m).
1086
1087     * Moose::Meta::TypeConstraint
1088       - Predicate methods (equals/is_a_type_of/is_subtype_of) now
1089         return false if the type you specify cannot be found in the
1090         type registry, rather than throwing an unhelpful and
1091         coincidental exception. (t0m).
1092         - added docs & test for this (t0m)
1093
1094     * Moose::Meta::TypeConstraint::Registry
1095       - add_type_constraint now throws an exception if a parameter is
1096         not supplied (t0m).
1097         - added docs & test for this (t0m)
1098
1099     * Moose::Cookbook::FAQ
1100       - Added a faq entry on the difference between "role" and "trait"
1101         (t0m)
1102
1103     * Moose::Meta::Role
1104       - Fixed a bug that caused role composition to not see a required
1105         method when that method was provided by another role being
1106         composed at the same time. (Dave Rolsky)
1107         - test and bug finding (tokuhirom)
1108
1109 0.55_01 Wed August 20, 2008
1110
1111     !! Calling Moose::init_meta as a function is now         !!
1112     !! deprecated. Please see the Moose.pm docs for details. !!
1113
1114     * Moose::Meta::Method::Constructor
1115       - Fix inlined constructor so that values produced by default
1116         or builder methods are coerced as required. (t0m)
1117         - added test for this (t0m)
1118
1119     * Moose::Meta::Attribute
1120       - A lazy attribute with a default or builder did not attempt to
1121         coerce the default value. The immutable code _did_
1122         coerce. (t0m)
1123         - added test for this (t0m)
1124
1125     * Moose::Exporter
1126       - This is a new helper module for writing "Moose-alike"
1127         modules. This should make the lives of MooseX module authors
1128         much easier. (Dave Rolsky)
1129
1130     * Moose
1131     * Moose::Cookbook::Meta::Recipe5
1132       - Implemented metaclass traits (and wrote a recipe for it):
1133
1134           use Moose -traits => 'Foo'
1135
1136         This should make writing small Moose extensions a little
1137         easier (Dave Rolsky)
1138
1139     * Moose::Cookbook::Basics::Recipe1
1140       - Removed any examples of direct hashref access, and applied an
1141         editorial axe to reduce verbosity. (Dave Rolsky)
1142
1143     * Moose::Cookbook::Basics::Recipe1
1144       - Also applied an editorial axe here. (Dave Rolsky)
1145
1146     * Moose
1147     * Moose::Cookbook::Extending::Recipe1
1148     * Moose::Cookbook::Extending::Recipe2
1149       - Rewrote extending and embedding moose documentation and
1150         recipes to use Moose::Exporter (Dave Rolsky)
1151
1152     * Moose
1153     * Moose::Role
1154       - These two modules now warn when you load them from the main
1155         package "main" package, because we will not export sugar to
1156         main. Previously it just did nothing. (Dave Rolsky)
1157
1158     * Moose::Role
1159       - Now provide an init_meta method just like Moose.pm, and you
1160         can call this to provide an alternate role metaclass. (Dave
1161         Rolsky and nothingmuch)
1162       - get_method_map now respects the package cache flag (nothingmuch)
1163
1164     * Moose::Meta::Role
1165       - Two new methods - add_method and wrap_method_body
1166         (nothingmuch)
1167
1168     * many modules
1169       - Optimizations including allowing constructors to accept hash
1170         refs, making many more classes immutable, and making
1171         constructors immutable. (nothingmuch)
1172
1173 0.55 Sun August 3, 2008
1174     * Moose::Meta::Attribute
1175       - breaking down the way 'handles' methods are
1176         created so that the process can be more easily
1177         overridden by subclasses (stevan)
1178
1179     * Moose::Meta::TypeConstraint
1180       - fixing what is passed into a ->message with
1181         the type constraints (RT #37569)
1182         - added tests for this (Charles Alderman)
1183
1184     * Moose::Util::TypeConstraints
1185       - fix coerce to accept anon types like subtype can (mst)
1186
1187     * Moose::Cookbook
1188       - reorganized the recipes into sections - Basics, Roles, Meta,
1189         Extending - and wrote abstracts for each section (Dave Rolsky)
1190
1191     * Moose::Cookbook::Basics::Recipe10
1192       - A new recipe that demonstrates operator overloading
1193         in combination with Moose. (bluefeet)
1194
1195     * Moose::Cookbook::Meta::Recipe1
1196       - an introduction to what meta is and why you'd want to make
1197         your own metaclass extensions (Dave Rolsky)
1198
1199     * Moose::Cookbook::Meta::Recipe4
1200       - a very simple metaclass example (Dave Rolsky)
1201
1202     * Moose::Cookbook::Extending::Recipe1
1203       - how to write a Moose-alike module to use your own object base
1204         class (Dave Rolsky)
1205
1206     * Moose::Cookbook::Extending::Recipe2
1207       - how to write modules with an API just like C<Moose.pm> (Dave
1208         Rolsky)
1209
1210     * all documentation
1211       - Tons of fixes, both syntactical and grammatical (Dave
1212         Rolsky, Paul Fenwick)
1213
1214 0.54 Thurs. July 3, 2008
1215     ... this is not my day today ...
1216
1217     * Moose::Meta::Attribute
1218       - fixed legal_options_for_inheritance such that
1219         clone_and_inherit options still works for
1220         Class::MOP::Attribute objects and therefore
1221         does not break MooseX::AttributeHelpers
1222         (stevan)
1223
1224 0.53 Thurs. July 3, 2008
1225     * Whoops, I guess I should run 'make manifest' before
1226       actually releasing the module. No actual changes
1227       in this release, except the fact that it includes
1228       the changes that I didn't include in the last
1229       release. (stevan--)
1230
1231 0.52 Thurs. July 3, 2008
1232     * Moose
1233       - added "FEATURE REQUESTS" section to the Moose docs
1234         to properly direct people (stevan) (RT #34333)
1235       - making 'extends' croak if it is passed a Role since
1236         this is not ever something you want to do
1237         (fixed by stevan, found by obra)
1238         - added tests for this (stevan)
1239
1240     * Moose::Object
1241       - adding support for DOES (as in UNIVERSAL::DOES)
1242         (nothingmuch)
1243         - added test for this
1244
1245     * Moose::Meta::Attribute
1246       - added legal_options_for_inheritance (wreis)
1247         - added tests for this (wreis)
1248
1249     * Moose::Cookbook::Snacks::*
1250       - removed some of the unfinished snacks that should
1251         not have been released yet. Added some more examples
1252         to the 'Keywords' snack. (stevan)
1253
1254     * Moose::Cookbook::Style
1255       - added general Moose "style guide" of sorts to the
1256         cookbook (nothingmuch) (RT #34335)
1257
1258     * t/
1259       - added more BUILDARGS tests (stevan)
1260
1261 0.51 Thurs. Jun 26, 2008
1262     * Moose::Role
1263       - add unimport so "no Moose::Role" actually does
1264         something (sartak)
1265
1266     * Moose::Meta::Role::Application::ToRole
1267       - when RoleA did RoleB, and RoleA aliased a method from RoleB in
1268         order to provide its own implementation, that method still got
1269         added to the list of required methods for consumers of
1270         RoleB. Now an aliased method is only added to the list of
1271         required methods if the role doing the aliasing does not
1272         provide its own implementation. See Recipe 11 for an example
1273         of all this. (Dave Rolsky)
1274         - added tests for this
1275
1276     * Moose::Meta::Method::Constructor
1277       - when a single argument that wasn't a hashref was provided to
1278         an immutabilized constructor, the error message was very
1279         unhelpful, as opposed to the non-immutable error. Reported by
1280         dew. (Dave Rolsky)
1281         - added test for this (Dave Rolsky)
1282
1283     * Moose::Meta::Attribute
1284       - added support for meta_attr->does("ShortAlias") (sartak)
1285         - added tests for this (sartak)
1286       - moved the bulk of the `handles` handling to the new
1287         install_delegation method (Stevan)
1288
1289     * Moose::Object
1290       - Added BUILDARGS, a new step in new()
1291
1292     * Moose::Meta::Role::Application::RoleSummation
1293       - fix typos no one ever sees (sartak)
1294
1295     * Moose::Util::TypeConstraints
1296     * Moose::Meta::TypeConstraint
1297     * Moose::Meta::TypeCoercion
1298       - Attempt to work around the ??{ } vs. threads issue
1299         (not yet fixed)
1300       - Some null_constraint optimizations
1301
1302 0.50 Thurs. Jun 11, 2008
1303     - Fixed a version number issue by bumping all modules
1304       to 0.50.
1305
1306 0.49 Thurs. Jun 11, 2008
1307     !! This version now approx. 20-25% !!
1308     !! faster with new Class::MOP 0.59 !!
1309
1310     * Moose::Meta::Attribute
1311       - fixed how the is => (ro|rw) works with
1312         custom defined reader, writer and accessor
1313         options.
1314         - added docs for this (TODO).
1315         - added tests for this (Thanks to Penfold)
1316       - added the custom attribute alias for regular
1317         Moose attributes which is "Moose"
1318       - fix builder and default both being used
1319         (groditi)
1320
1321     * Moose
1322       Moose::Meta::Class
1323       Moose::Meta::Attribute
1324       Moose::Meta::Role
1325       Moose::Meta::Role::Composite
1326       Moose::Util::TypeConstraints
1327       - switched usage of reftype to ref because
1328         it is much faster
1329
1330     * Moose::Meta::Role
1331       - changing add_package_symbol to use the new
1332         HASH ref form
1333
1334     * Moose::Object
1335       - fixed how DEMOLISHALL is called so that it
1336         can be overrided in subclasses (thanks to Sartak)
1337         - added test for this (thanks to Sartak)
1338
1339     * Moose::Util::TypeConstraints
1340       - move the ClassName type check code to
1341         Class::MOP::is_class_loaded (thanks to Sartak)
1342
1343     * Moose::Cookbook::Recipe11
1344       - add tests for this (thanks to tokuhirom)
1345
1346 0.48 Thurs. May 29, 2008
1347     (early morning release engineering)--
1348
1349     - fixing the version in Moose::Meta::Method::Destructor
1350       which was causing the indexer to choke
1351
1352 0.47 Thurs. May 29, 2008
1353     (late night release engineering)--
1354
1355     - fixing the version is META.yml, no functional
1356       changes in this release
1357
1358 0.46 Wed. May 28, 2008
1359     !! This version now approx. 20-25% !!
1360     !! faster with new Class::MOP 0.57 !!
1361
1362     * Moose::Meta::Class
1363       - some optimizations of the &initialize method
1364         since it is called so often by &meta
1365
1366     * Moose::Meta::Class
1367       Moose::Meta::Role
1368       - now use the get_all_package_symbols from the
1369         updated Class::MOP, test suite is now 10 seconds
1370         faster
1371
1372     * Moose::Meta::Method::Destructor
1373       - is_needed can now also be called as a class
1374         method for immutablization to check if the
1375         destructor object even needs to be created
1376         at all
1377
1378     * Moose::Meta::Method::Destructor
1379       Moose::Meta::Method::Constructor
1380       - added more descriptive error message to help
1381         keep people from wasting time tracking an error
1382         that is easily fixed by upgrading.
1383
1384 0.45 Saturday, May 24, 2008
1385     * Moose
1386       - Because of work in Class::MOP 0.57, all
1387         XS based functionality is now optional
1388         and a Pure Perl version is supplied
1389         - the CLASS_MOP_NO_XS environment variable
1390           can now be used to force non-XS versions
1391           to always be used
1392         - several of the packages have been tweaked
1393           to take care of this, mostly we added
1394           support for the package_name and name
1395           variables in all the Method metaclasses
1396       - before/around/after method modifiers now
1397         support regexp matching of names
1398         (thanks to Takatoshi Kitano)
1399         - tests added for this
1400         - NOTE: this only works for classes, it
1401           is currently not supported in roles,
1402           but, ... patches welcome
1403       - All usage of Carp::confess have been replaced
1404         by Carp::croak in the "keyword" functions since
1405         the stack trace is usually not helpful
1406
1407     * Moose::Role
1408       - All usage of Carp::confess have been replaced
1409         by Carp::croak in the "keyword" functions since
1410         the stack trace is usually not helpful
1411       - The 'has' keyword for roles now accepts the
1412         same array ref form that Moose.pm does
1413         (has [qw/foo bar/] => (is => 'rw', ...))
1414         - added test for this
1415
1416     * Moose::Meta::Attribute
1417       - trigger on a ro-attribute is no longer an
1418         error, as it's useful to trigger off of the
1419         constructor
1420
1421     * Moose::Meta::Class
1422       - added same 'add_package_symbol' fix as in
1423         Class::MOP 0.57
1424
1425     * Moose::Util
1426       - does_role now handles non-Moose classes
1427         more gracefully
1428         - added tests for this
1429       - added the 'add_method_modifier' function
1430         (thanks to Takatoshi Kitano)
1431
1432     * Moose::Util::TypeConstraints
1433       - subtypes of parameterizable types now are
1434         themselves parameterizable types
1435
1436     * Moose::Meta::Method::Constructor
1437       - fixed bug where trigger was not being
1438         called by the inlined immutable
1439         constructors
1440         - added test for this (thanks to Caelum)
1441
1442     * Moose::Meta::Role::Application::ToInstance
1443       - now uses the metaclass of the instance
1444         (if possible) to create the anon-class
1445         (thanks Jonathan Rockway)
1446
1447     * Moose::Cookbook::Recipe22
1448       - added the meta-attribute trait recipe
1449         (thanks to Sartak)
1450
1451     * t/
1452       - fixed hash-ordering test bug that was
1453         causing occasional cpantester failures
1454       - renamed the t/000_recipe/*.t tests to be
1455         more descriptive (thanks to Sartak)
1456
1457 0.44 Sat. May 10, 2008
1458     * Moose
1459       - made make_immutable warning cluck to
1460         show where the error is (thanks mst)
1461
1462     * Moose::Object
1463       - BUILDALL and DEMOLISHALL now call
1464         ->body when looping through the
1465         methods, to avoid the overloaded
1466         method call.
1467       - fixed issue where DEMOLISHALL was
1468         eating the $@ values, and so not
1469         working correctly, it still kind of
1470         eats them, but so does vanilla perl
1471         - added tests for this
1472
1473     * Moose::Cookbook::Recipe7
1474       - added new recipe for immutable
1475         functionality (thanks Dave Rolsky)
1476
1477     * Moose::Cookbook::Recipe9
1478       - added new recipe for builder and
1479         lazy_build (thanks Dave Rolsky)
1480
1481     * Moose::Cookbook::Recipe11
1482       - added new recipe for method aliasing
1483         and exclusion with Roles (thanks Dave Rolsky)
1484
1485     * t/
1486       - fixed Win32 test failure (thanks spicyjack)
1487
1488     ~ removed Build.PL and Module::Build compat
1489       since Module::Install has done that.
1490
1491 0.43 Wed. April, 30, 2008
1492     * NOTE TO SELF:
1493         drink more coffee before
1494         doing release engineering
1495
1496     - whoops, forgot to do the smolder tests,
1497       and we broke some of the custom meta-attr
1498       modules. This fixes that.
1499
1500 0.42 Mon. April 28, 2008
1501     - some bad tests slipped by, nothing else
1502       changed in this release (cpantesters++)
1503
1504     - upped the Class::MOP dependency to 0.55
1505       since we have tests which need the C3
1506       support
1507
1508 0.41 Mon. April 28, 2008
1509     ~~ numerous documentation updates ~~
1510
1511     - Changed all usage of die to Carp::croak for better
1512       error reporting (initial patch by Tod Hagan)
1513
1514     ** IMPORTANT NOTE **
1515     - the make_immutable keyword is now deprecated, don't
1516       use it in any new code and please fix your old code
1517       as well. There will be 2 releases, and then it will
1518       be removed.
1519
1520     * Moose
1521       Moose::Role
1522       Moose::Meta::Class
1523       - refactored the way inner and super work to avoid
1524         any method/@ISA cache penalty (nothingmuch)
1525
1526     * Moose::Meta::Class
1527       - fixing &new_object to make sure trigger gets the
1528         coerced value (spotted by Charles Alderman on the
1529         mailing list)
1530         - added test for this
1531
1532     * Moose::Meta::Method::Constructor
1533       - immutable classes which had non-lazy attributes were calling
1534         the default generating sub twice in the constructor. (bug
1535         found by Jesse Luehrs, fixed by Dave Rolsky)
1536         - added tests for this (Dave Rolsky)
1537       - fix typo in initialize_body method (nothingmuch)
1538
1539     * Moose::Meta::Method::Destructor
1540       - fix typo in initialize_body method (nothingmuch)
1541
1542     * Moose::Meta::Method::Overriden
1543       Moose::Meta::Method::Augmented
1544       - moved the logic for these into their own
1545         classes (nothingmuch)
1546
1547     * Moose::Meta::Attribute
1548       - inherited attributes may now be extended without
1549         restriction on the type ('isa', 'does') (Sartak)
1550         - added tests for this (Sartak)
1551       - when an attribute property is malformed (such as lazy without
1552         a default), give the name of the attribute in the error
1553         message (Sartak)
1554       - added the &applied_traits and &has_applied_traits methods
1555         to allow introspection of traits
1556         - added tests for this
1557       - moved 'trait' and 'metaclass' argument handling to here from
1558         Moose::Meta::Class
1559       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
1560         '+foo' syntax) (nothingmuch)
1561         - added tests for this (t0m)
1562
1563     * Moose::Object
1564       - localize $@ inside DEMOLISHALL to avoid it
1565         eating $@ (found by Ernesto)
1566         - added test for this (thanks to Ernesto)
1567
1568     * Moose::Util::TypeConstraints
1569       - &find_type_constraint now DWIMs when given an
1570         type constraint object or name (nothingmuch)
1571       - &find_or_create_type_constraint superseded with a number of more
1572         specific functions:
1573         - find_or_create_{isa,does}_type_constraint
1574         - find_or_parse_type_constraint
1575
1576     * Moose::Meta::TypeConstraint
1577       Moose::Meta::TypeConstraint::Class
1578       Moose::Meta::TypeConstraint::Role
1579       Moose::Meta::TypeConstraint::Enum
1580       Moose::Meta::TypeConstraint::Union
1581       Moose::Meta::TypeConstraint::Parameterized
1582         - added the &equals method for comparing two type
1583           constraints (nothingmuch)
1584           - added tests for this (nothingmuch)
1585
1586     * Moose::Meta::TypeConstraint
1587       - add the &parents method, which is just an alias to &parent.
1588         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
1589
1590     * Moose::Meta::TypeConstraint::Class
1591       - added the class attribute for introspection purposes
1592         (nothingmuch)
1593         - added tests for this
1594
1595     * Moose::Meta::TypeConstraint::Enum
1596       Moose::Meta::TypeConstraint::Role
1597       - broke these out into their own classes (nothingmuch)
1598
1599     * Moose::Cookbook::Recipe*
1600       - fixed references to test file locations in the POD
1601         and updated up some text for new Moose features
1602         (Sartak)
1603
1604     * Moose::Util
1605       - Added &resolve_metaclass_alias, a helper function for finding an actual
1606         class for a short name (e.g. in the traits list)
1607
1608 0.40 Fri. March 14, 2008
1609     - I hate Pod::Coverage
1610
1611 0.39 Fri. March 14, 2008
1612     * Moose
1613       - documenting the use of '+name' with attributes
1614         that come from recently composed roles. It makes
1615         sense, people are using it, and so why not just
1616         officially support it.
1617       - fixing the 'extends' keyword so that it will not
1618         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
1619
1620     * oose
1621       - added the perl -Moose=+Class::Name feature to allow
1622         monkeypatching of classes in one liners
1623
1624     * Moose::Util
1625       - fixing the 'apply_all_roles' keyword so that it will not
1626         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
1627
1628     * Moose::Meta::Class
1629       - added ->create method which now supports roles (thanks to jrockway)
1630         - added tests for this
1631       - added ->create_anon_class which now supports roles and caching of
1632         the results (thanks to jrockway)
1633         - added tests for this
1634       - made ->does_role a little more forgiving when it is
1635         checking a Class::MOP era metaclasses.
1636
1637     * Moose::Meta::Role::Application::ToInstance
1638       - it is now possible to pass extra params to be used when
1639         a role is applied to an the instance (rebless_params)
1640         - added tests for this
1641
1642     * Moose::Util::TypeConstraints
1643       - class_type now accepts an optional second argument for a
1644         custom message. POD anotated accordingly (groditi)
1645         - added tests for this
1646       - it is now possible to make anon-enums by passing 'enum' an
1647         ARRAY ref instead of the $name => @values. Everything else
1648         works as before.
1649         - added tests for this
1650
1651     * t/
1652       - making test for using '+name' on attributes consumed
1653         from a role, it works and makes sense too.
1654
1655     * Moose::Meta::Attribute
1656       - fix handles so that it doesn't return nothing
1657         when the method cannot be found, not sure why
1658         it ever did this originally, this means we now
1659         have slightly better support for AUTOLOADed
1660         objects
1661         - added more delegation tests
1662       - adding ->does method to this so as to better
1663         support traits and their introspection.
1664         - added tests for this
1665
1666     * Moose::Object
1667       - localizing the Data::Dumper configurations so
1668         that it does not pollute others (RT #33509)
1669       - made ->does a little more forgiving when it is
1670         passed Class::MOP era metaclasses.
1671
1672 0.38 Fri. Feb. 15, 2008
1673     * Moose::Meta::Attribute
1674       - fixed initializer to correctly do
1675         type checking and coercion in the
1676         callback
1677         - added tests for this
1678
1679     * t/
1680       - fixed some finicky tests (thanks to konobi)
1681
1682 0.37 Thurs. Feb. 14, 2008
1683     * Moose
1684       - fixed some details in Moose::init_meta
1685         and its superclass handling (thanks thepler)
1686         - added tests for this (thanks thepler)
1687       - 'has' now dies if you don't pass in name
1688         value pairs
1689       - added the 'make_immutable' keyword as a shortcut
1690         to make_immutable
1691
1692     * Moose::Meta::Class
1693       Moose::Meta::Method::Constructor
1694       Moose::Meta::Attribute
1695       - making (init_arg => undef) work here too
1696         (thanks to nothingmuch)
1697
1698     * Moose::Meta::Attribute
1699       Moose::Meta::Method::Constructor
1700       Moose::Meta::Method::Accessor
1701       - make lazy attributes respect attr initializers (rjbs)
1702         - added tests for this
1703
1704     * Moose::Util::TypeConstraints
1705       Moose::Util::TypeConstraints::OptimizedConstraints
1706       Moose::Meta::TypeConstraints
1707       Moose::Meta::Attribute
1708       Moose::Meta::Method::Constructor
1709       Moose::Meta::Method::Accessor
1710       - making type errors use the
1711         assigned message (thanks to Sartak)
1712         - added tests for this
1713
1714     * Moose::Meta::Method::Destructor
1715       - making sure DESTROY gets inlined properly
1716         with successive DEMOLISH calls (thanks to manito)
1717
1718     * Moose::Meta::Attribute
1719       Moose::Meta::Method::Accessor
1720       - fixed handling of undef with type constraints
1721         (thanks to Ernesto)
1722         - added tests for this
1723
1724     * Moose::Util
1725       - added &get_all_init_args and &get_all_attribute_values
1726         (thanks to Sartak and nothingmuch)
1727
1728 0.36 Sat. Jan. 26, 2008
1729     * Moose::Role
1730       Moose::Meta::Attribute
1731       - role type tests now support when roles are
1732         applied to non-Moose classes (found by ash)
1733         - added tests for this (thanks to ash)
1734       - couple extra tests to boost code coverage
1735
1736     * Moose::Meta::Method::Constructor
1737       - improved fix for handling Class::MOP attributes
1738         - added test for this
1739
1740     * Moose::Meta::Class
1741       - handled the add_attribute($attribute_meta_object)
1742         case correctly
1743         - added test for this
1744
1745 0.35 Tues. Jan. 22, 2008
1746     * Moose::Meta::Method::Constructor
1747       - fix to make sure even Class::MOP attributes
1748         are handled correctly (Thanks to Dave Rolsky)
1749         - added test for this (also Dave Rolsky)
1750
1751     * Moose::Meta::Class
1752       - improved error message on _apply_all_roles,
1753         you should now use Moose::Util::apply_all_roles
1754         and you shouldnt have been using a _ prefixed
1755         method in the first place ;)
1756
1757 0.34 Mon. Jan. 21, 2008
1758     ~~~ more misc. doc. fixes ~~~
1759     ~~ updated copyright dates ~~
1760
1761     Moose is now a postmodern object system :)
1762       - (see the POD for details)
1763
1764     * <<Role System Refactoring>>
1765     - this release contains a major reworking and
1766       cleanup of the role system
1767       - 100% backwards compat.
1768       - Role application now restructured into seperate
1769         classes based on type of applicants
1770       - Role summation (combining of more than one role)
1771         is much cleaner and anon-classes are no longer
1772         used in this process
1773       - new Composite role metaclass
1774       - runtime application of roles to instances
1775         is now more efficient and re-uses generated
1776         classes when applicable
1777
1778     * <<New Role composition features>>
1779       - methods can now be excluded from a given role
1780         during composition
1781       - methods can now be aliased to another name (and
1782         still retain the original as well)
1783
1784     * Moose::Util::TypeConstraints::OptimizedConstraints
1785       - added this module (see above)
1786
1787     * Moose::Meta::Class
1788       - fixed the &_process_attribute method to be called
1789         by &add_attribute, so that the API is now correct
1790
1791     * Moose::Meta::Method::Accessor
1792       - fixed bug when passing a list of values to
1793         an accessor would get (incorrectly) ignored.
1794         Thanks to Sartak for finding this ;)
1795         - added tests for this (Sartak again)
1796
1797     * Moose::Meta::Method::Accessor
1798       Moose::Meta::Method::Constructor
1799       Moose::Meta::Attribute
1800       Moose::Meta::TypeConstraint
1801       Moose::Meta::TypeCoercion
1802       - lots of cleanup of such things as:
1803         - generated methods
1804         - type constraint handling
1805         - error handling/messages
1806         (thanks to nothingmuch)
1807
1808     * Moose::Meta::TypeConstraint::Parameterizable
1809       - added this module to support the refactor
1810         in Moose::Meta::TypeConstraint::Parameterized
1811
1812     * Moose::Meta::TypeConstraint::Parameterized
1813       - refactored how these types are handled so they
1814         are more generic and not confined to ArrayRef
1815         and HashRef only
1816
1817     * t/
1818       - shortened some file names for better VMS support (RT #32381)
1819
1820 0.33 Fri. Dec. 14, 2007
1821     !! Moose now loads 2 x faster !!
1822     !!  with new Class::MOP 0.49  !!
1823
1824     ++ new oose.pm module to make command line
1825        Moose-ness easier (see POD docs for more)
1826
1827     * Moose::Meta::Class
1828     * Moose::Meta::Role
1829       - several tweaks to take advantage of the
1830         new method map caching in Class::MOP
1831
1832     * Moose::Meta::TypeConstraint::Parameterized
1833       - allow subtypes of ArrayRef and HashRef to
1834         be used as a container (sartak)
1835         - added tests for this
1836       - basic support for coercion to ArrayRef and
1837         HashRef for containers (sartak)
1838         - added tests for this
1839
1840     * Moose::Meta::TypeCoercion
1841       - coercions will now create subtypes as needed
1842         so you can now add coercions to parameterized
1843         types without having to explictly define them
1844         - added tests for this
1845
1846     * Moose::Meta::Method::Accessor
1847       - allow subclasses to decide whether we need
1848         to copy the value into a new variable (sartak)
1849
1850 0.32 Tues. Dec. 4, 2007
1851     * Moose::Util::TypeConstraints
1852       - fixing how subtype aliases of unions work
1853         they should inherit the parent's coercion
1854         - added tests for this
1855       - you can now define multiple coercions on
1856         a single type at different times instead of
1857         having to do it all in one place
1858         - added tests for this
1859
1860     * Moose::Meta::TypeConstraint
1861       - there is now a default constraint of sub { 1 }
1862         instead of Moose::Util::TypeConstraints setting
1863         this for us
1864
1865     * Moose::Meta::TypeCoercion
1866     * Moose::Meta::TypeCoercion::Union
1867       - added the &has_coercion_for_type and
1868         &add_type_coercions methods to support the
1869         new features above (although you cannot add
1870         more type coercions for Union types)
1871
1872 0.31 Mon. Nov. 26, 2007
1873     * Moose::Meta::Attribute
1874       - made the +attr syntax handle extending types with
1875         parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
1876         now works if the original foo is an ArrayRef.
1877         - added tests for this.
1878       - delegation now works even if the attribute does not
1879         have a reader method using the get_read_method_ref
1880         method from Class::MOP::Attribute.
1881         - added tests for this
1882         - added docs for this
1883
1884     * Moose::Util::TypeConstraints
1885       - passing no "additional attribute info" to
1886         &find_or_create_type_constraint will no longer
1887         attempt to create an __ANON__ type for you,
1888         instead it will just return undef.
1889         - added docs for this
1890
1891 0.30 Fri. Nov. 23, 2007
1892     * Moose::Meta::Method::Constructor
1893       -builder related bug in inlined constructor. (groditi)
1894
1895     * Moose::Meta::Method::Accessor
1896       - genereate unnecessary calls to predicates and refactor
1897         code generation for runtime speed (groditi)
1898
1899     * Moose::Util::TypeConstraints
1900       - fix ClassName constraint to introspect symbol table (mst)
1901         - added more tests for this (mst)
1902       - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
1903         with work correctly.
1904         - added tests for this
1905
1906     * Moose::Cookbook
1907       - adding the link to Recipie 11 (written by Sartak)
1908         - adding test for SYNOPSIS code
1909
1910     * t/
1911       - New tests for builder bug. Upon instantiation, if an
1912         attribute had a builder, no value and was not lazy the
1913         builder default was not getting run, oops. (groditi)
1914
1915 0.29 Tues. Nov. 13, 2007
1916     * Moose::Meta::Attribute
1917       - Fix error message on missing builder method (groditi)
1918
1919     * Moose::Meta::Method::Accessor
1920       - Fix error message on missing builder method (groditi)
1921
1922     * t/
1923       - Add test to check for the correct error message when
1924         builder method is missing (groditi)
1925
1926 0.28 Tues. Nov. 13, 2007
1927     - 0.27 packaged incorrectly (groditi)
1928
1929 0.27 Tues. Nov. 13, 2007
1930     * Moose::Meta::Attribute
1931       - Added support for the new builder option (groditi)
1932       - Added support for lazy_build option (groditi)
1933       - Changed slot initialization for predicate changes (groditi)
1934
1935     * Moose::Meta::Method::Accessor
1936       - Added support for lazy_build option (groditi)
1937       - Fix inline methods to work with corrected predicate
1938         behavior (groditi)
1939
1940     * Moose::Meta::Method::Constructor
1941       - Added support for lazy_build option (groditi)
1942
1943     * t/
1944       - tests for builder and lazy_build (groditi)
1945
1946     * fixing some misc. bits in the docs that
1947       got mentioned on CPAN Forum & perlmonks
1948
1949     * Moose::Meta::Role
1950       - fixed how required methods are handled
1951         when they encounter overriden or modified
1952         methods from a class (thanks to confound).
1953         - added tests for this
1954
1955     * Moose::Util::TypeConstraint
1956       - fixed the type notation parser so that
1957         the | always creates a union and so is
1958         no longer a valid type char (thanks to
1959         konobi, mugwump and #moose for working
1960         this one out.)
1961         - added more tests for this
1962
1963 0.26 Thurs. Sept. 27, 2007
1964     == New Features ==
1965
1966     * Parameterized Types
1967       We now support parameterized collection types, such as:
1968           ArrayRef[Int]    # array or integers
1969           HashRef[Object]  # a hash with object values
1970       They can also be nested:
1971           ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
1972       And work with the type unions as well:
1973           ArrayRef[Int | Str]  # array of integers of strings
1974
1975     * Better Framework Extendability
1976       Moose.pm is now "extendable" such that it is now much
1977       easier to extend the framework and add your own keywords
1978       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
1979       section of the Moose.pm docs.
1980
1981     * Moose Snacks!
1982       In an effort to begin documenting some of the various
1983       details of Moose as well as some common idioms, we have
1984       created Moose::Cookbook::Snacks as a place to find
1985       small (easily digestable) nuggets of Moose code.
1986
1987     ====
1988     ~ Several doc updates/cleanup thanks to castaway ~
1989
1990     - converted build system to use Module::Install instead of
1991       Module::Build (thanks to jrockway)
1992
1993     * Moose
1994       - added all the meta classes to the immutable list and
1995         set it to inline the accessors
1996       - fix import to allow Sub::Exporter like { into => }
1997             and { into_level => } (perigrin)
1998       - exposed and documented init_meta() to allow better
1999             embedding and extending of Moose (perigrin)
2000
2001         * t/
2002           - complete re-organization of the test suite
2003           - added some new tests as well
2004           - finally re-enabled the Moose::POOP test since
2005             the new version of DBM::Deep now works again
2006             (thanks rob)
2007
2008     * Moose::Meta::Class
2009       - fixed very odd and very nasty recursion bug with
2010         inner/augment (mst)
2011         - added tests for this (eilara)
2012
2013     * Moose::Meta::Attribute
2014       Moose::Meta::Method::Constructor
2015       Moose::Meta::Method::Accessor
2016       - fixed issue with overload::Overloaded getting called
2017         on non-blessed items. (RT #29269)
2018         - added tests for this
2019
2020     * Moose::Meta::Method::Accessor
2021       - fixed issue with generated accessor code making
2022         assumptions about hash based classes (thanks to dexter)
2023
2024     * Moose::Coookbook::Snacks
2025       - these are bits of documentation, not quite as big as
2026         Recipes but which have no clear place in the module docs.
2027         So they are Snacks! (horray for castaway++)
2028
2029     * Moose::Cookbook::Recipe4
2030       - updated it to use the new ArrayRef[MyType] construct
2031         - updated the accompanying test as well
2032
2033     +++ Major Refactor of the Type Constraint system +++
2034     +++       with new features added as well        +++
2035
2036     * Moose::Util::TypeConstraint
2037       - no longer uses package variable to keep track of
2038         the type constraints, now uses the an instance of
2039         Moose::Meta::TypeConstraint::Registry to do it
2040       - added more sophisticated type notation parsing
2041         (thanks to mugwump)
2042         - added tests for this
2043
2044     * Moose::Meta::TypeConstraint
2045       - some minor adjustments to make subclassing easier
2046       - added the package_defined_in attribute so that we
2047         can track where the type constraints are created
2048
2049     * Moose::Meta::TypeConstraint::Union
2050       - this is now been refactored to be a subclass of
2051         Moose::Meta::TypeConstraint
2052
2053     * Moose::Meta::TypeCoercion::Union
2054       - this has been added to service the newly refactored
2055         Moose::Meta::TypeConstraint::Union and is itself
2056         a subclass of Moose::Meta::TypeCoercion
2057
2058     * Moose::Meta::TypeConstraint::Parameterized
2059       - added this module (taken from MooseX::AttributeHelpers)
2060         to help construct nested collection types
2061         - added tests for this
2062
2063     * Moose::Meta::TypeConstraint::Registry
2064       - added this class to keep track of type constraints
2065
2066 0.25 Mon. Aug. 13, 2007
2067     * Moose
2068       - Documentation update to reference Moose::Util::TypeConstraints
2069         under 'isa' in 'has' for how to define a new type
2070         (thanks to shlomif).
2071
2072     * Moose::Meta::Attribute
2073       - required attributes now will no longer accept undef
2074         from the constructor, even if there is a default and lazy
2075         - added tests for this
2076       - default subroutines must return a value which passes the
2077         type constraint
2078         - added tests for this
2079
2080     * Moose::Meta::Attribute
2081     * Moose::Meta::Method::Constructor
2082     * Moose::Meta::Method::Accessor
2083       - type-constraint tests now handle overloaded objects correctly
2084         in the error message
2085         - added tests for this (thanks to EvanCarroll)
2086
2087     * Moose::Meta::TypeConstraint::Union
2088       - added (has_)hand_optimized_constraint to this class so that
2089         it behaves as the regular Moose::Meta::TypeConstraint does.
2090
2091     * Moose::Meta::Role
2092       - large refactoring of this code
2093       - added several more tests
2094         - tests for subtle conflict resolition issues
2095           added, but not currently running
2096           (thanks to kolibre)
2097
2098     * Moose::Cookbook::Recipe7
2099       - added new recipe for augment/inner functionality
2100         (still in progress)
2101         - added test for this
2102
2103     * Moose::Spec::Role
2104       - a formal definition of roles (still in progress)
2105
2106     * Moose::Util
2107       - utilities for easier working with Moose classes
2108         - added tests for these
2109
2110     * Test::Moose
2111       - This contains Moose specific test functions
2112         - added tests for these
2113
2114 0.24 Tues. July 3, 2007
2115     ~ Some doc updates/cleanup ~
2116
2117     * Moose::Meta::Attribute
2118       - added support for roles to be given as parameters
2119         to the 'handles' option.
2120         - added tests and docs for this
2121       - the has '+foo' attribute form now accepts changes to
2122         the lazy option, and the addition of a handles option
2123         (but not changing the handles option)
2124         - added tests and docs for this
2125
2126     * Moose::Meta::Role
2127       - required methods are now fetched using find_method_by_name
2128         so that required methods can come from superclasses
2129         - adjusted tests for this
2130
2131 0.23 Mon. June 18, 2007
2132     * Moose::Meta::Method::Constructor
2133       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
2134     * Moose::Meta::Class
2135       - Modify make_immutable to work with the new Class::MOP immutable
2136         mechanism + POD + very basic test (groditi)
2137     * Moose::Meta::Attribute
2138       - Fix handles to use goto() so that caller() comes out properly on
2139         the other side (perigrin)
2140
2141 0.22 Thurs. May 31, 2007
2142     * Moose::Util::TypeConstraints
2143       - fix for prototype undeclared issue when Moose::Util::TypeConstraints
2144         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
2145         prototypes for functions
2146       - added the ClassName type constraint, this checks for strings
2147         which will respond true to ->isa(UNIVERSAL).
2148         - added tests and docs for this
2149       - subtyping just in name now works correctly by making the
2150         default for where be { 1 }
2151         - added test for this
2152
2153     * Moose::Meta::Method::Accessor
2154       - coerce and lazy now work together correctly, thanks to
2155         merlyn for finding this bug
2156         - tests added for this
2157       - fix reader presedence bug in Moose::Meta::Attribute + tests
2158
2159     * Moose::Object
2160       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
2161         a HASH-ref and missed. This produces better error messages then
2162         having it die cause undef is not a HASH.
2163         - added tests for this
2164
2165 0.21 Thursday, May 2nd, 2007
2166     * Moose
2167       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
2168       - modified unimport to remove super and inner along with the rest
2169         - altered unimport tests to handle this
2170
2171     * Moose::Role
2172       - altered super export to populate SUPER_SLOT
2173
2174     * Moose::Meta::Class
2175       - altered augment and override modifier application to use *_SLOT
2176         - modified tests for these to unimport one test class each to test
2177
2178     * Moose::Meta::Role
2179       - fixed issue where custom attribute metaclasses
2180         where not handled correctly in roles
2181         - added tests for this
2182
2183     * Moose::Meta::Class
2184       - fixed issue where extending metaclasses with
2185         roles would blow up. Thanks to Aankhen`` for
2186         finding this insidious error, and it's solution.
2187
2188     ~~ lots of spelling and grammer fixes in the docs,
2189        many many thanks to rlb3 and Aankhen for these :)
2190
2191 0.20 Friday, April 6th, 2007
2192     >> I messed up the SKIP logic in one test
2193        so this release is just to fix that.
2194
2195     * Moose
2196       - 'has' now also accepts an ARRAY ref
2197         to create multiple attrs (see docs)
2198         (thanks to konobi for this)
2199          - added tests and docs
2200
2201 0.19 Thurs. April 5th, 2007
2202     ~~ More documentation updates ~~
2203
2204     * Moose::Util::TypeConstraints
2205       - 'type' now supports messages as well
2206         thanks to phaylon for finding this
2207         - added tests for this
2208       - added &list_all_type_constraints and
2209         &list_all_builtin_type_constraints
2210         functions to facilitate introspection.
2211
2212     * Moose::Meta::Attribute
2213       - fixed regexp 'handles' declarations
2214         to build the list of delegated methods
2215         correctly (and not override important
2216         things like &new) thanks to ashleyb
2217         for finding this
2218         - added tests and docs for this
2219       - added the 'documentation' attributes
2220         so that you can actually document your
2221         attributes and inspect them through the
2222         meta-object.
2223         - added tests and docs for this
2224
2225     * Moose::Meta::Class
2226       - when loading custom attribute metaclasses
2227         it will first look in for the class in the
2228         Moose::Meta::Attribute::Custom::$name, and
2229         then default to just loading $name.
2230         - added tests and docs for this
2231
2232     * Moose::Meta::TypeConstraint
2233       - type constraints now stringify to their names.
2234         - added test for this
2235
2236     * misc.
2237       - added tests to assure we work with Module::Refresh
2238       - added stricter test skip logic in the Moose POOP
2239         test, ask Rob Kinyon why.
2240         - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
2241
2242 0.18 Sat. March 10, 2007
2243     ~~ Many, many documentation updates ~~
2244
2245     * misc.
2246       - We now use Class::MOP::load_class to
2247         load all classes.
2248       - added tests to show types and subtypes
2249         working with Declare::Constraints::Simple
2250         and Test::Deep as constraint engines.
2251
2252 0.18_001
2253     !! You must have Class::MOP 0.37_001  !!
2254     !! for this developer release to work !!
2255
2256     This release was primarily adding the immutable
2257     feature to Moose. An immutable class is one which
2258     you promise not to alter. When you set the class
2259     as immutable it will perform various bits of
2260     memoization and inline certain part of the code
2261     (constructors, destructors and accessors). This
2262     minimizes (and in some cases totally eliminates)
2263     one of Moose's biggest performance hits. This
2264     feature is not on by default, and is 100% optional.
2265     It has several configurable bits as well, so you
2266     can pick and choose to your specific needs.
2267
2268     The changes involved in this were fairly wide and
2269     highly specific, but 100% backwards compatible, so
2270     I am not going to enumerate them here. If you are
2271     truely interested in what was changed, please do
2272     a diff :)
2273
2274 0.17 Tues. Nov. 14, 2006
2275     * Moose::Meta::Method::Accessor
2276       - bugfix for read-only accessors which
2277         are have a type constraint and lazy.
2278         Thanks to chansen for finding it.
2279
2280 0.16 Tues. Nov. 14, 2006
2281     ++ NOTE ++
2282     There are some speed improvements in this release,
2283     but they are only the begining, so stay tuned.
2284
2285     * Moose::Object
2286       - BUILDALL and DEMOLISHALL no longer get
2287         called unless they actually need to be.
2288         This gave us a signifigant speed boost
2289         for the cases when there is no BUILD or
2290         DEMOLISH method present.
2291
2292     * Moose::Util::TypeConstraints
2293     * Moose::Meta::TypeConstraint
2294       - added an 'optimize_as' option to the
2295         type constraint, which allows for a
2296         hand optimized version of the type
2297         constraint to be used when possible.
2298       - Any internally created type constraints
2299         now provide an optimized version as well.
2300
2301 0.15 Sun. Nov. 5, 2006
2302     ++ NOTE ++
2303     This version of Moose *must* have Class::MOP 0.36 in order
2304     to work correctly. A number of small internal tweaks have
2305     been made in order to be compatible with that release.
2306
2307     * Moose::Util::TypeConstraints
2308       - added &unimport so that you can clean out
2309         your class namespace of these exported
2310         keywords
2311
2312     * Moose::Meta::Class
2313       - fixed minor issue which occasionally
2314         comes up during global destruction
2315         (thanks omega)
2316       - moved Moose::Meta::Method::Overriden into
2317         its own file.
2318
2319     * Moose::Meta::Role
2320       - moved Moose::Meta::Role::Method into
2321         its own file.
2322
2323     * Moose::Meta::Attribute
2324       - changed how we do type checks so that
2325         we reduce the overall cost, but still
2326         retain correctness.
2327        *** API CHANGE ***
2328       - moved accessor generation methods to
2329         Moose::Meta::Method::Accessor to
2330         conform to the API changes from
2331         Class::MOP 0.36
2332
2333     * Moose::Meta::TypeConstraint
2334       - changed how constraints are compiled
2335         so that we do less recursion and more
2336         iteration. This makes the type check
2337         faster :)
2338       - moved Moose::Meta::TypeConstraint::Union
2339         into its own file
2340
2341     * Moose::Meta::Method::Accessor
2342       - created this from methods formerly found in
2343         Moose::Meta::Attribute
2344
2345     * Moose::Meta::Role::Method
2346       - moved this from Moose::Meta::Role
2347
2348     * Moose::Meta::Method::Overriden
2349       - moved this from Moose::Meta::Class
2350
2351     * Moose::Meta::TypeConstraint::Union
2352       - moved this from Moose::Meta::TypeConstraint
2353
2354 0.14 Mon. Oct. 9, 2006
2355
2356     * Moose::Meta::Attribute
2357       - fixed lazy attributes which were not getting
2358         checked with the type constraint (thanks ashley)
2359         - added tests for this
2360       - removed the over-enthusiastic DWIMery of the
2361         automatic ArrayRef and HashRef defaults, it
2362         broke predicates in an ugly way.
2363         - removed tests for this
2364
2365 0.13 Sat. Sept. 30, 2006
2366     ++ NOTE ++
2367     This version of Moose *must* have Class::MOP 0.35 in order
2368     to work correctly. A number of small internal tweaks have
2369     been made in order to be compatible with that release.
2370
2371     * Moose
2372       - Removed the use of UNIVERSAL::require to be a better
2373         symbol table citizen and remove a dependency
2374         (thanks Adam Kennedy)
2375
2376       **~~ removed experimental & undocumented feature ~~**
2377       - commented out the 'method' and 'self' keywords, see the
2378         comments for more info.
2379
2380     * Moose::Cookbook
2381       - added a FAQ and WTF files to document frequently
2382         asked questions and common problems
2383
2384     * Moose::Util::TypeConstraints
2385       - added GlobRef and FileHandle type constraint
2386         - added tests for this
2387
2388     * Moose::Meta::Attribute
2389       - if your attribute 'isa' ArrayRef of HashRef, and you have
2390         not explicitly set a default, then make the default DWIM.
2391         This will also work for subtypes of ArrayRef and HashRef
2392         as well.
2393       - you can now auto-deref subtypes of ArrayRef or HashRef too.
2394         - new test added for this (thanks to ashley)
2395
2396     * Moose::Meta::Role
2397       - added basic support for runtime role composition
2398         but this is still *highly experimental*, so feedback
2399         is much appreciated :)
2400         - added tests for this
2401
2402     * Moose::Meta::TypeConstraint
2403       - the type constraint now handles the coercion process
2404         through delegation, this is to support the coercion
2405         of unions
2406
2407     * Moose::Meta::TypeConstraint::Union
2408       - it is now possible for coercions to be performed
2409         on a type union
2410         - added tests for this (thanks to konobi)
2411
2412     * Moose::Meta::TypeCoercion
2413       - properly capturing error when type constraint
2414         is not found
2415
2416     * Build.PL
2417       - Scalar::Util 1.18 is bad on Win32, so temporarily
2418         only require version 1.17 for Win32 and cygwin.
2419         (thanks Adam Kennedy)
2420
2421 0.12 Sat. Sept. 1, 2006
2422     * Moose::Cookbook
2423       - Recipe5 (subtypes & coercion) has been written
2424
2425     * Moose
2426       - fixed "bad meta" error message to be more descriptive
2427       - fixed &unimport to not remove the &inner and &super
2428         keywords because we need to localize them.
2429       - fixed number of spelling/grammer issues, thanks Theory :)
2430
2431       **~~ experimental & undocumented feature ~~**
2432       - added the method and self keywords, they are basically
2433         just sugar, and they may not stay around.
2434
2435     * Moose::Object
2436       - added &dump method to easily Data::Dumper
2437         an object
2438
2439     * Moose::Meta::TypeConstraint
2440       - added the &is_a_type_of method to check both the current
2441         and the subtype of a method (similar to &isa with classes)
2442
2443     * Moose::Meta::Role
2444       - this is now a subclass of Class::MOP::Module, and no longer
2445         creates the _role_meta ugliness of before.
2446         - fixed tests to reflect this change
2447
2448 0.11 Wed. July 12, 2006
2449     * Moose
2450       - added an &unimport method to remove all the keywords
2451         that Moose will import, simply add 'no Moose' to the
2452         bottom of your class file.
2453
2454     * t/
2455       - fixed some test failures caused by a forgotten test
2456         dependency.
2457
2458 0.10 Thurs. July 6, 2006
2459     * Moose
2460       - improved error message when loading modules so
2461         it is less confusing when you load a role.
2462       - added &calculate_all_roles method to
2463         Moose::Meta::Class and Moose::Meta::Role
2464
2465     NOTE:
2466     This module has been tested against Class::MOP 0.30
2467     but it does not yet utilize the optimizations
2468     it makes available. Stay tuned for that ;)
2469
2470 0.09_03 Fri. June 23, 2006
2471     ++ DEVELOPER RELEASE ++
2472     * Moose
2473       - 'use strict' and 'use warnings' are no longer
2474          needed in Moose classes, Moose itself will
2475          turn them on for you.
2476          - added tests for this
2477       - moved code from exported subs to private methods
2478         in Moose::Meta::Class
2479
2480     * Moose::Role
2481       - as with Moose, strict and warnings are
2482         automatically turned on for you.
2483          - added tests for this
2484
2485     * Moose::Meta::Role
2486       - now handles an edge case for override errors
2487         - added tests for this
2488       - added some more edge case tests
2489
2490 0.09_02 Tues. May 16, 2006
2491     ++ DEVELOPER RELEASE ++
2492     * Moose
2493       - added prototypes to the exported subs
2494       - updated docs
2495
2496     * Moose::Role
2497       - added prototypes to the exported subs
2498       - updated docs
2499
2500     * Moose::Util::TypeConstraints
2501       - cleaned up prototypes for the subs
2502       - updated docs
2503
2504 0.09_01 Fri. May 12, 2006
2505     ++ DEVELOPER RELEASE ++
2506       - This release works in combination with
2507         Class::MOP 0.29_01, it is a developer
2508         release because it uses the a new
2509         instance sub-protocol and a fairly
2510         complete Role implementation. It has
2511         not yet been optimized, so it slower
2512         the the previous CPAN version. This
2513         release also lacks good updated docs,
2514         the official release will have updated docs.
2515
2516     * Moose
2517       - refactored the keyword exports
2518         - 'with' now checks Role validaity and
2519           accepts more than one Role at a time
2520         - 'extends' makes metaclass adjustments as
2521            needed to ensure metaclass compatibility
2522
2523     * Moose::Role
2524       - refactored the keyword exports
2525         - 'with' now checks Role validaity and
2526           accepts more than one Role at a time
2527
2528     * Moose::Util::TypeConstraints
2529       - added the 'enum' keyword for simple
2530         string enumerations which can be used as
2531         type constraints
2532         - see example of usage in t/202_example.t
2533
2534     * Moose::Object
2535       - more careful checking of params to new()
2536
2537     * Moose::Meta::Role
2538       - much work done on the role composition
2539         - many new tests for conflict detection
2540           and composition edge cases
2541         - not enough documentation, I suggest
2542           looking at the tests
2543
2544     * Moose::Meta::Instance
2545       - added new Instance metaclass to support
2546         the new Class::MOP instance protocol
2547
2548     * Moose::Meta::Class
2549       - some small changes to support the new
2550         instance protocol
2551       - some small additions to support Roles
2552
2553     * Moose::Meta::Attribute
2554       - some improvements to the accessor generation code
2555         by nothingmuch
2556       - some small changes to support the new
2557         instance protocol
2558       - (still somewhat) experimental delegation support
2559         with the 'handles' option
2560         - added several tests for this
2561         - no docs for this yet
2562
2563 0.05 Thurs. April 27, 2006
2564     * Moose
2565       - keywords are now exported with Sub::Exporter
2566         thanks to chansen for this commit
2567       - has keyword now takes a 'metaclass' option
2568         to support custom attribute meta-classes
2569         on a per-attribute basis
2570         - added tests for this
2571       - the 'has' keyword not accepts inherited slot
2572         specifications (has '+foo'). This is still an
2573         experimental feature and probably not finished
2574         see t/038_attribute_inherited_slot_specs.t for
2575         more details, or ask about it on #moose
2576         - added tests for this
2577
2578     * Moose::Role
2579       - keywords are now exported with Sub::Exporter
2580
2581     * Moose::Utils::TypeConstraints
2582       - reorganized the type constraint hierarchy, thanks
2583         to nothingmuch and chansen for his help and advice
2584         on this
2585         - added some tests for this
2586       - keywords are now exported with Sub::Exporter
2587         thanks to chansen for this commit
2588
2589     * Moose::Meta::Class
2590       - due to changes in Class::MOP, we had to change
2591         construct_instance (for the better)
2592
2593     * Moose::Meta::Attribute
2594       - due to changes in Class::MOP, we had to add the
2595         initialize_instance_slot method (it's a good thing)
2596
2597     * Moose::Meta::TypeConstraint
2598       - added type constraint unions
2599         - added tests for this
2600       - added the is_subtype_of predicate method
2601         - added tests for this
2602
2603 0.04 Sun. April 16th, 2006
2604     * Moose::Role
2605       - Roles can now consume other roles
2606         - added tests for this
2607       - Roles can specify required methods now with
2608         the requires() keyword
2609         - added tests for this
2610
2611     * Moose::Meta::Role
2612       - ripped out much of it's guts ,.. much cleaner now
2613       - added required methods and correct handling of
2614         them in apply() for both classes and roles
2615         - added tests for this
2616       - no longer adds a does() method to consuming classes
2617         it relys on the one in Moose::Object
2618       - added roles attribute and some methods to support
2619         roles consuming roles
2620
2621     * Moose::Meta::Attribute
2622       - added support for triggers on attributes
2623         - added tests for this
2624       - added support for does option on an attribute
2625         - added tests for this
2626
2627     * Moose::Meta::Class
2628       - added support for attribute triggers in the
2629         object construction
2630         - added tests for this
2631
2632     * Moose
2633       - Moose no longer creates a subtype for your class
2634         if a subtype of the same name already exists, this
2635         should DWIM in 99.9999% of all cases
2636
2637     * Moose::Util::TypeConstraints
2638       - fixed bug where incorrect subtype conflicts were
2639         being reported
2640         - added test for this
2641
2642     * Moose::Object
2643       - this class can now be extended with 'use base' if
2644         you need it, it properly loads the metaclass class now
2645         - added test for this
2646
2647 0.03_02 Wed. April 12, 2006
2648     * Moose
2649       - you must now explictly use Moose::Util::TypeConstraints
2650         it no longer gets exported for you automatically
2651
2652     * Moose::Object
2653       - new() now accepts hash-refs as well as key/value lists
2654       - added does() method to check for Roles
2655         - added tests for this
2656
2657     * Moose::Meta::Class
2658       - added roles attribute along with the add_role() and
2659         does_role() methods
2660         - added tests for this
2661
2662     * Moose::Meta::Role
2663       - now adds a does() method to consuming classes
2664         which tests the class's hierarchy for roles
2665         - added tests for this
2666
2667 0.03_01 Mon. April 10, 2006
2668     * Moose::Cookbook
2669       - added new Role recipe (no content yet, only code)
2670
2671     * Moose
2672       - added 'with' keyword for Role support
2673         - added test and docs for this
2674       - fixed subtype quoting bug
2675         - added test for this
2676
2677     * Moose::Role
2678       - Roles for Moose
2679         - added test and docs
2680
2681     * Moose::Util::TypeConstraints
2682       - added the message keyword to add custom
2683         error messages to type constraints
2684
2685     * Moose::Meta::Role
2686       - the meta role to support Moose::Role
2687         - added tests and docs
2688
2689     * Moose::Meta::Class
2690       - moved a number of things from Moose.pm
2691         to here, they should have been here
2692         in the first place
2693
2694     * Moose::Meta::Attribute
2695       - moved the attribute option macros here
2696         instead of putting them in Moose.pm
2697
2698     * Moose::Meta::TypeConstraint
2699       - added the message attributes and the
2700         validate method
2701         - added tests and docs for this
2702
2703 0.03 Thurs. March 30, 2006
2704     * Moose::Cookbook
2705       - added the Moose::Cookbook with 5 recipes,
2706         describing all the stuff Moose can do.
2707
2708     * Moose
2709       - fixed an issue with &extends super class loading
2710         it now captures errors and deals with inline
2711         packages correctly (bug found by mst, solution
2712         stolen from alias)
2713       - added super/override & inner/augment features
2714         - added tests and docs for these
2715
2716     * Moose::Object
2717       - BUILDALL now takes a reference of the %params
2718         that are passed to &new, and passes that to
2719         each BUILD as well.
2720
2721     * Moose::Util::TypeConstraints
2722       - Type constraints now survive runtime reloading
2723         - added test for this
2724
2725         * Moose::Meta::Class
2726           - fixed the way attribute defaults are handled
2727             during instance construction (bug found by chansen)
2728
2729     * Moose::Meta::Attribute
2730       - read-only attributes now actually enforce their
2731         read-only-ness (this corrected in Class::MOP as
2732         well)
2733
2734 0.02 Tues. March 21, 2006
2735     * Moose
2736       - many more tests, fixing some bugs and
2737         edge cases
2738       - &extends now loads the base module with
2739         UNIVERSAL::require
2740         - added UNIVERSAL::require to the
2741           dependencies list
2742       ** API CHANGES **
2743       - each new Moose class will also create
2744         and register a subtype of Object which
2745         correspond to the new Moose class.
2746       - the 'isa' option in &has now only
2747         accepts strings, and will DWIM in
2748         almost all cases
2749
2750     * Moose::Util::TypeConstraints
2751       - added type coercion features
2752         - added tests for this
2753         - added support for this in attributes
2754           and instance construction
2755       ** API CHANGES **
2756       - type construction no longer creates a
2757         function, it registers the type instead.
2758         - added several functions to get the
2759           registered types
2760
2761     * Moose::Object
2762       - BUILDALL and DEMOLISHALL were broken
2763         because of a mis-named hash key, Whoops :)
2764
2765     * Moose::Meta::Attribute
2766       - adding support for coercion in the
2767         autogenerated accessors
2768
2769     * Moose::Meta::Class
2770       - adding support for coercion in the
2771         instance construction
2772
2773     * Moose::Meta::TypeConstraint
2774     * Moose::Meta::TypeCoercion
2775           - type constraints and coercions are now
2776             full fledges meta-objects
2777
2778 0.01 Wed. March 15, 2006
2779     - Moooooooooooooooooose!!!