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