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