RT#83929: fix memory leak in union types
[gitmo/Moose.git] / Changes
1 Also see Moose::Manual::Delta for more details of, and workarounds
2 for, noteworthy changes.
3
4 {{$NEXT}}
5
6   [ENHANCEMENTS]
7
8   * The super() subroutine now carps if you pass it arguments. These arguments
9     are always ignored, but we used to ignore them silently. RT #77383.
10
11   * Roles can now override methods from other roles they consume directly,
12     without needing to manually exclude them (just like classes can). (mst)
13
14   [BUG FIXES]
15
16   * Fix false positive when checking for circular references for modules that
17     use the "also" parameter with Moose::Exporter. Reported by Jon
18     Swartz. Fixed by Matthew Wickline. RT #63818.
19
20   * Fix test failure in blead. RT #78085.
21
22   * Fix memory leak in type unions. (Karen Etheridge) RT#83929.
23
24 2.0602 Mon, May 07, 2012
25
26   [BUG FIXES]
27
28   * Ensure that the Moose::Exporter-generated init_meta returns the same value
29     that it did previously. This isn't really a bug, since the return value has
30     never been tested or documented, but since the generated init_meta is
31     nothing more than a compatibility shim at this point, there's no reason to
32     not make it as compatible as possible. Reported by Moritz Onken. (doy)
33
34 2.0601 Tue, May 01, 2012
35
36   [BUG FIXES]
37
38   * Fix init_meta order when multiple also packages are specified (this matters
39     when one of them is being used to actually initalize the metaclass,
40     typically with also => 'Moose'). Reported by Randy Stauner. (doy)
41
42 2.0600 Sun, Apr 29, 2012
43
44   [OTHER]
45
46   * Releasing 2.0502 as stable.
47
48 2.0502-TRIAL Wed, Apr 25, 2012
49
50   [OTHER]
51
52   * The Test::DependentModules test now covers a much wider range of downstream
53     dependents (all of them in fact, for some definition of "all"). This should
54     allow us to track inadvertent backwards compatibility breakages much more
55     effectively. (doy)
56
57   * A few test tweaks to avoid spurious failures. (doy)
58
59 2.0501-TRIAL Tue, Apr 03, 2012
60
61   [BUG FIXES]
62
63   * Avoid syntax errors on pre-5.14. (doy)
64
65 2.0500-TRIAL Tue, Apr 03, 2012
66
67   [NEW FEATURES]
68
69   * Class::MOP::Class now has methods for introspecting and modifying the
70     overloaded operators for a class. (doy)
71
72   [ENHANCEMENTS]
73
74   * The cookbook recipes have all been renamed. Instead of numbered recipes
75     (Basics::Recipe1), we now have descriptive names
76     (Basics::Point_AttributesAndSubclassing). This makes it easier for us to
77     add and remove recipes in the future, and makes it a little easier to
78     converse about them, since the name gives us some clue of what they
79     contain.
80
81   [BUG FIXES]
82
83   * Re-declaring a class_type or role_type constraint that has already been
84     declared now just returns the original type constraint, rather than
85     replacing the original constraint and ergo losing any coercions that were
86     on the original constraint. Fixes RT #73289. (t0m)
87
88   * Moose::Exporter now calls init_meta methods in the correct order, when
89     multiple levels of 'also' parameters are specified. Reported by Rocco
90     Caputo. (doy, perigrin)
91
92   * Moose::Exporter no longer generates init_meta methods in order to apply
93     metaroles, since the metaclass itself isn't guaranteed to exist yet at that
94     point. Metaroles are now applied at the end of import, after all
95     user-defined init_meta methods have been called. Fixes RT #51561. (doy)
96
97   * Fixed a memory leak. This occurred when creating an anonymous
98     class. Immutabilizing an anonymous class still leaks memory due to a bug in
99     Eval::Closure (which should hopefully be fixed soon). Based on code and bug
100     report from Carlos Lima. RT #74650.
101
102   * Fix a segfault when adding a method to a class which was defined in a
103     package which was deleted. (doy)
104
105 2.0403 Tue, Apr 03, 2012
106
107   [OTHER]
108
109     * No changes, reupload to fix indexing.
110
111 2.0402 Sat, Feb 04, 2012
112
113   [OTHER]
114
115   * Minor documentation fixes.
116
117   * Fix test failure on blead (test was unnecessarily strict). Reported by
118     Nicholas Clark. (doy)
119
120 2.0401 Thu, Nov 17, 2011
121
122   [BUG FIXES]
123
124   * Attributes with weak_ref now weaken their associated slot when they are
125     initialized through a lazy default or builder. Reported by tome. (doy)
126
127 2.0400 Tue, Nov 15, 2011
128
129   [OTHER]
130
131   * No changes from 2.0302 (other than a few minor documentation tweaks).
132
133 2.0302-TRIAL Wed, Nov 02, 2011
134
135   [BUG FIXES]
136
137   * Fix test failure on 5.8. (Dave Rolsky)
138
139   * Make make_immutable return value consistent and document it to be true.
140     (mst)
141
142 2.0301-TRIAL Fri, Oct 21, 2011
143
144   [BUG FIXES]
145
146   * Fix compilation on 5.8. Reported by ether. (doy)
147
148   * A custom error class caused a warning when the class that used it was made
149     immutable. Reported by Maroš Kollár. RT #71514. (Dave Rolsky)
150
151   [ENHANCEMENTS]
152
153   * The enum type will now allow single value enumerations. Previously, two or
154     more values were required. (rjbs)
155
156 2.0300-TRIAL Fri, Sep 23, 2011
157
158   [DEPRECATIONS]
159
160   * The optimize_as option for type constraints has been deprecated. Use the
161     inline_as option to provide inlining code instead. (Dave Rolsky)
162
163   [API CHANGES]
164
165   * Methods to introspect a class's methods will now return methods defined in
166     UNIVERSAL (isa, can, etc.). This also means that you can wrap these
167     methods with method modifiers. RT #69839. Reported by Vyacheslav
168     Matyukhin. (Dave Rolsky)
169
170   * The ->parent and ->parents method for a union now return the nearest
171     common ancestor of that union's component types. See Moose::Manual::Delta
172     for more details. (Dave Rolsky)
173
174   * The ->parents method used to return an arrayref for union types, and a
175     list of one or more types for all other types. Now they all return
176     lists. (Dave Rolsky)
177
178   * The ->is_subtype_of and ->is_a_type_of methods have changed their behavior
179     for union types. Previously, they returned true if any of their member
180     types returned true for a given type. Now, all of the member types must
181     return true. RT #67731. (Dave Rolsky)
182
183   [ENHANCEMENTS]
184
185   * The Moose::Exporter module now has a "meta_lookup" option when creating an
186     importer. This allows you to specify an alternate method for determining
187     the metaclass of a caller. This is useful for modules like
188     MooseX::Role::Parameterized which generate new metaclasses on the
189     fly. (sartak)
190
191   * Added a Moose::Meta::Method->is_stub method. (Dave Rolsky)
192
193   [BUG FIXES]
194
195   * A subtype of a union type did not return the right results when you called
196     ->is_subtype_of or ->is_a_type_of on it. This has been fixed. RT
197     #70322. (Dave Rolsky)
198
199   * An attribute accessor or delegation method can overwrite a stub method and
200     this will no longer throw an error. Reported by Mark-Jason Dominus. RT
201     #69988. (Dave Rolsky)
202
203   * The error generated by unfulfilled method requirements during role
204     composition now mentions how to work around imported methods not being
205     recognized. Reported by Michael Schwern. RT #60583. (doy)
206
207   * class_type and role_type will now throw errors if you attempt to use them
208     to override existing types, just like type and subtype have always done.
209     (doy)
210
211   * Implicitly creating class or role types by using them as the 'isa' or
212     'does' parameter to attribute construction will now register the type. This
213     means that it cannot later be redefined as something else. (doy)
214
215   * $class_type->is_subtype_of no longer returns true if passed the name of the
216     class that the class type represents when the class type wasn't registered.
217     (doy)
218
219   * Removing anonymous metaclasses prematurely no longer prevents reaping of
220     the associated stash. (doy)
221
222   [OTHER]
223
224   * The Class::MOP::load_class and Class::MOP::is_class_loaded subroutines are
225     no longer documented, and will cause a deprecation warning in the
226     future. Moose now uses Class::Load to provide this functionality, and you
227     should as well. (Dave Rolsky)
228
229 2.0205 Tue, Sep 06, 2011
230
231   [NEW FEATURES]
232
233   * The Array and Hash native traits now provide a "shallow_clone" method,
234     which will return a reference to a new container with the same contents as
235     the attribute's reference.
236
237   [ENHANCEMENTS]
238
239   * Specifying an invalid value in a hashref 'handles' value now throws a
240     sensible error. Reported by Mark-Jason Dominus. RT #69990. (Dave
241     Rolsky)
242
243   [BUG FIXES]
244
245   * When specifying an attribute trait, passing options for the trait besides
246     -alias or -excludes caused a warning. However, passing other options is
247     totally valid when using MooseX::Role::Parameterized. Fixes RT
248     #70419. (sartak)
249
250   * Allow regexp objects in duck_type constraints (to bring this in line with
251     the Object constraint).
252
253 2.0204 Thu, Aug 25, 2011
254
255   [BUG FIXES]
256
257   * Validating duck_type type constraint turned out to work only by accident,
258     and only when not running under the debugger. This has been fixed.
259     (Florian Ragwitz)
260
261   [OTHER]
262
263   * Loosen the dependency on ExtUtils::ParseXS.
264
265 2.0203 Tue, Aug 23, 2011
266
267   [BUG FIXES]
268
269   * is_class_loaded now properly detects packages which have a version object
270     in their $VERSION.
271
272   * Fix XS compilation under blead.
273
274 2.0202 Tue, Jul 26, 2011
275
276   [BUG FIXES]
277
278   * Be more consistent about how type constraint messages are handled.
279
280 2.0201 Fri, Jul 22, 2011
281
282   [BUG FIXES]
283
284   * Moose::Util::does_role shouldn't call ->does on things that don't inherit
285     from Moose::Object.
286
287   * Make ->does initialize the metaclass, so that calling it as a class method
288     on a class which sets up inheritance via some method other than extends
289     works properly (this fixes an issue with MooseX::Types).
290
291   * Make Dist::CheckConflicts a runtime requirement, so moose-outdated always
292     works.
293
294 2.0200 Mon, Jul 18, 2011
295
296   [OTHER]
297
298   * No changes from 2.0105 (other than a few minor documentation tweaks).
299
300 2.0105-TRIAL Mon, Jun 27, 2011
301
302   [ENHANCEMENTS]
303
304   * Moose::Util::does_role now respects overridden ->does methods. (doy)
305
306 2.0104-TRIAL Mon, Jun 20, 2011
307
308   [OTHER]
309
310   * Include changes from 2.0010.
311
312 2.0103-TRIAL Mon, Jun 20, 2011
313
314   [DEPRECATIONS]
315
316   * Several things that have been deprecated for a while have been removed. See
317     the 2.0000 section in Moose::Manual::Delta for details.
318
319   [NEW FEATURES]
320
321   * New Moose::Util::TypeConstraints::union function for creating union type
322     constraints without having to rely on the string type constraint parsing.
323     This also allows for creating unions of anonymous type constraints.
324     (kentnl)
325
326   [OTHER]
327
328   * Include changes from Moose 2.0009.
329
330 2.0102-TRIAL Sat, Jun 18, 2011
331
332   [ENHANCEMENTS]
333
334   * The native Array trait now has a 'first_index' method, which works just
335     like the version in List::MoreUtils. (Karen Etheridge)
336
337   * Clean up some internal code to help out extensions.
338
339   [OTHER]
340
341   * Include changes from Moose 2.0008.
342
343 2.0101-TRIAL Mon, Jun 06, 2011
344
345   [OTHER]
346
347   * Various packaging issues.
348
349 2.0100-TRIAL Mon, Jun 06, 2011
350
351   [DEPRECATIONS]
352
353   * Using a hand-optimized type constraint is now deprecated. In keeping with
354     our release policy, this won't actually start warning until the 2.0200
355     release.
356
357   [NEW FEATURES]
358
359   * Type constraints can now provide inlined versions, which should make
360     inlined code which uses type constraints (such as accessors) faster. This
361     replaces the existing hand-optimized constraint feature.  (Dave Rolsky)
362
363   [ENHANCEMENTS]
364
365   * Remove a lot of cases where generated methods closed over meta objects.
366     Most simple cases should now only close over simple data types and
367     coderefs. This should make deparsing simpler.
368
369 2.0010 Mon, Jun 20, 2011
370
371   [BUG FIXES]
372
373   * Fix regression in 2.0009 and 2.0103 when applying roles during init_meta in
374     an exporter that also re-exports Moose or Moose::Role. (t0m, ilmari)
375
376 2.0009 Sun, Jun 19, 2011
377
378   [BUG FIXES]
379
380   * duck_type type constraints now report reasonable errors when given
381     something which isn't an instance of an object. (t0m)
382
383   * Moose::Util::apply_all_roles now works even if the applicant is a non-Moose
384     class. (perigrin)
385
386   * When an object is reblessed, triggers are called on attributes that are
387     set during the reblessing. (Karen Etheridge).
388
389   [OTHER]
390
391   * Better error message if Moose->init_meta is called with a 'metaclass'
392     option when that metaclass hasn't been loaded. (jasonmay)
393
394 2.0008 Thu, Jun 16, 2011
395
396   [BUG FIXES]
397
398   * The 'accessor' native delegation for hashrefs now allows setting the value
399     to undef. (sugoik, doy)
400
401   [ENHANCEMENTS]
402
403   * Various generated methods have more useful context information. (doy)
404
405 2.0007 Sun, May 15, 2011
406
407   [BUG FIXES]
408
409   * Make sure weak attributes remain weak when cloning. (doy, rafl)
410
411 2.0006 Mon, May 09, 2011
412
413   [BUG FIXES]
414
415   * Revert the List::MoreUtils version bump, as it breaks backwards
416     compatibility. The dependency will be bumped with Moose 2.0200.
417
418 2.0005 Mon, May 09, 2011
419
420   [BUG FIXES]
421
422   * Only sort the alias keys when determining caching.
423
424 2.0004 Mon, May 09, 2011
425
426   [BUG FIXES]
427
428   * Bump the List::MoreUtils dep to avoid buggy behavior in old versions.
429
430   * Sort the list of roles and the alias and excludes parameters when
431     determining caching, since their order doesn't matter.
432
433 2.0003 Mon, May 09, 2011
434
435   [BUG FIXES]
436
437   * Applying multiple role objects (rather than role names) at once no longer
438     skips every other role. (rjbs)
439
440   * Caching of anon classes now works more sanely in the presence of role
441     application parameters - alias and excludes options are taken into account,
442     and caching is disabled entirely if other parameters exist. Asking for
443     caching (instead of just not weakening) when parameters are given will
444     begin warning in Moose 2.0200. (doy, autarch)
445
446 2.0002 Thu, Apr 28, 2011
447
448   [ENHANCEMENTS]
449
450   * Provide definition context information for constructors and destructors, so
451     that they will show up as something other than "generated method (unknown
452     origin)". Also, add the package that accessors are defined in to their
453     definition context.
454
455   * Use Devel::PartialDump in type constraint error messages, if it is
456     installed.
457
458   [BUG FIXES]
459
460   * Stop hiding warnings produced by throwing errors in DEMOLISH methods.
461
462   * The 'reset' native delegation for Counter attributes will now also respect
463     builders (previously, it only respected defaults).
464
465 2.0001 Fri, Apr 22, 2011
466
467   [ENHANCEMENTS]
468
469   * Anonymous classes and roles now have a unified implementation in
470     Class::MOP::Package. This means that anonymous packages are now also
471     possible. (Shawn M Moore, doy)
472
473   [BUG FIXES]
474
475   * No longer call XSLoader from multiple places, as this causes issues on
476     older perls. (doy, ribasushi)
477
478   * Moose::Meta::Role->create now accepts the 'roles' parameter, as it was
479     documented to. (Chris Weyl)
480
481   * Depend on Eval::Closure 0.04, which fixes some issues in mod_perl
482     environments. (doy, mateu)
483
484 2.0000 Mon, Apr 11, 2011
485
486   [API CHANGES]
487
488   * The RegexpRef type constraint now accepts regular expressions blessed into
489     other classes, such as those found in pluggable regexp engines.
490     Additionally the 'Object' constraint no longer rejects objects implemented
491     as a blessed regular expression. (David Leadbeater)
492
493   [OTHER]
494
495   * Moose::Manual::Support now explicitly states when major releases are
496     allowed to happen (January, April, July, or October).
497
498 1.9906-TRIAL Mon, Apr 04, 2011
499
500   [OTHER]
501
502   * Update conflicts list.
503   * Minor pod updates.
504
505 1.9905-TRIAL Mon, Mar 28, 2011
506
507   [NEW FEATURES]
508
509   * The Moose::Meta::Role::Attribute class now has an original_role method
510     which returns the role which first defined an attribute. See the docs for
511     details. (Dave Rolsky)
512
513   * Moose::Util::MetaRole will make sure that the class to which you're
514     applying metaroles or base class roles can actually have them applied. If
515     not (it's not a Moose class, it has a non-Moose metaclass, etc.), then it
516     gives a useful error message. Previously, this would just end up dying in
517     the MetaRole code without a useful message. (Dave Rolsky)
518
519   [BUG FIXES]
520
521   * When a role had its own applied_attribute metaclass (usually from MetaRole
522     application), that metaclass would get lost when that role participated in
523     role composition. It was also lost if that role was consumed by some other
524     role. Both of these cases have been fixed. Attributes are always applied
525     with the applied_attribute metaclass of the role which originally defined
526     them. (Dave Rolsky)
527
528 1.9904-TRIAL Fri, Mar 04, 2011
529
530   [BUG FIXES]
531
532   * Reinitializing anonymous roles used to accidentally clear out the role's
533     stash in some circumstances. This is now fixed. (doy)
534
535   * The Int type constraint now rejects integers with trailing newlines.
536     (Matthew Horsfall)
537
538 1.9903-TRIAL Mon, Feb 28, 2011
539
540   [BUG FIXES]
541
542   * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
543     trying to re-export from a package that itself exported a modified set of
544     Moose sugar, you'd get the original Moose sugar instead of the overrides.
545     There are also now tests for this. (perigrin)
546
547   * Don't initialize lazy attributes with defaults in the constructor (for
548     immutable classes). (mo)
549
550   * When reinitializing meta objects for classes and roles, we failed to
551     preserve roles and role applications. This led to weird bugs. Many MooseX
552     modules end up reinitializing your class or role. (Dave Rolsky)
553
554 1.9902-TRIAL Mon, Jan 03, 2011
555
556   [OTHER]
557
558   * Fix generation of CCFLAGS.
559
560   * Add a bit more Dist::Zilla functionality.
561
562 1.9901-TRIAL Mon, Jan 03, 2011
563
564   [OTHER]
565
566   * Fix some indexing issues.
567
568   * Fix a few issues with the conflict checking stuff.
569
570 1.9900-TRIAL Sat, Jan 01, 2011
571
572   [OTHER]
573
574   * The entire Class::MOP distribution has been merged with Moose. In the
575     future, the Class::MOP code itself will be merged into Moose, and
576     eventually the Class::MOP namespace will disappear entirely. For the
577     current release, we have simply changed how Class::MOP is
578     distributed. (Dave Rolsky).
579
580   * Switched to Dist::Zilla for development. However, we still have a minimal
581     Makefile.PL in the repository that can be used for development. (Dave
582     Rolsky)
583
584   [API CHANGES]
585
586   * Roles now have their own default attribute metaclass to use during
587     application to a class, rather than just using the class's
588     attribute_metaclass. This is also overridable via ::MetaRole, with the
589     applied_attribute key in the role_metaroles hashref (doy).
590
591   * The internal code used to generate inlined methods (accessor, constructor,
592     etc.) has been massively rewritten. MooseX modules that do inlining will
593     almost certainly need to be updated as well.
594
595   [ENHANCEMENTS]
596
597   * We now load the roles needed for native delegations only as needed. This
598     speeds up the compilation time for Moose itself. (doy)
599
600
601 1.25 Fri, Apr 1, 2011
602
603   [BUG FIXES]
604
605   * Reinitializing anonymous roles used to accidentally clear out the role's
606     stash in some circumstances. This is now fixed. (doy) (backported from
607     1.9904)
608
609
610 1.24 Tue, Feb 24, 2011
611
612   [BUG FIXES]
613
614   * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
615     trying to re-export from a package that itself exported a modified set of
616     Moose sugar, you'd get the original Moose sugar instead of the overrides.
617     There are also now tests for this. (perigrin) (backported from 1.9903)
618
619
620 1.23 Sun, Feb 13, 2011
621
622   [PACKAGING FIX]
623
624   * The 1.22 release had a bad MANIFEST. This has been fixed.
625
626
627 1.22 Sun, Feb 13, 2011
628
629   [BUG FIXES]
630
631   * When reinitializing meta objects for classes and roles, we failed to
632     preserve roles and role applications. This led to weird bugs. Many MooseX
633     modules end up reinitializing your class or role. (Dave Rolsky) (backported
634     from 1.9903)
635
636 1.21 Wed, Nov 24, 2010
637
638   [ENHANCEMENTS]
639
640   * The Support manual has been updated to reflect our new major/minor version
641     policy. (Chris Prather)
642
643   * The Contributing manual has been updated to reflect workflow changes based
644     on this new support policy. (doy)
645
646   [BUG FIXES]
647
648   * The role attribute metaclass did not inherit from Class::MOP::Object,
649     which could cause errors when trying to resolve metaclass compatibility
650     issues. Reported by Daniel Ruoso. (doy)
651
652   * The lazy_build feature was accidentally removed from all the docs. Now
653     it's listed in Moose.pm again. (Chris Prather)
654
655 1.20 Fri, Nov 19, 2010
656
657   [BUG FIXES]
658
659   * When using native delegations, if an array or hash ref member failed a
660     type constraint check, Moose ended up erroring out with "Can't call method
661     "get_message" on unblessed reference" instead of generating a useful error
662     based on the failed type constraint. Reported by t0m. RT #63113. (Dave
663     Rolsky)
664
665 1.19 Tue, Nov 2, 2010
666
667   [BUG FIXES]
668
669   * There was still one place in the code trying to load Test::Exception
670     instead of Test::Fatal. (Karen Etheridge)
671
672
673 1.18 Sun, Oct 31, 2010
674
675   [ENHANCEMENTS]
676
677   * Type constraint objects now have an assert_coerce method which will either
678     return a valid value or throw an error. (rjbs)
679
680   * We now warn when an accessor for one attribute overwrites an accessor for
681     another attribute. RT #57510. (Dave Rolsky)
682
683   [BUG FIXES]
684
685   * The native Array and Hash delegation methods now coerce individual new
686     members if the _member type_ has a coercion. In other words, if the array
687     reference is defined as an ArrayRef[DateTime], and you've defined a
688     coercion from Int to DateTime, then pushing an integer via a delegation
689     method will coerce the integer to a DateTime object. Reported by Karen
690     Etheridge. RT #62351. (Dave Rolsky)
691
692   * An attribute using native delegations did not always properly coerce and
693     type check a lazily set default value. (doy and Dave Rolsky)
694
695   * Using a regexp to define delegations for a class which was not yet loaded
696     did not actually work, but did not explicitly fail. However, it caused an
697     error when the class was loaded later. Reported by Max Kanat-Alexander. RT
698     #60596. (Dave Rolsky)
699
700   * Attempting to delegate to a class or role which is not yet loaded will now
701     throw an explicit error. (Dave Rolsky)
702
703   * Attempting to set lazy_build in an inherited attribute was ignored. RT
704     #62057. (perigrin)
705
706   [OTHER]
707
708   * The Moose test suite now uses Test::Fatal instead of
709     Test::Exception. (rjbs)
710
711 1.17 Tue, Oct 19, 2010
712
713   [BUG FIXES]
714
715   * Make native delegation inlining work with instance metaclasses where slot
716     access is an do {} block, like Kioku. This fixes the use of native
717     delegations together with Kioku. (Scott, doy)
718
719 1.16 Mon, Oct 18, 2010
720
721   [ENHANCEMENTS]
722
723   * Almost every native delegation method which changes the attribute value
724     now has an explicitly documented return value. In general, this return
725     value matches what Perl would return for the same operation. (Dave Rolsky)
726
727   * Lots of work on native delegation documentation, including documenting
728     what arguments each native delegation method allows or requires. (Dave
729     Rolsky)
730
731   * Passing an odd number of args to ->new() now gives a more useful warning
732     than Perl's builtin warning. Suggested by Sir Robert Burbridge. (Dave
733     Rolsky)
734
735   * Allow disabling stack traces by setting an environment variable. See
736     Moose::Error::Default for details. This feature is considered
737     experimental, and may change in a future release. (Marcus Ramberg)
738
739   * The deprecation warning for using alias and excludes without a leading
740     dash now tells you the role being applied and what it was being applied
741     to. (mst).
742
743   [BUG FIXES]
744
745   * A number of native trait methods which expected strings as arguments did
746     not allow the empty string. This included Array->join, String->match,
747     String->replace, and String->substr. Reported by Whitney Jackson. RT
748     #61962. (Dave Rolsky)
749
750   * 'no Moose' no longer inadvertently removes imports it didn't create
751     itself. RT #60013. (Florian Ragwitz, doy)
752
753   * Roles now support passing an array reference of method names to method
754     modifier sugar functions. (doy)
755
756   * Native traits no longer use optimized inlining routines if the instance
757     requests it (in particular, if inline_get_slot_value doesn't return
758     something that can be assigned to). This should fix issues with
759     KiokuDB::Class. (doy)
760
761   * We now ignore all Class::MOP and Moose classes when determining what
762     package called a deprecated feature. This should make the deprecation
763     warnings saner, and make it possible to turn them off more easily. (Dave
764     Rolsky)
765
766   * The deprecated "default is" warning no longer happens if the attribute has
767     any accessor method defined (accessor, reader, writer). Also, this warning
768     only happens when a method that was generated because of the "default is"
769     gets called, rather than when the attribute is defined. (Dave Rolsky)
770
771   * The "default default" code for some native delegations no longer issues a
772     deprecation warning when the attribute is required or has a builder. (Dave
773     Rolsky)
774
775   * Setting a "default default" caused a fatal error if you used the builder
776     or lazy_build options for the attribute. Reported by Kent Fredric. RT
777     #59613. (Dave Rolsky)
778
779 1.15 Tue, Oct 5, 2010
780
781   [API CHANGES]
782
783   * Major changes to Native Traits, most of which make them act more like
784     "normal" attributes. This should be mostly compatible with existing code,
785     but see Moose::Manual::Delta for details.
786
787   * A few native traits (String, Counter, Bool) provide default values of "is"
788     and "default" when you created an attribute. Allowing them to provide
789     these values is now deprecated. Supply the value yourself when creating
790     the attribute.
791
792   * New option 'trait_aliases' for Moose::Exporter, which will allow you to
793     generate non-global aliases for your traits (and allow your users to
794     rename the aliases, etc). (doy)
795
796   * 'use Moose' and 'use Moose::Role' now accept a '-meta_name' option, to
797     determine which name to install the 'meta' name under. Passing 'undef'
798     to this option will suppress generation of the meta method entirely. (doy)
799
800   * Moose now warns if it overwrites an existing method named "meta" in your
801     class when you "use Moose". (doy)
802
803   [ENHANCEMENTS]
804
805   * Native Trait delegations are now all generated as inline code. This should
806     be much faster than the previous method of delegation. In the best case,
807     native trait methods will be very highly optimized.
808
809   * Reinitializing a metaclass no longer removes the existing method and
810     attribute objects (it instead fixes them so they are correct for the
811     reinitialized metaclass). This should make the order of loading many
812     MooseX modules less of an issue. (doy)
813
814   * The Moose::Manual docs have been revised and updated. (Dave Rolsky)
815
816   [BUG FIXES]
817
818   * If an attribute was weak, setting it to a non-ref value after the object
819     was constructed caused an error. Now we only call weaken when the new
820     value is a reference.
821
822   * t/040_type_constraints/036_match_type_operator.t failed on 5.13.5+. Fixed
823     based on a patch from Andreas Koenig.
824
825 1.14 Tue, Sep 21, 2010
826
827   [BUG FIXES]
828
829   * Work around what looks like a bug in List::MoreUtils::any. This bug caused
830     a weird error when defining the same union type twice, but only when using
831     MooseX::Types. Reported by Curtis Jewell. RT #61001. (Dave Rolsky)
832
833 1.13 Mon, Sep 13, 2010
834
835   [API CHANGES]
836
837   * The deprecation warnings for alias and excludes are back, use -alias and
838     -excludes instead. (Dave Rolsky)
839
840   [ENHANCEMENTS]
841
842   * When composing one role into another and there is an attribute conflict,
843     the error message now includes the attribute name. Reported by Sam
844     Graham. RT #59985. (Dave Rolsky)
845
846   * When a class is made immutable, the does_role method is overridden with a
847     much faster version that simply looks role names up in a hash. Code which
848     uses lots of role-based type constraints should be faster. (Dave Rolsky)
849
850 1.12 Sat, Aug 28, 2010
851
852   [BUG FIXES]
853
854   * Fix the MANIFEST. Fixes RT #60831, reported by Alberto Simões.
855
856 1.11 Fri, Aug 27, 2010
857
858   [API CHANGES]
859
860   * An attribute in a subclass can now override the value of "is". (doy)
861
862   * The deprecation warnings for alias and excludes have been turned back off
863     for this release, to give other module authors a chance to tweak their
864     code. (Dave Rolsky)
865
866   [BUG FIXES]
867
868   * mro::get_linear_isa was being called as a function rather than a method,
869     which caused problems with Perl 5.8.x. (t0m)
870
871   * Union types always created a type constraint, even if their constituent
872     constraints did not have any coercions. This bogus coercion always
873     returned undef, which meant that a union which included Undef as a member
874     always coerced bad values to undef. Reported by Eric Brine. RT
875     #58411. (Dave Rolsky)
876
877   * Union types with coercions would always fall back to coercing the value to
878     undef (unintentionally). Now if all the coercions for a union type fail,
879     the value returned by the coercion is the original value that we attempted
880     to coerce. (Dave Rolsky).
881
882 1.10 Sun, Aug 22, 2010
883
884   [API CHANGES]
885
886   * The long-deprecated alias and excludes options for role applications now
887     issue a deprecation warning. Use -alias and -excludes instead. (Dave
888     Rolsky)
889
890   [BUG FIXES]
891
892   * Inlined code no longer stringifies numeric attribute defaults. (vg, doy)
893
894   * default => undef now works properly. (doy)
895
896   * Enum type constraints now throw errors if their values are nonsensical.
897     (Sartak)
898
899   [ENHANCEMENTS]
900
901   * Optimizations that should help speed up compilation time (Dave Rolsky).
902
903 1.09 Tue, Jul 25, 2010
904
905   [API CHANGES]
906
907   * You can no longer pass "coerce => 1" for an attribute unless its type
908     constraint has a coercion defined. Doing so will issue a deprecation
909     warning. (Dave Rolsky)
910
911   * Previously, '+foo' only allowed a specific set of options to be
912     overridden, which made it impossible to change attribute options related
913     to extensions. Now we blacklist some options, and anything else is
914     allowed. (doy, Tuomas Jormola)
915
916   * Most features which have been declared deprecated now issue a warning using
917     Moose::Deprecated. Warnings are issued once per calling package, not
918     repeatedly. See Moose::Deprecated for information on how you can shut
919     these warnings up entirely. Note that deprecated features will eventually
920     be removed, so shutting up the warnings may not be the best idea. (Dave
921     Rolsky)
922
923   * Removed the long-deprecated Moose::Meta::Role->alias_method method. (Dave
924     Rolsky).
925
926   [NEW FEATURES]
927
928   * We no longer unimport strict and warnings when Moose, Moose::Role, or
929     Moose::Exporter are unimported. Doing this was broken if the user
930     explicitly loaded strict and warnings themself, and the results could be
931     generally surprising. We decided that it was best to err on the side of
932     safety and leave these on. Reported by David Wheeler. RT #58310. (Dave
933     Rolsky)
934
935   * New with_traits helper function in Moose::Util. (doy)
936
937   [BUG FIXES]
938
939   * Accessors will no longer be inlined if the instance metaclass isn't
940     inlinable. (doy)
941
942   * Use Perl 5.10's new recursive regex features, if possible, for the type
943     constraint parser. (doy, nothingmuch)
944
945   [ENHANCEMENTS]
946
947   * Attributes now warn if their accessors overwrite a locally defined
948     function (not just method). (doy)
949
950   [OTHER]
951
952   * Bump our required perl version to 5.8.3, since earlier versions fail tests
953     and aren't easily installable/testable.
954
955 1.08 Tue, Jun 15, 2010
956
957   [ENHANCEMENTS]
958
959   * Refactored a small amount of Moose::Meta::Method::Constructor to allow it
960     to be overridden more easily (doy).
961
962 1.07 Sat, Jun 05, 2010
963
964   [BUG FIXES]
965
966   * Fixed a minor metaclass compatibility fixing bug dealing with immutable
967     classes and non-class metaclass traits (doy, dougdude).
968
969 1.06 Tue, Jun 01, 2010
970
971   [NEW FEATURES]
972
973   * Added '0+' overloading in Moose::Meta::TypeConstraint so that we can
974     more uniformly compare type constraints between 'classic' Moose type
975     constraints and MooseX::Types based type constraints.
976
977 1.05 Thu, May 20, 2010
978
979   [API CHANGES]
980
981   * Packages and modules no longer have methods - this functionality was
982     moved back up into Moose::Meta::Class and Moose::Meta::Role individually
983     (through the Class::MOP::Mixin::HasMethods mixin) (doy).
984
985   * BUILDALL is now called by Moose::Meta::Class::new_object, rather than by
986     Moose::Object::new. (doy)
987
988   [NEW FEATURES]
989
990   * strict and warnings are now unimported when Moose, Moose::Role, or
991     Moose::Exporter are unimported. (doy, Adam Kennedy)
992
993   * Added a 'consumers' method to Moose::Meta::Role for finding all
994     classes/roles which consume the given role. (doy)
995
996   [BUG FIXES]
997
998   * Fix has '+attr' in Roles to explode immediately, rather than when the role
999     is applied to a class (t0m).
1000
1001   * Fix type constraint validation messages to not include the string 'failed'
1002     twice in the same sentence (Florian Ragwitz).
1003
1004   * New type constraints will default to being unequal, rather than equal
1005     (rjbs).
1006
1007   * The tests no longer check for perl's behavior of clobbering $@, which has
1008     been fixed in perl-5.13.1 (Florian Ragwitz).
1009
1010   * Metaclass compatibility fixing has been completely rewritten, and should
1011     be much more robust. (doy)
1012
1013 1.04 Thu, May 20, 2010
1014
1015   * This release was broken and has been deleted from CPAN shortly after its
1016     upload.
1017
1018 1.03 Thu, May 06, 2010
1019
1020   [NEW FEATURES]
1021
1022   * Allow specifying required versions when setting superclasses or applying
1023     roles (Florian Ragwitz).
1024
1025 1.02 Sat, May 01, 2010
1026
1027   [BUG FIXES]
1028
1029   * Stop the natatime method provided by the native Array trait from returning
1030     an exhausted iterator when being called with a callback. (Florian Ragwitz)
1031
1032   * Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
1033     (Florian Ragwitz)
1034
1035   * Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or
1036     the class the TC represents as an argument incorrectly returned true. This
1037     behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi)
1038
1039   * Use File::Temp for temp files created during tests. Previously, files were
1040     written to the t/ dir, which could cause problems of the user running the
1041     tests did not have write access to that directory.. (Chris Weyl, Ævar
1042     Arnfjörð Bjarmason)
1043
1044   * Pass role arguments along when applying roles to instances. (doy, lsm)
1045
1046 1.01 Fri, Mar 26, 2010
1047
1048   [NEW FEATURES]
1049
1050   * The handles option now also accepts a role type constraint in addition to a
1051     plain role name. (Florian Ragwitz)
1052
1053   [OTHER]
1054
1055   * Record the Sartak/doy debt properly in Changes (perigrin)
1056
1057 1.00 Tue, Mar 25, 2010
1058
1059   [BUG FIXES]
1060
1061   * Moose::Meta::Attribute::Native::Trait::Code no longer creates reader
1062     methods by default. (Florian Ragwitz)
1063
1064   [DOCUMENTATION]
1065
1066   * Improve various parts of the documentation and fix many typos.
1067     (Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs)
1068
1069   [OTHER]
1070
1071   * Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak)
1072
1073 0.99 Mon, Mar 8, 2010
1074
1075   [NEW FEATURES]
1076
1077   * New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding
1078     which member of the union a given value validates for. (Cory Watson)
1079
1080   [BUG FIXES]
1081
1082   * DEMOLISH methods in mutable subclasses of immutable classes are now called
1083     properly (Chia-liang Kao, Jesse Luehrs)
1084
1085   [NEW DOCUMENTATION]
1086
1087   * Added Moose::Manual::Support that defines the support, compatiblity, and
1088     release policies for Moose. (Chris Prather)
1089
1090 0.98 Wed, Feb 10, 2010
1091
1092   [BUG FIXES]
1093
1094   * An internals change in 0.97 broke role application to an instance in some
1095     cases. The bug occurred when two different roles were applied to different
1096     instances of the same class. (Rafael Kitover)
1097
1098
1099 0.97 Tue, Feb 9, 2010
1100
1101   [BUG FIXES]
1102
1103   * Calling ->reinitialize on a cached anonymous class effectively uncached
1104     the metaclass object, causing the metaclass to go out of scope
1105     unexpectedly. This could easily happen at a distance by applying a
1106     metarole to an anonymous class. (Dave Rolsky).
1107
1108 0.96 Sat, Feb 6, 2010
1109
1110   [NEW FEATURES]
1111
1112   * ScalarRef is now a parameterized type. You can now specify a type
1113     constraint for whatever the reference points to. (Closes RT#50857)
1114     (Michael G. Schwern, Florian Ragwitz)
1115
1116   [BUG FIXES]
1117
1118   * ScalarRef now accepts references to other references. (Closes RT#50934)
1119     (Michael G. Schwern)
1120
1121 0.95 Thu, Feb 4, 2010
1122
1123   [NEW FEATURES]
1124
1125   * Moose::Meta::Attribute::Native::Trait::Code now provides execute_method as
1126     a delegation option. This allows the code reference to be called as a
1127     method on the object. (Florian Ragwitz)
1128
1129   [ENHANCEMENTS]
1130
1131   * Moose::Object::does no longer checks the entire inheritance tree, since
1132     Moose::Meta::Class::does_role already does this. (doy)
1133
1134   * Moose::Util::add_method_modifier (and subsequently the sugar functions
1135     Moose::before, Moose::after, and Moose::around) can now accept arrayrefs,
1136     with the same behavior as lists. Types other than arrayref and regexp
1137     result in an error.  (Dylan Hardison)
1138
1139 0.94 Mon, Jan 18, 2010
1140
1141   [API CHANGES]
1142
1143   * Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
1144
1145   [ENHANCEMENTS]
1146
1147   * Improved support for anonymous roles by changing various APIs to take
1148     Moose::Meta::Role objects as well as role names. This included
1149
1150   - Moose::Meta::Class->does_role
1151   - Moose::Meta::Role->does_role
1152   - Moose::Util::does_role
1153   - Moose::Util::apply_all_roles
1154   - Moose::Util::ensure_all_roles
1155   - Moose::Util::search_class_by_role
1156
1157   Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
1158
1159   [BUG FIXES]
1160
1161   * Fix handling of non-alphanumeric attributes names like '@foo'. This should
1162     work as long as the accessor method names are explicitly set to valid Perl
1163     method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
1164
1165
1166 0.93_03 Tue, Jan 5, 2010
1167
1168   [BUG FIXES]
1169
1170   * Portability fixes to our XS code so we compile with 5.8.8 and Visual
1171     C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
1172
1173
1174 0.93_02 Tue, Jan 5, 2010
1175
1176  [BUG FIXES]
1177
1178   * Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
1179     testers. (Dave Rolsky)
1180
1181
1182 0.93_01 Mon, Jan 4, 2010
1183
1184   [API CHANGES]
1185
1186   See Moose::Manual::Delta for more details on backwards compatiblity issues.
1187
1188   * Role attributes are now objects of the Moose::Meta::Role::Attribute
1189     class. (Dave Rolsky).
1190
1191   * There were major changes to how metaroles are applied. We now distinguish
1192     between metaroles for classes vs those for roles. See the
1193     Moose::Util::MetaRole docs for details. (Dave Rolsky)
1194
1195   * The old MetaRole API has been deprecated, but will continue to
1196     work. However, if you are applying an attribute metaclass role, this may
1197     break because of the fact that roles now have an attribute metaclass
1198     too. (Dave Rolsky)
1199
1200   * Moose::Util::MetaRole::apply_metaclass_roles is now called
1201     apply_metaroles. The old name is deprecated. (Dave Rolsky)
1202
1203   * The unimport subs created by Moose::Exporter now clean up re-exported
1204     functions like blessed and confess, unless the caller imported them from
1205     somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
1206
1207   [ENHANCEMENTS AND BUG FIXES]
1208
1209   * Changed the Str constraint to accept magic lvalue strings like one gets from
1210     substr et al, again. (sorear)
1211
1212   * Sped up the type constraint parsing regex. (Sam Vilain)
1213
1214   * The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
1215     jrey.
1216
1217   * Added Moose::Util::TypeConstraints exports when using oose.pm to allow
1218     easier testing of TypeConstraints from the command line. (perigrin)
1219
1220   * Added a with_immutable test function to Test::Moose, to run a block of tests
1221     with and without certain classes being immutable. (doy)
1222
1223   * We now use Module::Install extensions explicitly to avoid confusing errors
1224     if they're not installed. We use Module::Install::AuthorRequires to stop
1225     test extraction and general failures if you don't have the author side
1226     dependencies installed.
1227
1228   * Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
1229     #51791. (Amir E. Aharoni)
1230
1231
1232 0.93 Thu, Nov 19, 2009
1233     * Moose::Object
1234       - Calling $object->new() is no longer deprecated, and no longer
1235         warns. (doy)
1236
1237     * Moose::Meta::Role
1238       - The get_attribute_map method is now deprecated. (Dave Rolsky)
1239
1240     * Moose::Meta::Method::Delegation
1241       - Preserve variable aliasing in @_ for delegated methods, so that
1242         altering @_ affects the passed value. (doy)
1243
1244     * Moose::Util::TypeConstraints
1245       - Allow array refs for non-anonymous form of enum and duck_type, not
1246         just anonymous. The non-arrayref forms may be removed in the
1247         future. (doy)
1248       - Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
1249       - Properly document Int being a subtype of Str. (doy)
1250
1251     * Moose::Exporter
1252       - Moose::Exporter using modules can now export their functions to the
1253         main package. This applied to Moose and Moose::Role, among
1254         others. (nothingmuch)
1255
1256     * Moose::Meta::Attribute
1257       - Don't remove attribute accessors we never installed, during
1258         remove_accessors. (doy)
1259
1260     * Moose::Meta::Attribute::Native::Trait::Array
1261       - Don't bypass prototype checking when calling List::Util::first, to
1262         avoid a segfault when it is called with a non-code argument. (doy)
1263
1264     * Moose::Meta::Attribute::Native::Trait::Code
1265       - Fix passing arguments to code execute helpers. (doy)
1266
1267 0.92 Tue, Sep 22, 2009
1268     * Moose::Util::TypeConstraints
1269       - added the match_on_type operator (Stevan)
1270         - added tests and docs for this (Stevan)
1271
1272     * Moose::Meta::Class
1273       - Metaclass compat fixing should already happen recursively, there's no
1274         need to explicitly walk up the inheritance tree. (doy)
1275
1276     * Moose::Meta::Attribute
1277       - Add tests for set_raw_value and get_raw_value. (nothingmuch)
1278
1279 0.91 Thu, Sep 17, 2009
1280     * Moose::Object
1281       - Don't import any functions, in order to avoid polluting our namespace
1282         with things that can look like methods (blessed, try, etc)
1283         (nothingmuch)
1284
1285     * Moose::Meta::Method::Constructor
1286       - The generated code needs to called Scalar::Util::blessed by its
1287         fully-qualified name or else Perl can interpret the call to blessed as
1288         an indirect method call. This broke Search::GIN, which in turn broke
1289         KiokuDB. (nothingmuch)
1290
1291 0.90 Tue, Sep 15, 2009
1292     * Moose::Meta::Attribute::Native::Trait::Counter
1293     * Moose::Meta::Attribute::Native::Trait::String
1294       - For these two traits, an attribute which did not explicitly provide
1295         methods to handles magically ended up delegating *all* the helper
1296         methods. This has been removed. You must be explicit in your handles
1297         declaration for all Native Traits. (Dave Rolsky)
1298
1299     * Moose::Object
1300       - DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
1301         sure to rethrow its error message. However, we also localize $@ before
1302         this so that if all the DEMOLISH methods success, the value of $@ will
1303         be preserved. (nothingmuch and Dave Rolsky)
1304       - We now also localize $? during object destruction. (nothingmuch and
1305         Dave Rolsky)
1306       - The handling of DEMOLISH methods was broken for immutablized classes,
1307         which were not receiving the value of
1308         Devel::GlobalDestruction::in_global_destruction.
1309       - These two fixes address some of RT #48271, reported by Zefram.
1310       - This is all now documented in Moose::Manual::Construction.
1311       - Calling $object->new() is now deprecated. A warning will be
1312         issued. (perigrin)
1313
1314     * Moose::Meta::Role
1315       - Added more hooks to customize how roles are applied. The role
1316         summation class, used to create composite roles, can now be changed
1317         and/or have meta-roles applied to it. (rafl)
1318       - The get_method_list method no longer explicitly excludes the "meta"
1319         method. This was a hack that has been replaced by better hacks. (Dave
1320         Rolsky)
1321
1322     * Moose::Meta::Method::Delegation
1323       - fixed delegated methods to make sure that any modifiers attached to
1324         the accessor being delegated on will be called (Stevan)
1325         - added tests for this (Stevan)
1326
1327     * Moose::Meta::Class
1328       - Moose no longer warns when a class that is being made immutable has
1329         mutable ancestors. While in theory this is a good thing to warn about,
1330         we found so many exceptions to this that doing this properly became
1331         quite problematic.
1332
1333 0.89_02 Thu, Sep 10, 2009
1334     * Moose::Meta::Attribute::Native
1335       - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
1336
1337     * Moose::Meta::Attribute::Native::Trait::Array
1338       - Added a number of functions from List::Util and List::MoreUtils,
1339         including reduce, shuffle, uniq, and natatime. (doy)
1340
1341     * Moose::Exporter
1342       - This module will now generate an init_meta method for your exporting
1343         class if you pass it options for
1344         Moose::Util::MetaRole::apply_metaclass_roles or
1345         apply_base_class_roles. This eliminates a lot of repetitive
1346         boilerplate for typical MooseX modules. (doy).
1347       - Documented the with_meta feature, which is a replacement for
1348         with_caller. This feature was added by josh a while ago.
1349       - The with_caller feature is now deprecated, but will not issue a
1350         warning yet. (Dave Rolsky)
1351       - If you try to wrap/export a subroutine which doesn't actually exist,
1352         Moose::Exporter will warn you about this. (doy)
1353
1354     * Moose::Meta::Role::Application::ToRole
1355       - When a role aliased a method from another role, it was only getting
1356         the new (aliased) name, not the original name. This differed from what
1357         happens when a class aliases a role's methods. If you _only_ want the
1358         aliased name, make sure to also exclue the original name. (Dave
1359         Rolsky)
1360
1361 0.89_01 Wed Sep 2, 2009
1362     * Moose::Meta::Attribute
1363       - Added the currying syntax for delegation from AttributeHelpers to the
1364         existing delegation API. (hdp)
1365
1366     * Moose::Meta::Attribute::Native
1367       - We have merged the functionality of MooseX::AttributeHelpers into the
1368         Moose core with some API tweaks. You can continue to use
1369         MooseX::AttributeHelpers, but it will not be maintained except
1370         (perhaps) for critical bug fixes in the future. See
1371         Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
1372         perigrin, doy)
1373
1374     * Moose::Error::Croak
1375     * Moose::Error::Confess
1376       - Clarify documentation on how to use different error-throwing
1377         modules. (Curtis Jewell)
1378
1379     * Moose
1380       - Correct POD for builder to point to Recipe8, not 9. (gphat)
1381
1382     * Moose::Exporter
1383       - When a nonexistent sub name is passed to as_is, with_caller, or
1384         with_meta, throw a warning and skip the exporting, rather than
1385         installing a broken sub. (doy)
1386
1387     * Moose::Meta::Class
1388       - Moose now warns if you call C<make_immutable> for a class with mutable
1389         ancestors. (doy)
1390
1391 0.89 Thu Aug 13, 2009
1392     * Moose::Manual::Attributes
1393       - Clarify "is", include discussion of "bare". (Sartak)
1394
1395     * Moose::Meta::Role::Method::Conflicting
1396     * Moose::Meta::Role::Application::ToClass
1397       - For the first set of roles involved in a conflict, report all
1398         unresolved method conflicts, not just the first method. Fixes #47210
1399         reported by Ovid. (Sartak)
1400
1401     * Moose::Meta::TypeConstraint
1402       - Add assert_valid method to use a TypeConstraint for assertion (rjbs)
1403
1404     * Moose::Exporter
1405       - Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
1406         does. (doy)
1407       - Allow specifying role options (alias, excludes, MXRP stuff) in the
1408         arrayref passed to "use Moose -traits" (doy)
1409
1410     * Moose::Util
1411       - Add functions meta_class_alias and meta_attribute_alias for creating
1412         aliases for class and attribute metaclasses and metatraits. (doy)
1413
1414     * Moose::Meta::Attribute
1415     * Moose::Meta::Method::Accessor
1416       - A trigger now receives the old value as a second argument, if the
1417         attribute had one. (Dave Rolsky)
1418
1419     * Moose::Meta::Method::Constructor
1420       - Fix a bug with $obj->new when $obj has stringify overloading.
1421         Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
1422         - However, we will probably deprecate $obj->new, so please don't start
1423           using it for new code!
1424
1425     * Moose::Meta::Role::Application
1426     * Moose::Meta::Role::Application::RoleSummation
1427       - Rename alias and excludes to -alias and -excludes (but keep the old
1428         names for now, for backcompat) (doy)
1429
1430 0.88 Fri Jul 24, 2009
1431     * Moose::Manual::Contributing
1432       - Re-write the Moose::Manual::Contributing document to reflect
1433         the new layout and methods of work for the Git repository. All
1434         work now should be done in topic branches and reviewed by a
1435         core committer before being applied to master. All releases
1436         are done by a cabal member and merged from master to
1437         stable. This plan was devised by Yuval, blame him. (perigrin)
1438
1439     * Moose::Meta::Role
1440       - Create metaclass attributes for the different role application
1441         classes.  (rafl)
1442
1443     * Moose::Util::MetaRole
1444       - Allow applying roles to a meta role's role application
1445         classes. (rafl)
1446
1447     * Moose::Meta::Attribute
1448       - Add weak_ref to allowed options for "has '+foo'" (mst)
1449
1450     * Moose::Meta::Method::Accessor
1451       - No longer uses inline_slot_access in accessors, to support
1452         non-lvalue-based meta instances. (sorear)
1453
1454 0.87 Tue Jul 7, 2009
1455     * Moose::Meta::Method::Delegation
1456       - Once again allow class names as well as objects for
1457         delegation. This was changed in 0.86.
1458
1459 0.86 Fri Jul 3, 2009
1460     * Moose::Meta::Class::Immutable::Trait
1461       - Fixes to work with the latest Class::MOP.
1462
1463     * Moose::Meta::Method::Delegation
1464       - Delegation now dies with a more useful error message if the
1465         attribute's accessor returns something defined but
1466         unblessed. (hdp)
1467
1468 0.85 Fri, Jun 26, 2009
1469     * Moose::Meta::Attribute
1470       - The warning for 'no associated methods' is now split out into
1471         the _check_associated_methods method, so that extensions can
1472         safely call 'after install_accessors => ...'. This fixes a
1473         warning from MooseX::AttributeHelpers. (hdp)
1474
1475 0.84 Fri, Jun 26, 2009
1476     * Moose::Role
1477       - has now sets definition_context for attributes defined in
1478         roles. (doy)
1479
1480     * Moose::Meta::Attribute
1481       - When adding an attribute to a metaclass, if the attribute has
1482         no associated methods, it will give a deprecation
1483         warning. (hdp)
1484       - Methods generated by delegation were not being added to
1485         associated_methods. (hdp)
1486       - Attribute accessors (reader, writer, accessor, predicate,
1487         clearer) now warn if they overwrite an existing method. (doy)
1488       - Attribute constructors now warn very noisily about unknown (or
1489         misspelled) arguments
1490
1491     * Moose::Util::TypeConstraints
1492       - Deprecated the totally useless Role type name, which just
1493         checked if $object->can('does'). Note that this is _not_ the
1494         same as a type created by calling role_type('RoleName').
1495
1496     * Moose::Util::TypeConstraints
1497     * Moose::Meta::TypeConstraint::DuckType
1498       - Reify duck type from a regular subtype into an actual class
1499         (Sartak)
1500         - Document this because Sartak did all my work for me
1501           (perigrin)
1502
1503     * Moose::Meta::Attribute
1504       - Allow Moose::Meta::TypeConstraint::DuckType in handles, since
1505         it is just a list of methods (Sartak)
1506
1507     * Moose::Meta::Role
1508       - The get_*_method_modifiers methods would die if the role had
1509         no modifiers of the given type (Robert Buels).
1510
1511 0.83 Tue, Jun 23, 2009
1512     * Moose::Meta::Class
1513       - Fix _construct_instance not setting the special __MOP__ object
1514         key in instances of anon classes. (doy)
1515
1516 0.82 Sun, Jun 21, 2009
1517     * Moose::Manual::Types
1518       - Mention MooseX::Types early to avoid users falling down the
1519         string parsing rathole (mst)
1520
1521     * Moose::Manual::MooseX
1522       - Add warnings about class-level extensions and mention considering
1523         using plain objects instead
1524
1525 0.81 Sun, Jun 7, 2009
1526     * Bumped our Class::MOP prereq to the latest version (0.85), since
1527       that's what we need.
1528
1529 0.80 Sat, Jun 6, 2009
1530     * Moose::Manual::FAQ
1531       - Add FAQ about the coercion change from 0.76 because it came up
1532         three times today (perigrin)
1533         - Win doy $10 dollars because Sartak didn't think anybody
1534           would document this fast enough (perigrin)
1535
1536     * Moose::Meta::Method::Destructor
1537       - Inline a DESTROY method even if there are no DEMOLISH methods
1538         to prevent unnecessary introspection in
1539         Moose::Object::DEMOLISHALL
1540
1541     * Moose::*
1542       - A role's required methods are now represented by
1543         Moose::Meta::Role::Method::Required objects. Conflicts are now
1544         represented by Moose::Meta::Role::Method::Conflicting
1545         objects. The benefit for end-users in that unresolved
1546         conflicts generate different, more instructive, errors,
1547         resolving Ovid's #44895. (Sartak)
1548
1549     * Moose::Role
1550       - Improve the error message of "extends" as suggested by Adam
1551         Kennedy and confound (Sartak)
1552       - Link to Moose::Manual::Roles from Moose::Role as we now have
1553         excellent documentation (Adam Kennedy)
1554
1555     * Tests
1556       - Update test suite for subname change in Class::MOP
1557         (nothingmuch)
1558       - Add TODO test for infinite recursion in Moose::Meta::Class
1559         (groditi)
1560
1561 0.79 Wed, May 13, 2009
1562     * Tests
1563       - More fixes for Win32 problems. Reported by Robert Krimen.
1564
1565     * Moose::Object
1566       - The DEMOLISHALL method could still blow up in some cases
1567         during global destruction. This method has been made more
1568         resilient in the face of global destruction's random garbage
1569         collection order.
1570
1571     * Moose::Exporter
1572       - If you "also" a module that isn't loaded, the error message
1573         now acknowledges that (Sartak)
1574
1575     * Moose
1576       - When your ->meta method does not return a Moose::Meta::Class,
1577         the error message gave the wrong output (Sartak)
1578
1579 0.78 Tue, May 12, 2009
1580     * Moose::Cookbook::FAQ and Moose::Cookbook::WTF
1581       - Merged these documents into what is now Moose::Manual::FAQ
1582
1583     * Moose::Unsweetened
1584       - Moved to Moose::Manual::Unsweetened
1585
1586     * Moose::Cookbook::Basics::Recipes 9-12
1587       - Renamed to be 8-11, since recipe 8 did not exist
1588
1589     * Moose::Exporter
1590       - Make Moose::Exporter import strict and warnings into packages
1591         that use it (doy)
1592
1593     * Moose::Object
1594       - Fix DEMOLISHALL sometimes not being able to find DEMOLISH
1595         methods during global destruction (doy)
1596
1597     * Moose::Meta::Class
1598     * Moose::Meta::Role::Application::ToClass
1599       - Track the Role::Application objects created during class-role
1600         consumption (Sartak)
1601
1602     * Moose::Meta::Class
1603       - Fix metaclass incompatibility errors when extending a vanilla perl
1604         class which isa Moose class with a metaclass role applied (t0m)
1605
1606     * Moose::Meta::Role
1607       - Add a role-combination hook, _role_for_combination, for the
1608         benefit of MooseX::Role::Parameterized (Sartak)
1609
1610     * Tests
1611       - Some tests were failing on Win32 because they explicit checked
1612         warning output for newlines. Reported by Nickolay Platonov.
1613
1614 0.77 Sat, May 2, 2009
1615     * Moose::Meta::Role
1616       - Add explicit use of Devel::GlobalDestruction and Sub::Name
1617         (perigrin)
1618
1619     * Moose::Object
1620       - Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
1621         or not we are currently in global destruction (doy)
1622       - Add explicit use of Devel::GlobalDestruction and Sub::Name
1623         (perigrin)
1624
1625     * Moose::Cookbook::FAQ
1626       - Reworked much of the existing content to be more useful to
1627         modern Moose hackers (Sartak)
1628
1629     * Makefile.PL
1630       - Depend on Class::MOP 0.83 instead of 0.82_01.
1631
1632 0.76 Mon, April 27, 2009
1633     * Moose::Meta::TypeConstraint
1634       - Do not run coercions in coerce() if the value already passes the type
1635         constraint (hdp)
1636
1637     * Moose::Meta::TypeConstraint::Class
1638       - In validation error messages, specifically say that the value is not
1639         an instance of the class. This should alleviate some frustrating
1640         forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
1641
1642     * Moose::Meta::Role::Application::ToClass
1643       - Revert the class-overrides-role warning in favor of a solution outside
1644         of the Moose core (Sartak)
1645
1646     * Tests
1647       - Make Test::Output optional again, since it's only used in a few files
1648         (Sartak)
1649
1650 0.75_01 Thu, April 23, 2009
1651     * Moose::Meta::Role::Application::ToClass
1652       - Moose now warns about each class overriding methods from roles it
1653         consumes (Sartak)
1654
1655     * Tests
1656       - Warnings tests have standardized on Test::Output which is now an
1657         unconditionally dependency (Sartak)
1658
1659     * Moose::Meta::Class
1660       - Changes to immutabilization to work with Class::MOP 0.82_01+.
1661
1662 0.75 Mon, April 20, 2009
1663     * Moose
1664     * Moose::Meta::Class
1665       - Move validation of not inheriting from roles from Moose::extends to
1666         Moose::Meta::Class::superclasses (doy)
1667
1668     * Moose::Util
1669       - add ensure_all_roles() function to encapsulate the common "apply this
1670         role unless the object already does it" pattern (hdp)
1671
1672     * Moose::Exporter
1673       - Users can now select a different metaclass with the "-metaclass"
1674         option to import, for classes and roles (Sartak)
1675
1676     * Moose::Meta::Role
1677       - Make method_metaclass an attr so that it can accept a metarole
1678         application.  (jdv)
1679
1680 0.74 Tue, April 7, 2009
1681     * Moose::Meta::Role
1682     * Moose::Meta::Method::Destructor
1683       - Include stack traces in the deprecation warnings.
1684         (Florian Ragwitz)
1685
1686     * Moose::Meta::Class
1687       - Removed the long-deprecated _apply_all_roles method.
1688
1689     * Moose::Meta::TypeConstraint
1690       - Removed the long-deprecated union method.
1691
1692
1693 0.73_02 Mon, April 6, 2009
1694     * More deprecations and renamings
1695       - Moose::Meta::Method::Constructor
1696         - initialize_body => _initialize_body (this is always called
1697           when an object is constructed)
1698
1699     * Moose::Object
1700       - The DEMOLISHALL method could throw an exception during global
1701         destruction, meaning that your class's DEMOLISH methods would
1702         not be properly called. Reported by t0m.
1703
1704     * Moose::Meta::Method::Destructor
1705       - Destructor inlining was totally broken by the change to the
1706         is_needed method in 0.72_01. Now there is a test for this
1707         feature, and it works again.
1708
1709     * Moose::Util
1710       - Bold the word 'not' in the POD for find_meta (t0m)
1711
1712 0.73_01 Sun, April 5, 2009
1713     * Moose::*
1714       - Call user_class->meta in fewer places, with the eventual goal
1715         of allowing the user to rename or exclude ->meta
1716         altogether. Instead uses Class::MOP::class_of. (Sartak)
1717
1718     * Moose::Meta::Method::Accessor
1719       - If an attribute had a lazy default, and that value did not
1720         pass the attribute's type constraint, it did not get the
1721         message from the type constraint, instead using a generic
1722         message. Test provided by perigrin.
1723
1724     * Moose::Util::TypeConstraints
1725       - Add duck_type keyword. It's sugar over making sure an object
1726         can() a list of methods. This is easier than jrockway's
1727         suggestion to fork all of CPAN. (perigrin)
1728         - add tests and documentation (perigrin)
1729
1730     * Moose
1731       - Document the fact that init_meta() returns the target class's
1732         metaclass object. (hdp)
1733
1734     * Moose::Cookbook::Extending::Recipe1
1735     * Moose::Cookbook::Extending::Recipe2
1736     * Moose::Cookbook::Extending::Recipe3
1737     * Moose::Cookbook::Extending::Recipe4
1738       - Make init_meta() examples explicitly return the metaclass and
1739         point out this fact. (hdp)
1740
1741     * Moose::Cookbook::Basics::Recipe12
1742       - A new recipe, creating a custom meta-method class.
1743
1744     * Moose::Cookbook::Meta::Recipe6
1745       - A new recipe, creating a custom meta-method class.
1746
1747     * Moose::Meta::Class
1748     * Moose::Meta::Method::Constructor
1749       - Attribute triggers no longer receive the meta-attribute object
1750         as an argument in any circumstance. Previously, triggers
1751         called during instance construction were passed the
1752         meta-attribute, but triggers called by normal accessors were
1753         not. Fixes RT#44429, reported by Mark Swayne. (hdp)
1754
1755     * Moose::Manual::Attributes
1756       - Remove references to triggers receving the meta-attribute object as an
1757         argument. (hdp)
1758
1759     * Moose::Cookbook::FAQ
1760       - Remove recommendation for deprecated Moose::Policy and
1761         Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
1762         instead. (hdp)
1763
1764     * Many methods have been renamed with a leading underscore, and a
1765       few have been deprecated entirely. The methods with a leading
1766       underscore are consider "internals only". People writing
1767       subclasses or extensions to Moose should feel free to override
1768       them, but they are not for "public" use.
1769
1770       - Moose::Meta::Class
1771         - check_metaclass_compatibility => _check_metaclass_compatibility
1772
1773       - Moose::Meta::Method::Accessor
1774         - initialize_body => _initialize_body (this is always called
1775           when an object is constructed)
1776         - /(generate_.*_method(?:_inline)?)/ => '_' . $1
1777
1778       - Moose::Meta::Method::Constructor
1779         - initialize_body => _initialize_body (this is always called
1780           when an object is constructed)
1781         - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
1782         - attributes => _attributes (now inherited from parent)
1783         - meta_instance => _meta_instance (now inherited from parent)
1784
1785       - Moose::Meta::Role
1786         - alias_method is deprecated. Use add_method
1787
1788 0.73 Fri, March 29, 2009
1789     * No changes from 0.72_01.
1790
1791 0.72_01 Thu, March 26, 2009
1792     * Everything
1793       - Almost every module has complete API documentation. A few
1794         methods (and even whole classes) have been intentionally
1795         excluded pending some rethinking of their APIs.
1796
1797     * Moose::Util::TypeConstraints
1798       - Calling subtype with a name as the only argument is now an
1799         exception. If you want an anonymous subtype do:
1800
1801          my $subtype = subtype as 'Foo';
1802
1803     * Moose::Cookbook::Meta::Recipe7
1804       - A new recipe, creating a custom meta-instance class.
1805
1806     * Moose::Cookbook::Basics::Recipe5
1807       - Fix various typos and mistakes. Includes a patch from Radu
1808         Greab.
1809
1810     * Moose::Cookbook::Basics::Recipe9
1811       - Link to this recipe from Moose.pm's builder blurb
1812
1813     * Moose::Exporter
1814       - When wrapping a function with a prototype, Moose::Exporter now
1815         makes sure the wrapped function still has the same
1816         prototype. (Daisuke Maki)
1817
1818     * Moose::Meta::Attribute
1819       - Allow a subclass to set lazy_build for an inherited
1820         attribute. (hdp)
1821
1822     * Makefile.PL
1823       - Explicitly depend on Data::OptList. We already had this dependency
1824         via Sub::Exporter, but since we're using it directly we're
1825         better off with it listed. (Sartak)
1826
1827     * Moose::Meta::Method::Constructor
1828       - Make it easier to subclass the inlining behaviour. (Ash
1829         Berlin)
1830
1831     * Moose::Manual::Delta
1832       - Details significant changes in the history of Moose, along
1833         with recommended workarounds.
1834
1835     * Moose::Manual::Contributing
1836       - Contributor's guide to Moose.
1837
1838     * Moose::Meta::Method::Constructor
1839       - The long-deprecated intialize_body method has been removed
1840         (yes, spelled like that).
1841
1842     * Moose::Meta::Method::Destructor
1843       - This is_needed method is now always a class method.
1844
1845     * Moose::Meta::Class
1846       - Changes to the internals of how make_immutable works to match
1847         changes in latest Class::MOP.
1848
1849 0.72 Mon, February 23, 2009
1850     * Moose::Object
1851     * Moose::Meta::Method::Constructor
1852       - A mutable class accepted Foo->new(undef) without complaint,
1853         while an immutable class would blow up with an unhelpful
1854         error. Now, in both cases we throw a helpful error
1855         instead. Reported by doy.
1856
1857 0.71_01 Sun, February 22, 2009
1858     * Moose::Cookbook
1859       - Hopefully fixed some POD errors in a few recipes that caused
1860         them to display weird on search.cpan.org.
1861
1862     * Moose::Util::TypeConstraints
1863       - Calling type or subtype without the sugar helpers (as, where,
1864         message) is now deprecated.
1865       - The subtype function tried hard to guess what you meant, but
1866         often got it wrong. For example:
1867
1868          my $subtype = subtype as 'ArrayRef[Object]';
1869
1870         This caused an error in the past, but now works as you'd
1871         expect.
1872
1873     * Everywhere
1874       - Make sure Moose.pm is loaded before calling
1875         Moose->throw_error. This wasn't normally an issue, but could
1876         bite you in weird cases.
1877
1878 0.71 Thu, February 19, 2009
1879     * Moose::Cookbook::Basics::Recipe11
1880       - A new recipe which demonstrates the use of BUILDARGS and
1881         BUILD. (Dave Rolsky)
1882
1883     * Moose::Cookbook::Roles::Recipe3
1884       - A new recipe, applying a role to an object instance. (Dave
1885         Rolsky)
1886
1887     * Moose::Exporter
1888       - Allow overriding specific keywords from "also" packages. (doy)
1889
1890     * Tests
1891       - Replace hardcoded cookbook tests with Test::Inline to ensure
1892         the tests match the actual code in the recipes. (Dave Rolsky)
1893
1894     * Moose::Cookbook
1895       - Working on the above turned up a number of little bugs in the
1896         recipe code. (Dave Rolsky)
1897
1898     * Moose::Util::TypeConstraints::Optimized
1899       - Just use Class::MOP for the optimized ClassName check. (Dave
1900         Rolsky)
1901
1902 0.70 Sat, February 14, 2009
1903     * Moose::Util::TypeConstraints
1904       - Added the RoleName type (stevan)
1905         - added tests for this (stevan)
1906
1907     * Moose::Cookbook::Basics::Recipe3
1908       - Updated the before qw[left right] sub to be a little more
1909         defensive about what it accepts (stevan)
1910         - added more tests to t/000_recipies/basics/003_binary_tree.t
1911           (stevan)
1912
1913     * Moose::Object
1914       - We now always call DEMOLISHALL, even if a class does not
1915         define DEMOLISH. This makes sure that method modifiers on
1916         DEMOLISHALL work as expected. (doy)
1917         - added tests for this (EvanCarroll)
1918
1919     * Moose::Util::MetaRole
1920       - Accept roles for the wrapped_method_metaclass (rafl)
1921         - added tests for this (rafl)
1922
1923     * Moose::Meta::Attribute
1924       - We no longer pass the meta-attribute object as a final
1925         argument to triggers. This actually changed for inlined code a
1926         while back, but the non-inlined version and the docs were
1927         still out of date.
1928
1929     * Tests
1930       - Some tests tried to use Test::Warn 0.10, which had bugs. Now
1931         they require 0.11. (Dave Rolsky)
1932
1933     * Documentation
1934       - Lots of small changes to the manual, cookbook, and
1935         elsewhere. These were based on feedback from various
1936         users, too many to list here. (Dave Rolsky)
1937
1938 0.69 Thu, February 12, 2009
1939     * Moose
1940       - Make some keyword errors use throw_error instead of croak
1941         since Moose::Exporter wraps keywords now (Sartak)
1942
1943     * Moose::Cookbook::*
1944       - Revised every recipe for style and clarity. Also moved some
1945         documentation out of cookbook recipes and into Moose::Manual
1946         pages. This work was funded as part of the Moose docs grant
1947         from TPF. (Dave Rolsky)
1948
1949     * Moose::Meta::Method::Delegation
1950       - If the attribute doing the delegation was not populated, the
1951         error message did not specify the attribute name
1952         properly. (doy)
1953
1954 0.68 Wed, February 4, 2009
1955     * POD
1956       - Many spelling, typo, and formatting fixes by daxim.
1957
1958     * Moose::Manual::Attributes
1959       - The NAME section in the POD used "Attribute" so search.cpan
1960         didn't resolve links from other documents properly.
1961
1962     * Moose::Meta::Method::Overriden
1963       - Now properly spelled as Overridden. Thanks to daxim for
1964         noticing this.
1965
1966 0.67 Tue, February 3, 2009
1967     * Moose::Manual::*
1968       - Lots of little typo fixes and a few clarifications. Several
1969         pages didn't have proper titles, and so weren't actually
1970         visible on search.cpan.org. Thanks to hanekomu for a variety
1971         of fixes and formatting improvements.
1972
1973 0.66 Tue, February 3, 2009
1974     * Moose::Manual
1975       - This is a brand new, extensive manual for Moose. This aims to
1976         provide a complete introduction to all of Moose's
1977         features. This work was funded as part of the Moose docs grant
1978         from TPF. (Dave Rolsky)
1979
1980     * Moose::Meta::Attribute
1981       - Added a delegation_metaclass method to replace a hard-coded
1982         use of Moose::Meta::Method::Delegation. (Dave Rolsky)
1983
1984     * Moose::Util::TypeConstraints
1985       - If you created a subtype and passed a parent that Moose didn't
1986         know about, it simply ignored the parent. Now it automatically
1987         creates the parent as a class type. This may not be what you
1988         want, but is less broken than before. (Dave Rolsky)
1989
1990     * Moose::Util::TypeConstraints
1991       - This module tried throw errors by calling Moose->throw_error,
1992         but it did not ensure that Moose was loaded first. This could
1993         cause very unhelpful errors when it tried to throw an error
1994         before Moose was loaded. (Dave Rolsky)
1995
1996     * Moose::Util::TypeConstraints
1997       - You could declare a name with subtype such as "Foo!Bar" that
1998         would be allowed, but if you used it in a parameterized type
1999         such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
2000         vetting on names created via the sugar functions, so that they
2001         can only contain alphanumerics, ":", and ".". (Dave Rolsky)
2002
2003 0.65 Thu, January 22, 2009
2004     * Moose and Moose::Meta::Method::Overridden
2005       - If an overridden method called super(), and then the
2006         superclass's method (not overridden) _also_ called super(),
2007         Moose went into an endless recursion loop. Test provided by
2008         Chris Prather. (Dave Rolsky)
2009
2010     * Moose::Meta::TypeConstraint
2011       - All methods are now documented. (gphat)
2012
2013     * t/100_bugs/011_DEMOLISH_eats_exceptions.t
2014       - Fixed some bogus failures that occurred because we tried to
2015         validate filesystem paths in a very ad-hoc and
2016         not-quite-correct way. (Dave Rolsky)
2017
2018     * Moose::Util::TypeConstraints
2019       - Added maybe_type to exports. See docs for details. (rjbs)
2020
2021     * Moose
2022       - Added Moose::Util::TypeConstraints to the SEE ALSO
2023         section. (pjf)
2024
2025     * Moose::Role
2026       - Methods created via an attribute can now fulfill a "requires"
2027         declaration for a role. (nothingmuch)
2028
2029     * Moose::Meta::Method::*
2030       - Stack traces from inlined code will now report its line and
2031         file as being in your class, as opposed to in Moose
2032         guts. (nothingmuch).
2033
2034 0.64 Wed, December 31, 2008
2035     * Moose::Meta::Method::Accessor
2036       - Always inline predicate and clearer methods (Sartak)
2037
2038     * Moose::Meta::Attribute
2039       - Support for parameterized traits (Sartak)
2040       - verify_against_type_constraint method to avoid duplication
2041         and enhance extensibility (Sartak)
2042
2043     * Moose::Meta::Class
2044       - Tests (but no support yet) for parameterized traits (Sartak)
2045
2046     * Moose
2047       - Require Class::MOP 0.75+, which has the side effect of making
2048         sure we work on Win32. (Dave Rolsky)
2049
2050 0.63 Mon, December 8, 2008
2051     * Moose::Unsweetened
2052       - Some small grammar tweaks and bug fixes in non-Moose example
2053         code. (Dave Rolsky)
2054
2055 0.62_02 Fri, December 5, 2008
2056     * Moose::Meta::Role::Application::ToClass
2057       - When a class does not provide all of a role's required
2058         methods, the error thrown now mentions all of the missing
2059         methods, as opposed to just the first one found. Requested by
2060         Curtis Poe (RT #41119). (Dave Rolsky)
2061
2062     * Moose::Meta::Method::Constructor
2063       - Moose will no longer inline a constructor for your class
2064         unless it inherits its constructor from Moose::Object, and
2065         will warn when it doesn't inline. If you want to force
2066         inlining anyway, pass "replace_constructor => 1" to
2067         make_immutable. Addresses RT #40968, reported by Jon
2068         Swartz. (Dave Rolsky)
2069       - The quoting of default values could be broken if the default
2070         contained a single quote ('). Now we use quotemeta to escape
2071         anything potentially dangerous in the defaults. (Dave Rolsky)
2072
2073 0.62_01 Wed, December 3, 2008
2074     * Moose::Object
2075       - use the method->execute API for BUILDALL
2076         and DEMOLISHALL (Sartak)
2077
2078     * Moose::Util::TypeConstraints
2079       - We now make all the type constraint meta classes immutable
2080         before creating the default types provided by Moose. This
2081         should make loading Moose a little faster. (Dave Rolsky)
2082
2083 0.62 Wed November 26, 2008
2084     * Moose::Meta::Role::Application::ToClass
2085       Moose::Meta::Role::Application::ToRole
2086       - fixed issues where excluding and aliasing the
2087         same methods for a single role did not work
2088         right (worked just fine with multiple
2089         roles) (stevan)
2090         - added test for this (stevan)
2091
2092     * Moose::Meta::Role::Application::RoleSummation
2093       - fixed the error message when trying to compose
2094         a role with a role it excludes (Sartak)
2095
2096     * Moose::Exporter
2097       - Catch another case where recursion caused the value
2098         of $CALLER to be stamped on (t0m)
2099         - added test for this (t0m)
2100
2101     * Moose
2102       - Remove the make_immutable keyword, which has been
2103         deprecated since April. It breaks metaclasses that
2104         use Moose without no Moose (Sartak)
2105
2106     * Moose::Meta::Attribute
2107       - Removing an attribute from a class now also removes delegation
2108         (handles) methods installed for that attribute (t0m)
2109         - added test for this (t0m)
2110
2111     * Moose::Meta::Method::Constructor
2112       - An attribute with a default that looked like a number (but was
2113         really a string) would accidentally be treated as a number
2114         when the constructor was made immutable (perigrin)
2115         - added test for this (perigrin)
2116
2117     * Moose::Meta::Role
2118       - create method for constructing a role
2119         dynamically (Sartak)
2120         - added test for this (Sartak)
2121       - anonymous roles! (Sartak)
2122         - added test for this (Sartak)
2123
2124     * Moose::Role
2125       - more consistent error messages (Sartak)
2126
2127     * Moose::Cookbook::Roles::Recipe1
2128       - attempt to explain why a role that just requires
2129         methods is useful (Sartak)
2130
2131 0.61 Fri November 7, 2008
2132     * Moose::Meta::Attribute
2133       - When passing a role to handles, it will be loaded if necessary
2134         (perigrin)
2135
2136     * Moose::Meta::Class
2137       - Method objects returned by get_method (and other methods)
2138         Could end up being returned without an associated_metaclass
2139         attribute. Removing get_method_map, which is provided by
2140         Class::MOP::Class, fixed this. The Moose version did nothing
2141         different from its parent except introduce a bug. (Dave Rolsky)
2142         - added tests for this (jdv79)
2143
2144     * Various
2145       - Added a $VERSION to all .pm files which didn't have one. Fixes
2146         RT #40049, reported by Adam Kennedy. (Dave Rolsky)
2147
2148     * Moose::Cookbook::Basics::Recipe4
2149     * Moose::Cookbook::Basics::Recipe6
2150       - These files had spaces on the first line of the SYNOPSIS, as
2151         opposed to a totally empty line. According to RT #40432, this
2152         confuses POD parsers. (Dave Rolsky)
2153
2154 0.60 Fri October 24, 2008
2155     * Moose::Exporter
2156       - Passing "-traits" when loading Moose caused the Moose.pm
2157         exports to be broken. Reported by t0m. (Dave Rolsky)
2158         - Tests for this bug. (t0m)
2159
2160     * Moose::Util
2161       - Change resolve_metaclass alias to use the new
2162         load_first_existing_class function. This makes it a lot
2163         simpler, and also around 5 times faster. (t0m)
2164       - Add caching to resolve_metaclass_alias, which gives an order
2165         of magnitude speedup to things which repeatedly call the
2166         Moose::Meta::Attribute->does method, notably MooseX::Storage
2167         (t0m)
2168
2169     * Moose::Util::TypeConstraint
2170       - Put back the changes for parameterized constraints that
2171         shouldn't have been removed in 0.59. We still cannot parse
2172         them, but MooseX modules can create them in some other
2173         way. See the 0.58 changes for more details. (jnapiorkowski)
2174       - Changed the way subtypes are created so that the job is
2175         delegated to a type constraint parent. This clears up some
2176         hardcoded checking and should allow correct subtypes of
2177         Moose::Meta::Type::Constraint. Don't rely on this new API too
2178         much (create_child_type) because it may go away in the
2179         future. (jnapiorkowski)
2180
2181     * Moose::Meta::TypeConstraint::Union
2182       - Type constraint names are sorted as strings, not numbers.
2183         (jnapiorkowski)
2184
2185     * Moose::Meta::TypeConstraint::Parameterizable
2186       - New parameterize method. This can be used as a factory method
2187         to make a new type constraint with a given parameterized
2188         type. (jnapiorkowski)
2189         - added tests (jnapiorkowski)
2190
2191 0.59 Tue October 14, 2008
2192     * Moose
2193       - Add abridged documentation for builder/default/initializer/
2194         predicate, and link to more details sections in
2195         Class::MOP::Attribute. (t0m)
2196
2197     * Moose::Util::TypeConstraints
2198       - removed prototypes from all but the &-based stuff (mst)
2199
2200     * Moose::Util::TypeConstraints
2201       - Creating a anonymous subtype with both a constraint and a
2202         message failed with a very unhelpful error, but should just
2203         work. Reported by t0m. (Dave Rolsky)
2204
2205     * Tests
2206       - Some tests that used Test::Warn if it was available failed
2207         with older versions of Test::Warn. Reported by Fayland. (Dave
2208         Rolsky)
2209       - Test firing behavior of triggers in relation to builder/default/
2210         lazy_build. (t0m)
2211       - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
2212         kinds of supported type. (t0m)
2213
2214     * Moose::Meta::Class
2215       - In create(), do not pass "roles" option to the superclass
2216         - added related test that creates an anon metaclass with
2217           a required attribute
2218
2219     * Moose::Meta::TypeConstraint::Class
2220     * Moose::Meta::TypeConstraint::Role
2221       - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
2222         other types (as per change in 0.55_02). (t0m)
2223
2224     * Moose::Meta::TypeConstraint::Registry
2225       - Fix warning when dealing with unknown type names (t0m)
2226
2227     * Moose::Util::TypeConstraints
2228       - Reverted changes from 0.58 related to handle parameterized
2229         types. This caused random failures on BSD and Win32 systems,
2230         apparently related to the regex engine. This means that Moose
2231         can no longer parse structured type constraints like
2232         ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
2233         supported in a slightly different way via MooseX::Types some
2234         time in the future. (Dave Rolsky)
2235
2236 0.58 Sat September 20, 2008
2237     !! This release has an incompatible change regarding !!
2238     !! how roles add methods to a class !!
2239
2240     * Roles and role application
2241       ! Roles now add methods by calling add_method, not
2242         alias_method. They make sure to always provide a method
2243         object, which will be cloned internally. This means that it is
2244         now possible to track the source of a method provided by a
2245         role, and even follow its history through intermediate roles.
2246
2247         This means that methods added by a role now show up when
2248         looking at a class's method list/map. (Dave Rolsky)
2249
2250     * Makefile.PL
2251       - From this release on, we'll try to maintain a list of
2252         conflicting modules, and warn you if you have one
2253         installed. For example, this release conflicts with ...
2254         - MooseX::Singleton        <= 0.11
2255         - MooseX::Params::Validate <= 0.05
2256         - Fey::ORM                 <= 0.10
2257
2258         In general, we try to not break backwards compatibility for
2259         most Moose users, but MooseX modules and other code which
2260         extends Moose's metaclasses is often affected by very small
2261         changes in the Moose internals.
2262
2263     * Moose::Meta::Method::Delegation
2264     * Moose::Meta::Attribute
2265       - Delegation methods now have their own method class. (Dave
2266         Rolsky)
2267
2268     * Moose::Meta::TypeConstraint::Parameterizable
2269       - Added a new method 'parameterize' which is basically a factory
2270         for the containing constraint. This makes it easier to create
2271         new types of parameterized constraints. (jnapiorkowski)
2272
2273     * Moose::Meta::TypeConstraint::Union
2274       - Changed the way Union types canonicalize their names to follow
2275         the normalized TC naming rules, which means we strip all
2276         whitespace. (jnapiorkowski)
2277
2278     * Moose::Util::TypeConstraints
2279       - Parameter and Union args are now sorted, this makes Int|Str
2280         the same constraint as Str|Int. (jnapiorkowski)
2281       - Changes to the way Union types are parsed to more correctly
2282         stringify their names. (jnapiorkowski)
2283       - When creating a parameterized type, we now use the new
2284         parameterize method. (jnapiorkowski)
2285       - Incoming type constraint strings are now normalized to remove
2286         all whitespace differences. (jnapiorkowski)
2287       - Changed the way we parse type constraint strings so that we now
2288         match TC[Int,Int,...] and TC[name=>Str] as parameterized type
2289         constraints. This lays the foundation for more flexible type
2290         constraint implementations.
2291
2292     * Tests and docs for all the above. (jnapiorkowski)
2293
2294     * Moose::Exporter
2295     * Moose
2296       - Moose::Exporter will no longer remove a subroutine that the
2297         exporting package re-exports. Moose re-exports the
2298         Carp::confess function, among others. The reasoning is that we
2299         cannot know whether you have also explicitly imported those
2300         functions for your own use, so we err on the safe side and
2301         always keep them. (Dave Rolsky)
2302         - added tests for this (rafl)
2303
2304     * Moose::Meta::Class
2305       - Changes to how we fix metaclass compatibility that are much
2306         too complicated to go into. The summary is that Moose is much
2307         less likely to complain about metaclass incompatibility
2308         now. In particular, if two metaclasses differ because
2309         Moose::Util::MetaRole was used on the two corresponding
2310         classes, then the difference in roles is reconciled for the
2311         subclass's metaclass. (Dave Rolsky)
2312       - Squashed an warning in _process_attribute (thepler)
2313
2314     * Moose::Meta::Role
2315       - throw exceptions (sooner) for invalid attribute names (thepler)
2316         - added tests for this (thepler)
2317
2318     * Moose::Util::MetaRole
2319       - If you explicitly set a constructor or destructor class for a
2320         metaclass object, and then applied roles to the metaclass,
2321         that explicitly set class would be lost and replaced with the
2322         default.
2323
2324     * Moose::Meta::Class
2325     * Moose::Meta::Attribute
2326     * Moose::Meta::Method
2327     * Moose
2328     * Moose::Object
2329     * Moose::Error::Default
2330     * Moose::Error::Croak
2331     * Moose::Error::Confess
2332       - All instances of confess() changed to use overridable
2333         C<throw_error> method. This method ultimately calls a class
2334         constructor, and you can change the class being called. In
2335         addition, errors now pass more information than just a string.
2336         The default C<error_class> behaves like C<Carp::confess>, so
2337         the behavior is not visibly different for end users.
2338
2339 0.57 Wed September 3, 2008
2340     * Moose::Intro
2341       - A new bit of doc intended to introduce folks familiar with
2342         "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
2343
2344     * Moose::Unsweetened
2345       - Shows examples of two classes, each done first with and then
2346         without Moose. This makes a nice parallel to
2347         Moose::Intro. (Dave Rolsky)
2348
2349     * Moose::Util::TypeConstraints
2350       - Fixed a bug in find_or_parse_type_constraint so that it
2351         accepts a Moose::Meta::TypeConstraint object as the parent
2352         type, not just a name (jnapiorkowski)
2353         - added tests (jnapiorkowski)
2354
2355     * Moose::Exporter
2356       - If Sub::Name was not present, unimporting failed to actually
2357         remove some sugar subs, causing test failures (Dave Rolsky)
2358
2359 0.56 Mon September 1, 2008
2360     For those not following the series of dev releases, there are
2361     several major changes in this release of Moose.
2362       ! Moose::init_meta should now be called as a method. See the
2363         docs for details.
2364
2365       - Major performance improvements by nothingmuch.
2366
2367       - New modules for extension writers, Moose::Exporter and
2368         Moose::Util::MetaRole by Dave Rolsky.
2369
2370       - Lots of doc improvements and additions, especially in the
2371         cookbook sections.
2372
2373       - Various bug fixes.
2374
2375     * Removed all references to the experimental-but-no-longer-needed
2376       Moose::Meta::Role::Application::ToMetaclassInstance.
2377
2378     * Require Class::MOP 0.65.
2379
2380 0.55_04 Sat August 30, 2008
2381     * Moose::Util::MetaRole
2382     * Moose::Cookbook::Extending::Recipe2
2383       - This simplifies the application of roles to any meta class, as
2384         well as the base object class. Reimplemented metaclass traits
2385         using this module. (Dave Rolsky)
2386
2387     * Moose::Cookbook::Extending::Recipe1
2388       - This a new recipe, an overview of various ways to write Moose
2389         extensions (Dave Rolsky)
2390
2391     * Moose::Cookbook::Extending::Recipe3
2392     * Moose::Cookbook::Extending::Recipe4
2393       - These used to be Extending::Recipe1 and Extending::Recipe2,
2394         respectively.
2395
2396 0.55_03 Fri August 29, 2008
2397     * No changes from 0.55_02 except increasing the Class::MOP
2398       dependency to 0.64_07.
2399
2400 0.55_02 Fri August 29, 2008
2401     * Makefile.PL and Moose.pm
2402       - explicitly require Perl 5.8.0+ (Dave Rolsky)
2403
2404     * Moose::Util::TypeConstraints
2405       - Fix warnings from find_type_constraint if the type is not
2406         found (t0m).
2407
2408     * Moose::Meta::TypeConstraint
2409       - Predicate methods (equals/is_a_type_of/is_subtype_of) now
2410         return false if the type you specify cannot be found in the
2411         type registry, rather than throwing an unhelpful and
2412         coincidental exception. (t0m).
2413         - added docs & test for this (t0m)
2414
2415     * Moose::Meta::TypeConstraint::Registry
2416       - add_type_constraint now throws an exception if a parameter is
2417         not supplied (t0m).
2418         - added docs & test for this (t0m)
2419
2420     * Moose::Cookbook::FAQ
2421       - Added a faq entry on the difference between "role" and "trait"
2422         (t0m)
2423
2424     * Moose::Meta::Role
2425       - Fixed a bug that caused role composition to not see a required
2426         method when that method was provided by another role being
2427         composed at the same time. (Dave Rolsky)
2428         - test and bug finding (tokuhirom)
2429
2430 0.55_01 Wed August 20, 2008
2431
2432     !! Calling Moose::init_meta as a function is now         !!
2433     !! deprecated. Please see the Moose.pm docs for details. !!
2434
2435     * Moose::Meta::Method::Constructor
2436       - Fix inlined constructor so that values produced by default
2437         or builder methods are coerced as required. (t0m)
2438         - added test for this (t0m)
2439
2440     * Moose::Meta::Attribute
2441       - A lazy attribute with a default or builder did not attempt to
2442         coerce the default value. The immutable code _did_
2443         coerce. (t0m)
2444         - added test for this (t0m)
2445
2446     * Moose::Exporter
2447       - This is a new helper module for writing "Moose-alike"
2448         modules. This should make the lives of MooseX module authors
2449         much easier. (Dave Rolsky)
2450
2451     * Moose
2452     * Moose::Cookbook::Meta::Recipe5
2453       - Implemented metaclass traits (and wrote a recipe for it):
2454
2455           use Moose -traits => 'Foo'
2456
2457         This should make writing small Moose extensions a little
2458         easier (Dave Rolsky)
2459
2460     * Moose::Cookbook::Basics::Recipe1
2461       - Removed any examples of direct hashref access, and applied an
2462         editorial axe to reduce verbosity. (Dave Rolsky)
2463
2464     * Moose::Cookbook::Basics::Recipe1
2465       - Also applied an editorial axe here. (Dave Rolsky)
2466
2467     * Moose
2468     * Moose::Cookbook::Extending::Recipe1
2469     * Moose::Cookbook::Extending::Recipe2
2470       - Rewrote extending and embedding moose documentation and
2471         recipes to use Moose::Exporter (Dave Rolsky)
2472
2473     * Moose
2474     * Moose::Role
2475       - These two modules now warn when you load them from the main
2476         package "main" package, because we will not export sugar to
2477         main. Previously it just did nothing. (Dave Rolsky)
2478
2479     * Moose::Role
2480       - Now provide an init_meta method just like Moose.pm, and you
2481         can call this to provide an alternate role metaclass. (Dave
2482         Rolsky and nothingmuch)
2483       - get_method_map now respects the package cache flag (nothingmuch)
2484
2485     * Moose::Meta::Role
2486       - Two new methods - add_method and wrap_method_body
2487         (nothingmuch)
2488
2489     * many modules
2490       - Optimizations including allowing constructors to accept hash
2491         refs, making many more classes immutable, and making
2492         constructors immutable. (nothingmuch)
2493
2494 0.55 Sun August 3, 2008
2495     * Moose::Meta::Attribute
2496       - breaking down the way 'handles' methods are
2497         created so that the process can be more easily
2498         overridden by subclasses (stevan)
2499
2500     * Moose::Meta::TypeConstraint
2501       - fixing what is passed into a ->message with
2502         the type constraints (RT #37569)
2503         - added tests for this (Charles Alderman)
2504
2505     * Moose::Util::TypeConstraints
2506       - fix coerce to accept anon types like subtype can (mst)
2507
2508     * Moose::Cookbook
2509       - reorganized the recipes into sections - Basics, Roles, Meta,
2510         Extending - and wrote abstracts for each section (Dave Rolsky)
2511
2512     * Moose::Cookbook::Basics::Recipe10
2513       - A new recipe that demonstrates operator overloading
2514         in combination with Moose. (bluefeet)
2515
2516     * Moose::Cookbook::Meta::Recipe1
2517       - an introduction to what meta is and why you'd want to make
2518         your own metaclass extensions (Dave Rolsky)
2519
2520     * Moose::Cookbook::Meta::Recipe4
2521       - a very simple metaclass example (Dave Rolsky)
2522
2523     * Moose::Cookbook::Extending::Recipe1
2524       - how to write a Moose-alike module to use your own object base
2525         class (Dave Rolsky)
2526
2527     * Moose::Cookbook::Extending::Recipe2
2528       - how to write modules with an API just like C<Moose.pm> (Dave
2529         Rolsky)
2530
2531     * all documentation
2532       - Tons of fixes, both syntactical and grammatical (Dave
2533         Rolsky, Paul Fenwick)
2534
2535 0.54 Thurs. July 3, 2008
2536     ... this is not my day today ...
2537
2538     * Moose::Meta::Attribute
2539       - fixed legal_options_for_inheritance such that
2540         clone_and_inherit options still works for
2541         Class::MOP::Attribute objects and therefore
2542         does not break MooseX::AttributeHelpers
2543         (stevan)
2544
2545 0.53 Thurs. July 3, 2008
2546     * Whoops, I guess I should run 'make manifest' before
2547       actually releasing the module. No actual changes
2548       in this release, except the fact that it includes
2549       the changes that I didn't include in the last
2550       release. (stevan--)
2551
2552 0.52 Thurs. July 3, 2008
2553     * Moose
2554       - added "FEATURE REQUESTS" section to the Moose docs
2555         to properly direct people (stevan) (RT #34333)
2556       - making 'extends' croak if it is passed a Role since
2557         this is not ever something you want to do
2558         (fixed by stevan, found by obra)
2559         - added tests for this (stevan)
2560
2561     * Moose::Object
2562       - adding support for DOES (as in UNIVERSAL::DOES)
2563         (nothingmuch)
2564         - added test for this
2565
2566     * Moose::Meta::Attribute
2567       - added legal_options_for_inheritance (wreis)
2568         - added tests for this (wreis)
2569
2570     * Moose::Cookbook::Snacks::*
2571       - removed some of the unfinished snacks that should
2572         not have been released yet. Added some more examples
2573         to the 'Keywords' snack. (stevan)
2574
2575     * Moose::Cookbook::Style
2576       - added general Moose "style guide" of sorts to the
2577         cookbook (nothingmuch) (RT #34335)
2578
2579     * t/
2580       - added more BUILDARGS tests (stevan)
2581
2582 0.51 Thurs. Jun 26, 2008
2583     * Moose::Role
2584       - add unimport so "no Moose::Role" actually does
2585         something (sartak)
2586
2587     * Moose::Meta::Role::Application::ToRole
2588       - when RoleA did RoleB, and RoleA aliased a method from RoleB in
2589         order to provide its own implementation, that method still got
2590         added to the list of required methods for consumers of
2591         RoleB. Now an aliased method is only added to the list of
2592         required methods if the role doing the aliasing does not
2593         provide its own implementation. See Recipe 11 for an example
2594         of all this. (Dave Rolsky)
2595         - added tests for this
2596
2597     * Moose::Meta::Method::Constructor
2598       - when a single argument that wasn't a hashref was provided to
2599         an immutabilized constructor, the error message was very
2600         unhelpful, as opposed to the non-immutable error. Reported by
2601         dew. (Dave Rolsky)
2602         - added test for this (Dave Rolsky)
2603
2604     * Moose::Meta::Attribute
2605       - added support for meta_attr->does("ShortAlias") (sartak)
2606         - added tests for this (sartak)
2607       - moved the bulk of the `handles` handling to the new
2608         install_delegation method (Stevan)
2609
2610     * Moose::Object
2611       - Added BUILDARGS, a new step in new()
2612
2613     * Moose::Meta::Role::Application::RoleSummation
2614       - fix typos no one ever sees (sartak)
2615
2616     * Moose::Util::TypeConstraints
2617     * Moose::Meta::TypeConstraint
2618     * Moose::Meta::TypeCoercion
2619       - Attempt to work around the ??{ } vs. threads issue
2620         (not yet fixed)
2621       - Some null_constraint optimizations
2622
2623 0.50 Thurs. Jun 11, 2008
2624     - Fixed a version number issue by bumping all modules
2625       to 0.50.
2626
2627 0.49 Thurs. Jun 11, 2008
2628     !! This version now approx. 20-25% !!
2629     !! faster with new Class::MOP 0.59 !!
2630
2631     * Moose::Meta::Attribute
2632       - fixed how the is => (ro|rw) works with
2633         custom defined reader, writer and accessor
2634         options.
2635         - added docs for this (TODO).
2636         - added tests for this (Thanks to Penfold)
2637       - added the custom attribute alias for regular
2638         Moose attributes which is "Moose"
2639       - fix builder and default both being used
2640         (groditi)
2641
2642     * Moose
2643       Moose::Meta::Class
2644       Moose::Meta::Attribute
2645       Moose::Meta::Role
2646       Moose::Meta::Role::Composite
2647       Moose::Util::TypeConstraints
2648       - switched usage of reftype to ref because
2649         it is much faster
2650
2651     * Moose::Meta::Role
2652       - changing add_package_symbol to use the new
2653         HASH ref form
2654
2655     * Moose::Object
2656       - fixed how DEMOLISHALL is called so that it
2657         can be overrided in subclasses (thanks to Sartak)
2658         - added test for this (thanks to Sartak)
2659
2660     * Moose::Util::TypeConstraints
2661       - move the ClassName type check code to
2662         Class::MOP::is_class_loaded (thanks to Sartak)
2663
2664     * Moose::Cookbook::Recipe11
2665       - add tests for this (thanks to tokuhirom)
2666
2667 0.48 Thurs. May 29, 2008
2668     (early morning release engineering)--
2669
2670     - fixing the version in Moose::Meta::Method::Destructor
2671       which was causing the indexer to choke
2672
2673 0.47 Thurs. May 29, 2008
2674     (late night release engineering)--
2675
2676     - fixing the version is META.yml, no functional
2677       changes in this release
2678
2679 0.46 Wed. May 28, 2008
2680     !! This version now approx. 20-25% !!
2681     !! faster with new Class::MOP 0.57 !!
2682
2683     * Moose::Meta::Class
2684       - some optimizations of the &initialize method
2685         since it is called so often by &meta
2686
2687     * Moose::Meta::Class
2688       Moose::Meta::Role
2689       - now use the get_all_package_symbols from the
2690         updated Class::MOP, test suite is now 10 seconds
2691         faster
2692
2693     * Moose::Meta::Method::Destructor
2694       - is_needed can now also be called as a class
2695         method for immutablization to check if the
2696         destructor object even needs to be created
2697         at all
2698
2699     * Moose::Meta::Method::Destructor
2700       Moose::Meta::Method::Constructor
2701       - added more descriptive error message to help
2702         keep people from wasting time tracking an error
2703         that is easily fixed by upgrading.
2704
2705 0.45 Saturday, May 24, 2008
2706     * Moose
2707       - Because of work in Class::MOP 0.57, all
2708         XS based functionality is now optional
2709         and a Pure Perl version is supplied
2710         - the CLASS_MOP_NO_XS environment variable
2711           can now be used to force non-XS versions
2712           to always be used
2713         - several of the packages have been tweaked
2714           to take care of this, mostly we added
2715           support for the package_name and name
2716           variables in all the Method metaclasses
2717       - before/around/after method modifiers now
2718         support regexp matching of names
2719         (thanks to Takatoshi Kitano)
2720         - tests added for this
2721         - NOTE: this only works for classes, it
2722           is currently not supported in roles,
2723           but, ... patches welcome
2724       - All usage of Carp::confess have been replaced
2725         by Carp::croak in the "keyword" functions since
2726         the stack trace is usually not helpful
2727
2728     * Moose::Role
2729       - All usage of Carp::confess have been replaced
2730         by Carp::croak in the "keyword" functions since
2731         the stack trace is usually not helpful
2732       - The 'has' keyword for roles now accepts the
2733         same array ref form that Moose.pm does
2734         (has [qw/foo bar/] => (is => 'rw', ...))
2735         - added test for this
2736
2737     * Moose::Meta::Attribute
2738       - trigger on a ro-attribute is no longer an
2739         error, as it's useful to trigger off of the
2740         constructor
2741
2742     * Moose::Meta::Class
2743       - added same 'add_package_symbol' fix as in
2744         Class::MOP 0.57
2745
2746     * Moose::Util
2747       - does_role now handles non-Moose classes
2748         more gracefully
2749         - added tests for this
2750       - added the 'add_method_modifier' function
2751         (thanks to Takatoshi Kitano)
2752
2753     * Moose::Util::TypeConstraints
2754       - subtypes of parameterizable types now are
2755         themselves parameterizable types
2756
2757     * Moose::Meta::Method::Constructor
2758       - fixed bug where trigger was not being
2759         called by the inlined immutable
2760         constructors
2761         - added test for this (thanks to Caelum)
2762
2763     * Moose::Meta::Role::Application::ToInstance
2764       - now uses the metaclass of the instance
2765         (if possible) to create the anon-class
2766         (thanks Jonathan Rockway)
2767
2768     * Moose::Cookbook::Recipe22
2769       - added the meta-attribute trait recipe
2770         (thanks to Sartak)
2771
2772     * t/
2773       - fixed hash-ordering test bug that was
2774         causing occasional cpantester failures
2775       - renamed the t/000_recipe/*.t tests to be
2776         more descriptive (thanks to Sartak)
2777
2778 0.44 Sat. May 10, 2008
2779     * Moose
2780       - made make_immutable warning cluck to
2781         show where the error is (thanks mst)
2782
2783     * Moose::Object
2784       - BUILDALL and DEMOLISHALL now call
2785         ->body when looping through the
2786         methods, to avoid the overloaded
2787         method call.
2788       - fixed issue where DEMOLISHALL was
2789         eating the $@ values, and so not
2790         working correctly, it still kind of
2791         eats them, but so does vanilla perl
2792         - added tests for this
2793
2794     * Moose::Cookbook::Recipe7
2795       - added new recipe for immutable
2796         functionality (thanks Dave Rolsky)
2797
2798     * Moose::Cookbook::Recipe9
2799       - added new recipe for builder and
2800         lazy_build (thanks Dave Rolsky)
2801
2802     * Moose::Cookbook::Recipe11
2803       - added new recipe for method aliasing
2804         and exclusion with Roles (thanks Dave Rolsky)
2805
2806     * t/
2807       - fixed Win32 test failure (thanks spicyjack)
2808
2809     ~ removed Build.PL and Module::Build compat
2810       since Module::Install has done that.
2811
2812 0.43 Wed. April, 30, 2008
2813     * NOTE TO SELF:
2814         drink more coffee before
2815         doing release engineering
2816
2817     - whoops, forgot to do the smolder tests,
2818       and we broke some of the custom meta-attr
2819       modules. This fixes that.
2820
2821 0.42 Mon. April 28, 2008
2822     - some bad tests slipped by, nothing else
2823       changed in this release (cpantesters++)
2824
2825     - upped the Class::MOP dependency to 0.55
2826       since we have tests which need the C3
2827       support
2828
2829 0.41 Mon. April 28, 2008
2830     ~~ numerous documentation updates ~~
2831
2832     - Changed all usage of die to Carp::croak for better
2833       error reporting (initial patch by Tod Hagan)
2834
2835     ** IMPORTANT NOTE **
2836     - the make_immutable keyword is now deprecated, don't
2837       use it in any new code and please fix your old code
2838       as well. There will be 2 releases, and then it will
2839       be removed.
2840
2841     * Moose
2842       Moose::Role
2843       Moose::Meta::Class
2844       - refactored the way inner and super work to avoid
2845         any method/@ISA cache penalty (nothingmuch)
2846
2847     * Moose::Meta::Class
2848       - fixing &new_object to make sure trigger gets the
2849         coerced value (spotted by Charles Alderman on the
2850         mailing list)
2851         - added test for this
2852
2853     * Moose::Meta::Method::Constructor
2854       - immutable classes which had non-lazy attributes were calling
2855         the default generating sub twice in the constructor. (bug
2856         found by Jesse Luehrs, fixed by Dave Rolsky)
2857         - added tests for this (Dave Rolsky)
2858       - fix typo in initialize_body method (nothingmuch)
2859
2860     * Moose::Meta::Method::Destructor
2861       - fix typo in initialize_body method (nothingmuch)
2862
2863     * Moose::Meta::Method::Overriden
2864       Moose::Meta::Method::Augmented
2865       - moved the logic for these into their own
2866         classes (nothingmuch)
2867
2868     * Moose::Meta::Attribute
2869       - inherited attributes may now be extended without
2870         restriction on the type ('isa', 'does') (Sartak)
2871         - added tests for this (Sartak)
2872       - when an attribute property is malformed (such as lazy without
2873         a default), give the name of the attribute in the error
2874         message (Sartak)
2875       - added the &applied_traits and &has_applied_traits methods
2876         to allow introspection of traits
2877         - added tests for this
2878       - moved 'trait' and 'metaclass' argument handling to here from
2879         Moose::Meta::Class
2880       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
2881         '+foo' syntax) (nothingmuch)
2882         - added tests for this (t0m)
2883
2884     * Moose::Object
2885       - localize $@ inside DEMOLISHALL to avoid it
2886         eating $@ (found by Ernesto)
2887         - added test for this (thanks to Ernesto)
2888
2889     * Moose::Util::TypeConstraints
2890       - &find_type_constraint now DWIMs when given an
2891         type constraint object or name (nothingmuch)
2892       - &find_or_create_type_constraint superseded with a number of more
2893         specific functions:
2894         - find_or_create_{isa,does}_type_constraint
2895         - find_or_parse_type_constraint
2896
2897     * Moose::Meta::TypeConstraint
2898       Moose::Meta::TypeConstraint::Class
2899       Moose::Meta::TypeConstraint::Role
2900       Moose::Meta::TypeConstraint::Enum
2901       Moose::Meta::TypeConstraint::Union
2902       Moose::Meta::TypeConstraint::Parameterized
2903         - added the &equals method for comparing two type
2904           constraints (nothingmuch)
2905           - added tests for this (nothingmuch)
2906
2907     * Moose::Meta::TypeConstraint
2908       - add the &parents method, which is just an alias to &parent.
2909         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
2910
2911     * Moose::Meta::TypeConstraint::Class
2912       - added the class attribute for introspection purposes
2913         (nothingmuch)
2914         - added tests for this
2915
2916     * Moose::Meta::TypeConstraint::Enum
2917       Moose::Meta::TypeConstraint::Role
2918       - broke these out into their own classes (nothingmuch)
2919
2920     * Moose::Cookbook::Recipe*
2921       - fixed references to test file locations in the POD
2922         and updated up some text for new Moose features
2923         (Sartak)
2924
2925     * Moose::Util
2926       - Added &resolve_metaclass_alias, a helper function for finding an actual
2927         class for a short name (e.g. in the traits list)
2928
2929 0.40 Fri. March 14, 2008
2930     - I hate Pod::Coverage
2931
2932 0.39 Fri. March 14, 2008
2933     * Moose
2934       - documenting the use of '+name' with attributes
2935         that come from recently composed roles. It makes
2936         sense, people are using it, and so why not just
2937         officially support it.
2938       - fixing the 'extends' keyword so that it will not
2939         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
2940
2941     * oose
2942       - added the perl -Moose=+Class::Name feature to allow
2943         monkeypatching of classes in one liners
2944
2945     * Moose::Util
2946       - fixing the 'apply_all_roles' keyword so that it will not
2947         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
2948
2949     * Moose::Meta::Class
2950       - added ->create method which now supports roles (thanks to jrockway)
2951         - added tests for this
2952       - added ->create_anon_class which now supports roles and caching of
2953         the results (thanks to jrockway)
2954         - added tests for this
2955       - made ->does_role a little more forgiving when it is
2956         checking a Class::MOP era metaclasses.
2957
2958     * Moose::Meta::Role::Application::ToInstance
2959       - it is now possible to pass extra params to be used when
2960         a role is applied to an the instance (rebless_params)
2961         - added tests for this
2962
2963     * Moose::Util::TypeConstraints
2964       - class_type now accepts an optional second argument for a
2965         custom message. POD anotated accordingly (groditi)
2966         - added tests for this
2967       - it is now possible to make anon-enums by passing 'enum' an
2968         ARRAY ref instead of the $name => @values. Everything else
2969         works as before.
2970         - added tests for this
2971
2972     * t/
2973       - making test for using '+name' on attributes consumed
2974         from a role, it works and makes sense too.
2975
2976     * Moose::Meta::Attribute
2977       - fix handles so that it doesn't return nothing
2978         when the method cannot be found, not sure why
2979         it ever did this originally, this means we now
2980         have slightly better support for AUTOLOADed
2981         objects
2982         - added more delegation tests
2983       - adding ->does method to this so as to better
2984         support traits and their introspection.
2985         - added tests for this
2986
2987     * Moose::Object
2988       - localizing the Data::Dumper configurations so
2989         that it does not pollute others (RT #33509)
2990       - made ->does a little more forgiving when it is
2991         passed Class::MOP era metaclasses.
2992
2993 0.38 Fri. Feb. 15, 2008
2994     * Moose::Meta::Attribute
2995       - fixed initializer to correctly do
2996         type checking and coercion in the
2997         callback
2998         - added tests for this
2999
3000     * t/
3001       - fixed some finicky tests (thanks to konobi)
3002
3003 0.37 Thurs. Feb. 14, 2008
3004     * Moose
3005       - fixed some details in Moose::init_meta
3006         and its superclass handling (thanks thepler)
3007         - added tests for this (thanks thepler)
3008       - 'has' now dies if you don't pass in name
3009         value pairs
3010       - added the 'make_immutable' keyword as a shortcut
3011         to make_immutable
3012
3013     * Moose::Meta::Class
3014       Moose::Meta::Method::Constructor
3015       Moose::Meta::Attribute
3016       - making (init_arg => undef) work here too
3017         (thanks to nothingmuch)
3018
3019     * Moose::Meta::Attribute
3020       Moose::Meta::Method::Constructor
3021       Moose::Meta::Method::Accessor
3022       - make lazy attributes respect attr initializers (rjbs)
3023         - added tests for this
3024
3025     * Moose::Util::TypeConstraints
3026       Moose::Util::TypeConstraints::OptimizedConstraints
3027       Moose::Meta::TypeConstraints
3028       Moose::Meta::Attribute
3029       Moose::Meta::Method::Constructor
3030       Moose::Meta::Method::Accessor
3031       - making type errors use the
3032         assigned message (thanks to Sartak)
3033         - added tests for this
3034
3035     * Moose::Meta::Method::Destructor
3036       - making sure DESTROY gets inlined properly
3037         with successive DEMOLISH calls (thanks to manito)
3038
3039     * Moose::Meta::Attribute
3040       Moose::Meta::Method::Accessor
3041       - fixed handling of undef with type constraints
3042         (thanks to Ernesto)
3043         - added tests for this
3044
3045     * Moose::Util
3046       - added &get_all_init_args and &get_all_attribute_values
3047         (thanks to Sartak and nothingmuch)
3048
3049 0.36 Sat. Jan. 26, 2008
3050     * Moose::Role
3051       Moose::Meta::Attribute
3052       - role type tests now support when roles are
3053         applied to non-Moose classes (found by ash)
3054         - added tests for this (thanks to ash)
3055       - couple extra tests to boost code coverage
3056
3057     * Moose::Meta::Method::Constructor
3058       - improved fix for handling Class::MOP attributes
3059         - added test for this
3060
3061     * Moose::Meta::Class
3062       - handled the add_attribute($attribute_meta_object)
3063         case correctly
3064         - added test for this
3065
3066 0.35 Tues. Jan. 22, 2008
3067     * Moose::Meta::Method::Constructor
3068       - fix to make sure even Class::MOP attributes
3069         are handled correctly (Thanks to Dave Rolsky)
3070         - added test for this (also Dave Rolsky)
3071
3072     * Moose::Meta::Class
3073       - improved error message on _apply_all_roles,
3074         you should now use Moose::Util::apply_all_roles
3075         and you shouldnt have been using a _ prefixed
3076         method in the first place ;)
3077
3078 0.34 Mon. Jan. 21, 2008
3079     ~~~ more misc. doc. fixes ~~~
3080     ~~ updated copyright dates ~~
3081
3082     Moose is now a postmodern object system :)
3083       - (see the POD for details)
3084
3085     * <<Role System Refactoring>>
3086     - this release contains a major reworking and
3087       cleanup of the role system
3088       - 100% backwards compat.
3089       - Role application now restructured into seperate
3090         classes based on type of applicants
3091       - Role summation (combining of more than one role)
3092         is much cleaner and anon-classes are no longer
3093         used in this process
3094       - new Composite role metaclass
3095       - runtime application of roles to instances
3096         is now more efficient and re-uses generated
3097         classes when applicable
3098
3099     * <<New Role composition features>>
3100       - methods can now be excluded from a given role
3101         during composition
3102       - methods can now be aliased to another name (and
3103         still retain the original as well)
3104
3105     * Moose::Util::TypeConstraints::OptimizedConstraints
3106       - added this module (see above)
3107
3108     * Moose::Meta::Class
3109       - fixed the &_process_attribute method to be called
3110         by &add_attribute, so that the API is now correct
3111
3112     * Moose::Meta::Method::Accessor
3113       - fixed bug when passing a list of values to
3114         an accessor would get (incorrectly) ignored.
3115         Thanks to Sartak for finding this ;)
3116         - added tests for this (Sartak again)
3117
3118     * Moose::Meta::Method::Accessor
3119       Moose::Meta::Method::Constructor
3120       Moose::Meta::Attribute
3121       Moose::Meta::TypeConstraint
3122       Moose::Meta::TypeCoercion
3123       - lots of cleanup of such things as:
3124         - generated methods
3125         - type constraint handling
3126         - error handling/messages
3127         (thanks to nothingmuch)
3128
3129     * Moose::Meta::TypeConstraint::Parameterizable
3130       - added this module to support the refactor
3131         in Moose::Meta::TypeConstraint::Parameterized
3132
3133     * Moose::Meta::TypeConstraint::Parameterized
3134       - refactored how these types are handled so they
3135         are more generic and not confined to ArrayRef
3136         and HashRef only
3137
3138     * t/
3139       - shortened some file names for better VMS support (RT #32381)
3140
3141 0.33 Fri. Dec. 14, 2007
3142     !! Moose now loads 2 x faster !!
3143     !!  with new Class::MOP 0.49  !!
3144
3145     ++ new oose.pm module to make command line
3146        Moose-ness easier (see POD docs for more)
3147
3148     * Moose::Meta::Class
3149     * Moose::Meta::Role
3150       - several tweaks to take advantage of the
3151         new method map caching in Class::MOP
3152
3153     * Moose::Meta::TypeConstraint::Parameterized
3154       - allow subtypes of ArrayRef and HashRef to
3155         be used as a container (sartak)
3156         - added tests for this
3157       - basic support for coercion to ArrayRef and
3158         HashRef for containers (sartak)
3159         - added tests for this
3160
3161     * Moose::Meta::TypeCoercion
3162       - coercions will now create subtypes as needed
3163         so you can now add coercions to parameterized
3164         types without having to explictly define them
3165         - added tests for this
3166
3167     * Moose::Meta::Method::Accessor
3168       - allow subclasses to decide whether we need
3169         to copy the value into a new variable (sartak)
3170
3171 0.32 Tues. Dec. 4, 2007
3172     * Moose::Util::TypeConstraints
3173       - fixing how subtype aliases of unions work
3174         they should inherit the parent's coercion
3175         - added tests for this
3176       - you can now define multiple coercions on
3177         a single type at different times instead of
3178         having to do it all in one place
3179         - added tests for this
3180
3181     * Moose::Meta::TypeConstraint
3182       - there is now a default constraint of sub { 1 }
3183         instead of Moose::Util::TypeConstraints setting
3184         this for us
3185
3186     * Moose::Meta::TypeCoercion
3187     * Moose::Meta::TypeCoercion::Union
3188       - added the &has_coercion_for_type and
3189         &add_type_coercions methods to support the
3190         new features above (although you cannot add
3191         more type coercions for Union types)
3192
3193 0.31 Mon. Nov. 26, 2007
3194     * Moose::Meta::Attribute
3195       - made the +attr syntax handle extending types with
3196         parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
3197         now works if the original foo is an ArrayRef.
3198         - added tests for this.
3199       - delegation now works even if the attribute does not
3200         have a reader method using the get_read_method_ref
3201         method from Class::MOP::Attribute.
3202         - added tests for this
3203         - added docs for this
3204
3205     * Moose::Util::TypeConstraints
3206       - passing no "additional attribute info" to
3207         &find_or_create_type_constraint will no longer
3208         attempt to create an __ANON__ type for you,
3209         instead it will just return undef.
3210         - added docs for this
3211
3212 0.30 Fri. Nov. 23, 2007
3213     * Moose::Meta::Method::Constructor
3214       -builder related bug in inlined constructor. (groditi)
3215
3216     * Moose::Meta::Method::Accessor
3217       - genereate unnecessary calls to predicates and refactor
3218         code generation for runtime speed (groditi)
3219
3220     * Moose::Util::TypeConstraints
3221       - fix ClassName constraint to introspect symbol table (mst)
3222         - added more tests for this (mst)
3223       - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
3224         with work correctly.
3225         - added tests for this
3226
3227     * Moose::Cookbook
3228       - adding the link to Recipie 11 (written by Sartak)
3229         - adding test for SYNOPSIS code
3230
3231     * t/
3232       - New tests for builder bug. Upon instantiation, if an
3233         attribute had a builder, no value and was not lazy the
3234         builder default was not getting run, oops. (groditi)
3235
3236 0.29 Tues. Nov. 13, 2007
3237     * Moose::Meta::Attribute
3238       - Fix error message on missing builder method (groditi)
3239
3240     * Moose::Meta::Method::Accessor
3241       - Fix error message on missing builder method (groditi)
3242
3243     * t/
3244       - Add test to check for the correct error message when
3245         builder method is missing (groditi)
3246
3247 0.28 Tues. Nov. 13, 2007
3248     - 0.27 packaged incorrectly (groditi)
3249
3250 0.27 Tues. Nov. 13, 2007
3251     * Moose::Meta::Attribute
3252       - Added support for the new builder option (groditi)
3253       - Added support for lazy_build option (groditi)
3254       - Changed slot initialization for predicate changes (groditi)
3255
3256     * Moose::Meta::Method::Accessor
3257       - Added support for lazy_build option (groditi)
3258       - Fix inline methods to work with corrected predicate
3259         behavior (groditi)
3260
3261     * Moose::Meta::Method::Constructor
3262       - Added support for lazy_build option (groditi)
3263
3264     * t/
3265       - tests for builder and lazy_build (groditi)
3266
3267     * fixing some misc. bits in the docs that
3268       got mentioned on CPAN Forum & perlmonks
3269
3270     * Moose::Meta::Role
3271       - fixed how required methods are handled
3272         when they encounter overriden or modified
3273         methods from a class (thanks to confound).
3274         - added tests for this
3275
3276     * Moose::Util::TypeConstraint
3277       - fixed the type notation parser so that
3278         the | always creates a union and so is
3279         no longer a valid type char (thanks to
3280         konobi, mugwump and #moose for working
3281         this one out.)
3282         - added more tests for this
3283
3284 0.26 Thurs. Sept. 27, 2007
3285     == New Features ==
3286
3287     * Parameterized Types
3288       We now support parameterized collection types, such as:
3289           ArrayRef[Int]    # array or integers
3290           HashRef[Object]  # a hash with object values
3291       They can also be nested:
3292           ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
3293       And work with the type unions as well:
3294           ArrayRef[Int | Str]  # array of integers of strings
3295
3296     * Better Framework Extendability
3297       Moose.pm is now "extendable" such that it is now much
3298       easier to extend the framework and add your own keywords
3299       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
3300       section of the Moose.pm docs.
3301
3302     * Moose Snacks!
3303       In an effort to begin documenting some of the various
3304       details of Moose as well as some common idioms, we have
3305       created Moose::Cookbook::Snacks as a place to find
3306       small (easily digestable) nuggets of Moose code.
3307
3308     ====
3309     ~ Several doc updates/cleanup thanks to castaway ~
3310
3311     - converted build system to use Module::Install instead of
3312       Module::Build (thanks to jrockway)
3313
3314     * Moose
3315       - added all the meta classes to the immutable list and
3316         set it to inline the accessors
3317       - fix import to allow Sub::Exporter like { into => }
3318             and { into_level => } (perigrin)
3319       - exposed and documented init_meta() to allow better
3320             embedding and extending of Moose (perigrin)
3321
3322         * t/
3323           - complete re-organization of the test suite
3324           - added some new tests as well
3325           - finally re-enabled the Moose::POOP test since
3326             the new version of DBM::Deep now works again
3327             (thanks rob)
3328
3329     * Moose::Meta::Class
3330       - fixed very odd and very nasty recursion bug with
3331         inner/augment (mst)
3332         - added tests for this (eilara)
3333
3334     * Moose::Meta::Attribute
3335       Moose::Meta::Method::Constructor
3336       Moose::Meta::Method::Accessor
3337       - fixed issue with overload::Overloaded getting called
3338         on non-blessed items. (RT #29269)
3339         - added tests for this
3340
3341     * Moose::Meta::Method::Accessor
3342       - fixed issue with generated accessor code making
3343         assumptions about hash based classes (thanks to dexter)
3344
3345     * Moose::Coookbook::Snacks
3346       - these are bits of documentation, not quite as big as
3347         Recipes but which have no clear place in the module docs.
3348         So they are Snacks! (horray for castaway++)
3349
3350     * Moose::Cookbook::Recipe4
3351       - updated it to use the new ArrayRef[MyType] construct
3352         - updated the accompanying test as well
3353
3354     +++ Major Refactor of the Type Constraint system +++
3355     +++       with new features added as well        +++
3356
3357     * Moose::Util::TypeConstraint
3358       - no longer uses package variable to keep track of
3359         the type constraints, now uses the an instance of
3360         Moose::Meta::TypeConstraint::Registry to do it
3361       - added more sophisticated type notation parsing
3362         (thanks to mugwump)
3363         - added tests for this
3364
3365     * Moose::Meta::TypeConstraint
3366       - some minor adjustments to make subclassing easier
3367       - added the package_defined_in attribute so that we
3368         can track where the type constraints are created
3369
3370     * Moose::Meta::TypeConstraint::Union
3371       - this is now been refactored to be a subclass of
3372         Moose::Meta::TypeConstraint
3373
3374     * Moose::Meta::TypeCoercion::Union
3375       - this has been added to service the newly refactored
3376         Moose::Meta::TypeConstraint::Union and is itself
3377         a subclass of Moose::Meta::TypeCoercion
3378
3379     * Moose::Meta::TypeConstraint::Parameterized
3380       - added this module (taken from MooseX::AttributeHelpers)
3381         to help construct nested collection types
3382         - added tests for this
3383
3384     * Moose::Meta::TypeConstraint::Registry
3385       - added this class to keep track of type constraints
3386
3387 0.25 Mon. Aug. 13, 2007
3388     * Moose
3389       - Documentation update to reference Moose::Util::TypeConstraints
3390         under 'isa' in 'has' for how to define a new type
3391         (thanks to shlomif).
3392
3393     * Moose::Meta::Attribute
3394       - required attributes now will no longer accept undef
3395         from the constructor, even if there is a default and lazy
3396         - added tests for this
3397       - default subroutines must return a value which passes the
3398         type constraint
3399         - added tests for this
3400
3401     * Moose::Meta::Attribute
3402     * Moose::Meta::Method::Constructor
3403     * Moose::Meta::Method::Accessor
3404       - type-constraint tests now handle overloaded objects correctly
3405         in the error message
3406         - added tests for this (thanks to EvanCarroll)
3407
3408     * Moose::Meta::TypeConstraint::Union
3409       - added (has_)hand_optimized_constraint to this class so that
3410         it behaves as the regular Moose::Meta::TypeConstraint does.
3411
3412     * Moose::Meta::Role
3413       - large refactoring of this code
3414       - added several more tests
3415         - tests for subtle conflict resolition issues
3416           added, but not currently running
3417           (thanks to kolibre)
3418
3419     * Moose::Cookbook::Recipe7
3420       - added new recipe for augment/inner functionality
3421         (still in progress)
3422         - added test for this
3423
3424     * Moose::Spec::Role
3425       - a formal definition of roles (still in progress)
3426
3427     * Moose::Util
3428       - utilities for easier working with Moose classes
3429         - added tests for these
3430
3431     * Test::Moose
3432       - This contains Moose specific test functions
3433         - added tests for these
3434
3435 0.24 Tues. July 3, 2007
3436     ~ Some doc updates/cleanup ~
3437
3438     * Moose::Meta::Attribute
3439       - added support for roles to be given as parameters
3440         to the 'handles' option.
3441         - added tests and docs for this
3442       - the has '+foo' attribute form now accepts changes to
3443         the lazy option, and the addition of a handles option
3444         (but not changing the handles option)
3445         - added tests and docs for this
3446
3447     * Moose::Meta::Role
3448       - required methods are now fetched using find_method_by_name
3449         so that required methods can come from superclasses
3450         - adjusted tests for this
3451
3452 0.23 Mon. June 18, 2007
3453     * Moose::Meta::Method::Constructor
3454       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
3455     * Moose::Meta::Class
3456       - Modify make_immutable to work with the new Class::MOP immutable
3457         mechanism + POD + very basic test (groditi)
3458     * Moose::Meta::Attribute
3459       - Fix handles to use goto() so that caller() comes out properly on
3460         the other side (perigrin)
3461
3462 0.22 Thurs. May 31, 2007
3463     * Moose::Util::TypeConstraints
3464       - fix for prototype undeclared issue when Moose::Util::TypeConstraints
3465         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
3466         prototypes for functions
3467       - added the ClassName type constraint, this checks for strings
3468         which will respond true to ->isa(UNIVERSAL).
3469         - added tests and docs for this
3470       - subtyping just in name now works correctly by making the
3471         default for where be { 1 }
3472         - added test for this
3473
3474     * Moose::Meta::Method::Accessor
3475       - coerce and lazy now work together correctly, thanks to
3476         merlyn for finding this bug
3477         - tests added for this
3478       - fix reader presedence bug in Moose::Meta::Attribute + tests
3479
3480     * Moose::Object
3481       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
3482         a HASH-ref and missed. This produces better error messages then
3483         having it die cause undef is not a HASH.
3484         - added tests for this
3485
3486 0.21 Thursday, May 2nd, 2007
3487     * Moose
3488       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
3489       - modified unimport to remove super and inner along with the rest
3490         - altered unimport tests to handle this
3491
3492     * Moose::Role
3493       - altered super export to populate SUPER_SLOT
3494
3495     * Moose::Meta::Class
3496       - altered augment and override modifier application to use *_SLOT
3497         - modified tests for these to unimport one test class each to test
3498
3499     * Moose::Meta::Role
3500       - fixed issue where custom attribute metaclasses
3501         where not handled correctly in roles
3502         - added tests for this
3503
3504     * Moose::Meta::Class
3505       - fixed issue where extending metaclasses with
3506         roles would blow up. Thanks to Aankhen`` for
3507         finding this insidious error, and it's solution.
3508
3509     ~~ lots of spelling and grammer fixes in the docs,
3510        many many thanks to rlb3 and Aankhen for these :)
3511
3512 0.20 Friday, April 6th, 2007
3513     >> I messed up the SKIP logic in one test
3514        so this release is just to fix that.
3515
3516     * Moose
3517       - 'has' now also accepts an ARRAY ref
3518         to create multiple attrs (see docs)
3519         (thanks to konobi for this)
3520          - added tests and docs
3521
3522 0.19 Thurs. April 5th, 2007
3523     ~~ More documentation updates ~~
3524
3525     * Moose::Util::TypeConstraints
3526       - 'type' now supports messages as well
3527         thanks to phaylon for finding this
3528         - added tests for this
3529       - added &list_all_type_constraints and
3530         &list_all_builtin_type_constraints
3531         functions to facilitate introspection.
3532
3533     * Moose::Meta::Attribute
3534       - fixed regexp 'handles' declarations
3535         to build the list of delegated methods
3536         correctly (and not override important
3537         things like &new) thanks to ashleyb
3538         for finding this
3539         - added tests and docs for this
3540       - added the 'documentation' attributes
3541         so that you can actually document your
3542         attributes and inspect them through the
3543         meta-object.
3544         - added tests and docs for this
3545
3546     * Moose::Meta::Class
3547       - when loading custom attribute metaclasses
3548         it will first look in for the class in the
3549         Moose::Meta::Attribute::Custom::$name, and
3550         then default to just loading $name.
3551         - added tests and docs for this
3552
3553     * Moose::Meta::TypeConstraint
3554       - type constraints now stringify to their names.
3555         - added test for this
3556
3557     * misc.
3558       - added tests to assure we work with Module::Refresh
3559       - added stricter test skip logic in the Moose POOP
3560         test, ask Rob Kinyon why.
3561         - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
3562
3563 0.18 Sat. March 10, 2007
3564     ~~ Many, many documentation updates ~~
3565
3566     * misc.
3567       - We now use Class::MOP::load_class to
3568         load all classes.
3569       - added tests to show types and subtypes
3570         working with Declare::Constraints::Simple
3571         and Test::Deep as constraint engines.
3572
3573 0.18_001
3574     !! You must have Class::MOP 0.37_001  !!
3575     !! for this developer release to work !!
3576
3577     This release was primarily adding the immutable
3578     feature to Moose. An immutable class is one which
3579     you promise not to alter. When you set the class
3580     as immutable it will perform various bits of
3581     memoization and inline certain part of the code
3582     (constructors, destructors and accessors). This
3583     minimizes (and in some cases totally eliminates)
3584     one of Moose's biggest performance hits. This
3585     feature is not on by default, and is 100% optional.
3586     It has several configurable bits as well, so you
3587     can pick and choose to your specific needs.
3588
3589     The changes involved in this were fairly wide and
3590     highly specific, but 100% backwards compatible, so
3591     I am not going to enumerate them here. If you are
3592     truely interested in what was changed, please do
3593     a diff :)
3594
3595 0.17 Tues. Nov. 14, 2006
3596     * Moose::Meta::Method::Accessor
3597       - bugfix for read-only accessors which
3598         are have a type constraint and lazy.
3599         Thanks to chansen for finding it.
3600
3601 0.16 Tues. Nov. 14, 2006
3602     ++ NOTE ++
3603     There are some speed improvements in this release,
3604     but they are only the begining, so stay tuned.
3605
3606     * Moose::Object
3607       - BUILDALL and DEMOLISHALL no longer get
3608         called unless they actually need to be.
3609         This gave us a signifigant speed boost
3610         for the cases when there is no BUILD or
3611         DEMOLISH method present.
3612
3613     * Moose::Util::TypeConstraints
3614     * Moose::Meta::TypeConstraint
3615       - added an 'optimize_as' option to the
3616         type constraint, which allows for a
3617         hand optimized version of the type
3618         constraint to be used when possible.
3619       - Any internally created type constraints
3620         now provide an optimized version as well.
3621
3622 0.15 Sun. Nov. 5, 2006
3623     ++ NOTE ++
3624     This version of Moose *must* have Class::MOP 0.36 in order
3625     to work correctly. A number of small internal tweaks have
3626     been made in order to be compatible with that release.
3627
3628     * Moose::Util::TypeConstraints
3629       - added &unimport so that you can clean out
3630         your class namespace of these exported
3631         keywords
3632
3633     * Moose::Meta::Class
3634       - fixed minor issue which occasionally
3635         comes up during global destruction
3636         (thanks omega)
3637       - moved Moose::Meta::Method::Overriden into
3638         its own file.
3639
3640     * Moose::Meta::Role
3641       - moved Moose::Meta::Role::Method into
3642         its own file.
3643
3644     * Moose::Meta::Attribute
3645       - changed how we do type checks so that
3646         we reduce the overall cost, but still
3647         retain correctness.
3648        *** API CHANGE ***
3649       - moved accessor generation methods to
3650         Moose::Meta::Method::Accessor to
3651         conform to the API changes from
3652         Class::MOP 0.36
3653
3654     * Moose::Meta::TypeConstraint
3655       - changed how constraints are compiled
3656         so that we do less recursion and more
3657         iteration. This makes the type check
3658         faster :)
3659       - moved Moose::Meta::TypeConstraint::Union
3660         into its own file
3661
3662     * Moose::Meta::Method::Accessor
3663       - created this from methods formerly found in
3664         Moose::Meta::Attribute
3665
3666     * Moose::Meta::Role::Method
3667       - moved this from Moose::Meta::Role
3668
3669     * Moose::Meta::Method::Overriden
3670       - moved this from Moose::Meta::Class
3671
3672     * Moose::Meta::TypeConstraint::Union
3673       - moved this from Moose::Meta::TypeConstraint
3674
3675 0.14 Mon. Oct. 9, 2006
3676
3677     * Moose::Meta::Attribute
3678       - fixed lazy attributes which were not getting
3679         checked with the type constraint (thanks ashley)
3680         - added tests for this
3681       - removed the over-enthusiastic DWIMery of the
3682         automatic ArrayRef and HashRef defaults, it
3683         broke predicates in an ugly way.
3684         - removed tests for this
3685
3686 0.13 Sat. Sept. 30, 2006
3687     ++ NOTE ++
3688     This version of Moose *must* have Class::MOP 0.35 in order
3689     to work correctly. A number of small internal tweaks have
3690     been made in order to be compatible with that release.
3691
3692     * Moose
3693       - Removed the use of UNIVERSAL::require to be a better
3694         symbol table citizen and remove a dependency
3695         (thanks Adam Kennedy)
3696
3697       **~~ removed experimental & undocumented feature ~~**
3698       - commented out the 'method' and 'self' keywords, see the
3699         comments for more info.
3700
3701     * Moose::Cookbook
3702       - added a FAQ and WTF files to document frequently
3703         asked questions and common problems
3704
3705     * Moose::Util::TypeConstraints
3706       - added GlobRef and FileHandle type constraint
3707         - added tests for this
3708
3709     * Moose::Meta::Attribute
3710       - if your attribute 'isa' ArrayRef of HashRef, and you have
3711         not explicitly set a default, then make the default DWIM.
3712         This will also work for subtypes of ArrayRef and HashRef
3713         as well.
3714       - you can now auto-deref subtypes of ArrayRef or HashRef too.
3715         - new test added for this (thanks to ashley)
3716
3717     * Moose::Meta::Role
3718       - added basic support for runtime role composition
3719         but this is still *highly experimental*, so feedback
3720         is much appreciated :)
3721         - added tests for this
3722
3723     * Moose::Meta::TypeConstraint
3724       - the type constraint now handles the coercion process
3725         through delegation, this is to support the coercion
3726         of unions
3727
3728     * Moose::Meta::TypeConstraint::Union
3729       - it is now possible for coercions to be performed
3730         on a type union
3731         - added tests for this (thanks to konobi)
3732
3733     * Moose::Meta::TypeCoercion
3734       - properly capturing error when type constraint
3735         is not found
3736
3737     * Build.PL
3738       - Scalar::Util 1.18 is bad on Win32, so temporarily
3739         only require version 1.17 for Win32 and cygwin.
3740         (thanks Adam Kennedy)
3741
3742 0.12 Sat. Sept. 1, 2006
3743     * Moose::Cookbook
3744       - Recipe5 (subtypes & coercion) has been written
3745
3746     * Moose
3747       - fixed "bad meta" error message to be more descriptive
3748       - fixed &unimport to not remove the &inner and &super
3749         keywords because we need to localize them.
3750       - fixed number of spelling/grammer issues, thanks Theory :)
3751
3752       **~~ experimental & undocumented feature ~~**
3753       - added the method and self keywords, they are basically
3754         just sugar, and they may not stay around.
3755
3756     * Moose::Object
3757       - added &dump method to easily Data::Dumper
3758         an object
3759
3760     * Moose::Meta::TypeConstraint
3761       - added the &is_a_type_of method to check both the current
3762         and the subtype of a method (similar to &isa with classes)
3763
3764     * Moose::Meta::Role
3765       - this is now a subclass of Class::MOP::Module, and no longer
3766         creates the _role_meta ugliness of before.
3767         - fixed tests to reflect this change
3768
3769 0.11 Wed. July 12, 2006
3770     * Moose
3771       - added an &unimport method to remove all the keywords
3772         that Moose will import, simply add 'no Moose' to the
3773         bottom of your class file.
3774
3775     * t/
3776       - fixed some test failures caused by a forgotten test
3777         dependency.
3778
3779 0.10 Thurs. July 6, 2006
3780     * Moose
3781       - improved error message when loading modules so
3782         it is less confusing when you load a role.
3783       - added &calculate_all_roles method to
3784         Moose::Meta::Class and Moose::Meta::Role
3785
3786     NOTE:
3787     This module has been tested against Class::MOP 0.30
3788     but it does not yet utilize the optimizations
3789     it makes available. Stay tuned for that ;)
3790
3791 0.09_03 Fri. June 23, 2006
3792     ++ DEVELOPER RELEASE ++
3793     * Moose
3794       - 'use strict' and 'use warnings' are no longer
3795          needed in Moose classes, Moose itself will
3796          turn them on for you.
3797          - added tests for this
3798       - moved code from exported subs to private methods
3799         in Moose::Meta::Class
3800
3801     * Moose::Role
3802       - as with Moose, strict and warnings are
3803         automatically turned on for you.
3804          - added tests for this
3805
3806     * Moose::Meta::Role
3807       - now handles an edge case for override errors
3808         - added tests for this
3809       - added some more edge case tests
3810
3811 0.09_02 Tues. May 16, 2006
3812     ++ DEVELOPER RELEASE ++
3813     * Moose
3814       - added prototypes to the exported subs
3815       - updated docs
3816
3817     * Moose::Role
3818       - added prototypes to the exported subs
3819       - updated docs
3820
3821     * Moose::Util::TypeConstraints
3822       - cleaned up prototypes for the subs
3823       - updated docs
3824
3825 0.09_01 Fri. May 12, 2006
3826     ++ DEVELOPER RELEASE ++
3827       - This release works in combination with
3828         Class::MOP 0.29_01, it is a developer
3829         release because it uses the a new
3830         instance sub-protocol and a fairly
3831         complete Role implementation. It has
3832         not yet been optimized, so it slower
3833         the the previous CPAN version. This
3834         release also lacks good updated docs,
3835         the official release will have updated docs.
3836
3837     * Moose
3838       - refactored the keyword exports
3839         - 'with' now checks Role validaity and
3840           accepts more than one Role at a time
3841         - 'extends' makes metaclass adjustments as
3842            needed to ensure metaclass compatibility
3843
3844     * Moose::Role
3845       - refactored the keyword exports
3846         - 'with' now checks Role validaity and
3847           accepts more than one Role at a time
3848
3849     * Moose::Util::TypeConstraints
3850       - added the 'enum' keyword for simple
3851         string enumerations which can be used as
3852         type constraints
3853         - see example of usage in t/202_example.t
3854
3855     * Moose::Object
3856       - more careful checking of params to new()
3857
3858     * Moose::Meta::Role
3859       - much work done on the role composition
3860         - many new tests for conflict detection
3861           and composition edge cases
3862         - not enough documentation, I suggest
3863           looking at the tests
3864
3865     * Moose::Meta::Instance
3866       - added new Instance metaclass to support
3867         the new Class::MOP instance protocol
3868
3869     * Moose::Meta::Class
3870       - some small changes to support the new
3871         instance protocol
3872       - some small additions to support Roles
3873
3874     * Moose::Meta::Attribute
3875       - some improvements to the accessor generation code
3876         by nothingmuch
3877       - some small changes to support the new
3878         instance protocol
3879       - (still somewhat) experimental delegation support
3880         with the 'handles' option
3881         - added several tests for this
3882         - no docs for this yet
3883
3884 0.05 Thurs. April 27, 2006
3885     * Moose
3886       - keywords are now exported with Sub::Exporter
3887         thanks to chansen for this commit
3888       - has keyword now takes a 'metaclass' option
3889         to support custom attribute meta-classes
3890         on a per-attribute basis
3891         - added tests for this
3892       - the 'has' keyword not accepts inherited slot
3893         specifications (has '+foo'). This is still an
3894         experimental feature and probably not finished
3895         see t/038_attribute_inherited_slot_specs.t for
3896         more details, or ask about it on #moose
3897         - added tests for this
3898
3899     * Moose::Role
3900       - keywords are now exported with Sub::Exporter
3901
3902     * Moose::Utils::TypeConstraints
3903       - reorganized the type constraint hierarchy, thanks
3904         to nothingmuch and chansen for his help and advice
3905         on this
3906         - added some tests for this
3907       - keywords are now exported with Sub::Exporter
3908         thanks to chansen for this commit
3909
3910     * Moose::Meta::Class
3911       - due to changes in Class::MOP, we had to change
3912         construct_instance (for the better)
3913
3914     * Moose::Meta::Attribute
3915       - due to changes in Class::MOP, we had to add the
3916         initialize_instance_slot method (it's a good thing)
3917
3918     * Moose::Meta::TypeConstraint
3919       - added type constraint unions
3920         - added tests for this
3921       - added the is_subtype_of predicate method
3922         - added tests for this
3923
3924 0.04 Sun. April 16th, 2006
3925     * Moose::Role
3926       - Roles can now consume other roles
3927         - added tests for this
3928       - Roles can specify required methods now with
3929         the requires() keyword
3930         - added tests for this
3931
3932     * Moose::Meta::Role
3933       - ripped out much of it's guts ,.. much cleaner now
3934       - added required methods and correct handling of
3935         them in apply() for both classes and roles
3936         - added tests for this
3937       - no longer adds a does() method to consuming classes
3938         it relys on the one in Moose::Object
3939       - added roles attribute and some methods to support
3940         roles consuming roles
3941
3942     * Moose::Meta::Attribute
3943       - added support for triggers on attributes
3944         - added tests for this
3945       - added support for does option on an attribute
3946         - added tests for this
3947
3948     * Moose::Meta::Class
3949       - added support for attribute triggers in the
3950         object construction
3951         - added tests for this
3952
3953     * Moose
3954       - Moose no longer creates a subtype for your class
3955         if a subtype of the same name already exists, this
3956         should DWIM in 99.9999% of all cases
3957
3958     * Moose::Util::TypeConstraints
3959       - fixed bug where incorrect subtype conflicts were
3960         being reported
3961         - added test for this
3962
3963     * Moose::Object
3964       - this class can now be extended with 'use base' if
3965         you need it, it properly loads the metaclass class now
3966         - added test for this
3967
3968 0.03_02 Wed. April 12, 2006
3969     * Moose
3970       - you must now explictly use Moose::Util::TypeConstraints
3971         it no longer gets exported for you automatically
3972
3973     * Moose::Object
3974       - new() now accepts hash-refs as well as key/value lists
3975       - added does() method to check for Roles
3976         - added tests for this
3977
3978     * Moose::Meta::Class
3979       - added roles attribute along with the add_role() and
3980         does_role() methods
3981         - added tests for this
3982
3983     * Moose::Meta::Role
3984       - now adds a does() method to consuming classes
3985         which tests the class's hierarchy for roles
3986         - added tests for this
3987
3988 0.03_01 Mon. April 10, 2006
3989     * Moose::Cookbook
3990       - added new Role recipe (no content yet, only code)
3991
3992     * Moose
3993       - added 'with' keyword for Role support
3994         - added test and docs for this
3995       - fixed subtype quoting bug
3996         - added test for this
3997
3998     * Moose::Role
3999       - Roles for Moose
4000         - added test and docs
4001
4002     * Moose::Util::TypeConstraints
4003       - added the message keyword to add custom
4004         error messages to type constraints
4005
4006     * Moose::Meta::Role
4007       - the meta role to support Moose::Role
4008         - added tests and docs
4009
4010     * Moose::Meta::Class
4011       - moved a number of things from Moose.pm
4012         to here, they should have been here
4013         in the first place
4014
4015     * Moose::Meta::Attribute
4016       - moved the attribute option macros here
4017         instead of putting them in Moose.pm
4018
4019     * Moose::Meta::TypeConstraint
4020       - added the message attributes and the
4021         validate method
4022         - added tests and docs for this
4023
4024 0.03 Thurs. March 30, 2006
4025     * Moose::Cookbook
4026       - added the Moose::Cookbook with 5 recipes,
4027         describing all the stuff Moose can do.
4028
4029     * Moose
4030       - fixed an issue with &extends super class loading
4031         it now captures errors and deals with inline
4032         packages correctly (bug found by mst, solution
4033         stolen from alias)
4034       - added super/override & inner/augment features
4035         - added tests and docs for these
4036
4037     * Moose::Object
4038       - BUILDALL now takes a reference of the %params
4039         that are passed to &new, and passes that to
4040         each BUILD as well.
4041
4042     * Moose::Util::TypeConstraints
4043       - Type constraints now survive runtime reloading
4044         - added test for this
4045
4046         * Moose::Meta::Class
4047           - fixed the way attribute defaults are handled
4048             during instance construction (bug found by chansen)
4049
4050     * Moose::Meta::Attribute
4051       - read-only attributes now actually enforce their
4052         read-only-ness (this corrected in Class::MOP as
4053         well)
4054
4055 0.02 Tues. March 21, 2006
4056     * Moose
4057       - many more tests, fixing some bugs and
4058         edge cases
4059       - &extends now loads the base module with
4060         UNIVERSAL::require
4061         - added UNIVERSAL::require to the
4062           dependencies list
4063       ** API CHANGES **
4064       - each new Moose class will also create
4065         and register a subtype of Object which
4066         correspond to the new Moose class.
4067       - the 'isa' option in &has now only
4068         accepts strings, and will DWIM in
4069         almost all cases
4070
4071     * Moose::Util::TypeConstraints
4072       - added type coercion features
4073         - added tests for this
4074         - added support for this in attributes
4075           and instance construction
4076       ** API CHANGES **
4077       - type construction no longer creates a
4078         function, it registers the type instead.
4079         - added several functions to get the
4080           registered types
4081
4082     * Moose::Object
4083       - BUILDALL and DEMOLISHALL were broken
4084         because of a mis-named hash key, Whoops :)
4085
4086     * Moose::Meta::Attribute
4087       - adding support for coercion in the
4088         autogenerated accessors
4089
4090     * Moose::Meta::Class
4091       - adding support for coercion in the
4092         instance construction
4093
4094     * Moose::Meta::TypeConstraint
4095     * Moose::Meta::TypeCoercion
4096           - type constraints and coercions are now
4097             full fledges meta-objects
4098
4099 0.01 Wed. March 15, 2006
4100     - Moooooooooooooooooose!!!