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