bump version and update changes for next release
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.67 Tue, February 3, 2009
4     * Moose::Manual::*
5       - Lots of little typo fixes and a few clarifications. Several
6         pages didn't have proper titles, and so weren't actually
7         visible on search.cpan.org. Thanks to hanekomu for a variety
8         of fixes and formatting improvements.
9
10 0.66 Tue, February 3, 2009
11     * Moose::Manual
12       - This is a brand new, extensive manual for Moose. This aims to
13         provide a complete introduction to all of Moose's
14         features. This work was funded as part of the Moose docs grant
15         from TPF. (Dave Rolsky)
16
17     * Moose::Meta::Attribute
18       - Added a delegation_metaclass method to replace a hard-coded
19         use of Moose::Meta::Method::Delegation. (Dave Rolsky)
20
21     * Moose::Util::TypeConstraints
22       - If you created a subtype and passed a parent that Moose didn't
23         know about, it simply ignored the parent. Now it automatically
24         creates the parent as a class type. This may not be what you
25         want, but is less broken than before. (Dave Rolsky)
26
27     * Moose::Util::TypeConstraints
28       - This module tried throw errors by calling Moose->throw_error,
29         but it did not ensure that Moose was loaded first. This could
30         cause very unhelpful errors when it tried to throw an error
31         before Moose was loaded. (Dave Rolsky)
32
33     * Moose::Util::TypeConstraints
34       - You could declare a name with subtype such as "Foo!Bar" that
35         would be allowed, but if you used it in a parameterized type
36         such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
37         vetting on names created via the sugar functions, so that they
38         can only contain alphanumerics, ":", and ".". (Dave Rolsky)
39
40 0.65 Thu, January 22, 2008
41     * Moose and Moose::Meta::Method::Overridden
42       - If an overridden method called super(), and then the
43         superclass's method (not overridden) _also_ called super(),
44         Moose went into an endless recursion loop. Test provided by
45         Chris Prather. (Dave Rolsky)
46
47     * Moose::Meta::TypeConstraint
48       - All methods are now documented. (gphat)
49
50     * t/100_bugs/011_DEMOLISH_eats_exceptions.t
51       - Fixed some bogus failures that occurred because we tried to
52         validate filesystem paths in a very ad-hoc and
53         not-quite-correct way. (Dave Rolsky)
54
55     * Moose::Util::TypeConstraints
56       - Added maybe_type to exports. See docs for details. (rjbs)
57
58     * Moose
59       - Added Moose::Util::TypeConstraints to the SEE ALSO
60         section. (pjf)
61
62     * Moose::Role
63       - Methods created via an attribute can now fulfill a "requires"
64         declaration for a role. (nothingmuch)
65
66     * Moose::Meta::Method::*
67       - Stack traces from inlined code will now report its line and
68         file as being in your class, as opposed to in Moose
69         guts. (nothingmuch).
70
71 0.64 Wed, December 31, 2008
72     * Moose::Meta::Method::Accessor
73       - Always inline predicate and clearer methods (Sartak)
74
75     * Moose::Meta::Attribute
76       - Support for parameterized traits (Sartak)
77       - verify_against_type_constraint method to avoid duplication
78         and enhance extensibility (Sartak)
79
80     * Moose::Meta::Class
81       - Tests (but no support yet) for parameterized traits (Sartak)
82
83     * Moose
84       - Require Class::MOP 0.75+, which has the side effect of making
85         sure we work on Win32. (Dave Rolsky)
86
87 0.63 Mon, December 8, 2008
88     * Moose::Unsweetened
89       - Some small grammar tweaks and bug fixes in non-Moose example
90         code. (Dave Rolsky)
91
92 0.62_02 Fri, December 5, 2008
93     * Moose::Meta::Role::Application::ToClass
94       - When a class does not provide all of a role's required
95         methods, the error thrown now mentions all of the missing
96         methods, as opposed to just the first one found. Requested by
97         Curtis Poe (RT #41119). (Dave Rolsky)
98
99     * Moose::Meta::Method::Constructor
100       - Moose will no longer inline a constructor for your class
101         unless it inherits its constructor from Moose::Object, and
102         will warn when it doesn't inline. If you want to force
103         inlining anyway, pass "replace_constructor => 1" to
104         make_immutable. Addresses RT #40968, reported by Jon
105         Swartz. (Dave Rolsky)
106       - The quoting of default values could be broken if the default
107         contained a single quote ('). Now we use quotemeta to escape
108         anything potentially dangerous in the defaults. (Dave Rolsky)
109
110 0.62_01 Wed, December 3, 2008
111     * Moose::Object
112       - use the method->execute API for BUILDALL
113         and DEMOLISHALL (Sartak)
114
115     * Moose::Util::TypeConstraints
116       - We now make all the type constraint meta classes immutable
117         before creating the default types provided by Moose. This
118         should make loading Moose a little faster. (Dave Rolsky)
119
120 0.62 Wed November 26, 2008
121     * Moose::Meta::Role::Application::ToClass
122       Moose::Meta::Role::Application::ToRole
123       - fixed issues where excluding and aliasing the
124         same methods for a single role did not work
125         right (worked just fine with multiple
126         roles) (stevan)
127         - added test for this (stevan)
128
129     * Moose::Meta::Role::Application::RoleSummation
130       - fixed the error message when trying to compose
131         a role with a role it excludes (Sartak)
132
133     * Moose::Exporter
134       - Catch another case where recursion caused the value
135         of $CALLER to be stamped on (t0m)
136         - added test for this (t0m)
137
138     * Moose
139       - Remove the make_immutable keyword, which has been
140         deprecated since April. It breaks metaclasses that
141         use Moose without no Moose (Sartak)
142
143     * Moose::Meta::Attribute
144       - Removing an attribute from a class now also removes delegation
145         (handles) methods installed for that attribute (t0m)
146         - added test for this (t0m)
147
148     * Moose::Meta::Method::Constructor
149       - An attribute with a default that looked like a number (but was
150         really a string) would accidentally be treated as a number
151         when the constructor was made immutable (perigrin)
152         - added test for this (perigrin)
153
154     * Moose::Meta::Role
155       - create method for constructing a role
156         dynamically (Sartak)
157         - added test for this (Sartak)
158       - anonymous roles! (Sartak)
159         - added test for this (Sartak)
160
161     * Moose::Role
162       - more consistent error messages (Sartak)
163
164     * Moose::Cookbook::Roles::Recipe1
165       - attempt to explain why a role that just requires
166         methods is useful (Sartak)
167
168 0.61 Fri November 7, 2008
169     * Moose::Meta::Attribute
170       - When passing a role to handles, it will be loaded if necessary
171         (perigrin)
172
173     * Moose::Meta::Class
174       - Method objects returned by get_method (and other methods)
175         Could end up being returned without an associated_metaclass
176         attribute. Removing get_method_map, which is provided by
177         Class::MOP::Class, fixed this. The Moose version did nothing
178         different from its parent except introduce a bug. (Dave Rolsky)
179         - added tests for this (jdv79)
180
181     * Various
182       - Added a $VERSION to all .pm files which didn't have one. Fixes
183         RT #40049, reported by Adam Kennedy. (Dave Rolsky)
184
185     * Moose::Cookbook::Basics::Recipe4
186     * Moose::Cookbook::Basics::Recipe6
187       - These files had spaces on the first line of the SYNOPSIS, as
188         opposed to a totally empty line. According to RT #40432, this
189         confuses POD parsers. (Dave Rolsky)
190
191 0.60 Fri October 24, 2008
192     * Moose::Exporter
193       - Passing "-traits" when loading Moose caused the Moose.pm
194         exports to be broken. Reported by t0m. (Dave Rolsky)
195         - Tests for this bug. (t0m)
196     
197     * Moose::Util
198       - Change resolve_metaclass alias to use the new
199         load_first_existing_class function. This makes it a lot
200         simpler, and also around 5 times faster. (t0m)
201       - Add caching to resolve_metaclass_alias, which gives an order
202         of magnitude speedup to things which repeatedly call the
203         Moose::Meta::Attribute->does method, notably MooseX::Storage
204         (t0m)
205
206     * Moose::Util::TypeConstraint
207       - Put back the changes for parameterized constraints that
208         shouldn't have been removed in 0.59. We still cannot parse
209         them, but MooseX modules can create them in some other
210         way. See the 0.58 changes for more details. (jnapiorkowski)
211       - Changed the way subtypes are created so that the job is
212         delegated to a type constraint parent.  This clears up some
213         hardcoded checking and should allow correct subtypes of
214         Moose::Meta::Type::Constraint. Don't rely on this new API too
215         much (create_child_type) because it may go away in the
216         future. (jnapiorkowski)
217
218     * Moose::Meta::TypeConstraint::Union
219       - Type constraint names are sorted as strings, not numbers.
220         (jnapiorkowski)
221       
222     * Moose::Meta::TypeConstraint::Parameterizable
223       - New parameterize method. This can be used as a factory method
224         to make a new type constraint with a given parameterized
225         type. (jnapiorkowski)
226         - added tests (jnapiorkowski)
227
228 0.59 Tue October 14, 2008
229     * Moose
230       - Add abridged documentation for builder/default/initializer/
231         predicate, and link to more details sections in 
232         Class::MOP::Attribute. (t0m)
233
234     * Moose::Util::TypeConstraints
235       - removed prototypes from all but the &-based stuff (mst)
236
237     * Moose::Util::TypeConstraints
238       - Creating a anonymous subtype with both a constraint and a
239         message failed with a very unhelpful error, but should just
240         work. Reported by t0m. (Dave Rolsky)
241
242     * Tests
243       - Some tests that used Test::Warn if it was available failed
244         with older versions of Test::Warn. Reported by Fayland. (Dave
245         Rolsky)
246       - Test firing behavior of triggers in relation to builder/default/
247         lazy_build. (t0m)
248       - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
249         kinds of supported type. (t0m)
250
251     * Moose::Meta::Class
252       - In create(), do not pass "roles" option to the superclass
253         - added related test that creates an anon metaclass with
254           a required attribute
255
256     * Moose::Meta::TypeConstraint::Class
257     * Moose::Meta::TypeConstraint::Role
258       - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
259         other types (as per change in 0.55_02). (t0m)
260
261     * Moose::Meta::TypeConstraint::Registry
262       - Fix warning when dealing with unknown type names (t0m)
263
264     * Moose::Util::TypeConstraints
265       - Reverted changes from 0.58 related to handle parameterized
266         types. This caused random failures on BSD and Win32 systems,
267         apparently related to the regex engine. This means that Moose
268         can no longer parse structured type constraints like
269         ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
270         supported in a slightly different way via MooseX::Types some
271         time in the future. (Dave Rolsky)
272
273 0.58 Sat September 20, 2008
274     !! This release has an incompatible change regarding !!
275     !! how roles add methods to a class !!
276
277     * Roles and role application
278       ! Roles now add methods by calling add_method, not
279         alias_method. They make sure to always provide a method
280         object, which will be cloned internally. This means that it is
281         now possible to track the source of a method provided by a
282         role, and even follow its history through intermediate roles.
283
284         This means that methods added by a role now show up when
285         looking at a class's method list/map. (Dave Rolsky)
286
287     * Makefile.PL
288       - From this release on, we'll try to maintain a list of
289         conflicting modules, and warn you if you have one
290         installed. For example, this release conflicts with ...
291         - MooseX::Singleton        <= 0.11
292         - MooseX::Params::Validate <= 0.05
293         - Fey::ORM                 <= 0.10
294
295         In general, we try to not break backwards compatibility for
296         most Moose users, but MooseX modules and other code which
297         extends Moose's metaclasses is often affected by very small
298         changes in the Moose internals.
299
300     * Moose::Meta::Method::Delegation
301     * Moose::Meta::Attribute
302       - Delegation methods now have their own method class. (Dave
303         Rolsky)
304
305     * Moose::Meta::TypeConstraint::Parameterizable
306       - Added a new method 'parameterize' which is basically a factory
307         for the containing constraint.  This makes it easier to create
308         new types of parameterized constraints. (jnapiorkowski)
309
310     * Moose::Meta::TypeConstraint::Union
311       - Changed the way Union types canonicalize their names to follow
312         the normalized TC naming rules, which means we strip all
313         whitespace. (jnapiorkowski)
314
315     * Moose::Util::TypeConstraints
316       - Parameter and Union args are now sorted, this makes Int|Str
317         the same constraint as Str|Int. (jnapiorkowski)
318       - Changes to the way Union types are parsed to more correctly
319         stringify their names. (jnapiorkowski)
320       - When creating a parameterized type, we now use the new
321         parameterize method. (jnapiorkowski)
322       - Incoming type constraint strings are now normalized to remove
323         all whitespace differences. (jnapiorkowski)
324       - Changed the way we parse type constraint strings so that we now
325         match TC[Int,Int,...] and TC[name=>Str] as parameterized type
326         constraints.  This lays the foundation for more flexible type
327         constraint implementations.
328
329     * Tests and docs for all the above. (jnapiorkowski)
330
331     * Moose::Exporter
332     * Moose
333       - Moose::Exporter will no longer remove a subroutine that the
334         exporting package re-exports. Moose re-exports the
335         Carp::confess function, among others. The reasoning is that we
336         cannot know whether you have also explicitly imported those
337         functions for your own use, so we err on the safe side and
338         always keep them. (Dave Rolsky)
339         - added tests for this (rafl)
340
341     * Moose::Meta::Class
342       - Changes to how we fix metaclass compatibility that are much
343         too complicated to go into. The summary is that Moose is much
344         less likely to complain about metaclass incompatibility
345         now. In particular, if two metaclasses differ because
346         Moose::Util::MetaRole was used on the two corresponding
347         classes, then the difference in roles is reconciled for the
348         subclass's metaclass. (Dave Rolsky)
349       - Squashed an warning in _process_attribute (thepler)
350
351     * Moose::Meta::Role
352       - throw exceptions (sooner) for invalid attribute names (thepler)
353         - added tests for this (thepler)
354
355     * Moose::Util::MetaRole
356       - If you explicitly set a constructor or destructor class for a
357         metaclass object, and then applied roles to the metaclass,
358         that explicitly set class would be lost and replaced with the
359         default.
360
361     * Moose::Meta::Class
362     * Moose::Meta::Attribute
363     * Moose::Meta::Method
364     * Moose
365     * Moose::Object
366     * Moose::Error::Default
367     * Moose::Error::Croak
368     * Moose::Error::Confess
369       - All instances of confess() changed to use overridable
370         C<throw_error> method. This method ultimately calls a class
371         constructor, and you can change the class being called. In
372         addition, errors now pass more information than just a string.
373         The default C<error_class> behaves like C<Carp::confess>, so
374         the behavior is not visibly different for end users.
375
376 0.57 Wed September 3, 2008
377     * Moose::Intro
378       - A new bit of doc intended to introduce folks familiar with
379         "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
380
381     * Moose::Unsweetened
382       - Shows examples of two classes, each done first with and then
383         without Moose. This makes a nice parallel to
384         Moose::Intro. (Dave Rolsky)
385
386     * Moose::Util::TypeConstraints
387       - Fixed a bug in find_or_parse_type_constraint so that it
388         accepts a Moose::Meta::TypeConstraint object as the parent
389         type, not just a name (jnapiorkowski)
390         - added tests (jnapiorkowski)
391
392     * Moose::Exporter
393       - If Sub::Name was not present, unimporting failed to actually
394         remove some sugar subs, causing test failures (Dave Rolsky)
395
396 0.56 Mon September 1, 2008
397     For those not following the series of dev releases, there are
398     several major changes in this release of Moose.
399       ! Moose::init_meta should now be called as a method. See the
400         docs for details.
401
402       - Major performance improvements by nothingmuch.
403
404       - New modules for extension writers, Moose::Exporter and
405         Moose::Util::MetaRole by Dave Rolsky.
406
407       - Lots of doc improvements and additions, especially in the
408         cookbook sections.
409
410       - Various bug fixes.
411
412     * Removed all references to the experimental-but-no-longer-needed
413       Moose::Meta::Role::Application::ToMetaclassInstance.
414
415     * Require Class::MOP 0.65.
416
417 0.55_04 Sat August 30, 2008
418     * Moose::Util::MetaRole
419     * Moose::Cookbook::Extending::Recipe2
420       - This simplifies the application of roles to any meta class, as
421         well as the base object class. Reimplemented metaclass traits
422         using this module. (Dave Rolsky)
423
424     * Moose::Cookbook::Extending::Recipe1
425       - This a new recipe, an overview of various ways to write Moose
426         extensions (Dave Rolsky)
427
428     * Moose::Cookbook::Extending::Recipe3
429     * Moose::Cookbook::Extending::Recipe4
430       - These used to be Extending::Recipe1 and Extending::Recipe2,
431         respectively.
432
433 0.55_03 Fri August 29, 2008
434     * No changes from 0.55_02 except increasing the Class::MOP
435       dependency to 0.64_07.
436
437 0.55_02 Fri August 29, 2008
438     * Makefile.PL and Moose.pm
439       - explicitly require Perl 5.8.0+ (Dave Rolsky)
440
441     * Moose::Util::TypeConstraints
442       - Fix warnings from find_type_constraint if the type is not 
443         found (t0m).
444       
445     * Moose::Meta::TypeConstraint
446       - Predicate methods (equals/is_a_type_of/is_subtype_of) now
447         return false if the type you specify cannot be found in the
448         type registry, rather than throwing an unhelpful and
449         coincidental exception. (t0m).
450         - added docs & test for this (t0m)
451     
452     * Moose::Meta::TypeConstraint::Registry
453       - add_type_constraint now throws an exception if a parameter is
454         not supplied (t0m).
455         - added docs & test for this (t0m)
456
457     * Moose::Cookbook::FAQ
458       - Added a faq entry on the difference between "role" and "trait"
459         (t0m)
460
461     * Moose::Meta::Role
462       - Fixed a bug that caused role composition to not see a required
463         method when that method was provided by another role being
464         composed at the same time. (Dave Rolsky)
465         - test and bug finding (tokuhirom)
466         
467 0.55_01 Wed August 20, 2008
468
469     !! Calling Moose::init_meta as a function is now         !!
470     !! deprecated. Please see the Moose.pm docs for details. !!
471
472     * Moose::Meta::Method::Constructor
473       - Fix inlined constructor so that values produced by default
474         or builder methods are coerced as required. (t0m)
475         - added test for this (t0m)
476
477     * Moose::Meta::Attribute
478       - A lazy attribute with a default or builder did not attempt to
479         coerce the default value. The immutable code _did_
480         coerce. (t0m)
481         - added test for this (t0m)
482
483     * Moose::Exporter
484       - This is a new helper module for writing "Moose-alike"
485         modules. This should make the lives of MooseX module authors
486         much easier. (Dave Rolsky)
487
488     * Moose
489     * Moose::Cookbook::Meta::Recipe5
490       - Implemented metaclass traits (and wrote a recipe for it):
491
492           use Moose -traits => 'Foo'
493
494         This should make writing small Moose extensions a little
495         easier (Dave Rolsky)
496
497     * Moose::Cookbook::Basics::Recipe1
498       - Removed any examples of direct hashref access, and applied an
499         editorial axe to reduce verbosity. (Dave Rolsky)
500
501     * Moose::Cookbook::Basics::Recipe1
502       - Also applied an editorial axe here. (Dave Rolsky)
503
504     * Moose
505     * Moose::Cookbook::Extending::Recipe1
506     * Moose::Cookbook::Extending::Recipe2
507       - Rewrote extending and embedding moose documentation and
508         recipes to use Moose::Exporter (Dave Rolsky)
509
510     * Moose
511     * Moose::Role
512       - These two modules now warn when you load them from the main
513         package "main" package, because we will not export sugar to
514         main. Previously it just did nothing. (Dave Rolsky)
515
516     * Moose::Role
517       - Now provide an init_meta method just like Moose.pm, and you
518         can call this to provide an alternate role metaclass. (Dave
519         Rolsky and nothingmuch)
520       - get_method_map now respects the package cache flag (nothingmuch)
521
522     * Moose::Meta::Role
523       - Two new methods - add_method and wrap_method_body
524         (nothingmuch)
525
526     * many modules
527       - Optimizations including allowing constructors to accept hash
528         refs, making many more classes immutable, and making
529         constructors immutable. (nothingmuch)
530
531 0.55 Sun August 3, 2008
532     * Moose::Meta::Attribute
533       - breaking down the way 'handles' methods are
534         created so that the process can be more easily
535         overridden by subclasses (stevan)
536
537     * Moose::Meta::TypeConstraint
538       - fixing what is passed into a ->message with
539         the type constraints (RT #37569)
540         - added tests for this (Charles Alderman)
541
542     * Moose::Util::TypeConstraints
543       - fix coerce to accept anon types like subtype can (mst)
544
545     * Moose::Cookbook
546       - reorganized the recipes into sections - Basics, Roles, Meta,
547         Extending - and wrote abstracts for each section (Dave Rolsky)
548
549     * Moose::Cookbook::Basics::Recipe10
550       - A new recipe that demonstrates operator overloading
551         in combination with Moose. (bluefeet)
552
553     * Moose::Cookbook::Meta::Recipe1
554       - an introduction to what meta is and why you'd want to make
555         your own metaclass extensions (Dave Rolsky)
556
557     * Moose::Cookbook::Meta::Recipe4
558       - a very simple metaclass example (Dave Rolsky)
559
560     * Moose::Cookbook::Extending::Recipe1
561       - how to write a Moose-alike module to use your own object base
562         class (Dave Rolsky)
563
564     * Moose::Cookbook::Extending::Recipe2
565       - how to write modules with an API just like C<Moose.pm> (Dave
566         Rolsky)
567
568     * all documentation
569       - Tons of fixes, both syntactical and grammatical (Dave
570         Rolsky, Paul Fenwick)
571
572 0.54 Thurs. July 3, 2008
573     ... this is not my day today ...
574     
575     * Moose::Meta::Attribute
576       - fixed legal_options_for_inheritance such that 
577         clone_and_inherit options still works for 
578         Class::MOP::Attribute objects and therefore 
579         does not break MooseX::AttributeHelpers
580         (stevan)
581
582 0.53 Thurs. July 3, 2008
583     * Whoops, I guess I should run 'make manifest' before 
584       actually releasing the module. No actual changes 
585       in this release, except the fact that it includes
586       the changes that I didn't include in the last 
587       release. (stevan--)
588
589 0.52 Thurs. July 3, 2008
590     * Moose
591       - added "FEATURE REQUESTS" section to the Moose docs
592         to properly direct people (stevan) (RT #34333)
593       - making 'extends' croak if it is passed a Role since 
594         this is not ever something you want to do 
595         (fixed by stevan, found by obra)
596         - added tests for this (stevan)
597
598     * Moose::Object
599       - adding support for DOES (as in UNIVERSAL::DOES) 
600         (nothingmuch)
601         - added test for this
602
603     * Moose::Meta::Attribute
604       - added legal_options_for_inheritance (wreis)
605         - added tests for this (wreis)
606
607     * Moose::Cookbook::Snacks::*
608       - removed some of the unfinished snacks that should 
609         not have been released yet. Added some more examples
610         to the 'Keywords' snack. (stevan)
611
612     * Moose::Cookbook::Style
613       - added general Moose "style guide" of sorts to the 
614         cookbook (nothingmuch) (RT #34335)
615
616     * t/
617       - added more BUILDARGS tests (stevan)
618
619 0.51 Thurs. Jun 26, 2008
620     * Moose::Role
621       - add unimport so "no Moose::Role" actually does
622         something (sartak)
623
624     * Moose::Meta::Role::Application::ToRole
625       - when RoleA did RoleB, and RoleA aliased a method from RoleB in
626         order to provide its own implementation, that method still got
627         added to the list of required methods for consumers of
628         RoleB. Now an aliased method is only added to the list of
629         required methods if the role doing the aliasing does not
630         provide its own implementation. See Recipe 11 for an example
631         of all this. (Dave Rolsky)
632         - added tests for this
633
634     * Moose::Meta::Method::Constructor
635       - when a single argument that wasn't a hashref was provided to
636         an immutabilized constructor, the error message was very
637         unhelpful, as opposed to the non-immutable error. Reported by
638         dew. (Dave Rolsky)
639         - added test for this (Dave Rolsky)
640
641     * Moose::Meta::Attribute
642       - added support for meta_attr->does("ShortAlias") (sartak)
643         - added tests for this (sartak)
644       - moved the bulk of the `handles` handling to the new
645         install_delegation method (Stevan)
646
647     * Moose::Object
648       - Added BUILDARGS, a new step in new()
649
650     * Moose::Meta::Role::Application::RoleSummation
651       - fix typos no one ever sees (sartak)
652
653     * Moose::Util::TypeConstraints
654     * Moose::Meta::TypeConstraint
655     * Moose::Meta::TypeCoercion
656       - Attempt to work around the ??{ } vs. threads issue
657         (not yet fixed)
658       - Some null_constraint optimizations
659
660 0.50 Thurs. Jun 11, 2008
661     - Fixed a version number issue by bumping all modules
662       to 0.50.
663
664 0.49 Thurs. Jun 11, 2008
665     !! This version now approx. 20-25% !!
666     !! faster with new Class::MOP 0.59 !!
667
668     * Moose::Meta::Attribute
669       - fixed how the is => (ro|rw) works with 
670         custom defined reader, writer and accessor
671         options. 
672         - added docs for this (TODO).
673         - added tests for this (Thanks to Penfold)
674       - added the custom attribute alias for regular
675         Moose attributes which is "Moose"
676       - fix builder and default both being used
677         (groditi)
678
679     * Moose
680       Moose::Meta::Class
681       Moose::Meta::Attribute
682       Moose::Meta::Role
683       Moose::Meta::Role::Composite
684       Moose::Util::TypeConstraints
685       - switched usage of reftype to ref because 
686         it is much faster
687         
688     * Moose::Meta::Role
689       - changing add_package_symbol to use the new
690         HASH ref form
691     
692     * Moose::Object
693       - fixed how DEMOLISHALL is called so that it 
694         can be overrided in subclasses (thanks to Sartak)
695         - added test for this (thanks to Sartak)
696
697     * Moose::Util::TypeConstraints
698       - move the ClassName type check code to
699         Class::MOP::is_class_loaded (thanks to Sartak)
700
701     * Moose::Cookbook::Recipe11
702       - add tests for this (thanks to tokuhirom)
703
704 0.48 Thurs. May 29, 2008
705     (early morning release engineering)--
706
707     - fixing the version in Moose::Meta::Method::Destructor
708       which was causing the indexer to choke
709
710 0.47 Thurs. May 29, 2008
711     (late night release engineering)--
712
713     - fixing the version is META.yml, no functional 
714       changes in this release
715
716 0.46 Wed. May 28, 2008
717     !! This version now approx. 20-25% !!
718     !! faster with new Class::MOP 0.57 !!
719
720     * Moose::Meta::Class
721       - some optimizations of the &initialize method
722         since it is called so often by &meta    
723         
724     * Moose::Meta::Class
725       Moose::Meta::Role
726       - now use the get_all_package_symbols from the 
727         updated Class::MOP, test suite is now 10 seconds 
728         faster
729     
730     * Moose::Meta::Method::Destructor
731       - is_needed can now also be called as a class 
732         method for immutablization to check if the 
733         destructor object even needs to be created 
734         at all
735     
736     * Moose::Meta::Method::Destructor
737       Moose::Meta::Method::Constructor
738       - added more descriptive error message to help 
739         keep people from wasting time tracking an error
740         that is easily fixed by upgrading.
741
742 0.45 Saturday, May 24, 2008
743     * Moose
744       - Because of work in Class::MOP 0.57, all 
745         XS based functionality is now optional
746         and a Pure Perl version is supplied
747         - the CLASS_MOP_NO_XS environment variable
748           can now be used to force non-XS versions 
749           to always be used   
750         - several of the packages have been tweaked
751           to take care of this, mostly we added
752           support for the package_name and name 
753           variables in all the Method metaclasses
754       - before/around/after method modifiers now 
755         support regexp matching of names
756         (thanks to Takatoshi Kitano)
757         - tests added for this
758         - NOTE: this only works for classes, it 
759           is currently not supported in roles, 
760           but, ... patches welcome
761       - All usage of Carp::confess have been replaced
762         by Carp::croak in the "keyword" functions since
763         the stack trace is usually not helpful
764       
765     * Moose::Role
766       - All usage of Carp::confess have been replaced
767         by Carp::croak in the "keyword" functions since
768         the stack trace is usually not helpful  
769       - The 'has' keyword for roles now accepts the 
770         same array ref form that Moose.pm does 
771         (has [qw/foo bar/] => (is => 'rw', ...))
772         - added test for this
773       
774     * Moose::Meta::Attribute
775       - trigger on a ro-attribute is no longer an
776         error, as it's useful to trigger off of the
777         constructor
778
779     * Moose::Meta::Class
780       - added same 'add_package_symbol' fix as in 
781         Class::MOP 0.57
782
783     * Moose::Util
784       - does_role now handles non-Moose classes 
785         more gracefully
786         - added tests for this
787       - added the 'add_method_modifier' function 
788         (thanks to Takatoshi Kitano)
789
790     * Moose::Util::TypeConstraints
791       - subtypes of parameterizable types now are 
792         themselves parameterizable types
793
794     * Moose::Meta::Method::Constructor
795       - fixed bug where trigger was not being 
796         called by the inlined immutable 
797         constructors 
798         - added test for this (thanks to Caelum)
799     
800     * Moose::Meta::Role::Application::ToInstance
801       - now uses the metaclass of the instance
802         (if possible) to create the anon-class
803         (thanks Jonathan Rockway)
804     
805     * Moose::Cookbook::Recipe22
806       - added the meta-attribute trait recipe
807         (thanks to Sartak)
808     
809     * t/
810       - fixed hash-ordering test bug that was 
811         causing occasional cpantester failures
812       - renamed the t/000_recipe/*.t tests to be 
813         more descriptive (thanks to Sartak) 
814
815 0.44 Sat. May 10, 2008
816     * Moose
817       - made make_immutable warning cluck to 
818         show where the error is (thanks mst)
819     
820     * Moose::Object
821       - BUILDALL and DEMOLISHALL now call 
822         ->body when looping through the 
823         methods, to avoid the overloaded
824         method call.
825       - fixed issue where DEMOLISHALL was
826         eating the $@ values, and so not 
827         working correctly, it still kind of
828         eats them, but so does vanilla perl 
829         - added tests for this
830       
831     * Moose::Cookbook::Recipe7
832       - added new recipe for immutable 
833         functionality (thanks Dave Rolsky)
834       
835     * Moose::Cookbook::Recipe9
836       - added new recipe for builder and 
837         lazy_build (thanks Dave Rolsky)
838       
839     * Moose::Cookbook::Recipe11
840       - added new recipe for method aliasing 
841         and exclusion with Roles (thanks Dave Rolsky)
842
843     * t/
844       - fixed Win32 test failure (thanks spicyjack)
845
846     ~ removed Build.PL and Module::Build compat 
847       since Module::Install has done that.
848
849 0.43 Wed. April, 30, 2008
850     * NOTE TO SELF:
851         drink more coffee before 
852         doing release engineering
853       
854     - whoops, forgot to do the smolder tests, 
855       and we broke some of the custom meta-attr
856       modules. This fixes that.
857
858 0.42 Mon. April 28, 2008
859     - some bad tests slipped by, nothing else 
860       changed in this release (cpantesters++)
861       
862     - upped the Class::MOP dependency to 0.55 
863       since we have tests which need the C3 
864       support
865
866 0.41 Mon. April 28, 2008
867     ~~ numerous documentation updates ~~
868     
869     - Changed all usage of die to Carp::croak for better
870       error reporting (initial patch by Tod Hagan)
871
872     ** IMPORTANT NOTE **
873     - the make_immutable keyword is now deprecated, don't
874       use it in any new code and please fix your old code
875       as well. There will be 2 releases, and then it will
876       be removed.
877
878     * Moose
879       Moose::Role
880       Moose::Meta::Class
881       - refactored the way inner and super work to avoid
882         any method/@ISA cache penalty (nothingmuch)
883
884     * Moose::Meta::Class
885       - fixing &new_object to make sure trigger gets the 
886         coerced value (spotted by Charles Alderman on the 
887         mailing list)
888         - added test for this
889
890     * Moose::Meta::Method::Constructor
891       - immutable classes which had non-lazy attributes were calling
892         the default generating sub twice in the constructor. (bug
893         found by Jesse Luehrs, fixed by Dave Rolsky)
894         - added tests for this (Dave Rolsky)
895       - fix typo in initialize_body method (nothingmuch)
896       
897     * Moose::Meta::Method::Destructor
898       - fix typo in initialize_body method (nothingmuch)
899
900     * Moose::Meta::Method::Overriden
901       Moose::Meta::Method::Augmented
902       - moved the logic for these into their own 
903         classes (nothingmuch)
904
905     * Moose::Meta::Attribute
906       - inherited attributes may now be extended without 
907         restriction on the type ('isa', 'does') (Sartak)
908         - added tests for this (Sartak)
909       - when an attribute property is malformed (such as lazy without 
910         a default), give the name of the attribute in the error 
911         message (Sartak)
912       - added the &applied_traits and &has_applied_traits methods 
913         to allow introspection of traits
914         - added tests for this
915       - moved 'trait' and 'metaclass' argument handling to here from
916         Moose::Meta::Class
917       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
918         '+foo' syntax) (nothingmuch)
919         - added tests for this (t0m)
920      
921     * Moose::Object 
922       - localize $@ inside DEMOLISHALL to avoid it 
923         eating $@ (found by Ernesto)
924         - added test for this (thanks to Ernesto)
925
926     * Moose::Util::TypeConstraints
927       - &find_type_constraint now DWIMs when given an 
928         type constraint object or name (nothingmuch)
929       - &find_or_create_type_constraint superseded with a number of more
930         specific functions:
931         - find_or_create_{isa,does}_type_constraint
932         - find_or_parse_type_constraint
933
934     * Moose::Meta::TypeConstraint
935       Moose::Meta::TypeConstraint::Class
936       Moose::Meta::TypeConstraint::Role
937       Moose::Meta::TypeConstraint::Enum
938       Moose::Meta::TypeConstraint::Union
939       Moose::Meta::TypeConstraint::Parameterized
940         - added the &equals method for comparing two type 
941           constraints (nothingmuch)
942           - added tests for this (nothingmuch)
943
944     * Moose::Meta::TypeConstraint
945       - add the &parents method, which is just an alias to &parent. 
946         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
947
948     * Moose::Meta::TypeConstraint::Class
949       - added the class attribute for introspection purposes
950         (nothingmuch)
951         - added tests for this
952         
953     * Moose::Meta::TypeConstraint::Enum
954       Moose::Meta::TypeConstraint::Role
955       - broke these out into their own classes (nothingmuch)
956
957     * Moose::Cookbook::Recipe*
958       - fixed references to test file locations in the POD
959         and updated up some text for new Moose features
960         (Sartak)
961
962     * Moose::Util
963       - Added &resolve_metaclass_alias, a helper function for finding an actual
964         class for a short name (e.g. in the traits list)
965
966 0.40 Fri. March 14, 2008
967     - I hate Pod::Coverage
968
969 0.39 Fri. March 14, 2008
970     * Moose
971       - documenting the use of '+name' with attributes 
972         that come from recently composed roles. It makes
973         sense, people are using it, and so why not just 
974         officially support it.
975       - fixing the 'extends' keyword so that it will not 
976         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
977       
978     * oose
979       - added the perl -Moose=+Class::Name feature to allow 
980         monkeypatching of classes in one liners
981       
982     * Moose::Util
983       - fixing the 'apply_all_roles' keyword so that it will not 
984         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)    
985     
986     * Moose::Meta::Class
987       - added ->create method which now supports roles (thanks to jrockway)
988         - added tests for this
989       - added ->create_anon_class which now supports roles and caching of 
990         the results (thanks to jrockway)
991         - added tests for this
992       - made ->does_role a little more forgiving when it is
993         checking a Class::MOP era metaclasses.
994     
995     * Moose::Meta::Role::Application::ToInstance
996       - it is now possible to pass extra params to be used when 
997         a role is applied to an the instance (rebless_params)
998         - added tests for this
999     
1000     * Moose::Util::TypeConstraints
1001       - class_type now accepts an optional second argument for a
1002         custom message. POD anotated accordingly (groditi)
1003         - added tests for this 
1004       - it is now possible to make anon-enums by passing 'enum' an 
1005         ARRAY ref instead of the $name => @values. Everything else 
1006         works as before.
1007         - added tests for this
1008     
1009     * t/
1010       - making test for using '+name' on attributes consumed 
1011         from a role, it works and makes sense too.    
1012
1013     * Moose::Meta::Attribute 
1014       - fix handles so that it doesn't return nothing 
1015         when the method cannot be found, not sure why 
1016         it ever did this originally, this means we now
1017         have slightly better support for AUTOLOADed 
1018         objects
1019         - added more delegation tests
1020       - adding ->does method to this so as to better 
1021         support traits and their introspection.
1022         - added tests for this
1023     
1024     * Moose::Object
1025       - localizing the Data::Dumper configurations so 
1026         that it does not pollute others (RT #33509)
1027       - made ->does a little more forgiving when it is
1028         passed Class::MOP era metaclasses.
1029
1030 0.38 Fri. Feb. 15, 2008
1031     * Moose::Meta::Attribute 
1032       - fixed initializer to correctly do 
1033         type checking and coercion in the 
1034         callback 
1035         - added tests for this
1036
1037     * t/
1038       - fixed some finicky tests (thanks to konobi)
1039
1040 0.37 Thurs. Feb. 14, 2008
1041     * Moose
1042       - fixed some details in Moose::init_meta 
1043         and its superclass handling (thanks thepler)
1044         - added tests for this (thanks thepler)
1045       - 'has' now dies if you don't pass in name 
1046         value pairs
1047       - added the 'make_immutable' keyword as a shortcut
1048         to make_immutable
1049
1050     * Moose::Meta::Class
1051       Moose::Meta::Method::Constructor
1052       Moose::Meta::Attribute        
1053       - making (init_arg => undef) work here too
1054         (thanks to nothingmuch)
1055         
1056     * Moose::Meta::Attribute        
1057       Moose::Meta::Method::Constructor
1058       Moose::Meta::Method::Accessor                
1059       - make lazy attributes respect attr initializers (rjbs)
1060         - added tests for this
1061     
1062     * Moose::Util::TypeConstraints
1063       Moose::Util::TypeConstraints::OptimizedConstraints
1064       Moose::Meta::TypeConstraints
1065       Moose::Meta::Attribute
1066       Moose::Meta::Method::Constructor
1067       Moose::Meta::Method::Accessor            
1068       - making type errors use the 
1069         assigned message (thanks to Sartak)
1070         - added tests for this
1071
1072     * Moose::Meta::Method::Destructor
1073       - making sure DESTROY gets inlined properly 
1074         with successive DEMOLISH calls (thanks to manito)
1075
1076     * Moose::Meta::Attribute  
1077       Moose::Meta::Method::Accessor 
1078       - fixed handling of undef with type constraints 
1079         (thanks to Ernesto)               
1080         - added tests for this
1081     
1082     * Moose::Util
1083       - added &get_all_init_args and &get_all_attribute_values 
1084         (thanks to Sartak and nothingmuch)
1085
1086 0.36 Sat. Jan. 26, 2008
1087     * Moose::Role
1088       Moose::Meta::Attribute
1089       - role type tests now support when roles are 
1090         applied to non-Moose classes (found by ash)
1091         - added tests for this (thanks to ash)
1092       - couple extra tests to boost code coverage
1093
1094     * Moose::Meta::Method::Constructor    
1095       - improved fix for handling Class::MOP attributes
1096         - added test for this        
1097       
1098     * Moose::Meta::Class
1099       - handled the add_attribute($attribute_meta_object)
1100         case correctly
1101         - added test for this
1102
1103 0.35 Tues. Jan. 22, 2008
1104     * Moose::Meta::Method::Constructor
1105       - fix to make sure even Class::MOP attributes 
1106         are handled correctly (Thanks to Dave Rolsky)
1107         - added test for this (also Dave Rolsky)
1108     
1109     * Moose::Meta::Class
1110       - improved error message on _apply_all_roles, 
1111         you should now use Moose::Util::apply_all_roles
1112         and you shouldnt have been using a _ prefixed
1113         method in the first place ;)
1114
1115 0.34 Mon. Jan. 21, 2008
1116     ~~~ more misc. doc. fixes ~~~
1117     ~~ updated copyright dates ~~
1118
1119     Moose is now a postmodern object system :)
1120       - (see the POD for details)
1121       
1122     * <<Role System Refactoring>>    
1123     - this release contains a major reworking and 
1124       cleanup of the role system     
1125       - 100% backwards compat.
1126       - Role application now restructured into seperate
1127         classes based on type of applicants
1128       - Role summation (combining of more than one role)
1129         is much cleaner and anon-classes are no longer 
1130         used in this process
1131       - new Composite role metaclass    
1132       - runtime application of roles to instances
1133         is now more efficient and re-uses generated
1134         classes when applicable
1135         
1136     * <<New Role composition features>>
1137       - methods can now be excluded from a given role 
1138         during composition
1139       - methods can now be aliased to another name (and 
1140         still retain the original as well)        
1141     
1142     * Moose::Util::TypeConstraints::OptimizedConstraints
1143       - added this module (see above)
1144
1145     * Moose::Meta::Class
1146       - fixed the &_process_attribute method to be called
1147         by &add_attribute, so that the API is now correct
1148
1149     * Moose::Meta::Method::Accessor
1150       - fixed bug when passing a list of values to
1151         an accessor would get (incorrectly) ignored.
1152         Thanks to Sartak for finding this ;)
1153         - added tests for this (Sartak again)
1154
1155     * Moose::Meta::Method::Accessor
1156       Moose::Meta::Method::Constructor
1157       Moose::Meta::Attribute
1158       Moose::Meta::TypeConstraint      
1159       Moose::Meta::TypeCoercion      
1160       - lots of cleanup of such things as: 
1161         - generated methods
1162         - type constraint handling
1163         - error handling/messages 
1164         (thanks to nothingmuch)   
1165     
1166     * Moose::Meta::TypeConstraint::Parameterizable
1167       - added this module to support the refactor 
1168         in Moose::Meta::TypeConstraint::Parameterized
1169
1170     * Moose::Meta::TypeConstraint::Parameterized
1171       - refactored how these types are handled so they 
1172         are more generic and not confined to ArrayRef
1173         and HashRef only
1174
1175     * t/
1176       - shortened some file names for better VMS support (RT #32381)
1177
1178 0.33 Fri. Dec. 14, 2007
1179     !! Moose now loads 2 x faster !!
1180     !!  with new Class::MOP 0.49  !!
1181
1182     ++ new oose.pm module to make command line
1183        Moose-ness easier (see POD docs for more)
1184
1185     * Moose::Meta::Class
1186     * Moose::Meta::Role
1187       - several tweaks to take advantage of the
1188         new method map caching in Class::MOP
1189
1190     * Moose::Meta::TypeConstraint::Parameterized
1191       - allow subtypes of ArrayRef and HashRef to
1192         be used as a container (sartak)
1193         - added tests for this
1194       - basic support for coercion to ArrayRef and
1195         HashRef for containers (sartak)
1196         - added tests for this
1197
1198     * Moose::Meta::TypeCoercion
1199       - coercions will now create subtypes as needed
1200         so you can now add coercions to parameterized
1201         types without having to explictly define them
1202         - added tests for this
1203
1204     * Moose::Meta::Method::Accessor
1205       - allow subclasses to decide whether we need
1206         to copy the value into a new variable (sartak)
1207
1208 0.32 Tues. Dec. 4, 2007
1209     * Moose::Util::TypeConstraints
1210       - fixing how subtype aliases of unions work
1211         they should inherit the parent's coercion
1212         - added tests for this
1213       - you can now define multiple coercions on
1214         a single type at different times instead of
1215         having to do it all in one place
1216         - added tests for this
1217
1218     * Moose::Meta::TypeConstraint
1219       - there is now a default constraint of sub { 1 }
1220         instead of Moose::Util::TypeConstraints setting
1221         this for us
1222
1223     * Moose::Meta::TypeCoercion
1224     * Moose::Meta::TypeCoercion::Union
1225       - added the &has_coercion_for_type and
1226         &add_type_coercions methods to support the
1227         new features above (although you cannot add
1228         more type coercions for Union types)
1229
1230 0.31 Mon. Nov. 26, 2007
1231     * Moose::Meta::Attribute
1232       - made the +attr syntax handle extending types with
1233         parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
1234         now works if the original foo is an ArrayRef.
1235         - added tests for this.
1236       - delegation now works even if the attribute does not
1237         have a reader method using the get_read_method_ref
1238         method from Class::MOP::Attribute.
1239         - added tests for this
1240         - added docs for this
1241
1242     * Moose::Util::TypeConstraints
1243       - passing no "additional attribute info" to
1244         &find_or_create_type_constraint will no longer
1245         attempt to create an __ANON__ type for you,
1246         instead it will just return undef.
1247         - added docs for this
1248
1249 0.30 Fri. Nov. 23, 2007
1250     * Moose::Meta::Method::Constructor
1251       -builder related bug in inlined constructor. (groditi)
1252
1253     * Moose::Meta::Method::Accessor
1254       - genereate unnecessary calls to predicates and refactor
1255         code generation for runtime speed (groditi)
1256
1257     * Moose::Util::TypeConstraints
1258       - fix ClassName constraint to introspect symbol table (mst)
1259         - added more tests for this (mst)
1260       - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
1261         with work correctly.
1262         - added tests for this
1263
1264     * Moose::Cookbook
1265       - adding the link to Recipie 11 (written by Sartak)
1266         - adding test for SYNOPSIS code
1267
1268     * t/
1269       - New tests for builder bug. Upon instantiation, if an
1270         attribute had a builder, no value and was not lazy the
1271         builder default was not getting run, oops. (groditi)
1272
1273 0.29 Tues. Nov. 13, 2007
1274     * Moose::Meta::Attribute
1275       - Fix error message on missing builder method (groditi)
1276
1277     * Moose::Meta::Method::Accessor
1278       - Fix error message on missing builder method (groditi)
1279
1280     * t/
1281       - Add test to check for the correct error message when
1282         builder method is missing (groditi)
1283
1284 0.28 Tues. Nov. 13, 2007
1285     - 0.27 packaged incorrectly (groditi)
1286
1287 0.27 Tues. Nov. 13, 2007
1288     * Moose::Meta::Attribute
1289       - Added support for the new builder option (groditi)
1290       - Added support for lazy_build option (groditi)
1291       - Changed slot initialization for predicate changes (groditi)
1292
1293     * Moose::Meta::Method::Accessor
1294       - Added support for lazy_build option (groditi)
1295       - Fix inline methods to work with corrected predicate
1296         behavior (groditi)
1297
1298     * Moose::Meta::Method::Constructor
1299       - Added support for lazy_build option (groditi)
1300
1301     * t/
1302       - tests for builder and lazy_build (groditi)
1303
1304     * fixing some misc. bits in the docs that
1305       got mentioned on CPAN Forum & perlmonks
1306
1307     * Moose::Meta::Role
1308       - fixed how required methods are handled
1309         when they encounter overriden or modified
1310         methods from a class (thanks to confound).
1311         - added tests for this
1312
1313     * Moose::Util::TypeConstraint
1314       - fixed the type notation parser so that
1315         the | always creates a union and so is
1316         no longer a valid type char (thanks to
1317         konobi, mugwump and #moose for working
1318         this one out.)
1319         - added more tests for this
1320
1321 0.26 Thurs. Sept. 27, 2007
1322     == New Features ==
1323
1324     * Parameterized Types
1325       We now support parameterized collection types, such as:
1326           ArrayRef[Int]    # array or integers
1327           HashRef[Object]  # a hash with object values
1328       They can also be nested:
1329           ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
1330       And work with the type unions as well:
1331           ArrayRef[Int | Str]  # array of integers of strings
1332
1333     * Better Framework Extendability
1334       Moose.pm is now "extendable" such that it is now much
1335       easier to extend the framework and add your own keywords
1336       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
1337       section of the Moose.pm docs.
1338
1339     * Moose Snacks!
1340       In an effort to begin documenting some of the various
1341       details of Moose as well as some common idioms, we have
1342       created Moose::Cookbook::Snacks as a place to find
1343       small (easily digestable) nuggets of Moose code.
1344
1345     ====
1346     ~ Several doc updates/cleanup thanks to castaway ~
1347
1348     - converted build system to use Module::Install instead of
1349       Module::Build (thanks to jrockway)
1350
1351     * Moose
1352       - added all the meta classes to the immutable list and
1353         set it to inline the accessors
1354       - fix import to allow Sub::Exporter like { into => }
1355             and { into_level => } (perigrin)
1356       - exposed and documented init_meta() to allow better
1357             embedding and extending of Moose (perigrin)
1358
1359         * t/
1360           - complete re-organization of the test suite
1361           - added some new tests as well
1362           - finally re-enabled the Moose::POOP test since
1363             the new version of DBM::Deep now works again
1364             (thanks rob)
1365
1366     * Moose::Meta::Class
1367       - fixed very odd and very nasty recursion bug with
1368         inner/augment (mst)
1369         - added tests for this (eilara)
1370
1371     * Moose::Meta::Attribute
1372       Moose::Meta::Method::Constructor
1373       Moose::Meta::Method::Accessor
1374       - fixed issue with overload::Overloaded getting called
1375         on non-blessed items. (RT #29269)
1376         - added tests for this
1377
1378     * Moose::Meta::Method::Accessor
1379       - fixed issue with generated accessor code making
1380         assumptions about hash based classes (thanks to dexter)
1381
1382     * Moose::Coookbook::Snacks
1383       - these are bits of documentation, not quite as big as
1384         Recipes but which have no clear place in the module docs.
1385         So they are Snacks! (horray for castaway++)
1386
1387     * Moose::Cookbook::Recipe4
1388       - updated it to use the new ArrayRef[MyType] construct
1389         - updated the accompanying test as well
1390
1391     +++ Major Refactor of the Type Constraint system +++
1392     +++       with new features added as well        +++
1393
1394     * Moose::Util::TypeConstraint
1395       - no longer uses package variable to keep track of
1396         the type constraints, now uses the an instance of
1397         Moose::Meta::TypeConstraint::Registry to do it
1398       - added more sophisticated type notation parsing
1399         (thanks to mugwump)
1400         - added tests for this
1401
1402     * Moose::Meta::TypeConstraint
1403       - some minor adjustments to make subclassing easier
1404       - added the package_defined_in attribute so that we
1405         can track where the type constraints are created
1406
1407     * Moose::Meta::TypeConstraint::Union
1408       - this is now been refactored to be a subclass of
1409         Moose::Meta::TypeConstraint
1410
1411     * Moose::Meta::TypeCoercion::Union
1412       - this has been added to service the newly refactored
1413         Moose::Meta::TypeConstraint::Union and is itself
1414         a subclass of Moose::Meta::TypeCoercion
1415
1416     * Moose::Meta::TypeConstraint::Parameterized
1417       - added this module (taken from MooseX::AttributeHelpers)
1418         to help construct nested collection types
1419         - added tests for this
1420
1421     * Moose::Meta::TypeConstraint::Registry
1422       - added this class to keep track of type constraints
1423
1424 0.25 Mon. Aug. 13, 2007
1425     * Moose
1426       - Documentation update to reference Moose::Util::TypeConstraints
1427         under 'isa' in 'has' for how to define a new type
1428         (thanks to shlomif).
1429
1430     * Moose::Meta::Attribute
1431       - required attributes now will no longer accept undef
1432         from the constructor, even if there is a default and lazy
1433         - added tests for this
1434       - default subroutines must return a value which passes the
1435         type constraint
1436         - added tests for this
1437
1438     * Moose::Meta::Attribute
1439     * Moose::Meta::Method::Constructor
1440     * Moose::Meta::Method::Accessor
1441       - type-constraint tests now handle overloaded objects correctly
1442         in the error message
1443         - added tests for this (thanks to EvanCarroll)
1444
1445     * Moose::Meta::TypeConstraint::Union
1446       - added (has_)hand_optimized_constraint to this class so that
1447         it behaves as the regular Moose::Meta::TypeConstraint does.
1448
1449     * Moose::Meta::Role
1450       - large refactoring of this code
1451       - added several more tests
1452         - tests for subtle conflict resolition issues
1453           added, but not currently running
1454           (thanks to kolibre)
1455
1456     * Moose::Cookbook::Recipe7
1457       - added new recipe for augment/inner functionality
1458         (still in progress)
1459         - added test for this
1460
1461     * Moose::Spec::Role
1462       - a formal definition of roles (still in progress)
1463
1464     * Moose::Util
1465       - utilities for easier working with Moose classes
1466         - added tests for these
1467
1468     * Test::Moose
1469       - This contains Moose specific test functions
1470         - added tests for these
1471
1472 0.24 Tues. July 3, 2007
1473     ~ Some doc updates/cleanup ~
1474
1475     * Moose::Meta::Attribute
1476       - added support for roles to be given as parameters
1477         to the 'handles' option.
1478         - added tests and docs for this
1479       - the has '+foo' attribute form now accepts changes to
1480         the lazy option, and the addition of a handles option
1481         (but not changing the handles option)
1482         - added tests and docs for this
1483
1484     * Moose::Meta::Role
1485       - required methods are now fetched using find_method_by_name
1486         so that required methods can come from superclasses
1487         - adjusted tests for this
1488
1489 0.23 Mon. June 18, 2007
1490     * Moose::Meta::Method::Constructor
1491       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
1492     * Moose::Meta::Class
1493       - Modify make_immutable to work with the new Class::MOP immutable
1494         mechanism + POD + very basic test (groditi)
1495     * Moose::Meta::Attribute
1496       - Fix handles to use goto() so that caller() comes out properly on
1497         the other side (perigrin)
1498
1499 0.22 Thurs. May 31, 2007
1500     * Moose::Util::TypeConstraints
1501       - fix for prototype undeclared issue when Moose::Util::TypeConstraints
1502         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
1503         prototypes for functions
1504       - added the ClassName type constraint, this checks for strings
1505         which will respond true to ->isa(UNIVERSAL).
1506         - added tests and docs for this
1507       - subtyping just in name now works correctly by making the
1508         default for where be { 1 }
1509         - added test for this
1510
1511     * Moose::Meta::Method::Accessor
1512       - coerce and lazy now work together correctly, thanks to
1513         merlyn for finding this bug
1514         - tests added for this
1515       - fix reader presedence bug in Moose::Meta::Attribute + tests
1516
1517     * Moose::Object
1518       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
1519         a HASH-ref and missed. This produces better error messages then
1520         having it die cause undef is not a HASH.
1521         - added tests for this
1522
1523 0.21 Thursday, May 2nd, 2007
1524     * Moose
1525       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
1526       - modified unimport to remove super and inner along with the rest
1527         - altered unimport tests to handle this
1528
1529     * Moose::Role
1530       - altered super export to populate SUPER_SLOT
1531
1532     * Moose::Meta::Class
1533       - altered augment and override modifier application to use *_SLOT
1534         - modified tests for these to unimport one test class each to test
1535
1536     * Moose::Meta::Role
1537       - fixed issue where custom attribute metaclasses
1538         where not handled correctly in roles
1539         - added tests for this
1540
1541     * Moose::Meta::Class
1542       - fixed issue where extending metaclasses with
1543         roles would blow up. Thanks to Aankhen`` for
1544         finding this insidious error, and it's solution.
1545
1546     ~~ lots of spelling and grammer fixes in the docs,
1547        many many thanks to rlb3 and Aankhen for these :)
1548
1549 0.20 Friday, April 6th, 2007
1550     >> I messed up the SKIP logic in one test
1551        so this release is just to fix that.
1552
1553     * Moose
1554       - 'has' now also accepts an ARRAY ref
1555         to create multiple attrs (see docs)
1556         (thanks to konobi for this)
1557          - added tests and docs
1558
1559 0.19 Thurs. April 5th, 2007
1560     ~~ More documentation updates ~~
1561
1562     * Moose::Util::TypeConstraints
1563       - 'type' now supports messages as well
1564         thanks to phaylon for finding this
1565         - added tests for this
1566       - added &list_all_type_constraints and
1567         &list_all_builtin_type_constraints
1568         functions to facilitate introspection.
1569
1570     * Moose::Meta::Attribute
1571       - fixed regexp 'handles' declarations
1572         to build the list of delegated methods
1573         correctly (and not override important
1574         things like &new) thanks to ashleyb
1575         for finding this
1576         - added tests and docs for this
1577       - added the 'documentation' attributes
1578         so that you can actually document your
1579         attributes and inspect them through the
1580         meta-object.
1581         - added tests and docs for this
1582
1583     * Moose::Meta::Class
1584       - when loading custom attribute metaclasses
1585         it will first look in for the class in the
1586         Moose::Meta::Attribute::Custom::$name, and
1587         then default to just loading $name.
1588         - added tests and docs for this
1589
1590     * Moose::Meta::TypeConstraint
1591       - type constraints now stringify to their names.
1592         - added test for this
1593
1594     * misc.
1595       - added tests to assure we work with Module::Refresh
1596       - added stricter test skip logic in the Moose POOP
1597         test, ask Rob Kinyon why.
1598         - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
1599
1600 0.18 Sat. March 10, 2007
1601     ~~ Many, many documentation updates ~~
1602
1603     * misc.
1604       - We now use Class::MOP::load_class to
1605         load all classes.
1606       - added tests to show types and subtypes
1607         working with Declare::Constraints::Simple
1608         and Test::Deep as constraint engines.
1609
1610 0.18_001
1611     !! You must have Class::MOP 0.37_001  !!
1612     !! for this developer release to work !!
1613
1614     This release was primarily adding the immutable
1615     feature to Moose. An immutable class is one which
1616     you promise not to alter. When you set the class
1617     as immutable it will perform various bits of
1618     memoization and inline certain part of the code
1619     (constructors, destructors and accessors). This
1620     minimizes (and in some cases totally eliminates)
1621     one of Moose's biggest performance hits. This
1622     feature is not on by default, and is 100% optional.
1623     It has several configurable bits as well, so you
1624     can pick and choose to your specific needs.
1625
1626     The changes involved in this were fairly wide and
1627     highly specific, but 100% backwards compatible, so
1628     I am not going to enumerate them here. If you are
1629     truely interested in what was changed, please do
1630     a diff :)
1631
1632 0.17 Tues. Nov. 14, 2006
1633     * Moose::Meta::Method::Accessor
1634       - bugfix for read-only accessors which
1635         are have a type constraint and lazy.
1636         Thanks to chansen for finding it.
1637
1638 0.16 Tues. Nov. 14, 2006
1639     ++ NOTE ++
1640     There are some speed improvements in this release,
1641     but they are only the begining, so stay tuned.
1642
1643     * Moose::Object
1644       - BUILDALL and DEMOLISHALL no longer get
1645         called unless they actually need to be.
1646         This gave us a signifigant speed boost
1647         for the cases when there is no BUILD or
1648         DEMOLISH method present.
1649
1650     * Moose::Util::TypeConstraints
1651     * Moose::Meta::TypeConstraint
1652       - added an 'optimize_as' option to the
1653         type constraint, which allows for a
1654         hand optimized version of the type
1655         constraint to be used when possible.
1656       - Any internally created type constraints
1657         now provide an optimized version as well.
1658
1659 0.15 Sun. Nov. 5, 2006
1660     ++ NOTE ++
1661     This version of Moose *must* have Class::MOP 0.36 in order
1662     to work correctly. A number of small internal tweaks have
1663     been made in order to be compatible with that release.
1664
1665     * Moose::Util::TypeConstraints
1666       - added &unimport so that you can clean out
1667         your class namespace of these exported
1668         keywords
1669
1670     * Moose::Meta::Class
1671       - fixed minor issue which occasionally
1672         comes up during global destruction
1673         (thanks omega)
1674       - moved Moose::Meta::Method::Overriden into
1675         its own file.
1676
1677     * Moose::Meta::Role
1678       - moved Moose::Meta::Role::Method into
1679         its own file.
1680
1681     * Moose::Meta::Attribute
1682       - changed how we do type checks so that
1683         we reduce the overall cost, but still
1684         retain correctness.
1685        *** API CHANGE ***
1686       - moved accessor generation methods to
1687         Moose::Meta::Method::Accessor to
1688         conform to the API changes from
1689         Class::MOP 0.36
1690
1691     * Moose::Meta::TypeConstraint
1692       - changed how constraints are compiled
1693         so that we do less recursion and more
1694         iteration. This makes the type check
1695         faster :)
1696       - moved Moose::Meta::TypeConstraint::Union
1697         into its own file
1698
1699     * Moose::Meta::Method::Accessor
1700       - created this from methods formerly found in
1701         Moose::Meta::Attribute
1702
1703     * Moose::Meta::Role::Method
1704       - moved this from Moose::Meta::Role
1705
1706     * Moose::Meta::Method::Overriden
1707       - moved this from Moose::Meta::Class
1708
1709     * Moose::Meta::TypeConstraint::Union
1710       - moved this from Moose::Meta::TypeConstraint
1711
1712 0.14 Mon. Oct. 9, 2006
1713
1714     * Moose::Meta::Attribute
1715       - fixed lazy attributes which were not getting
1716         checked with the type constraint (thanks ashley)
1717         - added tests for this
1718       - removed the over-enthusiastic DWIMery of the
1719         automatic ArrayRef and HashRef defaults, it
1720         broke predicates in an ugly way.
1721         - removed tests for this
1722
1723 0.13 Sat. Sept. 30, 2006
1724     ++ NOTE ++
1725     This version of Moose *must* have Class::MOP 0.35 in order
1726     to work correctly. A number of small internal tweaks have
1727     been made in order to be compatible with that release.
1728
1729     * Moose
1730       - Removed the use of UNIVERSAL::require to be a better
1731         symbol table citizen and remove a dependency
1732         (thanks Adam Kennedy)
1733
1734       **~~ removed experimental & undocumented feature ~~**
1735       - commented out the 'method' and 'self' keywords, see the
1736         comments for more info.
1737
1738     * Moose::Cookbook
1739       - added a FAQ and WTF files to document frequently
1740         asked questions and common problems
1741
1742     * Moose::Util::TypeConstraints
1743       - added GlobRef and FileHandle type constraint
1744         - added tests for this
1745
1746     * Moose::Meta::Attribute
1747       - if your attribute 'isa' ArrayRef of HashRef, and you have
1748         not explicitly set a default, then make the default DWIM.
1749         This will also work for subtypes of ArrayRef and HashRef
1750         as well.
1751       - you can now auto-deref subtypes of ArrayRef or HashRef too.
1752         - new test added for this (thanks to ashley)
1753
1754     * Moose::Meta::Role
1755       - added basic support for runtime role composition
1756         but this is still *highly experimental*, so feedback
1757         is much appreciated :)
1758         - added tests for this
1759
1760     * Moose::Meta::TypeConstraint
1761       - the type constraint now handles the coercion process
1762         through delegation, this is to support the coercion
1763         of unions
1764
1765     * Moose::Meta::TypeConstraint::Union
1766       - it is now possible for coercions to be performed
1767         on a type union
1768         - added tests for this (thanks to konobi)
1769
1770     * Moose::Meta::TypeCoercion
1771       - properly capturing error when type constraint
1772         is not found
1773
1774     * Build.PL
1775       - Scalar::Util 1.18 is bad on Win32, so temporarily
1776         only require version 1.17 for Win32 and cygwin.
1777         (thanks Adam Kennedy)
1778
1779 0.12 Sat. Sept. 1, 2006
1780     * Moose::Cookbook
1781       - Recipe5 (subtypes & coercion) has been written
1782
1783     * Moose
1784       - fixed "bad meta" error message to be more descriptive
1785       - fixed &unimport to not remove the &inner and &super
1786         keywords because we need to localize them.
1787       - fixed number of spelling/grammer issues, thanks Theory :)
1788
1789       **~~ experimental & undocumented feature ~~**
1790       - added the method and self keywords, they are basically
1791         just sugar, and they may not stay around.
1792
1793     * Moose::Object
1794       - added &dump method to easily Data::Dumper
1795         an object
1796
1797     * Moose::Meta::TypeConstraint
1798       - added the &is_a_type_of method to check both the current
1799         and the subtype of a method (similar to &isa with classes)
1800
1801     * Moose::Meta::Role
1802       - this is now a subclass of Class::MOP::Module, and no longer
1803         creates the _role_meta ugliness of before.
1804         - fixed tests to reflect this change
1805
1806 0.11 Wed. July 12, 2006
1807     * Moose
1808       - added an &unimport method to remove all the keywords
1809         that Moose will import, simply add 'no Moose' to the
1810         bottom of your class file.
1811
1812     * t/
1813       - fixed some test failures caused by a forgotten test
1814         dependency.
1815
1816 0.10 Thurs. July 6, 2006
1817     * Moose
1818       - improved error message when loading modules so
1819         it is less confusing when you load a role.
1820       - added &calculate_all_roles method to
1821         Moose::Meta::Class and Moose::Meta::Role
1822
1823     NOTE:
1824     This module has been tested against Class::MOP 0.30
1825     but it does not yet utilize the optimizations
1826     it makes available. Stay tuned for that ;)
1827
1828 0.09_03 Fri. June 23, 2006
1829     ++ DEVELOPER RELEASE ++
1830     * Moose
1831       - 'use strict' and 'use warnings' are no longer
1832          needed in Moose classes, Moose itself will
1833          turn them on for you.
1834          - added tests for this
1835       - moved code from exported subs to private methods
1836         in Moose::Meta::Class
1837
1838     * Moose::Role
1839       - as with Moose, strict and warnings are
1840         automatically turned on for you.
1841          - added tests for this
1842
1843     * Moose::Meta::Role
1844       - now handles an edge case for override errors
1845         - added tests for this
1846       - added some more edge case tests
1847
1848 0.09_02 Tues. May 16, 2006
1849     ++ DEVELOPER RELEASE ++
1850     * Moose
1851       - added prototypes to the exported subs
1852       - updated docs
1853
1854     * Moose::Role
1855       - added prototypes to the exported subs
1856       - updated docs
1857
1858     * Moose::Util::TypeConstraints
1859       - cleaned up prototypes for the subs
1860       - updated docs
1861
1862 0.09_01 Fri. May 12, 2006
1863     ++ DEVELOPER RELEASE ++
1864       - This release works in combination with
1865         Class::MOP 0.29_01, it is a developer
1866         release because it uses the a new
1867         instance sub-protocol and a fairly
1868         complete Role implementation. It has
1869         not yet been optimized, so it slower
1870         the the previous CPAN version. This
1871         release also lacks good updated docs,
1872         the official release will have updated docs.
1873
1874     * Moose
1875       - refactored the keyword exports
1876         - 'with' now checks Role validaity and
1877           accepts more than one Role at a time
1878         - 'extends' makes metaclass adjustments as
1879            needed to ensure metaclass compatibility
1880
1881     * Moose::Role
1882       - refactored the keyword exports
1883         - 'with' now checks Role validaity and
1884           accepts more than one Role at a time
1885
1886     * Moose::Util::TypeConstraints
1887       - added the 'enum' keyword for simple
1888         string enumerations which can be used as
1889         type constraints
1890         - see example of usage in t/202_example.t
1891
1892     * Moose::Object
1893       - more careful checking of params to new()
1894
1895     * Moose::Meta::Role
1896       - much work done on the role composition
1897         - many new tests for conflict detection
1898           and composition edge cases
1899         - not enough documentation, I suggest
1900           looking at the tests
1901
1902     * Moose::Meta::Instance
1903       - added new Instance metaclass to support
1904         the new Class::MOP instance protocol
1905
1906     * Moose::Meta::Class
1907       - some small changes to support the new
1908         instance protocol
1909       - some small additions to support Roles
1910
1911     * Moose::Meta::Attribute
1912       - some improvements to the accessor generation code
1913         by nothingmuch
1914       - some small changes to support the new
1915         instance protocol
1916       - (still somewhat) experimental delegation support
1917         with the 'handles' option
1918         - added several tests for this
1919         - no docs for this yet
1920
1921 0.05 Thurs. April 27, 2006
1922     * Moose
1923       - keywords are now exported with Sub::Exporter
1924         thanks to chansen for this commit
1925       - has keyword now takes a 'metaclass' option
1926         to support custom attribute meta-classes
1927         on a per-attribute basis
1928         - added tests for this
1929       - the 'has' keyword not accepts inherited slot
1930         specifications (has '+foo'). This is still an
1931         experimental feature and probably not finished
1932         see t/038_attribute_inherited_slot_specs.t for
1933         more details, or ask about it on #moose
1934         - added tests for this
1935
1936     * Moose::Role
1937       - keywords are now exported with Sub::Exporter
1938
1939     * Moose::Utils::TypeConstraints
1940       - reorganized the type constraint hierarchy, thanks
1941         to nothingmuch and chansen for his help and advice
1942         on this
1943         - added some tests for this
1944       - keywords are now exported with Sub::Exporter
1945         thanks to chansen for this commit
1946
1947     * Moose::Meta::Class
1948       - due to changes in Class::MOP, we had to change
1949         construct_instance (for the better)
1950
1951     * Moose::Meta::Attribute
1952       - due to changes in Class::MOP, we had to add the
1953         initialize_instance_slot method (it's a good thing)
1954
1955     * Moose::Meta::TypeConstraint
1956       - added type constraint unions
1957         - added tests for this
1958       - added the is_subtype_of predicate method
1959         - added tests for this
1960
1961 0.04 Sun. April 16th, 2006
1962     * Moose::Role
1963       - Roles can now consume other roles
1964         - added tests for this
1965       - Roles can specify required methods now with
1966         the requires() keyword
1967         - added tests for this
1968
1969     * Moose::Meta::Role
1970       - ripped out much of it's guts ,.. much cleaner now
1971       - added required methods and correct handling of
1972         them in apply() for both classes and roles
1973         - added tests for this
1974       - no longer adds a does() method to consuming classes
1975         it relys on the one in Moose::Object
1976       - added roles attribute and some methods to support
1977         roles consuming roles
1978
1979     * Moose::Meta::Attribute
1980       - added support for triggers on attributes
1981         - added tests for this
1982       - added support for does option on an attribute
1983         - added tests for this
1984
1985     * Moose::Meta::Class
1986       - added support for attribute triggers in the
1987         object construction
1988         - added tests for this
1989
1990     * Moose
1991       - Moose no longer creates a subtype for your class
1992         if a subtype of the same name already exists, this
1993         should DWIM in 99.9999% of all cases
1994
1995     * Moose::Util::TypeConstraints
1996       - fixed bug where incorrect subtype conflicts were
1997         being reported
1998         - added test for this
1999
2000     * Moose::Object
2001       - this class can now be extended with 'use base' if
2002         you need it, it properly loads the metaclass class now
2003         - added test for this
2004
2005 0.03_02 Wed. April 12, 2006
2006     * Moose
2007       - you must now explictly use Moose::Util::TypeConstraints
2008         it no longer gets exported for you automatically
2009
2010     * Moose::Object
2011       - new() now accepts hash-refs as well as key/value lists
2012       - added does() method to check for Roles
2013         - added tests for this
2014
2015     * Moose::Meta::Class
2016       - added roles attribute along with the add_role() and
2017         does_role() methods
2018         - added tests for this
2019
2020     * Moose::Meta::Role
2021       - now adds a does() method to consuming classes
2022         which tests the class's hierarchy for roles
2023         - added tests for this
2024
2025 0.03_01 Mon. April 10, 2006
2026     * Moose::Cookbook
2027       - added new Role recipe (no content yet, only code)
2028
2029     * Moose
2030       - added 'with' keyword for Role support
2031         - added test and docs for this
2032       - fixed subtype quoting bug
2033         - added test for this
2034
2035     * Moose::Role
2036       - Roles for Moose
2037         - added test and docs
2038
2039     * Moose::Util::TypeConstraints
2040       - added the message keyword to add custom
2041         error messages to type constraints
2042
2043     * Moose::Meta::Role
2044       - the meta role to support Moose::Role
2045         - added tests and docs
2046
2047     * Moose::Meta::Class
2048       - moved a number of things from Moose.pm
2049         to here, they should have been here
2050         in the first place
2051
2052     * Moose::Meta::Attribute
2053       - moved the attribute option macros here
2054         instead of putting them in Moose.pm
2055
2056     * Moose::Meta::TypeConstraint
2057       - added the message attributes and the
2058         validate method
2059         - added tests and docs for this
2060
2061 0.03 Thurs. March 30, 2006
2062     * Moose::Cookbook
2063       - added the Moose::Cookbook with 5 recipes,
2064         describing all the stuff Moose can do.
2065
2066     * Moose
2067       - fixed an issue with &extends super class loading
2068         it now captures errors and deals with inline
2069         packages correctly (bug found by mst, solution
2070         stolen from alias)
2071       - added super/override & inner/augment features
2072         - added tests and docs for these
2073
2074     * Moose::Object
2075       - BUILDALL now takes a reference of the %params
2076         that are passed to &new, and passes that to
2077         each BUILD as well.
2078
2079     * Moose::Util::TypeConstraints
2080       - Type constraints now survive runtime reloading
2081         - added test for this
2082
2083         * Moose::Meta::Class
2084           - fixed the way attribute defaults are handled
2085             during instance construction (bug found by chansen)
2086
2087     * Moose::Meta::Attribute
2088       - read-only attributes now actually enforce their
2089         read-only-ness (this corrected in Class::MOP as
2090         well)
2091
2092 0.02 Tues. March 21, 2006
2093     * Moose
2094       - many more tests, fixing some bugs and
2095         edge cases
2096       - &extends now loads the base module with
2097         UNIVERSAL::require
2098         - added UNIVERSAL::require to the
2099           dependencies list
2100       ** API CHANGES **
2101       - each new Moose class will also create
2102         and register a subtype of Object which
2103         correspond to the new Moose class.
2104       - the 'isa' option in &has now only
2105         accepts strings, and will DWIM in
2106         almost all cases
2107
2108     * Moose::Util::TypeConstraints
2109       - added type coercion features
2110         - added tests for this
2111         - added support for this in attributes
2112           and instance construction
2113       ** API CHANGES **
2114       - type construction no longer creates a
2115         function, it registers the type instead.
2116         - added several functions to get the
2117           registered types
2118
2119     * Moose::Object
2120       - BUILDALL and DEMOLISHALL were broken
2121         because of a mis-named hash key, Whoops :)
2122
2123     * Moose::Meta::Attribute
2124       - adding support for coercion in the
2125         autogenerated accessors
2126
2127     * Moose::Meta::Class
2128       - adding support for coercion in the
2129         instance construction
2130
2131     * Moose::Meta::TypeConstraint
2132     * Moose::Meta::TypeCoercion
2133           - type constraints and coercions are now
2134             full fledges meta-objects
2135
2136 0.01 Wed. March 15, 2006
2137     - Moooooooooooooooooose!!!