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