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