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