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