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