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