1 Revision history for Perl extension Moose
4 !! This release has an incompatible change regarding !!
5 how roles add methods to a class !!
7 * Roles and role application
8 ! Roles now add methods by calling add_method, not
9 alias_method. They make sure to always provide a method
10 object, which will be cloned internally. This means that it is
11 now possible to track the source of a method provided by a
12 role, and even follow its history through intermediate roles.
14 This means that methods added by a role now show up when
15 looking at a class's method list/map. (Dave Rolsky)
18 - From this release on, we'll try to maintain a list of
19 conflicting modules, and warn you if you have one
20 installed. For example, this release conflicts with ...
21 - MooseX::Singleton <= 0.11
22 - MooseX::Params::Validate <= 0.05
25 In general, we try to not break backwards compatibility for
26 most Moose users, but MooseX modules and other code which
27 extends Moose's metaclasses is often affected by very small
28 changes in the Moose internals.
30 * Moose::Meta::Method::Delegation
31 * Moose::Meta::Attribute
32 - Delegation methods now have their own method class. (Dave
35 * Moose::Meta::TypeConstraint::Parameterizable
36 - Added a new method 'parameterize' which is basically a factory
37 for the containing constraint. This makes it easier to create
38 new types of parameterized constraints. (jnapiorkowski)
40 * Moose::Meta::TypeConstraint::Union
41 - Changed the way Union types canonicalize their names to follow
42 the normalized TC naming rules, which means we strip all
43 whitespace. (jnapiorkowski)
45 * Moose::Util::TypeConstraints
46 - Parameter and Union args are now sorted, this makes Int|Str
47 the same constraint as Str|Int. (jnapiorkowski)
48 - Changes to the way Union types are parsed to more correctly
49 stringify their names. (jnapiorkowski)
50 - When creating a parameterized type, we now use the new
51 parameterize method. (jnapiorkowski)
52 - Incoming type constraint strings are now normalized to remove
53 all whitespace differences. (jnapiorkowski)
54 - Changed the way we parse type constraint strings so that we now
55 match TC[Int,Int,...] and TC[name=>Str] as parameterized type
56 constraints. This lays the foundation for more flexible type
57 constraint implementations.
59 * Tests and docs for all the above. (jnapiorkowski)
63 - Moose::Exporter will no longer remove a subroutine that the
64 exporting package re-exports. Moose re-exports the
65 Carp::confess function, among others. The reasoning is that we
66 cannot know whether you have also explicitly imported those
67 functions for your own use, so we err on the safe side and
68 always keep them. (Dave Rolsky)
69 - added tests for this (rafl)
72 - Changes to how we fix metaclass compatibility that are much
73 too complicated to go into. The summary is that Moose is much
74 less likely to complain about metaclass incompatibility
75 now. In particular, if two metaclasses differ because
76 Moose::Util::MetaRole was used on the two corresponding
77 classes, then the difference in roles is reconciled for the
78 subclass's metaclass. (Dave Rolsky)
79 - Squashed an warning in _process_attribute (thepler)
82 - throw exceptions (sooner) for invalid attribute names (thepler)
83 - added tests for this (thepler)
85 0.57 Wed September 3, 2008
87 - A new bit of doc intended to introduce folks familiar with
88 "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
91 - Shows examples of two classes, each done first with and then
92 without Moose. This makes a nice parallel to
93 Moose::Intro. (Dave Rolsky)
95 * Moose::Util::TypeConstraints
96 - Fixed a bug in find_or_parse_type_constraint so that it
97 accepts a Moose::Meta::TypeConstraint object as the parent
98 type, not just a name (jnapiorkowski)
99 - added tests (jnapiorkowski)
102 - If Sub::Name was not present, unimporting failed to actually
103 remove some sugar subs, causing test failures (Dave Rolsky)
105 0.56 Mon September 1, 2008
106 For those not following the series of dev releases, there are
107 several major changes in this release of Moose.
108 ! Moose::init_meta should now be called as a method. See the
111 - Major performance improvements by nothingmuch.
113 - New modules for extension writers, Moose::Exporter and
114 Moose::Util::MetaRole by Dave Rolsky.
116 - Lots of doc improvements and additions, especially in the
121 * Removed all references to the experimental-but-no-longer-needed
122 Moose::Meta::Role::Application::ToMetaclassInstance.
124 * Require Class::MOP 0.65.
126 0.55_04 Sat August 30, 2008
127 * Moose::Util::MetaRole
128 * Moose::Cookbook::Extending::Recipe2
129 - This simplifies the application of roles to any meta class, as
130 well as the base object class. Reimplemented metaclass traits
131 using this module. (Dave Rolsky)
133 * Moose::Cookbook::Extending::Recipe1
134 - This a new recipe, an overview of various ways to write Moose
135 extensions (Dave Rolsky)
137 * Moose::Cookbook::Extending::Recipe3
138 * Moose::Cookbook::Extending::Recipe4
139 - These used to be Extending::Recipe1 and Extending::Recipe2,
142 0.55_03 Fri August 29, 2008
143 * No changes from 0.55_02 except increasing the Class::MOP
144 dependency to 0.64_07.
146 0.55_02 Fri August 29, 2008
147 * Makefile.PL and Moose.pm
148 - explicitly require Perl 5.8.0+ (Dave Rolsky)
150 * Moose::Util::TypeConstraints
151 - Fix warnings from find_type_constraint if the type is not
154 * Moose::Meta::TypeConstraint
155 - Predicate methods (equals/is_a_type_of/is_subtype_of) now
156 return false if the type you specify cannot be found in the
157 type registry, rather than throwing an unhelpful and
158 coincidental exception. (t0m).
159 - added docs & test for this (t0m)
161 * Moose::Meta::TypeConstraint::Registry
162 - add_type_constraint now throws an exception if a parameter is
164 - added docs & test for this (t0m)
166 * Moose::Cookbook::FAQ
167 - Added a faq entry on the difference between "role" and "trait"
171 - Fixed a bug that caused role composition to not see a required
172 method when that method was provided by another role being
173 composed at the same time. (Dave Rolsky)
174 - test and bug finding (tokuhirom)
176 0.55_01 Wed August 20, 2008
178 !! Calling Moose::init_meta as a function is now !!
179 !! deprecated. Please see the Moose.pm docs for details. !!
181 * Moose::Meta::Method::Constructor
182 - Fix inlined constructor so that values produced by default
183 or builder methods are coerced as required. (t0m)
184 - added test for this (t0m)
186 * Moose::Meta::Attribute
187 - A lazy attribute with a default or builder did not attempt to
188 coerce the default value. The immutable code _did_
190 - added test for this (t0m)
193 - This is a new helper module for writing "Moose-alike"
194 modules. This should make the lives of MooseX module authors
195 much easier. (Dave Rolsky)
198 * Moose::Cookbook::Meta::Recipe5
199 - Implemented metaclass traits (and wrote a recipe for it):
201 use Moose -traits => 'Foo'
203 This should make writing small Moose extensions a little
206 * Moose::Cookbook::Basics::Recipe1
207 - Removed any examples of direct hashref access, and applied an
208 editorial axe to reduce verbosity. (Dave Rolsky)
210 * Moose::Cookbook::Basics::Recipe1
211 - Also applied an editorial axe here. (Dave Rolsky)
214 * Moose::Cookbook::Extending::Recipe1
215 * Moose::Cookbook::Extending::Recipe2
216 - Rewrote extending and embedding moose documentation and
217 recipes to use Moose::Exporter (Dave Rolsky)
221 - These two modules now warn when you load them from the main
222 package "main" package, because we will not export sugar to
223 main. Previously it just did nothing. (Dave Rolsky)
226 - Now provide an init_meta method just like Moose.pm, and you
227 can call this to provide an alternate role metaclass. (Dave
228 Rolsky and nothingmuch)
229 - get_method_map now respects the package cache flag (nothingmuch)
232 - Two new methods - add_method and wrap_method_body
236 - Optimizations including allowing constructors to accept hash
237 refs, making many more classes immutable, and making
238 constructors immutable. (nothingmuch)
240 0.55 Sun August 3, 2008
241 * Moose::Meta::Attribute
242 - breaking down the way 'handles' methods are
243 created so that the process can be more easily
244 overridden by subclasses (stevan)
246 * Moose::Meta::TypeConstraint
247 - fixing what is passed into a ->message with
248 the type constraints (RT #37569)
249 - added tests for this (Charles Alderman)
251 * Moose::Util::TypeConstraints
252 - fix coerce to accept anon types like subtype can (mst)
255 - reorganized the recipes into sections - Basics, Roles, Meta,
256 Extending - and wrote abstracts for each section (Dave Rolsky)
258 * Moose::Cookbook::Basics::Recipe10
259 - A new recipe that demonstrates operator overloading
260 in combination with Moose. (bluefeet)
262 * Moose::Cookbook::Meta::Recipe1
263 - an introduction to what meta is and why you'd want to make
264 your own metaclass extensions (Dave Rolsky)
266 * Moose::Cookbook::Meta::Recipe4
267 - a very simple metaclass example (Dave Rolsky)
269 * Moose::Cookbook::Extending::Recipe1
270 - how to write a Moose-alike module to use your own object base
273 * Moose::Cookbook::Extending::Recipe2
274 - how to write modules with an API just like C<Moose.pm> (Dave
278 - Tons of fixes, both syntactical and grammatical (Dave
279 Rolsky, Paul Fenwick)
281 0.54 Thurs. July 3, 2008
282 ... this is not my day today ...
284 * Moose::Meta::Attribute
285 - fixed legal_options_for_inheritance such that
286 clone_and_inherit options still works for
287 Class::MOP::Attribute objects and therefore
288 does not break MooseX::AttributeHelpers
291 0.53 Thurs. July 3, 2008
292 * Whoops, I guess I should run 'make manifest' before
293 actually releasing the module. No actual changes
294 in this release, except the fact that it includes
295 the changes that I didn't include in the last
298 0.52 Thurs. July 3, 2008
300 - added "FEATURE REQUESTS" section to the Moose docs
301 to properly direct people (stevan) (RT #34333)
302 - making 'extends' croak if it is passed a Role since
303 this is not ever something you want to do
304 (fixed by stevan, found by obra)
305 - added tests for this (stevan)
308 - adding support for DOES (as in UNIVERSAL::DOES)
310 - added test for this
312 * Moose::Meta::Attribute
313 - added legal_options_for_inheritance (wreis)
314 - added tests for this (wreis)
316 * Moose::Cookbook::Snacks::*
317 - removed some of the unfinished snacks that should
318 not have been released yet. Added some more examples
319 to the 'Keywords' snack. (stevan)
321 * Moose::Cookbook::Style
322 - added general Moose "style guide" of sorts to the
323 cookbook (nothingmuch) (RT #34335)
326 - added more BUILDARGS tests (stevan)
328 0.51 Thurs. Jun 26, 2008
330 - add unimport so "no Moose::Role" actually does
333 * Moose::Meta::Role::Application::ToRole
334 - when RoleA did RoleB, and RoleA aliased a method from RoleB in
335 order to provide its own implementation, that method still got
336 added to the list of required methods for consumers of
337 RoleB. Now an aliased method is only added to the list of
338 required methods if the role doing the aliasing does not
339 provide its own implementation. See Recipe 11 for an example
340 of all this. (Dave Rolsky)
341 - added tests for this
343 * Moose::Meta::Method::Constructor
344 - when a single argument that wasn't a hashref was provided to
345 an immutabilized constructor, the error message was very
346 unhelpful, as opposed to the non-immutable error. Reported by
348 - added test for this (Dave Rolsky)
350 * Moose::Meta::Attribute
351 - added support for meta_attr->does("ShortAlias") (sartak)
352 - added tests for this (sartak)
353 - moved the bulk of the `handles` handling to the new
354 install_delegation method (Stevan)
357 - Added BUILDARGS, a new step in new()
359 * Moose::Meta::Role::Application::RoleSummation
360 - fix typos no one ever sees (sartak)
362 * Moose::Util::TypeConstraints
363 * Moose::Meta::TypeConstraint
364 * Moose::Meta::TypeCoercion
365 - Attempt to work around the ??{ } vs. threads issue
367 - Some null_constraint optimizations
369 0.50 Thurs. Jun 11, 2008
370 - Fixed a version number issue by bumping all modules
373 0.49 Thurs. Jun 11, 2008
374 !! This version now approx. 20-25% !!
375 !! faster with new Class::MOP 0.59 !!
377 * Moose::Meta::Attribute
378 - fixed how the is => (ro|rw) works with
379 custom defined reader, writer and accessor
381 - added docs for this (TODO).
382 - added tests for this (Thanks to Penfold)
383 - added the custom attribute alias for regular
384 Moose attributes which is "Moose"
385 - fix builder and default both being used
390 Moose::Meta::Attribute
392 Moose::Meta::Role::Composite
393 Moose::Util::TypeConstraints
394 - switched usage of reftype to ref because
398 - changing add_package_symbol to use the new
402 - fixed how DEMOLISHALL is called so that it
403 can be overrided in subclasses (thanks to Sartak)
404 - added test for this (thanks to Sartak)
406 * Moose::Util::TypeConstraints
407 - move the ClassName type check code to
408 Class::MOP::is_class_loaded (thanks to Sartak)
410 * Moose::Cookbook::Recipe11
411 - add tests for this (thanks to tokuhirom)
413 0.48 Thurs. May 29, 2008
414 (early morning release engineering)--
416 - fixing the version in Moose::Meta::Method::Destructor
417 which was causing the indexer to choke
419 0.47 Thurs. May 29, 2008
420 (late night release engineering)--
422 - fixing the version is META.yml, no functional
423 changes in this release
425 0.46 Wed. May 28, 2008
426 !! This version now approx. 20-25% !!
427 !! faster with new Class::MOP 0.57 !!
430 - some optimizations of the &initialize method
431 since it is called so often by &meta
435 - now use the get_all_package_symbols from the
436 updated Class::MOP, test suite is now 10 seconds
439 * Moose::Meta::Method::Destructor
440 - is_needed can now also be called as a class
441 method for immutablization to check if the
442 destructor object even needs to be created
445 * Moose::Meta::Method::Destructor
446 Moose::Meta::Method::Constructor
447 - added more descriptive error message to help
448 keep people from wasting time tracking an error
449 that is easily fixed by upgrading.
451 0.45 Saturday, May 24, 2008
453 - Because of work in Class::MOP 0.57, all
454 XS based functionality is now optional
455 and a Pure Perl version is supplied
456 - the CLASS_MOP_NO_XS environment variable
457 can now be used to force non-XS versions
459 - several of the packages have been tweaked
460 to take care of this, mostly we added
461 support for the package_name and name
462 variables in all the Method metaclasses
463 - before/around/after method modifiers now
464 support regexp matching of names
465 (thanks to Takatoshi Kitano)
466 - tests added for this
467 - NOTE: this only works for classes, it
468 is currently not supported in roles,
469 but, ... patches welcome
470 - All usage of Carp::confess have been replaced
471 by Carp::croak in the "keyword" functions since
472 the stack trace is usually not helpful
475 - All usage of Carp::confess have been replaced
476 by Carp::croak in the "keyword" functions since
477 the stack trace is usually not helpful
478 - The 'has' keyword for roles now accepts the
479 same array ref form that Moose.pm does
480 (has [qw/foo bar/] => (is => 'rw', ...))
481 - added test for this
483 * Moose::Meta::Attribute
484 - trigger on a ro-attribute is no longer an
485 error, as it's useful to trigger off of the
489 - added same 'add_package_symbol' fix as in
493 - does_role now handles non-Moose classes
495 - added tests for this
496 - added the 'add_method_modifier' function
497 (thanks to Takatoshi Kitano)
499 * Moose::Util::TypeConstraints
500 - subtypes of parameterizable types now are
501 themselves parameterizable types
503 * Moose::Meta::Method::Constructor
504 - fixed bug where trigger was not being
505 called by the inlined immutable
507 - added test for this (thanks to Caelum)
509 * Moose::Meta::Role::Application::ToInstance
510 - now uses the metaclass of the instance
511 (if possible) to create the anon-class
512 (thanks Jonathan Rockway)
514 * Moose::Cookbook::Recipe22
515 - added the meta-attribute trait recipe
519 - fixed hash-ordering test bug that was
520 causing occasional cpantester failures
521 - renamed the t/000_recipe/*.t tests to be
522 more descriptive (thanks to Sartak)
524 0.44 Sat. May 10, 2008
526 - made make_immutable warning cluck to
527 show where the error is (thanks mst)
530 - BUILDALL and DEMOLISHALL now call
531 ->body when looping through the
532 methods, to avoid the overloaded
534 - fixed issue where DEMOLISHALL was
535 eating the $@ values, and so not
536 working correctly, it still kind of
537 eats them, but so does vanilla perl
538 - added tests for this
540 * Moose::Cookbook::Recipe7
541 - added new recipe for immutable
542 functionality (thanks Dave Rolsky)
544 * Moose::Cookbook::Recipe9
545 - added new recipe for builder and
546 lazy_build (thanks Dave Rolsky)
548 * Moose::Cookbook::Recipe11
549 - added new recipe for method aliasing
550 and exclusion with Roles (thanks Dave Rolsky)
553 - fixed Win32 test failure (thanks spicyjack)
555 ~ removed Build.PL and Module::Build compat
556 since Module::Install has done that.
558 0.43 Wed. April, 30, 2008
560 drink more coffee before
561 doing release engineering
563 - whoops, forgot to do the smolder tests,
564 and we broke some of the custom meta-attr
565 modules. This fixes that.
567 0.42 Mon. April 28, 2008
568 - some bad tests slipped by, nothing else
569 changed in this release (cpantesters++)
571 - upped the Class::MOP dependency to 0.55
572 since we have tests which need the C3
575 0.41 Mon. April 28, 2008
576 ~~ numerous documentation updates ~~
578 - Changed all usage of die to Carp::croak for better
579 error reporting (initial patch by Tod Hagan)
582 - the make_immutable keyword is now deprecated, don't
583 use it in any new code and please fix your old code
584 as well. There will be 2 releases, and then it will
590 - refactored the way inner and super work to avoid
591 any method/@ISA cache penalty (nothingmuch)
594 - fixing &new_object to make sure trigger gets the
595 coerced value (spotted by Charles Alderman on the
597 - added test for this
599 * Moose::Meta::Method::Constructor
600 - immutable classes which had non-lazy attributes were calling
601 the default generating sub twice in the constructor. (bug
602 found by Jesse Luehrs, fixed by Dave Rolsky)
603 - added tests for this (Dave Rolsky)
604 - fix typo in initialize_body method (nothingmuch)
606 * Moose::Meta::Method::Destructor
607 - fix typo in initialize_body method (nothingmuch)
609 * Moose::Meta::Method::Overriden
610 Moose::Meta::Method::Augmented
611 - moved the logic for these into their own
612 classes (nothingmuch)
614 * Moose::Meta::Attribute
615 - inherited attributes may now be extended without
616 restriction on the type ('isa', 'does') (Sartak)
617 - added tests for this (Sartak)
618 - when an attribute property is malformed (such as lazy without
619 a default), give the name of the attribute in the error
621 - added the &applied_traits and &has_applied_traits methods
622 to allow introspection of traits
623 - added tests for this
624 - moved 'trait' and 'metaclass' argument handling to here from
626 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
627 '+foo' syntax) (nothingmuch)
628 - added tests for this (t0m)
631 - localize $@ inside DEMOLISHALL to avoid it
632 eating $@ (found by Ernesto)
633 - added test for this (thanks to Ernesto)
635 * Moose::Util::TypeConstraints
636 - &find_type_constraint now DWIMs when given an
637 type constraint object or name (nothingmuch)
638 - &find_or_create_type_constraint superseded with a number of more
640 - find_or_create_{isa,does}_type_constraint
641 - find_or_parse_type_constraint
643 * Moose::Meta::TypeConstraint
644 Moose::Meta::TypeConstraint::Class
645 Moose::Meta::TypeConstraint::Role
646 Moose::Meta::TypeConstraint::Enum
647 Moose::Meta::TypeConstraint::Union
648 Moose::Meta::TypeConstraint::Parameterized
649 - added the &equals method for comparing two type
650 constraints (nothingmuch)
651 - added tests for this (nothingmuch)
653 * Moose::Meta::TypeConstraint
654 - add the &parents method, which is just an alias to &parent.
655 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
657 * Moose::Meta::TypeConstraint::Class
658 - added the class attribute for introspection purposes
660 - added tests for this
662 * Moose::Meta::TypeConstraint::Enum
663 Moose::Meta::TypeConstraint::Role
664 - broke these out into their own classes (nothingmuch)
666 * Moose::Cookbook::Recipe*
667 - fixed references to test file locations in the POD
668 and updated up some text for new Moose features
672 - Added &resolve_metaclass_alias, a helper function for finding an actual
673 class for a short name (e.g. in the traits list)
675 0.40 Fri. March 14, 2008
676 - I hate Pod::Coverage
678 0.39 Fri. March 14, 2008
680 - documenting the use of '+name' with attributes
681 that come from recently composed roles. It makes
682 sense, people are using it, and so why not just
683 officially support it.
684 - fixing the 'extends' keyword so that it will not
685 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
688 - added the perl -Moose=+Class::Name feature to allow
689 monkeypatching of classes in one liners
692 - fixing the 'apply_all_roles' keyword so that it will not
693 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
696 - added ->create method which now supports roles (thanks to jrockway)
697 - added tests for this
698 - added ->create_anon_class which now supports roles and caching of
699 the results (thanks to jrockway)
700 - added tests for this
701 - made ->does_role a little more forgiving when it is
702 checking a Class::MOP era metaclasses.
704 * Moose::Meta::Role::Application::ToInstance
705 - it is now possible to pass extra params to be used when
706 a role is applied to an the instance (rebless_params)
707 - added tests for this
709 * Moose::Util::TypeConstraints
710 - class_type now accepts an optional second argument for a
711 custom message. POD anotated accordingly (groditi)
712 - added tests for this
713 - it is now possible to make anon-enums by passing 'enum' an
714 ARRAY ref instead of the $name => @values. Everything else
716 - added tests for this
719 - making test for using '+name' on attributes consumed
720 from a role, it works and makes sense too.
722 * Moose::Meta::Attribute
723 - fix handles so that it doesn't return nothing
724 when the method cannot be found, not sure why
725 it ever did this originally, this means we now
726 have slightly better support for AUTOLOADed
728 - added more delegation tests
729 - adding ->does method to this so as to better
730 support traits and their introspection.
731 - added tests for this
734 - localizing the Data::Dumper configurations so
735 that it does not pollute others (RT #33509)
736 - made ->does a little more forgiving when it is
737 passed Class::MOP era metaclasses.
739 0.38 Fri. Feb. 15, 2008
740 * Moose::Meta::Attribute
741 - fixed initializer to correctly do
742 type checking and coercion in the
744 - added tests for this
747 - fixed some finicky tests (thanks to konobi)
749 0.37 Thurs. Feb. 14, 2008
751 - fixed some details in Moose::init_meta
752 and its superclass handling (thanks thepler)
753 - added tests for this (thanks thepler)
754 - 'has' now dies if you don't pass in name
756 - added the 'make_immutable' keyword as a shortcut
760 Moose::Meta::Method::Constructor
761 Moose::Meta::Attribute
762 - making (init_arg => undef) work here too
763 (thanks to nothingmuch)
765 * Moose::Meta::Attribute
766 Moose::Meta::Method::Constructor
767 Moose::Meta::Method::Accessor
768 - make lazy attributes respect attr initializers (rjbs)
769 - added tests for this
771 * Moose::Util::TypeConstraints
772 Moose::Util::TypeConstraints::OptimizedConstraints
773 Moose::Meta::TypeConstraints
774 Moose::Meta::Attribute
775 Moose::Meta::Method::Constructor
776 Moose::Meta::Method::Accessor
777 - making type errors use the
778 assigned message (thanks to Sartak)
779 - added tests for this
781 * Moose::Meta::Method::Destructor
782 - making sure DESTROY gets inlined properly
783 with successive DEMOLISH calls (thanks to manito)
785 * Moose::Meta::Attribute
786 Moose::Meta::Method::Accessor
787 - fixed handling of undef with type constraints
789 - added tests for this
792 - added &get_all_init_args and &get_all_attribute_values
793 (thanks to Sartak and nothingmuch)
795 0.36 Sat. Jan. 26, 2008
797 Moose::Meta::Attribute
798 - role type tests now support when roles are
799 applied to non-Moose classes (found by ash)
800 - added tests for this (thanks to ash)
801 - couple extra tests to boost code coverage
803 * Moose::Meta::Method::Constructor
804 - improved fix for handling Class::MOP attributes
805 - added test for this
808 - handled the add_attribute($attribute_meta_object)
810 - added test for this
812 0.35 Tues. Jan. 22, 2008
813 * Moose::Meta::Method::Constructor
814 - fix to make sure even Class::MOP attributes
815 are handled correctly (Thanks to Dave Rolsky)
816 - added test for this (also Dave Rolsky)
819 - improved error message on _apply_all_roles,
820 you should now use Moose::Util::apply_all_roles
821 and you shouldnt have been using a _ prefixed
822 method in the first place ;)
824 0.34 Mon. Jan. 21, 2008
825 ~~~ more misc. doc. fixes ~~~
826 ~~ updated copyright dates ~~
828 Moose is now a postmodern object system :)
829 - (see the POD for details)
831 * <<Role System Refactoring>>
832 - this release contains a major reworking and
833 cleanup of the role system
834 - 100% backwards compat.
835 - Role application now restructured into seperate
836 classes based on type of applicants
837 - Role summation (combining of more than one role)
838 is much cleaner and anon-classes are no longer
840 - new Composite role metaclass
841 - runtime application of roles to instances
842 is now more efficient and re-uses generated
843 classes when applicable
845 * <<New Role composition features>>
846 - methods can now be excluded from a given role
848 - methods can now be aliased to another name (and
849 still retain the original as well)
851 * Moose::Util::TypeConstraints::OptimizedConstraints
852 - added this module (see above)
855 - fixed the &_process_attribute method to be called
856 by &add_attribute, so that the API is now correct
858 * Moose::Meta::Method::Accessor
859 - fixed bug when passing a list of values to
860 an accessor would get (incorrectly) ignored.
861 Thanks to Sartak for finding this ;)
862 - added tests for this (Sartak again)
864 * Moose::Meta::Method::Accessor
865 Moose::Meta::Method::Constructor
866 Moose::Meta::Attribute
867 Moose::Meta::TypeConstraint
868 Moose::Meta::TypeCoercion
869 - lots of cleanup of such things as:
871 - type constraint handling
872 - error handling/messages
873 (thanks to nothingmuch)
875 * Moose::Meta::TypeConstraint::Parameterizable
876 - added this module to support the refactor
877 in Moose::Meta::TypeConstraint::Parameterized
879 * Moose::Meta::TypeConstraint::Parameterized
880 - refactored how these types are handled so they
881 are more generic and not confined to ArrayRef
885 - shortened some file names for better VMS support (RT #32381)
887 0.33 Fri. Dec. 14, 2007
888 !! Moose now loads 2 x faster !!
889 !! with new Class::MOP 0.49 !!
891 ++ new oose.pm module to make command line
892 Moose-ness easier (see POD docs for more)
896 - several tweaks to take advantage of the
897 new method map caching in Class::MOP
899 * Moose::Meta::TypeConstraint::Parameterized
900 - allow subtypes of ArrayRef and HashRef to
901 be used as a container (sartak)
902 - added tests for this
903 - basic support for coercion to ArrayRef and
904 HashRef for containers (sartak)
905 - added tests for this
907 * Moose::Meta::TypeCoercion
908 - coercions will now create subtypes as needed
909 so you can now add coercions to parameterized
910 types without having to explictly define them
911 - added tests for this
913 * Moose::Meta::Method::Accessor
914 - allow subclasses to decide whether we need
915 to copy the value into a new variable (sartak)
917 0.32 Tues. Dec. 4, 2007
918 * Moose::Util::TypeConstraints
919 - fixing how subtype aliases of unions work
920 they should inherit the parent's coercion
921 - added tests for this
922 - you can now define multiple coercions on
923 a single type at different times instead of
924 having to do it all in one place
925 - added tests for this
927 * Moose::Meta::TypeConstraint
928 - there is now a default constraint of sub { 1 }
929 instead of Moose::Util::TypeConstraints setting
932 * Moose::Meta::TypeCoercion
933 * Moose::Meta::TypeCoercion::Union
934 - added the &has_coercion_for_type and
935 &add_type_coercions methods to support the
936 new features above (although you cannot add
937 more type coercions for Union types)
939 0.31 Mon. Nov. 26, 2007
940 * Moose::Meta::Attribute
941 - made the +attr syntax handle extending types with
942 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
943 now works if the original foo is an ArrayRef.
944 - added tests for this.
945 - delegation now works even if the attribute does not
946 have a reader method using the get_read_method_ref
947 method from Class::MOP::Attribute.
948 - added tests for this
949 - added docs for this
951 * Moose::Util::TypeConstraints
952 - passing no "additional attribute info" to
953 &find_or_create_type_constraint will no longer
954 attempt to create an __ANON__ type for you,
955 instead it will just return undef.
956 - added docs for this
958 0.30 Fri. Nov. 23, 2007
959 * Moose::Meta::Method::Constructor
960 -builder related bug in inlined constructor. (groditi)
962 * Moose::Meta::Method::Accessor
963 - genereate unnecessary calls to predicates and refactor
964 code generation for runtime speed (groditi)
966 * Moose::Util::TypeConstraints
967 - fix ClassName constraint to introspect symbol table (mst)
968 - added more tests for this (mst)
969 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
971 - added tests for this
974 - adding the link to Recipie 11 (written by Sartak)
975 - adding test for SYNOPSIS code
978 - New tests for builder bug. Upon instantiation, if an
979 attribute had a builder, no value and was not lazy the
980 builder default was not getting run, oops. (groditi)
982 0.29 Tues. Nov. 13, 2007
983 * Moose::Meta::Attribute
984 - Fix error message on missing builder method (groditi)
986 * Moose::Meta::Method::Accessor
987 - Fix error message on missing builder method (groditi)
990 - Add test to check for the correct error message when
991 builder method is missing (groditi)
993 0.28 Tues. Nov. 13, 2007
994 - 0.27 packaged incorrectly (groditi)
996 0.27 Tues. Nov. 13, 2007
997 * Moose::Meta::Attribute
998 - Added support for the new builder option (groditi)
999 - Added support for lazy_build option (groditi)
1000 - Changed slot initialization for predicate changes (groditi)
1002 * Moose::Meta::Method::Accessor
1003 - Added support for lazy_build option (groditi)
1004 - Fix inline methods to work with corrected predicate
1007 * Moose::Meta::Method::Constructor
1008 - Added support for lazy_build option (groditi)
1011 - tests for builder and lazy_build (groditi)
1013 * fixing some misc. bits in the docs that
1014 got mentioned on CPAN Forum & perlmonks
1017 - fixed how required methods are handled
1018 when they encounter overriden or modified
1019 methods from a class (thanks to confound).
1020 - added tests for this
1022 * Moose::Util::TypeConstraint
1023 - fixed the type notation parser so that
1024 the | always creates a union and so is
1025 no longer a valid type char (thanks to
1026 konobi, mugwump and #moose for working
1028 - added more tests for this
1030 0.26 Thurs. Sept. 27, 2007
1033 * Parameterized Types
1034 We now support parameterized collection types, such as:
1035 ArrayRef[Int] # array or integers
1036 HashRef[Object] # a hash with object values
1037 They can also be nested:
1038 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
1039 And work with the type unions as well:
1040 ArrayRef[Int | Str] # array of integers of strings
1042 * Better Framework Extendability
1043 Moose.pm is now "extendable" such that it is now much
1044 easier to extend the framework and add your own keywords
1045 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
1046 section of the Moose.pm docs.
1049 In an effort to begin documenting some of the various
1050 details of Moose as well as some common idioms, we have
1051 created Moose::Cookbook::Snacks as a place to find
1052 small (easily digestable) nuggets of Moose code.
1055 ~ Several doc updates/cleanup thanks to castaway ~
1057 - converted build system to use Module::Install instead of
1058 Module::Build (thanks to jrockway)
1061 - added all the meta classes to the immutable list and
1062 set it to inline the accessors
1063 - fix import to allow Sub::Exporter like { into => }
1064 and { into_level => } (perigrin)
1065 - exposed and documented init_meta() to allow better
1066 embedding and extending of Moose (perigrin)
1069 - complete re-organization of the test suite
1070 - added some new tests as well
1071 - finally re-enabled the Moose::POOP test since
1072 the new version of DBM::Deep now works again
1075 * Moose::Meta::Class
1076 - fixed very odd and very nasty recursion bug with
1078 - added tests for this (eilara)
1080 * Moose::Meta::Attribute
1081 Moose::Meta::Method::Constructor
1082 Moose::Meta::Method::Accessor
1083 - fixed issue with overload::Overloaded getting called
1084 on non-blessed items. (RT #29269)
1085 - added tests for this
1087 * Moose::Meta::Method::Accessor
1088 - fixed issue with generated accessor code making
1089 assumptions about hash based classes (thanks to dexter)
1091 * Moose::Coookbook::Snacks
1092 - these are bits of documentation, not quite as big as
1093 Recipes but which have no clear place in the module docs.
1094 So they are Snacks! (horray for castaway++)
1096 * Moose::Cookbook::Recipe4
1097 - updated it to use the new ArrayRef[MyType] construct
1098 - updated the accompanying test as well
1100 +++ Major Refactor of the Type Constraint system +++
1101 +++ with new features added as well +++
1103 * Moose::Util::TypeConstraint
1104 - no longer uses package variable to keep track of
1105 the type constraints, now uses the an instance of
1106 Moose::Meta::TypeConstraint::Registry to do it
1107 - added more sophisticated type notation parsing
1109 - added tests for this
1111 * Moose::Meta::TypeConstraint
1112 - some minor adjustments to make subclassing easier
1113 - added the package_defined_in attribute so that we
1114 can track where the type constraints are created
1116 * Moose::Meta::TypeConstraint::Union
1117 - this is now been refactored to be a subclass of
1118 Moose::Meta::TypeConstraint
1120 * Moose::Meta::TypeCoercion::Union
1121 - this has been added to service the newly refactored
1122 Moose::Meta::TypeConstraint::Union and is itself
1123 a subclass of Moose::Meta::TypeCoercion
1125 * Moose::Meta::TypeConstraint::Parameterized
1126 - added this module (taken from MooseX::AttributeHelpers)
1127 to help construct nested collection types
1128 - added tests for this
1130 * Moose::Meta::TypeConstraint::Registry
1131 - added this class to keep track of type constraints
1133 0.25 Mon. Aug. 13, 2007
1135 - Documentation update to reference Moose::Util::TypeConstraints
1136 under 'isa' in 'has' for how to define a new type
1137 (thanks to shlomif).
1139 * Moose::Meta::Attribute
1140 - required attributes now will no longer accept undef
1141 from the constructor, even if there is a default and lazy
1142 - added tests for this
1143 - default subroutines must return a value which passes the
1145 - added tests for this
1147 * Moose::Meta::Attribute
1148 * Moose::Meta::Method::Constructor
1149 * Moose::Meta::Method::Accessor
1150 - type-constraint tests now handle overloaded objects correctly
1151 in the error message
1152 - added tests for this (thanks to EvanCarroll)
1154 * Moose::Meta::TypeConstraint::Union
1155 - added (has_)hand_optimized_constraint to this class so that
1156 it behaves as the regular Moose::Meta::TypeConstraint does.
1159 - large refactoring of this code
1160 - added several more tests
1161 - tests for subtle conflict resolition issues
1162 added, but not currently running
1165 * Moose::Cookbook::Recipe7
1166 - added new recipe for augment/inner functionality
1168 - added test for this
1171 - a formal definition of roles (still in progress)
1174 - utilities for easier working with Moose classes
1175 - added tests for these
1178 - This contains Moose specific test functions
1179 - added tests for these
1181 0.24 Tues. July 3, 2007
1182 ~ Some doc updates/cleanup ~
1184 * Moose::Meta::Attribute
1185 - added support for roles to be given as parameters
1186 to the 'handles' option.
1187 - added tests and docs for this
1188 - the has '+foo' attribute form now accepts changes to
1189 the lazy option, and the addition of a handles option
1190 (but not changing the handles option)
1191 - added tests and docs for this
1194 - required methods are now fetched using find_method_by_name
1195 so that required methods can come from superclasses
1196 - adjusted tests for this
1198 0.23 Mon. June 18, 2007
1199 * Moose::Meta::Method::Constructor
1200 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
1201 * Moose::Meta::Class
1202 - Modify make_immutable to work with the new Class::MOP immutable
1203 mechanism + POD + very basic test (groditi)
1204 * Moose::Meta::Attribute
1205 - Fix handles to use goto() so that caller() comes out properly on
1206 the other side (perigrin)
1208 0.22 Thurs. May 31, 2007
1209 * Moose::Util::TypeConstraints
1210 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
1211 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
1212 prototypes for functions
1213 - added the ClassName type constraint, this checks for strings
1214 which will respond true to ->isa(UNIVERSAL).
1215 - added tests and docs for this
1216 - subtyping just in name now works correctly by making the
1217 default for where be { 1 }
1218 - added test for this
1220 * Moose::Meta::Method::Accessor
1221 - coerce and lazy now work together correctly, thanks to
1222 merlyn for finding this bug
1223 - tests added for this
1224 - fix reader presedence bug in Moose::Meta::Attribute + tests
1227 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
1228 a HASH-ref and missed. This produces better error messages then
1229 having it die cause undef is not a HASH.
1230 - added tests for this
1232 0.21 Thursday, May 2nd, 2007
1234 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
1235 - modified unimport to remove super and inner along with the rest
1236 - altered unimport tests to handle this
1239 - altered super export to populate SUPER_SLOT
1241 * Moose::Meta::Class
1242 - altered augment and override modifier application to use *_SLOT
1243 - modified tests for these to unimport one test class each to test
1246 - fixed issue where custom attribute metaclasses
1247 where not handled correctly in roles
1248 - added tests for this
1250 * Moose::Meta::Class
1251 - fixed issue where extending metaclasses with
1252 roles would blow up. Thanks to Aankhen`` for
1253 finding this insidious error, and it's solution.
1255 ~~ lots of spelling and grammer fixes in the docs,
1256 many many thanks to rlb3 and Aankhen for these :)
1258 0.20 Friday, April 6th, 2007
1259 >> I messed up the SKIP logic in one test
1260 so this release is just to fix that.
1263 - 'has' now also accepts an ARRAY ref
1264 to create multiple attrs (see docs)
1265 (thanks to konobi for this)
1266 - added tests and docs
1268 0.19 Thurs. April 5th, 2007
1269 ~~ More documentation updates ~~
1271 * Moose::Util::TypeConstraints
1272 - 'type' now supports messages as well
1273 thanks to phaylon for finding this
1274 - added tests for this
1275 - added &list_all_type_constraints and
1276 &list_all_builtin_type_constraints
1277 functions to facilitate introspection.
1279 * Moose::Meta::Attribute
1280 - fixed regexp 'handles' declarations
1281 to build the list of delegated methods
1282 correctly (and not override important
1283 things like &new) thanks to ashleyb
1285 - added tests and docs for this
1286 - added the 'documentation' attributes
1287 so that you can actually document your
1288 attributes and inspect them through the
1290 - added tests and docs for this
1292 * Moose::Meta::Class
1293 - when loading custom attribute metaclasses
1294 it will first look in for the class in the
1295 Moose::Meta::Attribute::Custom::$name, and
1296 then default to just loading $name.
1297 - added tests and docs for this
1299 * Moose::Meta::TypeConstraint
1300 - type constraints now stringify to their names.
1301 - added test for this
1304 - added tests to assure we work with Module::Refresh
1305 - added stricter test skip logic in the Moose POOP
1306 test, ask Rob Kinyon why.
1307 - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
1309 0.18 Sat. March 10, 2007
1310 ~~ Many, many documentation updates ~~
1313 - We now use Class::MOP::load_class to
1315 - added tests to show types and subtypes
1316 working with Declare::Constraints::Simple
1317 and Test::Deep as constraint engines.
1320 !! You must have Class::MOP 0.37_001 !!
1321 !! for this developer release to work !!
1323 This release was primarily adding the immutable
1324 feature to Moose. An immutable class is one which
1325 you promise not to alter. When you set the class
1326 as immutable it will perform various bits of
1327 memoization and inline certain part of the code
1328 (constructors, destructors and accessors). This
1329 minimizes (and in some cases totally eliminates)
1330 one of Moose's biggest performance hits. This
1331 feature is not on by default, and is 100% optional.
1332 It has several configurable bits as well, so you
1333 can pick and choose to your specific needs.
1335 The changes involved in this were fairly wide and
1336 highly specific, but 100% backwards compatible, so
1337 I am not going to enumerate them here. If you are
1338 truely interested in what was changed, please do
1341 0.17 Tues. Nov. 14, 2006
1342 * Moose::Meta::Method::Accessor
1343 - bugfix for read-only accessors which
1344 are have a type constraint and lazy.
1345 Thanks to chansen for finding it.
1347 0.16 Tues. Nov. 14, 2006
1349 There are some speed improvements in this release,
1350 but they are only the begining, so stay tuned.
1353 - BUILDALL and DEMOLISHALL no longer get
1354 called unless they actually need to be.
1355 This gave us a signifigant speed boost
1356 for the cases when there is no BUILD or
1357 DEMOLISH method present.
1359 * Moose::Util::TypeConstraints
1360 * Moose::Meta::TypeConstraint
1361 - added an 'optimize_as' option to the
1362 type constraint, which allows for a
1363 hand optimized version of the type
1364 constraint to be used when possible.
1365 - Any internally created type constraints
1366 now provide an optimized version as well.
1368 0.15 Sun. Nov. 5, 2006
1370 This version of Moose *must* have Class::MOP 0.36 in order
1371 to work correctly. A number of small internal tweaks have
1372 been made in order to be compatible with that release.
1374 * Moose::Util::TypeConstraints
1375 - added &unimport so that you can clean out
1376 your class namespace of these exported
1379 * Moose::Meta::Class
1380 - fixed minor issue which occasionally
1381 comes up during global destruction
1383 - moved Moose::Meta::Method::Overriden into
1387 - moved Moose::Meta::Role::Method into
1390 * Moose::Meta::Attribute
1391 - changed how we do type checks so that
1392 we reduce the overall cost, but still
1395 - moved accessor generation methods to
1396 Moose::Meta::Method::Accessor to
1397 conform to the API changes from
1400 * Moose::Meta::TypeConstraint
1401 - changed how constraints are compiled
1402 so that we do less recursion and more
1403 iteration. This makes the type check
1405 - moved Moose::Meta::TypeConstraint::Union
1408 * Moose::Meta::Method::Accessor
1409 - created this from methods formerly found in
1410 Moose::Meta::Attribute
1412 * Moose::Meta::Role::Method
1413 - moved this from Moose::Meta::Role
1415 * Moose::Meta::Method::Overriden
1416 - moved this from Moose::Meta::Class
1418 * Moose::Meta::TypeConstraint::Union
1419 - moved this from Moose::Meta::TypeConstraint
1421 0.14 Mon. Oct. 9, 2006
1423 * Moose::Meta::Attribute
1424 - fixed lazy attributes which were not getting
1425 checked with the type constraint (thanks ashley)
1426 - added tests for this
1427 - removed the over-enthusiastic DWIMery of the
1428 automatic ArrayRef and HashRef defaults, it
1429 broke predicates in an ugly way.
1430 - removed tests for this
1432 0.13 Sat. Sept. 30, 2006
1434 This version of Moose *must* have Class::MOP 0.35 in order
1435 to work correctly. A number of small internal tweaks have
1436 been made in order to be compatible with that release.
1439 - Removed the use of UNIVERSAL::require to be a better
1440 symbol table citizen and remove a dependency
1441 (thanks Adam Kennedy)
1443 **~~ removed experimental & undocumented feature ~~**
1444 - commented out the 'method' and 'self' keywords, see the
1445 comments for more info.
1448 - added a FAQ and WTF files to document frequently
1449 asked questions and common problems
1451 * Moose::Util::TypeConstraints
1452 - added GlobRef and FileHandle type constraint
1453 - added tests for this
1455 * Moose::Meta::Attribute
1456 - if your attribute 'isa' ArrayRef of HashRef, and you have
1457 not explicitly set a default, then make the default DWIM.
1458 This will also work for subtypes of ArrayRef and HashRef
1460 - you can now auto-deref subtypes of ArrayRef or HashRef too.
1461 - new test added for this (thanks to ashley)
1464 - added basic support for runtime role composition
1465 but this is still *highly experimental*, so feedback
1466 is much appreciated :)
1467 - added tests for this
1469 * Moose::Meta::TypeConstraint
1470 - the type constraint now handles the coercion process
1471 through delegation, this is to support the coercion
1474 * Moose::Meta::TypeConstraint::Union
1475 - it is now possible for coercions to be performed
1477 - added tests for this (thanks to konobi)
1479 * Moose::Meta::TypeCoercion
1480 - properly capturing error when type constraint
1484 - Scalar::Util 1.18 is bad on Win32, so temporarily
1485 only require version 1.17 for Win32 and cygwin.
1486 (thanks Adam Kennedy)
1488 0.12 Sat. Sept. 1, 2006
1490 - Recipe5 (subtypes & coercion) has been written
1493 - fixed "bad meta" error message to be more descriptive
1494 - fixed &unimport to not remove the &inner and &super
1495 keywords because we need to localize them.
1496 - fixed number of spelling/grammer issues, thanks Theory :)
1498 **~~ experimental & undocumented feature ~~**
1499 - added the method and self keywords, they are basically
1500 just sugar, and they may not stay around.
1503 - added &dump method to easily Data::Dumper
1506 * Moose::Meta::TypeConstraint
1507 - added the &is_a_type_of method to check both the current
1508 and the subtype of a method (similar to &isa with classes)
1511 - this is now a subclass of Class::MOP::Module, and no longer
1512 creates the _role_meta ugliness of before.
1513 - fixed tests to reflect this change
1515 0.11 Wed. July 12, 2006
1517 - added an &unimport method to remove all the keywords
1518 that Moose will import, simply add 'no Moose' to the
1519 bottom of your class file.
1522 - fixed some test failures caused by a forgotten test
1525 0.10 Thurs. July 6, 2006
1527 - improved error message when loading modules so
1528 it is less confusing when you load a role.
1529 - added &calculate_all_roles method to
1530 Moose::Meta::Class and Moose::Meta::Role
1533 This module has been tested against Class::MOP 0.30
1534 but it does not yet utilize the optimizations
1535 it makes available. Stay tuned for that ;)
1537 0.09_03 Fri. June 23, 2006
1538 ++ DEVELOPER RELEASE ++
1540 - 'use strict' and 'use warnings' are no longer
1541 needed in Moose classes, Moose itself will
1542 turn them on for you.
1543 - added tests for this
1544 - moved code from exported subs to private methods
1545 in Moose::Meta::Class
1548 - as with Moose, strict and warnings are
1549 automatically turned on for you.
1550 - added tests for this
1553 - now handles an edge case for override errors
1554 - added tests for this
1555 - added some more edge case tests
1557 0.09_02 Tues. May 16, 2006
1558 ++ DEVELOPER RELEASE ++
1560 - added prototypes to the exported subs
1564 - added prototypes to the exported subs
1567 * Moose::Util::TypeConstraints
1568 - cleaned up prototypes for the subs
1571 0.09_01 Fri. May 12, 2006
1572 ++ DEVELOPER RELEASE ++
1573 - This release works in combination with
1574 Class::MOP 0.29_01, it is a developer
1575 release because it uses the a new
1576 instance sub-protocol and a fairly
1577 complete Role implementation. It has
1578 not yet been optimized, so it slower
1579 the the previous CPAN version. This
1580 release also lacks good updated docs,
1581 the official release will have updated docs.
1584 - refactored the keyword exports
1585 - 'with' now checks Role validaity and
1586 accepts more than one Role at a time
1587 - 'extends' makes metaclass adjustments as
1588 needed to ensure metaclass compatibility
1591 - refactored the keyword exports
1592 - 'with' now checks Role validaity and
1593 accepts more than one Role at a time
1595 * Moose::Util::TypeConstraints
1596 - added the 'enum' keyword for simple
1597 string enumerations which can be used as
1599 - see example of usage in t/202_example.t
1602 - more careful checking of params to new()
1605 - much work done on the role composition
1606 - many new tests for conflict detection
1607 and composition edge cases
1608 - not enough documentation, I suggest
1609 looking at the tests
1611 * Moose::Meta::Instance
1612 - added new Instance metaclass to support
1613 the new Class::MOP instance protocol
1615 * Moose::Meta::Class
1616 - some small changes to support the new
1618 - some small additions to support Roles
1620 * Moose::Meta::Attribute
1621 - some improvements to the accessor generation code
1623 - some small changes to support the new
1625 - (still somewhat) experimental delegation support
1626 with the 'handles' option
1627 - added several tests for this
1628 - no docs for this yet
1630 0.05 Thurs. April 27, 2006
1632 - keywords are now exported with Sub::Exporter
1633 thanks to chansen for this commit
1634 - has keyword now takes a 'metaclass' option
1635 to support custom attribute meta-classes
1636 on a per-attribute basis
1637 - added tests for this
1638 - the 'has' keyword not accepts inherited slot
1639 specifications (has '+foo'). This is still an
1640 experimental feature and probably not finished
1641 see t/038_attribute_inherited_slot_specs.t for
1642 more details, or ask about it on #moose
1643 - added tests for this
1646 - keywords are now exported with Sub::Exporter
1648 * Moose::Utils::TypeConstraints
1649 - reorganized the type constraint hierarchy, thanks
1650 to nothingmuch and chansen for his help and advice
1652 - added some tests for this
1653 - keywords are now exported with Sub::Exporter
1654 thanks to chansen for this commit
1656 * Moose::Meta::Class
1657 - due to changes in Class::MOP, we had to change
1658 construct_instance (for the better)
1660 * Moose::Meta::Attribute
1661 - due to changes in Class::MOP, we had to add the
1662 initialize_instance_slot method (it's a good thing)
1664 * Moose::Meta::TypeConstraint
1665 - added type constraint unions
1666 - added tests for this
1667 - added the is_subtype_of predicate method
1668 - added tests for this
1670 0.04 Sun. April 16th, 2006
1672 - Roles can now consume other roles
1673 - added tests for this
1674 - Roles can specify required methods now with
1675 the requires() keyword
1676 - added tests for this
1679 - ripped out much of it's guts ,.. much cleaner now
1680 - added required methods and correct handling of
1681 them in apply() for both classes and roles
1682 - added tests for this
1683 - no longer adds a does() method to consuming classes
1684 it relys on the one in Moose::Object
1685 - added roles attribute and some methods to support
1686 roles consuming roles
1688 * Moose::Meta::Attribute
1689 - added support for triggers on attributes
1690 - added tests for this
1691 - added support for does option on an attribute
1692 - added tests for this
1694 * Moose::Meta::Class
1695 - added support for attribute triggers in the
1697 - added tests for this
1700 - Moose no longer creates a subtype for your class
1701 if a subtype of the same name already exists, this
1702 should DWIM in 99.9999% of all cases
1704 * Moose::Util::TypeConstraints
1705 - fixed bug where incorrect subtype conflicts were
1707 - added test for this
1710 - this class can now be extended with 'use base' if
1711 you need it, it properly loads the metaclass class now
1712 - added test for this
1714 0.03_02 Wed. April 12, 2006
1716 - you must now explictly use Moose::Util::TypeConstraints
1717 it no longer gets exported for you automatically
1720 - new() now accepts hash-refs as well as key/value lists
1721 - added does() method to check for Roles
1722 - added tests for this
1724 * Moose::Meta::Class
1725 - added roles attribute along with the add_role() and
1727 - added tests for this
1730 - now adds a does() method to consuming classes
1731 which tests the class's hierarchy for roles
1732 - added tests for this
1734 0.03_01 Mon. April 10, 2006
1736 - added new Role recipe (no content yet, only code)
1739 - added 'with' keyword for Role support
1740 - added test and docs for this
1741 - fixed subtype quoting bug
1742 - added test for this
1746 - added test and docs
1748 * Moose::Util::TypeConstraints
1749 - added the message keyword to add custom
1750 error messages to type constraints
1753 - the meta role to support Moose::Role
1754 - added tests and docs
1756 * Moose::Meta::Class
1757 - moved a number of things from Moose.pm
1758 to here, they should have been here
1761 * Moose::Meta::Attribute
1762 - moved the attribute option macros here
1763 instead of putting them in Moose.pm
1765 * Moose::Meta::TypeConstraint
1766 - added the message attributes and the
1768 - added tests and docs for this
1770 0.03 Thurs. March 30, 2006
1772 - added the Moose::Cookbook with 5 recipes,
1773 describing all the stuff Moose can do.
1776 - fixed an issue with &extends super class loading
1777 it now captures errors and deals with inline
1778 packages correctly (bug found by mst, solution
1780 - added super/override & inner/augment features
1781 - added tests and docs for these
1784 - BUILDALL now takes a reference of the %params
1785 that are passed to &new, and passes that to
1788 * Moose::Util::TypeConstraints
1789 - Type constraints now survive runtime reloading
1790 - added test for this
1792 * Moose::Meta::Class
1793 - fixed the way attribute defaults are handled
1794 during instance construction (bug found by chansen)
1796 * Moose::Meta::Attribute
1797 - read-only attributes now actually enforce their
1798 read-only-ness (this corrected in Class::MOP as
1801 0.02 Tues. March 21, 2006
1803 - many more tests, fixing some bugs and
1805 - &extends now loads the base module with
1807 - added UNIVERSAL::require to the
1810 - each new Moose class will also create
1811 and register a subtype of Object which
1812 correspond to the new Moose class.
1813 - the 'isa' option in &has now only
1814 accepts strings, and will DWIM in
1817 * Moose::Util::TypeConstraints
1818 - added type coercion features
1819 - added tests for this
1820 - added support for this in attributes
1821 and instance construction
1823 - type construction no longer creates a
1824 function, it registers the type instead.
1825 - added several functions to get the
1829 - BUILDALL and DEMOLISHALL were broken
1830 because of a mis-named hash key, Whoops :)
1832 * Moose::Meta::Attribute
1833 - adding support for coercion in the
1834 autogenerated accessors
1836 * Moose::Meta::Class
1837 - adding support for coercion in the
1838 instance construction
1840 * Moose::Meta::TypeConstraint
1841 * Moose::Meta::TypeCoercion
1842 - type constraints and coercions are now
1843 full fledges meta-objects
1845 0.01 Wed. March 15, 2006
1846 - Moooooooooooooooooose!!!