1 Revision history for Perl extension Moose
4 * Moose::Meta::Attribute
5 - breaking down the way 'handles' methods are
6 created so that the process can be more easily
7 overridden by subclasses (stevan)
9 * Moose::Meta::TypeConstraint
10 - fixing what is passed into a ->message with
11 the type constraints (RT #37569)
12 - added tests for this (Charles Alderman)
15 - reorganized the recipes into sections - Basics, Roles, Meta
18 * Moose::Cookbook::Basics::Recipe10
19 - A new recipe that demonstrates operator overloading
20 in combination with Moose. (bluefeet)
22 0.54 Thurs. July 3, 2008
23 ... this is not my day today ...
25 * Moose::Meta::Attribute
26 - fixed legal_options_for_inheritance such that
27 clone_and_inherit options still works for
28 Class::MOP::Attribute objects and therefore
29 does not break MooseX::AttributeHelpers
32 0.53 Thurs. July 3, 2008
33 * Whoops, I guess I should run 'make manifest' before
34 actually releasing the module. No actual changes
35 in this release, except the fact that it includes
36 the changes that I didn't include in the last
39 0.52 Thurs. July 3, 2008
41 - added "FEATURE REQUESTS" section to the Moose docs
42 to properly direct people (stevan) (RT #34333)
43 - making 'extends' croak if it is passed a Role since
44 this is not ever something you want to do
45 (fixed by stevan, found by obra)
46 - added tests for this (stevan)
49 - adding support for DOES (as in UNIVERSAL::DOES)
53 * Moose::Meta::Attribute
54 - added legal_options_for_inheritance (wreis)
55 - added tests for this (wreis)
57 * Moose::Cookbook::Snacks::*
58 - removed some of the unfinished snacks that should
59 not have been released yet. Added some more examples
60 to the 'Keywords' snack. (stevan)
62 * Moose::Cookbook::Style
63 - added general Moose "style guide" of sorts to the
64 cookbook (nothingmuch) (RT #34335)
67 - added more BUILDARGS tests (stevan)
69 0.51 Thurs. Jun 26, 2008
71 - add unimport so "no Moose::Role" actually does
74 * Moose::Meta::Role::Application::ToRole
75 - when RoleA did RoleB, and RoleA aliased a method from RoleB in
76 order to provide its own implementation, that method still got
77 added to the list of required methods for consumers of
78 RoleB. Now an aliased method is only added to the list of
79 required methods if the role doing the aliasing does not
80 provide its own implementation. See Recipe 11 for an example
81 of all this. (Dave Rolsky)
82 - added tests for this
84 * Moose::Meta::Method::Constructor
85 - when a single argument that wasn't a hashref was provided to
86 an immutabilized constructor, the error message was very
87 unhelpful, as opposed to the non-immutable error. Reported by
89 - added test for this (Dave Rolsky)
91 * Moose::Meta::Attribute
92 - added support for meta_attr->does("ShortAlias") (sartak)
93 - added tests for this (sartak)
94 - moved the bulk of the `handles` handling to the new
95 install_delegation method (Stevan)
98 - Added BUILDARGS, a new step in new()
100 * Moose::Meta::Role::Application::RoleSummation
101 - fix typos no one ever sees (sartak)
103 * Moose::Util::TypeConstraints
104 * Moose::Meta::TypeConstraint
105 * Moose::Meta::TypeCoercion
106 - Attempt to work around the ??{ } vs. threads issue
108 - Some null_constraint optimizations
110 0.50 Thurs. Jun 11, 2008
111 - Fixed a version number issue by bumping all modules
114 0.49 Thurs. Jun 11, 2008
115 !! This version now approx. 20-25% !!
116 !! faster with new Class::MOP 0.59 !!
118 * Moose::Meta::Attribute
119 - fixed how the is => (ro|rw) works with
120 custom defined reader, writer and accessor
122 - added docs for this (TODO).
123 - added tests for this (Thanks to Penfold)
124 - added the custom attribute alias for regular
125 Moose attributes which is "Moose"
126 - fix builder and default both being used
131 Moose::Meta::Attribute
133 Moose::Meta::Role::Composite
134 Moose::Util::TypeConstraints
135 - switched usage of reftype to ref because
139 - changing add_package_symbol to use the new
143 - fixed how DEMOLISHALL is called so that it
144 can be overrided in subclasses (thanks to Sartak)
145 - added test for this (thanks to Sartak)
147 * Moose::Util::TypeConstraints
148 - move the ClassName type check code to
149 Class::MOP::is_class_loaded (thanks to Sartak)
151 * Moose::Cookbook::Recipe11
152 - add tests for this (thanks to tokuhirom)
154 0.48 Thurs. May 29, 2008
155 (early morning release engineering)--
157 - fixing the version in Moose::Meta::Method::Destructor
158 which was causing the indexer to choke
160 0.47 Thurs. May 29, 2008
161 (late night release engineering)--
163 - fixing the version is META.yml, no functional
164 changes in this release
166 0.46 Wed. May 28, 2008
167 !! This version now approx. 20-25% !!
168 !! faster with new Class::MOP 0.57 !!
171 - some optimizations of the &initialize method
172 since it is called so often by &meta
176 - now use the get_all_package_symbols from the
177 updated Class::MOP, test suite is now 10 seconds
180 * Moose::Meta::Method::Destructor
181 - is_needed can now also be called as a class
182 method for immutablization to check if the
183 destructor object even needs to be created
186 * Moose::Meta::Method::Destructor
187 Moose::Meta::Method::Constructor
188 - added more descriptive error message to help
189 keep people from wasting time tracking an error
190 that is easily fixed by upgrading.
192 0.45 Saturday, May 24, 2008
194 - Because of work in Class::MOP 0.56, all
195 XS based functionality is now optional
196 and a Pure Perl version is supplied
197 - the CLASS_MOP_NO_XS environment variable
198 can now be used to force non-XS versions
200 - several of the packages have been tweaked
201 to take care of this, mostly we added
202 support for the package_name and name
203 variables in all the Method metaclasses
204 - before/around/after method modifiers now
205 support regexp matching of names
206 (thanks to Takatoshi Kitano)
207 - tests added for this
208 - NOTE: this only works for classes, it
209 is currently not supported in roles,
210 but, ... patches welcome
211 - All usage of Carp::confess have been replaced
212 by Carp::croak in the "keyword" functions since
213 the stack trace is usually not helpful
216 - All usage of Carp::confess have been replaced
217 by Carp::croak in the "keyword" functions since
218 the stack trace is usually not helpful
219 - The 'has' keyword for roles now accepts the
220 same array ref form that Moose.pm does
221 (has [qw/foo bar/] => (is => 'rw', ...))
222 - added test for this
224 * Moose::Meta::Attribute
225 - trigger on a ro-attribute is no longer an
226 error, as it's useful to trigger off of the
230 - added same 'add_package_symbol' fix as in
234 - does_role now handles non-Moose classes
236 - added tests for this
237 - added the 'add_method_modifier' function
238 (thanks to Takatoshi Kitano)
240 * Moose::Util::TypeConstraints
241 - subtypes of parameterizable types now are
242 themselves parameterizable types
244 * Moose::Meta::Method::Constructor
245 - fixed bug where trigger was not being
246 called by the inlined immutable
248 - added test for this (thanks to Caelum)
250 * Moose::Meta::Role::Application::ToInstance
251 - now uses the metaclass of the instance
252 (if possible) to create the anon-class
253 (thanks Jonathan Rockway)
255 * Moose::Cookbook::Recipe22
256 - added the meta-attribute trait recipe
260 - fixed hash-ordering test bug that was
261 causing occasional cpantester failures
262 - renamed the t/000_recipe/*.t tests to be
263 more descriptive (thanks to Sartak)
265 0.44 Sat. May 10, 2008
267 - made make_immutable warning cluck to
268 show where the error is (thanks mst)
271 - BUILDALL and DEMOLISHALL now call
272 ->body when looping through the
273 methods, to avoid the overloaded
275 - fixed issue where DEMOLISHALL was
276 eating the $@ values, and so not
277 working correctly, it still kind of
278 eats them, but so does vanilla perl
279 - added tests for this
281 * Moose::Cookbook::Recipe7
282 - added new recipe for immutable
283 functionality (thanks Dave Rolsky)
285 * Moose::Cookbook::Recipe9
286 - added new recipe for builder and
287 lazy_build (thanks Dave Rolsky)
289 * Moose::Cookbook::Recipe11
290 - added new recipe for method aliasing
291 and exclusion with Roles (thanks Dave Rolsky)
294 - fixed Win32 test failure (thanks spicyjack)
296 ~ removed Build.PL and Module::Build compat
297 since Module::Install has done that.
299 0.43 Wed. April, 30, 2008
301 drink more coffee before
302 doing release engineering
304 - whoops, forgot to do the smolder tests,
305 and we broke some of the custom meta-attr
306 modules. This fixes that.
308 0.42 Mon. April 28, 2008
309 - some bad tests slipped by, nothing else
310 changed in this release (cpantesters++)
312 - upped the Class::MOP dependency to 0.55
313 since we have tests which need the C3
316 0.41 Mon. April 28, 2008
317 ~~ numerous documentation updates ~~
319 - Changed all usage of die to Carp::croak for better
320 error reporting (initial patch by Tod Hagan)
323 - the make_immutable keyword is now deprecated, don't
324 use it in any new code and please fix your old code
325 as well. There will be 2 releases, and then it will
331 - refactored the way inner and super work to avoid
332 any method/@ISA cache penalty (nothingmuch)
335 - fixing &new_object to make sure trigger gets the
336 coerced value (spotted by Charles Alderman on the
338 - added test for this
340 * Moose::Meta::Method::Constructor
341 - immutable classes which had non-lazy attributes were calling
342 the default generating sub twice in the constructor. (bug
343 found by Jesse Luehrs, fixed by Dave Rolsky)
344 - added tests for this (Dave Rolsky)
345 - fix typo in initialize_body method (nothingmuch)
347 * Moose::Meta::Method::Destructor
348 - fix typo in initialize_body method (nothingmuch)
350 * Moose::Meta::Method::Overriden
351 Moose::Meta::Method::Augmented
352 - moved the logic for these into their own
353 classes (nothingmuch)
355 * Moose::Meta::Attribute
356 - inherited attributes may now be extended without
357 restriction on the type ('isa', 'does') (Sartak)
358 - added tests for this (Sartak)
359 - when an attribute property is malformed (such as lazy without
360 a default), give the name of the attribute in the error
362 - added the &applied_traits and &has_applied_traits methods
363 to allow introspection of traits
364 - added tests for this
365 - moved 'trait' and 'metaclass' argument handling to here from
367 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
368 '+foo' syntax) (nothingmuch)
369 - added tests for this (t0m)
372 - localize $@ inside DEMOLISHALL to avoid it
373 eating $@ (found by Ernesto)
374 - added test for this (thanks to Ernesto)
376 * Moose::Util::TypeConstraints
377 - &find_type_constraint now DWIMs when given an
378 type constraint object or name (nothingmuch)
379 - &find_or_create_type_constraint superseded with a number of more
381 - find_or_create_{isa,does}_type_constraint
382 - find_or_parse_type_constraint
384 * Moose::Meta::TypeConstraint
385 Moose::Meta::TypeConstraint::Class
386 Moose::Meta::TypeConstraint::Role
387 Moose::Meta::TypeConstraint::Enum
388 Moose::Meta::TypeConstraint::Union
389 Moose::Meta::TypeConstraint::Parameterized
390 - added the &equals method for comparing two type
391 constraints (nothingmuch)
392 - added tests for this (nothingmuch)
394 * Moose::Meta::TypeConstraint
395 - add the &parents method, which is just an alias to &parent.
396 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
398 * Moose::Meta::TypeConstraint::Class
399 - added the class attribute for introspection purposes
401 - added tests for this
403 * Moose::Meta::TypeConstraint::Enum
404 Moose::Meta::TypeConstraint::Role
405 - broke these out into their own classes (nothingmuch)
407 * Moose::Cookbook::Recipe*
408 - fixed references to test file locations in the POD
409 and updated up some text for new Moose features
413 - Added &resolve_metaclass_alias, a helper function for finding an actual
414 class for a short name (e.g. in the traits list)
416 0.40 Fri. March 14, 2008
417 - I hate Pod::Coverage
419 0.39 Fri. March 14, 2008
421 - documenting the use of '+name' with attributes
422 that come from recently composed roles. It makes
423 sense, people are using it, and so why not just
424 officially support it.
425 - fixing the 'extends' keyword so that it will not
426 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
429 - added the perl -Moose=+Class::Name feature to allow
430 monkeypatching of classes in one liners
433 - fixing the 'apply_all_roles' keyword so that it will not
434 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
437 - added ->create method which now supports roles (thanks to jrockway)
438 - added tests for this
439 - added ->create_anon_class which now supports roles and caching of
440 the results (thanks to jrockway)
441 - added tests for this
442 - made ->does_role a little more forgiving when it is
443 checking a Class::MOP era metaclasses.
445 * Moose::Meta::Role::Application::ToInstance
446 - it is now possible to pass extra params to be used when
447 a role is applied to an the instance (rebless_params)
448 - added tests for this
450 * Moose::Util::TypeConstraints
451 - class_type now accepts an optional second argument for a
452 custom message. POD anotated accordingly (groditi)
453 - added tests for this
454 - it is now possible to make anon-enums by passing 'enum' an
455 ARRAY ref instead of the $name => @values. Everything else
457 - added tests for this
460 - making test for using '+name' on attributes consumed
461 from a role, it works and makes sense too.
463 * Moose::Meta::Attribute
464 - fix handles so that it doesn't return nothing
465 when the method cannot be found, not sure why
466 it ever did this originally, this means we now
467 have slightly better support for AUTOLOADed
469 - added more delegation tests
470 - adding ->does method to this so as to better
471 support traits and their introspection.
472 - added tests for this
475 - localizing the Data::Dumper configurations so
476 that it does not pollute others (RT #33509)
477 - made ->does a little more forgiving when it is
478 passed Class::MOP era metaclasses.
480 0.38 Fri. Feb. 15, 2008
481 * Moose::Meta::Attribute
482 - fixed initializer to correctly do
483 type checking and coercion in the
485 - added tests for this
488 - fixed some finicky tests (thanks to konobi)
490 0.37 Thurs. Feb. 14, 2008
492 - fixed some details in Moose::init_meta
493 and its superclass handling (thanks thepler)
494 - added tests for this (thanks thepler)
495 - 'has' now dies if you don't pass in name
497 - added the 'make_immutable' keyword as a shortcut
501 Moose::Meta::Method::Constructor
502 Moose::Meta::Attribute
503 - making (init_arg => undef) work here too
504 (thanks to nothingmuch)
506 * Moose::Meta::Attribute
507 Moose::Meta::Method::Constructor
508 Moose::Meta::Method::Accessor
509 - make lazy attributes respect attr initializers (rjbs)
510 - added tests for this
512 * Moose::Util::TypeConstraints
513 Moose::Util::TypeConstraints::OptimizedConstraints
514 Moose::Meta::TypeConstraints
515 Moose::Meta::Attribute
516 Moose::Meta::Method::Constructor
517 Moose::Meta::Method::Accessor
518 - making type errors use the
519 assigned message (thanks to Sartak)
520 - added tests for this
522 * Moose::Meta::Method::Destructor
523 - making sure DESTROY gets inlined properly
524 with successive DEMOLISH calls (thanks to manito)
526 * Moose::Meta::Attribute
527 Moose::Meta::Method::Accessor
528 - fixed handling of undef with type constraints
530 - added tests for this
533 - added &get_all_init_args and &get_all_attribute_values
534 (thanks to Sartak and nothingmuch)
536 0.36 Sat. Jan. 26, 2008
538 Moose::Meta::Attribute
539 - role type tests now support when roles are
540 applied to non-Moose classes (found by ash)
541 - added tests for this (thanks to ash)
542 - couple extra tests to boost code coverage
544 * Moose::Meta::Method::Constructor
545 - improved fix for handling Class::MOP attributes
546 - added test for this
549 - handled the add_attribute($attribute_meta_object)
551 - added test for this
553 0.35 Tues. Jan. 22, 2008
554 * Moose::Meta::Method::Constructor
555 - fix to make sure even Class::MOP attributes
556 are handled correctly (Thanks to Dave Rolsky)
557 - added test for this (also Dave Rolsky)
560 - improved error message on _apply_all_roles,
561 you should now use Moose::Util::apply_all_roles
562 and you shouldnt have been using a _ prefixed
563 method in the first place ;)
565 0.34 Mon. Jan. 21, 2008
566 ~~~ more misc. doc. fixes ~~~
567 ~~ updated copyright dates ~~
569 Moose is now a postmodern object system :)
570 - (see the POD for details)
572 * <<Role System Refactoring>>
573 - this release contains a major reworking and
574 cleanup of the role system
575 - 100% backwards compat.
576 - Role application now restructured into seperate
577 classes based on type of applicants
578 - Role summation (combining of more than one role)
579 is much cleaner and anon-classes are no longer
581 - new Composite role metaclass
582 - runtime application of roles to instances
583 is now more efficient and re-uses generated
584 classes when applicable
586 * <<New Role composition features>>
587 - methods can now be excluded from a given role
589 - methods can now be aliased to another name (and
590 still retain the original as well)
592 * Moose::Util::TypeConstraints::OptimizedConstraints
593 - added this module (see above)
596 - fixed the &_process_attribute method to be called
597 by &add_attribute, so that the API is now correct
599 * Moose::Meta::Method::Accessor
600 - fixed bug when passing a list of values to
601 an accessor would get (incorrectly) ignored.
602 Thanks to Sartak for finding this ;)
603 - added tests for this (Sartak again)
605 * Moose::Meta::Method::Accessor
606 Moose::Meta::Method::Constructor
607 Moose::Meta::Attribute
608 Moose::Meta::TypeConstraint
609 Moose::Meta::TypeCoercion
610 - lots of cleanup of such things as:
612 - type constraint handling
613 - error handling/messages
614 (thanks to nothingmuch)
616 * Moose::Meta::TypeConstraint::Parameterizable
617 - added this module to support the refactor
618 in Moose::Meta::TypeConstraint::Parameterized
620 * Moose::Meta::TypeConstraint::Parameterized
621 - refactored how these types are handled so they
622 are more generic and not confined to ArrayRef
626 - shortened some file names for better VMS support (RT #32381)
628 0.33 Fri. Dec. 14, 2007
629 !! Moose now loads 2 x faster !!
630 !! with new Class::MOP 0.49 !!
632 ++ new oose.pm module to make command line
633 Moose-ness easier (see POD docs for more)
637 - several tweaks to take advantage of the
638 new method map caching in Class::MOP
640 * Moose::Meta::TypeConstraint::Parameterized
641 - allow subtypes of ArrayRef and HashRef to
642 be used as a container (sartak)
643 - added tests for this
644 - basic support for coercion to ArrayRef and
645 HashRef for containers (sartak)
646 - added tests for this
648 * Moose::Meta::TypeCoercion
649 - coercions will now create subtypes as needed
650 so you can now add coercions to parameterized
651 types without having to explictly define them
652 - added tests for this
654 * Moose::Meta::Method::Accessor
655 - allow subclasses to decide whether we need
656 to copy the value into a new variable (sartak)
658 0.32 Tues. Dec. 4, 2007
659 * Moose::Util::TypeConstraints
660 - fixing how subtype aliases of unions work
661 they should inherit the parent's coercion
662 - added tests for this
663 - you can now define multiple coercions on
664 a single type at different times instead of
665 having to do it all in one place
666 - added tests for this
668 * Moose::Meta::TypeConstraint
669 - there is now a default constraint of sub { 1 }
670 instead of Moose::Util::TypeConstraints setting
673 * Moose::Meta::TypeCoercion
674 * Moose::Meta::TypeCoercion::Union
675 - added the &has_coercion_for_type and
676 &add_type_coercions methods to support the
677 new features above (although you cannot add
678 more type coercions for Union types)
680 0.31 Mon. Nov. 26, 2007
681 * Moose::Meta::Attribute
682 - made the +attr syntax handle extending types with
683 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
684 now works if the original foo is an ArrayRef.
685 - added tests for this.
686 - delegation now works even if the attribute does not
687 have a reader method using the get_read_method_ref
688 method from Class::MOP::Attribute.
689 - added tests for this
690 - added docs for this
692 * Moose::Util::TypeConstraints
693 - passing no "additional attribute info" to
694 &find_or_create_type_constraint will no longer
695 attempt to create an __ANON__ type for you,
696 instead it will just return undef.
697 - added docs for this
699 0.30 Fri. Nov. 23, 2007
700 * Moose::Meta::Method::Constructor
701 -builder related bug in inlined constructor. (groditi)
703 * Moose::Meta::Method::Accessor
704 - genereate unnecessary calls to predicates and refactor
705 code generation for runtime speed (groditi)
707 * Moose::Util::TypeConstraints
708 - fix ClassName constraint to introspect symbol table (mst)
709 - added more tests for this (mst)
710 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
712 - added tests for this
715 - adding the link to Recipie 11 (written by Sartak)
716 - adding test for SYNOPSIS code
719 - New tests for builder bug. Upon instantiation, if an
720 attribute had a builder, no value and was not lazy the
721 builder default was not getting run, oops. (groditi)
723 0.29 Tues. Nov. 13, 2007
724 * Moose::Meta::Attribute
725 - Fix error message on missing builder method (groditi)
727 * Moose::Meta::Method::Accessor
728 - Fix error message on missing builder method (groditi)
731 - Add test to check for the correct error message when
732 builder method is missing (groditi)
734 0.28 Tues. Nov. 13, 2007
735 - 0.27 packaged incorrectly (groditi)
737 0.27 Tues. Nov. 13, 2007
738 * Moose::Meta::Attribute
739 - Added support for the new builder option (groditi)
740 - Added support for lazy_build option (groditi)
741 - Changed slot initialization for predicate changes (groditi)
743 * Moose::Meta::Method::Accessor
744 - Added support for lazy_build option (groditi)
745 - Fix inline methods to work with corrected predicate
748 * Moose::Meta::Method::Constructor
749 - Added support for lazy_build option (groditi)
752 - tests for builder and lazy_build (groditi)
754 * fixing some misc. bits in the docs that
755 got mentioned on CPAN Forum & perlmonks
758 - fixed how required methods are handled
759 when they encounter overriden or modified
760 methods from a class (thanks to confound).
761 - added tests for this
763 * Moose::Util::TypeConstraint
764 - fixed the type notation parser so that
765 the | always creates a union and so is
766 no longer a valid type char (thanks to
767 konobi, mugwump and #moose for working
769 - added more tests for this
771 0.26 Thurs. Sept. 27, 2007
774 * Parameterized Types
775 We now support parameterized collection types, such as:
776 ArrayRef[Int] # array or integers
777 HashRef[Object] # a hash with object values
778 They can also be nested:
779 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
780 And work with the type unions as well:
781 ArrayRef[Int | Str] # array of integers of strings
783 * Better Framework Extendability
784 Moose.pm is now "extendable" such that it is now much
785 easier to extend the framework and add your own keywords
786 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
787 section of the Moose.pm docs.
790 In an effort to begin documenting some of the various
791 details of Moose as well as some common idioms, we have
792 created Moose::Cookbook::Snacks as a place to find
793 small (easily digestable) nuggets of Moose code.
796 ~ Several doc updates/cleanup thanks to castaway ~
798 - converted build system to use Module::Install instead of
799 Module::Build (thanks to jrockway)
802 - added all the meta classes to the immutable list and
803 set it to inline the accessors
804 - fix import to allow Sub::Exporter like { into => }
805 and { into_level => } (perigrin)
806 - exposed and documented init_meta() to allow better
807 embedding and extending of Moose (perigrin)
810 - complete re-organization of the test suite
811 - added some new tests as well
812 - finally re-enabled the Moose::POOP test since
813 the new version of DBM::Deep now works again
817 - fixed very odd and very nasty recursion bug with
819 - added tests for this (eilara)
821 * Moose::Meta::Attribute
822 Moose::Meta::Method::Constructor
823 Moose::Meta::Method::Accessor
824 - fixed issue with overload::Overloaded getting called
825 on non-blessed items. (RT #29269)
826 - added tests for this
828 * Moose::Meta::Method::Accessor
829 - fixed issue with generated accessor code making
830 assumptions about hash based classes (thanks to dexter)
832 * Moose::Coookbook::Snacks
833 - these are bits of documentation, not quite as big as
834 Recipes but which have no clear place in the module docs.
835 So they are Snacks! (horray for castaway++)
837 * Moose::Cookbook::Recipe4
838 - updated it to use the new ArrayRef[MyType] construct
839 - updated the accompanying test as well
841 +++ Major Refactor of the Type Constraint system +++
842 +++ with new features added as well +++
844 * Moose::Util::TypeConstraint
845 - no longer uses package variable to keep track of
846 the type constraints, now uses the an instance of
847 Moose::Meta::TypeConstraint::Registry to do it
848 - added more sophisticated type notation parsing
850 - added tests for this
852 * Moose::Meta::TypeConstraint
853 - some minor adjustments to make subclassing easier
854 - added the package_defined_in attribute so that we
855 can track where the type constraints are created
857 * Moose::Meta::TypeConstraint::Union
858 - this is now been refactored to be a subclass of
859 Moose::Meta::TypeConstraint
861 * Moose::Meta::TypeCoercion::Union
862 - this has been added to service the newly refactored
863 Moose::Meta::TypeConstraint::Union and is itself
864 a subclass of Moose::Meta::TypeCoercion
866 * Moose::Meta::TypeConstraint::Parameterized
867 - added this module (taken from MooseX::AttributeHelpers)
868 to help construct nested collection types
869 - added tests for this
871 * Moose::Meta::TypeConstraint::Registry
872 - added this class to keep track of type constraints
874 0.25 Mon. Aug. 13, 2007
876 - Documentation update to reference Moose::Util::TypeConstraints
877 under 'isa' in 'has' for how to define a new type
880 * Moose::Meta::Attribute
881 - required attributes now will no longer accept undef
882 from the constructor, even if there is a default and lazy
883 - added tests for this
884 - default subroutines must return a value which passes the
886 - added tests for this
888 * Moose::Meta::Attribute
889 * Moose::Meta::Method::Constructor
890 * Moose::Meta::Method::Accessor
891 - type-constraint tests now handle overloaded objects correctly
893 - added tests for this (thanks to EvanCarroll)
895 * Moose::Meta::TypeConstraint::Union
896 - added (has_)hand_optimized_constraint to this class so that
897 it behaves as the regular Moose::Meta::TypeConstraint does.
900 - large refactoring of this code
901 - added several more tests
902 - tests for subtle conflict resolition issues
903 added, but not currently running
906 * Moose::Cookbook::Recipe7
907 - added new recipe for augment/inner functionality
909 - added test for this
912 - a formal definition of roles (still in progress)
915 - utilities for easier working with Moose classes
916 - added tests for these
919 - This contains Moose specific test functions
920 - added tests for these
922 0.24 Tues. July 3, 2007
923 ~ Some doc updates/cleanup ~
925 * Moose::Meta::Attribute
926 - added support for roles to be given as parameters
927 to the 'handles' option.
928 - added tests and docs for this
929 - the has '+foo' attribute form now accepts changes to
930 the lazy option, and the addition of a handles option
931 (but not changing the handles option)
932 - added tests and docs for this
935 - required methods are now fetched using find_method_by_name
936 so that required methods can come from superclasses
937 - adjusted tests for this
939 0.23 Mon. June 18, 2007
940 * Moose::Meta::Method::Constructor
941 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
943 - Modify make_immutable to work with the new Class::MOP immutable
944 mechanism + POD + very basic test (groditi)
945 * Moose::Meta::Attribute
946 - Fix handles to use goto() so that caller() comes out properly on
947 the other side (perigrin)
949 0.22 Thurs. May 31, 2007
950 * Moose::Util::TypeConstraints
951 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
952 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
953 prototypes for functions
954 - added the ClassName type constraint, this checks for strings
955 which will respond true to ->isa(UNIVERSAL).
956 - added tests and docs for this
957 - subtyping just in name now works correctly by making the
958 default for where be { 1 }
959 - added test for this
961 * Moose::Meta::Method::Accessor
962 - coerce and lazy now work together correctly, thanks to
963 merlyn for finding this bug
964 - tests added for this
965 - fix reader presedence bug in Moose::Meta::Attribute + tests
968 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
969 a HASH-ref and missed. This produces better error messages then
970 having it die cause undef is not a HASH.
971 - added tests for this
973 0.21 Thursday, May 2nd, 2007
975 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
976 - modified unimport to remove super and inner along with the rest
977 - altered unimport tests to handle this
980 - altered super export to populate SUPER_SLOT
983 - altered augment and override modifier application to use *_SLOT
984 - modified tests for these to unimport one test class each to test
987 - fixed issue where custom attribute metaclasses
988 where not handled correctly in roles
989 - added tests for this
992 - fixed issue where extending metaclasses with
993 roles would blow up. Thanks to Aankhen`` for
994 finding this insidious error, and it's solution.
996 ~~ lots of spelling and grammer fixes in the docs,
997 many many thanks to rlb3 and Aankhen for these :)
999 0.20 Friday, April 6th, 2007
1000 >> I messed up the SKIP logic in one test
1001 so this release is just to fix that.
1004 - 'has' now also accepts an ARRAY ref
1005 to create multiple attrs (see docs)
1006 (thanks to konobi for this)
1007 - added tests and docs
1009 0.19 Thurs. April 5th, 2007
1010 ~~ More documentation updates ~~
1012 * Moose::Util::TypeConstraints
1013 - 'type' now supports messages as well
1014 thanks to phaylon for finding this
1015 - added tests for this
1016 - added &list_all_type_constraints and
1017 &list_all_builtin_type_constraints
1018 functions to facilitate introspection.
1020 * Moose::Meta::Attribute
1021 - fixed regexp 'handles' declarations
1022 to build the list of delegated methods
1023 correctly (and not override important
1024 things like &new) thanks to ashleyb
1026 - added tests and docs for this
1027 - added the 'documentation' attributes
1028 so that you can actually document your
1029 attributes and inspect them through the
1031 - added tests and docs for this
1033 * Moose::Meta::Class
1034 - when loading custom attribute metaclasses
1035 it will first look in for the class in the
1036 Moose::Meta::Attribute::Custom::$name, and
1037 then default to just loading $name.
1038 - added tests and docs for this
1040 * Moose::Meta::TypeConstraint
1041 - type constraints now stringify to their names.
1042 - added test for this
1045 - added tests to assure we work with Module::Refresh
1046 - added stricter test skip logic in the Moose POOP
1047 test, ask Rob Kinyon why.
1048 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
1050 0.18 Sat. March 10, 2007
1051 ~~ Many, many documentation updates ~~
1054 - We now use Class::MOP::load_class to
1056 - added tests to show types and subtypes
1057 working with Declare::Constraints::Simple
1058 and Test::Deep as constraint engines.
1061 !! You must have Class::MOP 0.37_001 !!
1062 !! for this developer release to work !!
1064 This release was primarily adding the immutable
1065 feature to Moose. An immutable class is one which
1066 you promise not to alter. When you set the class
1067 as immutable it will perform various bits of
1068 memoization and inline certain part of the code
1069 (constructors, destructors and accessors). This
1070 minimizes (and in some cases totally eliminates)
1071 one of Moose's biggest performance hits. This
1072 feature is not on by default, and is 100% optional.
1073 It has several configurable bits as well, so you
1074 can pick and choose to your specific needs.
1076 The changes involved in this were fairly wide and
1077 highly specific, but 100% backwards compatible, so
1078 I am not going to enumerate them here. If you are
1079 truely interested in what was changed, please do
1082 0.17 Tues. Nov. 14, 2006
1083 * Moose::Meta::Method::Accessor
1084 - bugfix for read-only accessors which
1085 are have a type constraint and lazy.
1086 Thanks to chansen for finding it.
1088 0.16 Tues. Nov. 14, 2006
1090 There are some speed improvements in this release,
1091 but they are only the begining, so stay tuned.
1094 - BUILDALL and DEMOLISHALL no longer get
1095 called unless they actually need to be.
1096 This gave us a signifigant speed boost
1097 for the cases when there is no BUILD or
1098 DEMOLISH method present.
1100 * Moose::Util::TypeConstraints
1101 * Moose::Meta::TypeConstraint
1102 - added an 'optimize_as' option to the
1103 type constraint, which allows for a
1104 hand optimized version of the type
1105 constraint to be used when possible.
1106 - Any internally created type constraints
1107 now provide an optimized version as well.
1109 0.15 Sun. Nov. 5, 2006
1111 This version of Moose *must* have Class::MOP 0.36 in order
1112 to work correctly. A number of small internal tweaks have
1113 been made in order to be compatible with that release.
1115 * Moose::Util::TypeConstraints
1116 - added &unimport so that you can clean out
1117 your class namespace of these exported
1120 * Moose::Meta::Class
1121 - fixed minor issue which occasionally
1122 comes up during global destruction
1124 - moved Moose::Meta::Method::Overriden into
1128 - moved Moose::Meta::Role::Method into
1131 * Moose::Meta::Attribute
1132 - changed how we do type checks so that
1133 we reduce the overall cost, but still
1136 - moved accessor generation methods to
1137 Moose::Meta::Method::Accessor to
1138 conform to the API changes from
1141 * Moose::Meta::TypeConstraint
1142 - changed how constraints are compiled
1143 so that we do less recursion and more
1144 iteration. This makes the type check
1146 - moved Moose::Meta::TypeConstraint::Union
1149 * Moose::Meta::Method::Accessor
1150 - created this from methods formerly found in
1151 Moose::Meta::Attribute
1153 * Moose::Meta::Role::Method
1154 - moved this from Moose::Meta::Role
1156 * Moose::Meta::Method::Overriden
1157 - moved this from Moose::Meta::Class
1159 * Moose::Meta::TypeConstraint::Union
1160 - moved this from Moose::Meta::TypeConstraint
1162 0.14 Mon. Oct. 9, 2006
1164 * Moose::Meta::Attribute
1165 - fixed lazy attributes which were not getting
1166 checked with the type constraint (thanks ashley)
1167 - added tests for this
1168 - removed the over-enthusiastic DWIMery of the
1169 automatic ArrayRef and HashRef defaults, it
1170 broke predicates in an ugly way.
1171 - removed tests for this
1173 0.13 Sat. Sept. 30, 2006
1175 This version of Moose *must* have Class::MOP 0.35 in order
1176 to work correctly. A number of small internal tweaks have
1177 been made in order to be compatible with that release.
1180 - Removed the use of UNIVERSAL::require to be a better
1181 symbol table citizen and remove a dependency
1182 (thanks Adam Kennedy)
1184 **~~ removed experimental & undocumented feature ~~**
1185 - commented out the 'method' and 'self' keywords, see the
1186 comments for more info.
1189 - added a FAQ and WTF files to document frequently
1190 asked questions and common problems
1192 * Moose::Util::TypeConstraints
1193 - added GlobRef and FileHandle type constraint
1194 - added tests for this
1196 * Moose::Meta::Attribute
1197 - if your attribute 'isa' ArrayRef of HashRef, and you have
1198 not explicitly set a default, then make the default DWIM.
1199 This will also work for subtypes of ArrayRef and HashRef
1201 - you can now auto-deref subtypes of ArrayRef or HashRef too.
1202 - new test added for this (thanks to ashley)
1205 - added basic support for runtime role composition
1206 but this is still *highly experimental*, so feedback
1207 is much appreciated :)
1208 - added tests for this
1210 * Moose::Meta::TypeConstraint
1211 - the type constraint now handles the coercion process
1212 through delegation, this is to support the coercion
1215 * Moose::Meta::TypeConstraint::Union
1216 - it is now possible for coercions to be performed
1218 - added tests for this (thanks to konobi)
1220 * Moose::Meta::TypeCoercion
1221 - properly capturing error when type constraint
1225 - Scalar::Util 1.18 is bad on Win32, so temporarily
1226 only require version 1.17 for Win32 and cygwin.
1227 (thanks Adam Kennedy)
1229 0.12 Sat. Sept. 1, 2006
1231 - Recipe5 (subtypes & coercion) has been written
1234 - fixed "bad meta" error message to be more descriptive
1235 - fixed &unimport to not remove the &inner and &super
1236 keywords because we need to localize them.
1237 - fixed number of spelling/grammer issues, thanks Theory :)
1239 **~~ experimental & undocumented feature ~~**
1240 - added the method and self keywords, they are basically
1241 just sugar, and they may not stay around.
1244 - added &dump method to easily Data::Dumper
1247 * Moose::Meta::TypeConstraint
1248 - added the &is_a_type_of method to check both the current
1249 and the subtype of a method (similar to &isa with classes)
1252 - this is now a subclass of Class::MOP::Module, and no longer
1253 creates the _role_meta ugliness of before.
1254 - fixed tests to reflect this change
1256 0.11 Wed. July 12, 2006
1258 - added an &unimport method to remove all the keywords
1259 that Moose will import, simply add 'no Moose' to the
1260 bottom of your class file.
1263 - fixed some test failures caused by a forgotten test
1266 0.10 Thurs. July 6, 2006
1268 - improved error message when loading modules so
1269 it is less confusing when you load a role.
1270 - added &calculate_all_roles method to
1271 Moose::Meta::Class and Moose::Meta::Role
1274 This module has been tested against Class::MOP 0.30
1275 but it does not yet utilize the optimizations
1276 it makes available. Stay tuned for that ;)
1278 0.09_03 Fri. June 23, 2006
1279 ++ DEVELOPER RELEASE ++
1281 - 'use strict' and 'use warnings' are no longer
1282 needed in Moose classes, Moose itself will
1283 turn them on for you.
1284 - added tests for this
1285 - moved code from exported subs to private methods
1286 in Moose::Meta::Class
1289 - as with Moose, strict and warnings are
1290 automatically turned on for you.
1291 - added tests for this
1294 - now handles an edge case for override errors
1295 - added tests for this
1296 - added some more edge case tests
1298 0.09_02 Tues. May 16, 2006
1299 ++ DEVELOPER RELEASE ++
1301 - added prototypes to the exported subs
1305 - added prototypes to the exported subs
1308 * Moose::Util::TypeConstraints
1309 - cleaned up prototypes for the subs
1312 0.09_01 Fri. May 12, 2006
1313 ++ DEVELOPER RELEASE ++
1314 - This release works in combination with
1315 Class::MOP 0.29_01, it is a developer
1316 release because it uses the a new
1317 instance sub-protocol and a fairly
1318 complete Role implementation. It has
1319 not yet been optimized, so it slower
1320 the the previous CPAN version. This
1321 release also lacks good updated docs,
1322 the official release will have updated docs.
1325 - refactored the keyword exports
1326 - 'with' now checks Role validaity and
1327 accepts more than one Role at a time
1328 - 'extends' makes metaclass adjustments as
1329 needed to ensure metaclass compatability
1332 - refactored the keyword exports
1333 - 'with' now checks Role validaity and
1334 accepts more than one Role at a time
1336 * Moose::Util::TypeConstraints
1337 - added the 'enum' keyword for simple
1338 string enumerations which can be used as
1340 - see example of usage in t/202_example.t
1343 - more careful checking of params to new()
1346 - much work done on the role composition
1347 - many new tests for conflict detection
1348 and composition edge cases
1349 - not enough documentation, I suggest
1350 looking at the tests
1352 * Moose::Meta::Instance
1353 - added new Instance metaclass to support
1354 the new Class::MOP instance protocol
1356 * Moose::Meta::Class
1357 - some small changes to support the new
1359 - some small additions to support Roles
1361 * Moose::Meta::Attribute
1362 - some improvements to the accessor generation code
1364 - some small changes to support the new
1366 - (still somewhat) experimental delegation support
1367 with the 'handles' option
1368 - added several tests for this
1369 - no docs for this yet
1371 0.05 Thurs. April 27, 2006
1373 - keywords are now exported with Sub::Exporter
1374 thanks to chansen for this commit
1375 - has keyword now takes a 'metaclass' option
1376 to support custom attribute meta-classes
1377 on a per-attribute basis
1378 - added tests for this
1379 - the 'has' keyword not accepts inherited slot
1380 specifications (has '+foo'). This is still an
1381 experimental feature and probably not finished
1382 see t/038_attribute_inherited_slot_specs.t for
1383 more details, or ask about it on #moose
1384 - added tests for this
1387 - keywords are now exported with Sub::Exporter
1389 * Moose::Utils::TypeConstraints
1390 - reorganized the type constraint hierarchy, thanks
1391 to nothingmuch and chansen for his help and advice
1393 - added some tests for this
1394 - keywords are now exported with Sub::Exporter
1395 thanks to chansen for this commit
1397 * Moose::Meta::Class
1398 - due to changes in Class::MOP, we had to change
1399 construct_instance (for the better)
1401 * Moose::Meta::Attribute
1402 - due to changes in Class::MOP, we had to add the
1403 initialize_instance_slot method (it's a good thing)
1405 * Moose::Meta::TypeConstraint
1406 - added type constraint unions
1407 - added tests for this
1408 - added the is_subtype_of predicate method
1409 - added tests for this
1411 0.04 Sun. April 16th, 2006
1413 - Roles can now consume other roles
1414 - added tests for this
1415 - Roles can specify required methods now with
1416 the requires() keyword
1417 - added tests for this
1420 - ripped out much of it's guts ,.. much cleaner now
1421 - added required methods and correct handling of
1422 them in apply() for both classes and roles
1423 - added tests for this
1424 - no longer adds a does() method to consuming classes
1425 it relys on the one in Moose::Object
1426 - added roles attribute and some methods to support
1427 roles consuming roles
1429 * Moose::Meta::Attribute
1430 - added support for triggers on attributes
1431 - added tests for this
1432 - added support for does option on an attribute
1433 - added tests for this
1435 * Moose::Meta::Class
1436 - added support for attribute triggers in the
1438 - added tests for this
1441 - Moose no longer creates a subtype for your class
1442 if a subtype of the same name already exists, this
1443 should DWIM in 99.9999% of all cases
1445 * Moose::Util::TypeConstraints
1446 - fixed bug where incorrect subtype conflicts were
1448 - added test for this
1451 - this class can now be extended with 'use base' if
1452 you need it, it properly loads the metaclass class now
1453 - added test for this
1455 0.03_02 Wed. April 12, 2006
1457 - you must now explictly use Moose::Util::TypeConstraints
1458 it no longer gets exported for you automatically
1461 - new() now accepts hash-refs as well as key/value lists
1462 - added does() method to check for Roles
1463 - added tests for this
1465 * Moose::Meta::Class
1466 - added roles attribute along with the add_role() and
1468 - added tests for this
1471 - now adds a does() method to consuming classes
1472 which tests the class's hierarchy for roles
1473 - added tests for this
1475 0.03_01 Mon. April 10, 2006
1477 - added new Role recipe (no content yet, only code)
1480 - added 'with' keyword for Role support
1481 - added test and docs for this
1482 - fixed subtype quoting bug
1483 - added test for this
1487 - added test and docs
1489 * Moose::Util::TypeConstraints
1490 - added the message keyword to add custom
1491 error messages to type constraints
1494 - the meta role to support Moose::Role
1495 - added tests and docs
1497 * Moose::Meta::Class
1498 - moved a number of things from Moose.pm
1499 to here, they should have been here
1502 * Moose::Meta::Attribute
1503 - moved the attribute option macros here
1504 instead of putting them in Moose.pm
1506 * Moose::Meta::TypeConstraint
1507 - added the message attributes and the
1509 - added tests and docs for this
1511 0.03 Thurs. March 30, 2006
1513 - added the Moose::Cookbook with 5 recipes,
1514 describing all the stuff Moose can do.
1517 - fixed an issue with &extends super class loading
1518 it now captures errors and deals with inline
1519 packages correctly (bug found by mst, solution
1521 - added super/override & inner/augment features
1522 - added tests and docs for these
1525 - BUILDALL now takes a reference of the %params
1526 that are passed to &new, and passes that to
1529 * Moose::Util::TypeConstraints
1530 - Type constraints now survive runtime reloading
1531 - added test for this
1533 * Moose::Meta::Class
1534 - fixed the way attribute defaults are handled
1535 during instance construction (bug found by chansen)
1537 * Moose::Meta::Attribute
1538 - read-only attributes now actually enforce their
1539 read-only-ness (this corrected in Class::MOP as
1542 0.02 Tues. March 21, 2006
1544 - many more tests, fixing some bugs and
1546 - &extends now loads the base module with
1548 - added UNIVERSAL::require to the
1551 - each new Moose class will also create
1552 and register a subtype of Object which
1553 correspond to the new Moose class.
1554 - the 'isa' option in &has now only
1555 accepts strings, and will DWIM in
1558 * Moose::Util::TypeConstraints
1559 - added type coercion features
1560 - added tests for this
1561 - added support for this in attributes
1562 and instance construction
1564 - type construction no longer creates a
1565 function, it registers the type instead.
1566 - added several functions to get the
1570 - BUILDALL and DEMOLISHALL were broken
1571 because of a mis-named hash key, Whoops :)
1573 * Moose::Meta::Attribute
1574 - adding support for coercion in the
1575 autogenerated accessors
1577 * Moose::Meta::Class
1578 - adding support for coercion in the
1579 instance construction
1581 * Moose::Meta::TypeConstraint
1582 * Moose::Meta::TypeCoercion
1583 - type constraints and coercions are now
1584 full fledges meta-objects
1586 0.01 Wed. March 15, 2006
1587 - Moooooooooooooooooose!!!