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