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