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