1 Revision history for Perl extension Moose
4 * Moose::Util::TypeConstraints
5 - Calling subtype with a name as the only argument is now an
6 exception. If you want an anonymous subtype do:
8 my $subtype = subtype as 'Foo';
10 * Moose::Cookbook::Meta::Recipe7
11 - A new recipe, creating a custom meta-instance class.
13 * Moose::Cookbook::Basics::Recipe5
14 - Fix various typos and mistakes. Includes a patch from Radu
17 * Moose::Cookbook::Basics::Recipe9
18 - Link to this recipe from Moose.pm's builder blurb
21 - When wrapping a function with a prototype, Moose::Exporter now
22 makes sure the wrapped function still has the same
23 prototype. Patch by Daisuke Maki.
25 * Moose::Meta::Attribute
26 - Allow a subclass to set lazy_build for an inherited
27 attribute. (Dieter Pearcey).
30 - Explicitly depend on Data::OptList. We already had this dependency
31 via Sub::Exporter, but since we're using it directly we're
32 better off with it listed. (Sartak)
34 * Moose::Meta::Method::Constructor
35 - Make it easier to subclass the inlining behaviour
37 * Moose::Manual::Delta
38 - Details significant changes in the history of Moose, along
39 with recommended workarounds.
41 * Moose::Manual::Contributing
42 - Contributor's guide to Moose.
44 * Moose::Meta::Method::Constructor
45 - The long-deprecated intialize_body method has been removed
46 (yes, spelled like that).
48 0.72 Mon, February 23, 2009
50 * Moose::Meta::Method::Constructor
51 - A mutable class accepted Foo->new(undef) without complaint,
52 while an immutable class would blow up with an unhelpful
53 error. Now, in both cases we throw a helpful error
54 instead. Reported by doy.
56 0.71_01 Sun, February 22, 2009
58 - Hopefully fixed some POD errors in a few recipes that caused
59 them to display weird on search.cpan.org.
61 * Moose::Util::TypeConstraints
62 - Calling type or subtype without the sugar helpers (as, where,
63 message) is now deprecated.
64 - The subtype function tried hard to guess what you meant, but
65 often got it wrong. For example:
67 my $subtype = subtype as 'ArrayRef[Object]';
69 This caused an error in the past, but now works as you'd
73 - Make sure Moose.pm is loaded before calling
74 Moose->throw_error. This wasn't normally an issue, but could
75 bite you in weird cases.
77 0.71 Thu, February 19, 2009
78 * Moose::Cookbook::Basics::Recipe11
79 - A new recipe which demonstrates the use of BUILDARGS and
82 * Moose::Cookbook::Roles::Recipe3
83 - A new recipe, applying a role to an object instance. (Dave
87 - Allow overriding specific keywords from "also" packages. (doy)
90 - Replace hardcoded cookbook tests with Test::Inline to ensure
91 the tests match the actual code in the recipes. (Dave Rolsky)
94 - Working on the above turned up a number of little bugs in the
95 recipe code. (Dave Rolsky)
97 * Moose::Util::TypeConstraints::Optimized
98 - Just use Class::MOP for the optimized ClassName check. (Dave
101 0.70 Sat, February 14, 2009
102 * Moose::Util::TypeConstraints
103 - Added the RoleName type (stevan)
104 - added tests for this (stevan)
106 * Moose::Cookbook::Basics::Recipe3
107 - Updated the before qw[left right] sub to be a little more
108 defensive about what it accepts (stevan)
109 - added more tests to t/000_recipies/basics/003_binary_tree.t
113 - We now always call DEMOLISHALL, even if a class does not
114 define DEMOLISH. This makes sure that method modifiers on
115 DEMOLISHALL work as expected. (doy)
116 - added tests for this (EvanCarroll)
118 * Moose::Util::MetaRole
119 - Accept roles for the wrapped_method_metaclass (rafl)
120 - added tests for this (rafl)
122 * Moose::Meta::Attribute
123 - We no longer pass the meta-attribute object as a final
124 argument to triggers. This actually changed for inlined code a
125 while back, but the non-inlined version and the docs were
129 - Some tests tried to use Test::Warn 0.10, which had bugs. Now
130 they require 0.11. (Dave Rolsky)
133 - Lots of small changes to the manual, cookbook, and
134 elsewhere. These were based on feedback from various
135 users, too many to list here. (Dave Rolsky)
137 0.69 Thu, February 12, 2009
139 - Make some keyword errors use throw_error instead of croak
140 since Moose::Exporter wraps keywords now (Sartak)
143 - Revised every recipe for style and clarity. Also moved some
144 documentation out of cookbook recipes and into Moose::Manual
145 pages. This work was funded as part of the Moose docs grant
146 from TPF. (Dave Rolsky)
148 * Moose::Meta::Method::Delegation
149 - If the attribute doing the delegation was not populated, the
150 error message did not specify the attribute name
153 0.68 Wed, February 4, 2009
155 - Many spelling, typo, and formatting fixes by daxim.
157 * Moose::Manual::Attributes
158 - The NAME section in the POD used "Attribute" so search.cpan
159 didn't resolve links from other documents properly.
161 * Moose::Meta::Method::Overriden
162 - Now properly spelled as Overridden. Thanks to daxim for
165 0.67 Tue, February 3, 2009
167 - Lots of little typo fixes and a few clarifications. Several
168 pages didn't have proper titles, and so weren't actually
169 visible on search.cpan.org. Thanks to hanekomu for a variety
170 of fixes and formatting improvements.
172 0.66 Tue, February 3, 2009
174 - This is a brand new, extensive manual for Moose. This aims to
175 provide a complete introduction to all of Moose's
176 features. This work was funded as part of the Moose docs grant
177 from TPF. (Dave Rolsky)
179 * Moose::Meta::Attribute
180 - Added a delegation_metaclass method to replace a hard-coded
181 use of Moose::Meta::Method::Delegation. (Dave Rolsky)
183 * Moose::Util::TypeConstraints
184 - If you created a subtype and passed a parent that Moose didn't
185 know about, it simply ignored the parent. Now it automatically
186 creates the parent as a class type. This may not be what you
187 want, but is less broken than before. (Dave Rolsky)
189 * Moose::Util::TypeConstraints
190 - This module tried throw errors by calling Moose->throw_error,
191 but it did not ensure that Moose was loaded first. This could
192 cause very unhelpful errors when it tried to throw an error
193 before Moose was loaded. (Dave Rolsky)
195 * Moose::Util::TypeConstraints
196 - You could declare a name with subtype such as "Foo!Bar" that
197 would be allowed, but if you used it in a parameterized type
198 such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
199 vetting on names created via the sugar functions, so that they
200 can only contain alphanumerics, ":", and ".". (Dave Rolsky)
202 0.65 Thu, January 22, 2008
203 * Moose and Moose::Meta::Method::Overridden
204 - If an overridden method called super(), and then the
205 superclass's method (not overridden) _also_ called super(),
206 Moose went into an endless recursion loop. Test provided by
207 Chris Prather. (Dave Rolsky)
209 * Moose::Meta::TypeConstraint
210 - All methods are now documented. (gphat)
212 * t/100_bugs/011_DEMOLISH_eats_exceptions.t
213 - Fixed some bogus failures that occurred because we tried to
214 validate filesystem paths in a very ad-hoc and
215 not-quite-correct way. (Dave Rolsky)
217 * Moose::Util::TypeConstraints
218 - Added maybe_type to exports. See docs for details. (rjbs)
221 - Added Moose::Util::TypeConstraints to the SEE ALSO
225 - Methods created via an attribute can now fulfill a "requires"
226 declaration for a role. (nothingmuch)
228 * Moose::Meta::Method::*
229 - Stack traces from inlined code will now report its line and
230 file as being in your class, as opposed to in Moose
233 0.64 Wed, December 31, 2008
234 * Moose::Meta::Method::Accessor
235 - Always inline predicate and clearer methods (Sartak)
237 * Moose::Meta::Attribute
238 - Support for parameterized traits (Sartak)
239 - verify_against_type_constraint method to avoid duplication
240 and enhance extensibility (Sartak)
243 - Tests (but no support yet) for parameterized traits (Sartak)
246 - Require Class::MOP 0.75+, which has the side effect of making
247 sure we work on Win32. (Dave Rolsky)
249 0.63 Mon, December 8, 2008
251 - Some small grammar tweaks and bug fixes in non-Moose example
254 0.62_02 Fri, December 5, 2008
255 * Moose::Meta::Role::Application::ToClass
256 - When a class does not provide all of a role's required
257 methods, the error thrown now mentions all of the missing
258 methods, as opposed to just the first one found. Requested by
259 Curtis Poe (RT #41119). (Dave Rolsky)
261 * Moose::Meta::Method::Constructor
262 - Moose will no longer inline a constructor for your class
263 unless it inherits its constructor from Moose::Object, and
264 will warn when it doesn't inline. If you want to force
265 inlining anyway, pass "replace_constructor => 1" to
266 make_immutable. Addresses RT #40968, reported by Jon
267 Swartz. (Dave Rolsky)
268 - The quoting of default values could be broken if the default
269 contained a single quote ('). Now we use quotemeta to escape
270 anything potentially dangerous in the defaults. (Dave Rolsky)
272 0.62_01 Wed, December 3, 2008
274 - use the method->execute API for BUILDALL
275 and DEMOLISHALL (Sartak)
277 * Moose::Util::TypeConstraints
278 - We now make all the type constraint meta classes immutable
279 before creating the default types provided by Moose. This
280 should make loading Moose a little faster. (Dave Rolsky)
282 0.62 Wed November 26, 2008
283 * Moose::Meta::Role::Application::ToClass
284 Moose::Meta::Role::Application::ToRole
285 - fixed issues where excluding and aliasing the
286 same methods for a single role did not work
287 right (worked just fine with multiple
289 - added test for this (stevan)
291 * Moose::Meta::Role::Application::RoleSummation
292 - fixed the error message when trying to compose
293 a role with a role it excludes (Sartak)
296 - Catch another case where recursion caused the value
297 of $CALLER to be stamped on (t0m)
298 - added test for this (t0m)
301 - Remove the make_immutable keyword, which has been
302 deprecated since April. It breaks metaclasses that
303 use Moose without no Moose (Sartak)
305 * Moose::Meta::Attribute
306 - Removing an attribute from a class now also removes delegation
307 (handles) methods installed for that attribute (t0m)
308 - added test for this (t0m)
310 * Moose::Meta::Method::Constructor
311 - An attribute with a default that looked like a number (but was
312 really a string) would accidentally be treated as a number
313 when the constructor was made immutable (perigrin)
314 - added test for this (perigrin)
317 - create method for constructing a role
319 - added test for this (Sartak)
320 - anonymous roles! (Sartak)
321 - added test for this (Sartak)
324 - more consistent error messages (Sartak)
326 * Moose::Cookbook::Roles::Recipe1
327 - attempt to explain why a role that just requires
328 methods is useful (Sartak)
330 0.61 Fri November 7, 2008
331 * Moose::Meta::Attribute
332 - When passing a role to handles, it will be loaded if necessary
336 - Method objects returned by get_method (and other methods)
337 Could end up being returned without an associated_metaclass
338 attribute. Removing get_method_map, which is provided by
339 Class::MOP::Class, fixed this. The Moose version did nothing
340 different from its parent except introduce a bug. (Dave Rolsky)
341 - added tests for this (jdv79)
344 - Added a $VERSION to all .pm files which didn't have one. Fixes
345 RT #40049, reported by Adam Kennedy. (Dave Rolsky)
347 * Moose::Cookbook::Basics::Recipe4
348 * Moose::Cookbook::Basics::Recipe6
349 - These files had spaces on the first line of the SYNOPSIS, as
350 opposed to a totally empty line. According to RT #40432, this
351 confuses POD parsers. (Dave Rolsky)
353 0.60 Fri October 24, 2008
355 - Passing "-traits" when loading Moose caused the Moose.pm
356 exports to be broken. Reported by t0m. (Dave Rolsky)
357 - Tests for this bug. (t0m)
360 - Change resolve_metaclass alias to use the new
361 load_first_existing_class function. This makes it a lot
362 simpler, and also around 5 times faster. (t0m)
363 - Add caching to resolve_metaclass_alias, which gives an order
364 of magnitude speedup to things which repeatedly call the
365 Moose::Meta::Attribute->does method, notably MooseX::Storage
368 * Moose::Util::TypeConstraint
369 - Put back the changes for parameterized constraints that
370 shouldn't have been removed in 0.59. We still cannot parse
371 them, but MooseX modules can create them in some other
372 way. See the 0.58 changes for more details. (jnapiorkowski)
373 - Changed the way subtypes are created so that the job is
374 delegated to a type constraint parent. This clears up some
375 hardcoded checking and should allow correct subtypes of
376 Moose::Meta::Type::Constraint. Don't rely on this new API too
377 much (create_child_type) because it may go away in the
378 future. (jnapiorkowski)
380 * Moose::Meta::TypeConstraint::Union
381 - Type constraint names are sorted as strings, not numbers.
384 * Moose::Meta::TypeConstraint::Parameterizable
385 - New parameterize method. This can be used as a factory method
386 to make a new type constraint with a given parameterized
387 type. (jnapiorkowski)
388 - added tests (jnapiorkowski)
390 0.59 Tue October 14, 2008
392 - Add abridged documentation for builder/default/initializer/
393 predicate, and link to more details sections in
394 Class::MOP::Attribute. (t0m)
396 * Moose::Util::TypeConstraints
397 - removed prototypes from all but the &-based stuff (mst)
399 * Moose::Util::TypeConstraints
400 - Creating a anonymous subtype with both a constraint and a
401 message failed with a very unhelpful error, but should just
402 work. Reported by t0m. (Dave Rolsky)
405 - Some tests that used Test::Warn if it was available failed
406 with older versions of Test::Warn. Reported by Fayland. (Dave
408 - Test firing behavior of triggers in relation to builder/default/
410 - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
411 kinds of supported type. (t0m)
414 - In create(), do not pass "roles" option to the superclass
415 - added related test that creates an anon metaclass with
418 * Moose::Meta::TypeConstraint::Class
419 * Moose::Meta::TypeConstraint::Role
420 - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
421 other types (as per change in 0.55_02). (t0m)
423 * Moose::Meta::TypeConstraint::Registry
424 - Fix warning when dealing with unknown type names (t0m)
426 * Moose::Util::TypeConstraints
427 - Reverted changes from 0.58 related to handle parameterized
428 types. This caused random failures on BSD and Win32 systems,
429 apparently related to the regex engine. This means that Moose
430 can no longer parse structured type constraints like
431 ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
432 supported in a slightly different way via MooseX::Types some
433 time in the future. (Dave Rolsky)
435 0.58 Sat September 20, 2008
436 !! This release has an incompatible change regarding !!
437 !! how roles add methods to a class !!
439 * Roles and role application
440 ! Roles now add methods by calling add_method, not
441 alias_method. They make sure to always provide a method
442 object, which will be cloned internally. This means that it is
443 now possible to track the source of a method provided by a
444 role, and even follow its history through intermediate roles.
446 This means that methods added by a role now show up when
447 looking at a class's method list/map. (Dave Rolsky)
450 - From this release on, we'll try to maintain a list of
451 conflicting modules, and warn you if you have one
452 installed. For example, this release conflicts with ...
453 - MooseX::Singleton <= 0.11
454 - MooseX::Params::Validate <= 0.05
457 In general, we try to not break backwards compatibility for
458 most Moose users, but MooseX modules and other code which
459 extends Moose's metaclasses is often affected by very small
460 changes in the Moose internals.
462 * Moose::Meta::Method::Delegation
463 * Moose::Meta::Attribute
464 - Delegation methods now have their own method class. (Dave
467 * Moose::Meta::TypeConstraint::Parameterizable
468 - Added a new method 'parameterize' which is basically a factory
469 for the containing constraint. This makes it easier to create
470 new types of parameterized constraints. (jnapiorkowski)
472 * Moose::Meta::TypeConstraint::Union
473 - Changed the way Union types canonicalize their names to follow
474 the normalized TC naming rules, which means we strip all
475 whitespace. (jnapiorkowski)
477 * Moose::Util::TypeConstraints
478 - Parameter and Union args are now sorted, this makes Int|Str
479 the same constraint as Str|Int. (jnapiorkowski)
480 - Changes to the way Union types are parsed to more correctly
481 stringify their names. (jnapiorkowski)
482 - When creating a parameterized type, we now use the new
483 parameterize method. (jnapiorkowski)
484 - Incoming type constraint strings are now normalized to remove
485 all whitespace differences. (jnapiorkowski)
486 - Changed the way we parse type constraint strings so that we now
487 match TC[Int,Int,...] and TC[name=>Str] as parameterized type
488 constraints. This lays the foundation for more flexible type
489 constraint implementations.
491 * Tests and docs for all the above. (jnapiorkowski)
495 - Moose::Exporter will no longer remove a subroutine that the
496 exporting package re-exports. Moose re-exports the
497 Carp::confess function, among others. The reasoning is that we
498 cannot know whether you have also explicitly imported those
499 functions for your own use, so we err on the safe side and
500 always keep them. (Dave Rolsky)
501 - added tests for this (rafl)
504 - Changes to how we fix metaclass compatibility that are much
505 too complicated to go into. The summary is that Moose is much
506 less likely to complain about metaclass incompatibility
507 now. In particular, if two metaclasses differ because
508 Moose::Util::MetaRole was used on the two corresponding
509 classes, then the difference in roles is reconciled for the
510 subclass's metaclass. (Dave Rolsky)
511 - Squashed an warning in _process_attribute (thepler)
514 - throw exceptions (sooner) for invalid attribute names (thepler)
515 - added tests for this (thepler)
517 * Moose::Util::MetaRole
518 - If you explicitly set a constructor or destructor class for a
519 metaclass object, and then applied roles to the metaclass,
520 that explicitly set class would be lost and replaced with the
524 * Moose::Meta::Attribute
525 * Moose::Meta::Method
528 * Moose::Error::Default
529 * Moose::Error::Croak
530 * Moose::Error::Confess
531 - All instances of confess() changed to use overridable
532 C<throw_error> method. This method ultimately calls a class
533 constructor, and you can change the class being called. In
534 addition, errors now pass more information than just a string.
535 The default C<error_class> behaves like C<Carp::confess>, so
536 the behavior is not visibly different for end users.
538 0.57 Wed September 3, 2008
540 - A new bit of doc intended to introduce folks familiar with
541 "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
544 - Shows examples of two classes, each done first with and then
545 without Moose. This makes a nice parallel to
546 Moose::Intro. (Dave Rolsky)
548 * Moose::Util::TypeConstraints
549 - Fixed a bug in find_or_parse_type_constraint so that it
550 accepts a Moose::Meta::TypeConstraint object as the parent
551 type, not just a name (jnapiorkowski)
552 - added tests (jnapiorkowski)
555 - If Sub::Name was not present, unimporting failed to actually
556 remove some sugar subs, causing test failures (Dave Rolsky)
558 0.56 Mon September 1, 2008
559 For those not following the series of dev releases, there are
560 several major changes in this release of Moose.
561 ! Moose::init_meta should now be called as a method. See the
564 - Major performance improvements by nothingmuch.
566 - New modules for extension writers, Moose::Exporter and
567 Moose::Util::MetaRole by Dave Rolsky.
569 - Lots of doc improvements and additions, especially in the
574 * Removed all references to the experimental-but-no-longer-needed
575 Moose::Meta::Role::Application::ToMetaclassInstance.
577 * Require Class::MOP 0.65.
579 0.55_04 Sat August 30, 2008
580 * Moose::Util::MetaRole
581 * Moose::Cookbook::Extending::Recipe2
582 - This simplifies the application of roles to any meta class, as
583 well as the base object class. Reimplemented metaclass traits
584 using this module. (Dave Rolsky)
586 * Moose::Cookbook::Extending::Recipe1
587 - This a new recipe, an overview of various ways to write Moose
588 extensions (Dave Rolsky)
590 * Moose::Cookbook::Extending::Recipe3
591 * Moose::Cookbook::Extending::Recipe4
592 - These used to be Extending::Recipe1 and Extending::Recipe2,
595 0.55_03 Fri August 29, 2008
596 * No changes from 0.55_02 except increasing the Class::MOP
597 dependency to 0.64_07.
599 0.55_02 Fri August 29, 2008
600 * Makefile.PL and Moose.pm
601 - explicitly require Perl 5.8.0+ (Dave Rolsky)
603 * Moose::Util::TypeConstraints
604 - Fix warnings from find_type_constraint if the type is not
607 * Moose::Meta::TypeConstraint
608 - Predicate methods (equals/is_a_type_of/is_subtype_of) now
609 return false if the type you specify cannot be found in the
610 type registry, rather than throwing an unhelpful and
611 coincidental exception. (t0m).
612 - added docs & test for this (t0m)
614 * Moose::Meta::TypeConstraint::Registry
615 - add_type_constraint now throws an exception if a parameter is
617 - added docs & test for this (t0m)
619 * Moose::Cookbook::FAQ
620 - Added a faq entry on the difference between "role" and "trait"
624 - Fixed a bug that caused role composition to not see a required
625 method when that method was provided by another role being
626 composed at the same time. (Dave Rolsky)
627 - test and bug finding (tokuhirom)
629 0.55_01 Wed August 20, 2008
631 !! Calling Moose::init_meta as a function is now !!
632 !! deprecated. Please see the Moose.pm docs for details. !!
634 * Moose::Meta::Method::Constructor
635 - Fix inlined constructor so that values produced by default
636 or builder methods are coerced as required. (t0m)
637 - added test for this (t0m)
639 * Moose::Meta::Attribute
640 - A lazy attribute with a default or builder did not attempt to
641 coerce the default value. The immutable code _did_
643 - added test for this (t0m)
646 - This is a new helper module for writing "Moose-alike"
647 modules. This should make the lives of MooseX module authors
648 much easier. (Dave Rolsky)
651 * Moose::Cookbook::Meta::Recipe5
652 - Implemented metaclass traits (and wrote a recipe for it):
654 use Moose -traits => 'Foo'
656 This should make writing small Moose extensions a little
659 * Moose::Cookbook::Basics::Recipe1
660 - Removed any examples of direct hashref access, and applied an
661 editorial axe to reduce verbosity. (Dave Rolsky)
663 * Moose::Cookbook::Basics::Recipe1
664 - Also applied an editorial axe here. (Dave Rolsky)
667 * Moose::Cookbook::Extending::Recipe1
668 * Moose::Cookbook::Extending::Recipe2
669 - Rewrote extending and embedding moose documentation and
670 recipes to use Moose::Exporter (Dave Rolsky)
674 - These two modules now warn when you load them from the main
675 package "main" package, because we will not export sugar to
676 main. Previously it just did nothing. (Dave Rolsky)
679 - Now provide an init_meta method just like Moose.pm, and you
680 can call this to provide an alternate role metaclass. (Dave
681 Rolsky and nothingmuch)
682 - get_method_map now respects the package cache flag (nothingmuch)
685 - Two new methods - add_method and wrap_method_body
689 - Optimizations including allowing constructors to accept hash
690 refs, making many more classes immutable, and making
691 constructors immutable. (nothingmuch)
693 0.55 Sun August 3, 2008
694 * Moose::Meta::Attribute
695 - breaking down the way 'handles' methods are
696 created so that the process can be more easily
697 overridden by subclasses (stevan)
699 * Moose::Meta::TypeConstraint
700 - fixing what is passed into a ->message with
701 the type constraints (RT #37569)
702 - added tests for this (Charles Alderman)
704 * Moose::Util::TypeConstraints
705 - fix coerce to accept anon types like subtype can (mst)
708 - reorganized the recipes into sections - Basics, Roles, Meta,
709 Extending - and wrote abstracts for each section (Dave Rolsky)
711 * Moose::Cookbook::Basics::Recipe10
712 - A new recipe that demonstrates operator overloading
713 in combination with Moose. (bluefeet)
715 * Moose::Cookbook::Meta::Recipe1
716 - an introduction to what meta is and why you'd want to make
717 your own metaclass extensions (Dave Rolsky)
719 * Moose::Cookbook::Meta::Recipe4
720 - a very simple metaclass example (Dave Rolsky)
722 * Moose::Cookbook::Extending::Recipe1
723 - how to write a Moose-alike module to use your own object base
726 * Moose::Cookbook::Extending::Recipe2
727 - how to write modules with an API just like C<Moose.pm> (Dave
731 - Tons of fixes, both syntactical and grammatical (Dave
732 Rolsky, Paul Fenwick)
734 0.54 Thurs. July 3, 2008
735 ... this is not my day today ...
737 * Moose::Meta::Attribute
738 - fixed legal_options_for_inheritance such that
739 clone_and_inherit options still works for
740 Class::MOP::Attribute objects and therefore
741 does not break MooseX::AttributeHelpers
744 0.53 Thurs. July 3, 2008
745 * Whoops, I guess I should run 'make manifest' before
746 actually releasing the module. No actual changes
747 in this release, except the fact that it includes
748 the changes that I didn't include in the last
751 0.52 Thurs. July 3, 2008
753 - added "FEATURE REQUESTS" section to the Moose docs
754 to properly direct people (stevan) (RT #34333)
755 - making 'extends' croak if it is passed a Role since
756 this is not ever something you want to do
757 (fixed by stevan, found by obra)
758 - added tests for this (stevan)
761 - adding support for DOES (as in UNIVERSAL::DOES)
763 - added test for this
765 * Moose::Meta::Attribute
766 - added legal_options_for_inheritance (wreis)
767 - added tests for this (wreis)
769 * Moose::Cookbook::Snacks::*
770 - removed some of the unfinished snacks that should
771 not have been released yet. Added some more examples
772 to the 'Keywords' snack. (stevan)
774 * Moose::Cookbook::Style
775 - added general Moose "style guide" of sorts to the
776 cookbook (nothingmuch) (RT #34335)
779 - added more BUILDARGS tests (stevan)
781 0.51 Thurs. Jun 26, 2008
783 - add unimport so "no Moose::Role" actually does
786 * Moose::Meta::Role::Application::ToRole
787 - when RoleA did RoleB, and RoleA aliased a method from RoleB in
788 order to provide its own implementation, that method still got
789 added to the list of required methods for consumers of
790 RoleB. Now an aliased method is only added to the list of
791 required methods if the role doing the aliasing does not
792 provide its own implementation. See Recipe 11 for an example
793 of all this. (Dave Rolsky)
794 - added tests for this
796 * Moose::Meta::Method::Constructor
797 - when a single argument that wasn't a hashref was provided to
798 an immutabilized constructor, the error message was very
799 unhelpful, as opposed to the non-immutable error. Reported by
801 - added test for this (Dave Rolsky)
803 * Moose::Meta::Attribute
804 - added support for meta_attr->does("ShortAlias") (sartak)
805 - added tests for this (sartak)
806 - moved the bulk of the `handles` handling to the new
807 install_delegation method (Stevan)
810 - Added BUILDARGS, a new step in new()
812 * Moose::Meta::Role::Application::RoleSummation
813 - fix typos no one ever sees (sartak)
815 * Moose::Util::TypeConstraints
816 * Moose::Meta::TypeConstraint
817 * Moose::Meta::TypeCoercion
818 - Attempt to work around the ??{ } vs. threads issue
820 - Some null_constraint optimizations
822 0.50 Thurs. Jun 11, 2008
823 - Fixed a version number issue by bumping all modules
826 0.49 Thurs. Jun 11, 2008
827 !! This version now approx. 20-25% !!
828 !! faster with new Class::MOP 0.59 !!
830 * Moose::Meta::Attribute
831 - fixed how the is => (ro|rw) works with
832 custom defined reader, writer and accessor
834 - added docs for this (TODO).
835 - added tests for this (Thanks to Penfold)
836 - added the custom attribute alias for regular
837 Moose attributes which is "Moose"
838 - fix builder and default both being used
843 Moose::Meta::Attribute
845 Moose::Meta::Role::Composite
846 Moose::Util::TypeConstraints
847 - switched usage of reftype to ref because
851 - changing add_package_symbol to use the new
855 - fixed how DEMOLISHALL is called so that it
856 can be overrided in subclasses (thanks to Sartak)
857 - added test for this (thanks to Sartak)
859 * Moose::Util::TypeConstraints
860 - move the ClassName type check code to
861 Class::MOP::is_class_loaded (thanks to Sartak)
863 * Moose::Cookbook::Recipe11
864 - add tests for this (thanks to tokuhirom)
866 0.48 Thurs. May 29, 2008
867 (early morning release engineering)--
869 - fixing the version in Moose::Meta::Method::Destructor
870 which was causing the indexer to choke
872 0.47 Thurs. May 29, 2008
873 (late night release engineering)--
875 - fixing the version is META.yml, no functional
876 changes in this release
878 0.46 Wed. May 28, 2008
879 !! This version now approx. 20-25% !!
880 !! faster with new Class::MOP 0.57 !!
883 - some optimizations of the &initialize method
884 since it is called so often by &meta
888 - now use the get_all_package_symbols from the
889 updated Class::MOP, test suite is now 10 seconds
892 * Moose::Meta::Method::Destructor
893 - is_needed can now also be called as a class
894 method for immutablization to check if the
895 destructor object even needs to be created
898 * Moose::Meta::Method::Destructor
899 Moose::Meta::Method::Constructor
900 - added more descriptive error message to help
901 keep people from wasting time tracking an error
902 that is easily fixed by upgrading.
904 0.45 Saturday, May 24, 2008
906 - Because of work in Class::MOP 0.57, all
907 XS based functionality is now optional
908 and a Pure Perl version is supplied
909 - the CLASS_MOP_NO_XS environment variable
910 can now be used to force non-XS versions
912 - several of the packages have been tweaked
913 to take care of this, mostly we added
914 support for the package_name and name
915 variables in all the Method metaclasses
916 - before/around/after method modifiers now
917 support regexp matching of names
918 (thanks to Takatoshi Kitano)
919 - tests added for this
920 - NOTE: this only works for classes, it
921 is currently not supported in roles,
922 but, ... patches welcome
923 - All usage of Carp::confess have been replaced
924 by Carp::croak in the "keyword" functions since
925 the stack trace is usually not helpful
928 - All usage of Carp::confess have been replaced
929 by Carp::croak in the "keyword" functions since
930 the stack trace is usually not helpful
931 - The 'has' keyword for roles now accepts the
932 same array ref form that Moose.pm does
933 (has [qw/foo bar/] => (is => 'rw', ...))
934 - added test for this
936 * Moose::Meta::Attribute
937 - trigger on a ro-attribute is no longer an
938 error, as it's useful to trigger off of the
942 - added same 'add_package_symbol' fix as in
946 - does_role now handles non-Moose classes
948 - added tests for this
949 - added the 'add_method_modifier' function
950 (thanks to Takatoshi Kitano)
952 * Moose::Util::TypeConstraints
953 - subtypes of parameterizable types now are
954 themselves parameterizable types
956 * Moose::Meta::Method::Constructor
957 - fixed bug where trigger was not being
958 called by the inlined immutable
960 - added test for this (thanks to Caelum)
962 * Moose::Meta::Role::Application::ToInstance
963 - now uses the metaclass of the instance
964 (if possible) to create the anon-class
965 (thanks Jonathan Rockway)
967 * Moose::Cookbook::Recipe22
968 - added the meta-attribute trait recipe
972 - fixed hash-ordering test bug that was
973 causing occasional cpantester failures
974 - renamed the t/000_recipe/*.t tests to be
975 more descriptive (thanks to Sartak)
977 0.44 Sat. May 10, 2008
979 - made make_immutable warning cluck to
980 show where the error is (thanks mst)
983 - BUILDALL and DEMOLISHALL now call
984 ->body when looping through the
985 methods, to avoid the overloaded
987 - fixed issue where DEMOLISHALL was
988 eating the $@ values, and so not
989 working correctly, it still kind of
990 eats them, but so does vanilla perl
991 - added tests for this
993 * Moose::Cookbook::Recipe7
994 - added new recipe for immutable
995 functionality (thanks Dave Rolsky)
997 * Moose::Cookbook::Recipe9
998 - added new recipe for builder and
999 lazy_build (thanks Dave Rolsky)
1001 * Moose::Cookbook::Recipe11
1002 - added new recipe for method aliasing
1003 and exclusion with Roles (thanks Dave Rolsky)
1006 - fixed Win32 test failure (thanks spicyjack)
1008 ~ removed Build.PL and Module::Build compat
1009 since Module::Install has done that.
1011 0.43 Wed. April, 30, 2008
1013 drink more coffee before
1014 doing release engineering
1016 - whoops, forgot to do the smolder tests,
1017 and we broke some of the custom meta-attr
1018 modules. This fixes that.
1020 0.42 Mon. April 28, 2008
1021 - some bad tests slipped by, nothing else
1022 changed in this release (cpantesters++)
1024 - upped the Class::MOP dependency to 0.55
1025 since we have tests which need the C3
1028 0.41 Mon. April 28, 2008
1029 ~~ numerous documentation updates ~~
1031 - Changed all usage of die to Carp::croak for better
1032 error reporting (initial patch by Tod Hagan)
1034 ** IMPORTANT NOTE **
1035 - the make_immutable keyword is now deprecated, don't
1036 use it in any new code and please fix your old code
1037 as well. There will be 2 releases, and then it will
1043 - refactored the way inner and super work to avoid
1044 any method/@ISA cache penalty (nothingmuch)
1046 * Moose::Meta::Class
1047 - fixing &new_object to make sure trigger gets the
1048 coerced value (spotted by Charles Alderman on the
1050 - added test for this
1052 * Moose::Meta::Method::Constructor
1053 - immutable classes which had non-lazy attributes were calling
1054 the default generating sub twice in the constructor. (bug
1055 found by Jesse Luehrs, fixed by Dave Rolsky)
1056 - added tests for this (Dave Rolsky)
1057 - fix typo in initialize_body method (nothingmuch)
1059 * Moose::Meta::Method::Destructor
1060 - fix typo in initialize_body method (nothingmuch)
1062 * Moose::Meta::Method::Overriden
1063 Moose::Meta::Method::Augmented
1064 - moved the logic for these into their own
1065 classes (nothingmuch)
1067 * Moose::Meta::Attribute
1068 - inherited attributes may now be extended without
1069 restriction on the type ('isa', 'does') (Sartak)
1070 - added tests for this (Sartak)
1071 - when an attribute property is malformed (such as lazy without
1072 a default), give the name of the attribute in the error
1074 - added the &applied_traits and &has_applied_traits methods
1075 to allow introspection of traits
1076 - added tests for this
1077 - moved 'trait' and 'metaclass' argument handling to here from
1079 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
1080 '+foo' syntax) (nothingmuch)
1081 - added tests for this (t0m)
1084 - localize $@ inside DEMOLISHALL to avoid it
1085 eating $@ (found by Ernesto)
1086 - added test for this (thanks to Ernesto)
1088 * Moose::Util::TypeConstraints
1089 - &find_type_constraint now DWIMs when given an
1090 type constraint object or name (nothingmuch)
1091 - &find_or_create_type_constraint superseded with a number of more
1093 - find_or_create_{isa,does}_type_constraint
1094 - find_or_parse_type_constraint
1096 * Moose::Meta::TypeConstraint
1097 Moose::Meta::TypeConstraint::Class
1098 Moose::Meta::TypeConstraint::Role
1099 Moose::Meta::TypeConstraint::Enum
1100 Moose::Meta::TypeConstraint::Union
1101 Moose::Meta::TypeConstraint::Parameterized
1102 - added the &equals method for comparing two type
1103 constraints (nothingmuch)
1104 - added tests for this (nothingmuch)
1106 * Moose::Meta::TypeConstraint
1107 - add the &parents method, which is just an alias to &parent.
1108 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
1110 * Moose::Meta::TypeConstraint::Class
1111 - added the class attribute for introspection purposes
1113 - added tests for this
1115 * Moose::Meta::TypeConstraint::Enum
1116 Moose::Meta::TypeConstraint::Role
1117 - broke these out into their own classes (nothingmuch)
1119 * Moose::Cookbook::Recipe*
1120 - fixed references to test file locations in the POD
1121 and updated up some text for new Moose features
1125 - Added &resolve_metaclass_alias, a helper function for finding an actual
1126 class for a short name (e.g. in the traits list)
1128 0.40 Fri. March 14, 2008
1129 - I hate Pod::Coverage
1131 0.39 Fri. March 14, 2008
1133 - documenting the use of '+name' with attributes
1134 that come from recently composed roles. It makes
1135 sense, people are using it, and so why not just
1136 officially support it.
1137 - fixing the 'extends' keyword so that it will not
1138 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
1141 - added the perl -Moose=+Class::Name feature to allow
1142 monkeypatching of classes in one liners
1145 - fixing the 'apply_all_roles' keyword so that it will not
1146 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
1148 * Moose::Meta::Class
1149 - added ->create method which now supports roles (thanks to jrockway)
1150 - added tests for this
1151 - added ->create_anon_class which now supports roles and caching of
1152 the results (thanks to jrockway)
1153 - added tests for this
1154 - made ->does_role a little more forgiving when it is
1155 checking a Class::MOP era metaclasses.
1157 * Moose::Meta::Role::Application::ToInstance
1158 - it is now possible to pass extra params to be used when
1159 a role is applied to an the instance (rebless_params)
1160 - added tests for this
1162 * Moose::Util::TypeConstraints
1163 - class_type now accepts an optional second argument for a
1164 custom message. POD anotated accordingly (groditi)
1165 - added tests for this
1166 - it is now possible to make anon-enums by passing 'enum' an
1167 ARRAY ref instead of the $name => @values. Everything else
1169 - added tests for this
1172 - making test for using '+name' on attributes consumed
1173 from a role, it works and makes sense too.
1175 * Moose::Meta::Attribute
1176 - fix handles so that it doesn't return nothing
1177 when the method cannot be found, not sure why
1178 it ever did this originally, this means we now
1179 have slightly better support for AUTOLOADed
1181 - added more delegation tests
1182 - adding ->does method to this so as to better
1183 support traits and their introspection.
1184 - added tests for this
1187 - localizing the Data::Dumper configurations so
1188 that it does not pollute others (RT #33509)
1189 - made ->does a little more forgiving when it is
1190 passed Class::MOP era metaclasses.
1192 0.38 Fri. Feb. 15, 2008
1193 * Moose::Meta::Attribute
1194 - fixed initializer to correctly do
1195 type checking and coercion in the
1197 - added tests for this
1200 - fixed some finicky tests (thanks to konobi)
1202 0.37 Thurs. Feb. 14, 2008
1204 - fixed some details in Moose::init_meta
1205 and its superclass handling (thanks thepler)
1206 - added tests for this (thanks thepler)
1207 - 'has' now dies if you don't pass in name
1209 - added the 'make_immutable' keyword as a shortcut
1212 * Moose::Meta::Class
1213 Moose::Meta::Method::Constructor
1214 Moose::Meta::Attribute
1215 - making (init_arg => undef) work here too
1216 (thanks to nothingmuch)
1218 * Moose::Meta::Attribute
1219 Moose::Meta::Method::Constructor
1220 Moose::Meta::Method::Accessor
1221 - make lazy attributes respect attr initializers (rjbs)
1222 - added tests for this
1224 * Moose::Util::TypeConstraints
1225 Moose::Util::TypeConstraints::OptimizedConstraints
1226 Moose::Meta::TypeConstraints
1227 Moose::Meta::Attribute
1228 Moose::Meta::Method::Constructor
1229 Moose::Meta::Method::Accessor
1230 - making type errors use the
1231 assigned message (thanks to Sartak)
1232 - added tests for this
1234 * Moose::Meta::Method::Destructor
1235 - making sure DESTROY gets inlined properly
1236 with successive DEMOLISH calls (thanks to manito)
1238 * Moose::Meta::Attribute
1239 Moose::Meta::Method::Accessor
1240 - fixed handling of undef with type constraints
1242 - added tests for this
1245 - added &get_all_init_args and &get_all_attribute_values
1246 (thanks to Sartak and nothingmuch)
1248 0.36 Sat. Jan. 26, 2008
1250 Moose::Meta::Attribute
1251 - role type tests now support when roles are
1252 applied to non-Moose classes (found by ash)
1253 - added tests for this (thanks to ash)
1254 - couple extra tests to boost code coverage
1256 * Moose::Meta::Method::Constructor
1257 - improved fix for handling Class::MOP attributes
1258 - added test for this
1260 * Moose::Meta::Class
1261 - handled the add_attribute($attribute_meta_object)
1263 - added test for this
1265 0.35 Tues. Jan. 22, 2008
1266 * Moose::Meta::Method::Constructor
1267 - fix to make sure even Class::MOP attributes
1268 are handled correctly (Thanks to Dave Rolsky)
1269 - added test for this (also Dave Rolsky)
1271 * Moose::Meta::Class
1272 - improved error message on _apply_all_roles,
1273 you should now use Moose::Util::apply_all_roles
1274 and you shouldnt have been using a _ prefixed
1275 method in the first place ;)
1277 0.34 Mon. Jan. 21, 2008
1278 ~~~ more misc. doc. fixes ~~~
1279 ~~ updated copyright dates ~~
1281 Moose is now a postmodern object system :)
1282 - (see the POD for details)
1284 * <<Role System Refactoring>>
1285 - this release contains a major reworking and
1286 cleanup of the role system
1287 - 100% backwards compat.
1288 - Role application now restructured into seperate
1289 classes based on type of applicants
1290 - Role summation (combining of more than one role)
1291 is much cleaner and anon-classes are no longer
1292 used in this process
1293 - new Composite role metaclass
1294 - runtime application of roles to instances
1295 is now more efficient and re-uses generated
1296 classes when applicable
1298 * <<New Role composition features>>
1299 - methods can now be excluded from a given role
1301 - methods can now be aliased to another name (and
1302 still retain the original as well)
1304 * Moose::Util::TypeConstraints::OptimizedConstraints
1305 - added this module (see above)
1307 * Moose::Meta::Class
1308 - fixed the &_process_attribute method to be called
1309 by &add_attribute, so that the API is now correct
1311 * Moose::Meta::Method::Accessor
1312 - fixed bug when passing a list of values to
1313 an accessor would get (incorrectly) ignored.
1314 Thanks to Sartak for finding this ;)
1315 - added tests for this (Sartak again)
1317 * Moose::Meta::Method::Accessor
1318 Moose::Meta::Method::Constructor
1319 Moose::Meta::Attribute
1320 Moose::Meta::TypeConstraint
1321 Moose::Meta::TypeCoercion
1322 - lots of cleanup of such things as:
1324 - type constraint handling
1325 - error handling/messages
1326 (thanks to nothingmuch)
1328 * Moose::Meta::TypeConstraint::Parameterizable
1329 - added this module to support the refactor
1330 in Moose::Meta::TypeConstraint::Parameterized
1332 * Moose::Meta::TypeConstraint::Parameterized
1333 - refactored how these types are handled so they
1334 are more generic and not confined to ArrayRef
1338 - shortened some file names for better VMS support (RT #32381)
1340 0.33 Fri. Dec. 14, 2007
1341 !! Moose now loads 2 x faster !!
1342 !! with new Class::MOP 0.49 !!
1344 ++ new oose.pm module to make command line
1345 Moose-ness easier (see POD docs for more)
1347 * Moose::Meta::Class
1349 - several tweaks to take advantage of the
1350 new method map caching in Class::MOP
1352 * Moose::Meta::TypeConstraint::Parameterized
1353 - allow subtypes of ArrayRef and HashRef to
1354 be used as a container (sartak)
1355 - added tests for this
1356 - basic support for coercion to ArrayRef and
1357 HashRef for containers (sartak)
1358 - added tests for this
1360 * Moose::Meta::TypeCoercion
1361 - coercions will now create subtypes as needed
1362 so you can now add coercions to parameterized
1363 types without having to explictly define them
1364 - added tests for this
1366 * Moose::Meta::Method::Accessor
1367 - allow subclasses to decide whether we need
1368 to copy the value into a new variable (sartak)
1370 0.32 Tues. Dec. 4, 2007
1371 * Moose::Util::TypeConstraints
1372 - fixing how subtype aliases of unions work
1373 they should inherit the parent's coercion
1374 - added tests for this
1375 - you can now define multiple coercions on
1376 a single type at different times instead of
1377 having to do it all in one place
1378 - added tests for this
1380 * Moose::Meta::TypeConstraint
1381 - there is now a default constraint of sub { 1 }
1382 instead of Moose::Util::TypeConstraints setting
1385 * Moose::Meta::TypeCoercion
1386 * Moose::Meta::TypeCoercion::Union
1387 - added the &has_coercion_for_type and
1388 &add_type_coercions methods to support the
1389 new features above (although you cannot add
1390 more type coercions for Union types)
1392 0.31 Mon. Nov. 26, 2007
1393 * Moose::Meta::Attribute
1394 - made the +attr syntax handle extending types with
1395 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
1396 now works if the original foo is an ArrayRef.
1397 - added tests for this.
1398 - delegation now works even if the attribute does not
1399 have a reader method using the get_read_method_ref
1400 method from Class::MOP::Attribute.
1401 - added tests for this
1402 - added docs for this
1404 * Moose::Util::TypeConstraints
1405 - passing no "additional attribute info" to
1406 &find_or_create_type_constraint will no longer
1407 attempt to create an __ANON__ type for you,
1408 instead it will just return undef.
1409 - added docs for this
1411 0.30 Fri. Nov. 23, 2007
1412 * Moose::Meta::Method::Constructor
1413 -builder related bug in inlined constructor. (groditi)
1415 * Moose::Meta::Method::Accessor
1416 - genereate unnecessary calls to predicates and refactor
1417 code generation for runtime speed (groditi)
1419 * Moose::Util::TypeConstraints
1420 - fix ClassName constraint to introspect symbol table (mst)
1421 - added more tests for this (mst)
1422 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
1423 with work correctly.
1424 - added tests for this
1427 - adding the link to Recipie 11 (written by Sartak)
1428 - adding test for SYNOPSIS code
1431 - New tests for builder bug. Upon instantiation, if an
1432 attribute had a builder, no value and was not lazy the
1433 builder default was not getting run, oops. (groditi)
1435 0.29 Tues. Nov. 13, 2007
1436 * Moose::Meta::Attribute
1437 - Fix error message on missing builder method (groditi)
1439 * Moose::Meta::Method::Accessor
1440 - Fix error message on missing builder method (groditi)
1443 - Add test to check for the correct error message when
1444 builder method is missing (groditi)
1446 0.28 Tues. Nov. 13, 2007
1447 - 0.27 packaged incorrectly (groditi)
1449 0.27 Tues. Nov. 13, 2007
1450 * Moose::Meta::Attribute
1451 - Added support for the new builder option (groditi)
1452 - Added support for lazy_build option (groditi)
1453 - Changed slot initialization for predicate changes (groditi)
1455 * Moose::Meta::Method::Accessor
1456 - Added support for lazy_build option (groditi)
1457 - Fix inline methods to work with corrected predicate
1460 * Moose::Meta::Method::Constructor
1461 - Added support for lazy_build option (groditi)
1464 - tests for builder and lazy_build (groditi)
1466 * fixing some misc. bits in the docs that
1467 got mentioned on CPAN Forum & perlmonks
1470 - fixed how required methods are handled
1471 when they encounter overriden or modified
1472 methods from a class (thanks to confound).
1473 - added tests for this
1475 * Moose::Util::TypeConstraint
1476 - fixed the type notation parser so that
1477 the | always creates a union and so is
1478 no longer a valid type char (thanks to
1479 konobi, mugwump and #moose for working
1481 - added more tests for this
1483 0.26 Thurs. Sept. 27, 2007
1486 * Parameterized Types
1487 We now support parameterized collection types, such as:
1488 ArrayRef[Int] # array or integers
1489 HashRef[Object] # a hash with object values
1490 They can also be nested:
1491 ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
1492 And work with the type unions as well:
1493 ArrayRef[Int | Str] # array of integers of strings
1495 * Better Framework Extendability
1496 Moose.pm is now "extendable" such that it is now much
1497 easier to extend the framework and add your own keywords
1498 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
1499 section of the Moose.pm docs.
1502 In an effort to begin documenting some of the various
1503 details of Moose as well as some common idioms, we have
1504 created Moose::Cookbook::Snacks as a place to find
1505 small (easily digestable) nuggets of Moose code.
1508 ~ Several doc updates/cleanup thanks to castaway ~
1510 - converted build system to use Module::Install instead of
1511 Module::Build (thanks to jrockway)
1514 - added all the meta classes to the immutable list and
1515 set it to inline the accessors
1516 - fix import to allow Sub::Exporter like { into => }
1517 and { into_level => } (perigrin)
1518 - exposed and documented init_meta() to allow better
1519 embedding and extending of Moose (perigrin)
1522 - complete re-organization of the test suite
1523 - added some new tests as well
1524 - finally re-enabled the Moose::POOP test since
1525 the new version of DBM::Deep now works again
1528 * Moose::Meta::Class
1529 - fixed very odd and very nasty recursion bug with
1531 - added tests for this (eilara)
1533 * Moose::Meta::Attribute
1534 Moose::Meta::Method::Constructor
1535 Moose::Meta::Method::Accessor
1536 - fixed issue with overload::Overloaded getting called
1537 on non-blessed items. (RT #29269)
1538 - added tests for this
1540 * Moose::Meta::Method::Accessor
1541 - fixed issue with generated accessor code making
1542 assumptions about hash based classes (thanks to dexter)
1544 * Moose::Coookbook::Snacks
1545 - these are bits of documentation, not quite as big as
1546 Recipes but which have no clear place in the module docs.
1547 So they are Snacks! (horray for castaway++)
1549 * Moose::Cookbook::Recipe4
1550 - updated it to use the new ArrayRef[MyType] construct
1551 - updated the accompanying test as well
1553 +++ Major Refactor of the Type Constraint system +++
1554 +++ with new features added as well +++
1556 * Moose::Util::TypeConstraint
1557 - no longer uses package variable to keep track of
1558 the type constraints, now uses the an instance of
1559 Moose::Meta::TypeConstraint::Registry to do it
1560 - added more sophisticated type notation parsing
1562 - added tests for this
1564 * Moose::Meta::TypeConstraint
1565 - some minor adjustments to make subclassing easier
1566 - added the package_defined_in attribute so that we
1567 can track where the type constraints are created
1569 * Moose::Meta::TypeConstraint::Union
1570 - this is now been refactored to be a subclass of
1571 Moose::Meta::TypeConstraint
1573 * Moose::Meta::TypeCoercion::Union
1574 - this has been added to service the newly refactored
1575 Moose::Meta::TypeConstraint::Union and is itself
1576 a subclass of Moose::Meta::TypeCoercion
1578 * Moose::Meta::TypeConstraint::Parameterized
1579 - added this module (taken from MooseX::AttributeHelpers)
1580 to help construct nested collection types
1581 - added tests for this
1583 * Moose::Meta::TypeConstraint::Registry
1584 - added this class to keep track of type constraints
1586 0.25 Mon. Aug. 13, 2007
1588 - Documentation update to reference Moose::Util::TypeConstraints
1589 under 'isa' in 'has' for how to define a new type
1590 (thanks to shlomif).
1592 * Moose::Meta::Attribute
1593 - required attributes now will no longer accept undef
1594 from the constructor, even if there is a default and lazy
1595 - added tests for this
1596 - default subroutines must return a value which passes the
1598 - added tests for this
1600 * Moose::Meta::Attribute
1601 * Moose::Meta::Method::Constructor
1602 * Moose::Meta::Method::Accessor
1603 - type-constraint tests now handle overloaded objects correctly
1604 in the error message
1605 - added tests for this (thanks to EvanCarroll)
1607 * Moose::Meta::TypeConstraint::Union
1608 - added (has_)hand_optimized_constraint to this class so that
1609 it behaves as the regular Moose::Meta::TypeConstraint does.
1612 - large refactoring of this code
1613 - added several more tests
1614 - tests for subtle conflict resolition issues
1615 added, but not currently running
1618 * Moose::Cookbook::Recipe7
1619 - added new recipe for augment/inner functionality
1621 - added test for this
1624 - a formal definition of roles (still in progress)
1627 - utilities for easier working with Moose classes
1628 - added tests for these
1631 - This contains Moose specific test functions
1632 - added tests for these
1634 0.24 Tues. July 3, 2007
1635 ~ Some doc updates/cleanup ~
1637 * Moose::Meta::Attribute
1638 - added support for roles to be given as parameters
1639 to the 'handles' option.
1640 - added tests and docs for this
1641 - the has '+foo' attribute form now accepts changes to
1642 the lazy option, and the addition of a handles option
1643 (but not changing the handles option)
1644 - added tests and docs for this
1647 - required methods are now fetched using find_method_by_name
1648 so that required methods can come from superclasses
1649 - adjusted tests for this
1651 0.23 Mon. June 18, 2007
1652 * Moose::Meta::Method::Constructor
1653 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
1654 * Moose::Meta::Class
1655 - Modify make_immutable to work with the new Class::MOP immutable
1656 mechanism + POD + very basic test (groditi)
1657 * Moose::Meta::Attribute
1658 - Fix handles to use goto() so that caller() comes out properly on
1659 the other side (perigrin)
1661 0.22 Thurs. May 31, 2007
1662 * Moose::Util::TypeConstraints
1663 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
1664 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
1665 prototypes for functions
1666 - added the ClassName type constraint, this checks for strings
1667 which will respond true to ->isa(UNIVERSAL).
1668 - added tests and docs for this
1669 - subtyping just in name now works correctly by making the
1670 default for where be { 1 }
1671 - added test for this
1673 * Moose::Meta::Method::Accessor
1674 - coerce and lazy now work together correctly, thanks to
1675 merlyn for finding this bug
1676 - tests added for this
1677 - fix reader presedence bug in Moose::Meta::Attribute + tests
1680 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
1681 a HASH-ref and missed. This produces better error messages then
1682 having it die cause undef is not a HASH.
1683 - added tests for this
1685 0.21 Thursday, May 2nd, 2007
1687 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
1688 - modified unimport to remove super and inner along with the rest
1689 - altered unimport tests to handle this
1692 - altered super export to populate SUPER_SLOT
1694 * Moose::Meta::Class
1695 - altered augment and override modifier application to use *_SLOT
1696 - modified tests for these to unimport one test class each to test
1699 - fixed issue where custom attribute metaclasses
1700 where not handled correctly in roles
1701 - added tests for this
1703 * Moose::Meta::Class
1704 - fixed issue where extending metaclasses with
1705 roles would blow up. Thanks to Aankhen`` for
1706 finding this insidious error, and it's solution.
1708 ~~ lots of spelling and grammer fixes in the docs,
1709 many many thanks to rlb3 and Aankhen for these :)
1711 0.20 Friday, April 6th, 2007
1712 >> I messed up the SKIP logic in one test
1713 so this release is just to fix that.
1716 - 'has' now also accepts an ARRAY ref
1717 to create multiple attrs (see docs)
1718 (thanks to konobi for this)
1719 - added tests and docs
1721 0.19 Thurs. April 5th, 2007
1722 ~~ More documentation updates ~~
1724 * Moose::Util::TypeConstraints
1725 - 'type' now supports messages as well
1726 thanks to phaylon for finding this
1727 - added tests for this
1728 - added &list_all_type_constraints and
1729 &list_all_builtin_type_constraints
1730 functions to facilitate introspection.
1732 * Moose::Meta::Attribute
1733 - fixed regexp 'handles' declarations
1734 to build the list of delegated methods
1735 correctly (and not override important
1736 things like &new) thanks to ashleyb
1738 - added tests and docs for this
1739 - added the 'documentation' attributes
1740 so that you can actually document your
1741 attributes and inspect them through the
1743 - added tests and docs for this
1745 * Moose::Meta::Class
1746 - when loading custom attribute metaclasses
1747 it will first look in for the class in the
1748 Moose::Meta::Attribute::Custom::$name, and
1749 then default to just loading $name.
1750 - added tests and docs for this
1752 * Moose::Meta::TypeConstraint
1753 - type constraints now stringify to their names.
1754 - added test for this
1757 - added tests to assure we work with Module::Refresh
1758 - added stricter test skip logic in the Moose POOP
1759 test, ask Rob Kinyon why.
1760 - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
1762 0.18 Sat. March 10, 2007
1763 ~~ Many, many documentation updates ~~
1766 - We now use Class::MOP::load_class to
1768 - added tests to show types and subtypes
1769 working with Declare::Constraints::Simple
1770 and Test::Deep as constraint engines.
1773 !! You must have Class::MOP 0.37_001 !!
1774 !! for this developer release to work !!
1776 This release was primarily adding the immutable
1777 feature to Moose. An immutable class is one which
1778 you promise not to alter. When you set the class
1779 as immutable it will perform various bits of
1780 memoization and inline certain part of the code
1781 (constructors, destructors and accessors). This
1782 minimizes (and in some cases totally eliminates)
1783 one of Moose's biggest performance hits. This
1784 feature is not on by default, and is 100% optional.
1785 It has several configurable bits as well, so you
1786 can pick and choose to your specific needs.
1788 The changes involved in this were fairly wide and
1789 highly specific, but 100% backwards compatible, so
1790 I am not going to enumerate them here. If you are
1791 truely interested in what was changed, please do
1794 0.17 Tues. Nov. 14, 2006
1795 * Moose::Meta::Method::Accessor
1796 - bugfix for read-only accessors which
1797 are have a type constraint and lazy.
1798 Thanks to chansen for finding it.
1800 0.16 Tues. Nov. 14, 2006
1802 There are some speed improvements in this release,
1803 but they are only the begining, so stay tuned.
1806 - BUILDALL and DEMOLISHALL no longer get
1807 called unless they actually need to be.
1808 This gave us a signifigant speed boost
1809 for the cases when there is no BUILD or
1810 DEMOLISH method present.
1812 * Moose::Util::TypeConstraints
1813 * Moose::Meta::TypeConstraint
1814 - added an 'optimize_as' option to the
1815 type constraint, which allows for a
1816 hand optimized version of the type
1817 constraint to be used when possible.
1818 - Any internally created type constraints
1819 now provide an optimized version as well.
1821 0.15 Sun. Nov. 5, 2006
1823 This version of Moose *must* have Class::MOP 0.36 in order
1824 to work correctly. A number of small internal tweaks have
1825 been made in order to be compatible with that release.
1827 * Moose::Util::TypeConstraints
1828 - added &unimport so that you can clean out
1829 your class namespace of these exported
1832 * Moose::Meta::Class
1833 - fixed minor issue which occasionally
1834 comes up during global destruction
1836 - moved Moose::Meta::Method::Overriden into
1840 - moved Moose::Meta::Role::Method into
1843 * Moose::Meta::Attribute
1844 - changed how we do type checks so that
1845 we reduce the overall cost, but still
1848 - moved accessor generation methods to
1849 Moose::Meta::Method::Accessor to
1850 conform to the API changes from
1853 * Moose::Meta::TypeConstraint
1854 - changed how constraints are compiled
1855 so that we do less recursion and more
1856 iteration. This makes the type check
1858 - moved Moose::Meta::TypeConstraint::Union
1861 * Moose::Meta::Method::Accessor
1862 - created this from methods formerly found in
1863 Moose::Meta::Attribute
1865 * Moose::Meta::Role::Method
1866 - moved this from Moose::Meta::Role
1868 * Moose::Meta::Method::Overriden
1869 - moved this from Moose::Meta::Class
1871 * Moose::Meta::TypeConstraint::Union
1872 - moved this from Moose::Meta::TypeConstraint
1874 0.14 Mon. Oct. 9, 2006
1876 * Moose::Meta::Attribute
1877 - fixed lazy attributes which were not getting
1878 checked with the type constraint (thanks ashley)
1879 - added tests for this
1880 - removed the over-enthusiastic DWIMery of the
1881 automatic ArrayRef and HashRef defaults, it
1882 broke predicates in an ugly way.
1883 - removed tests for this
1885 0.13 Sat. Sept. 30, 2006
1887 This version of Moose *must* have Class::MOP 0.35 in order
1888 to work correctly. A number of small internal tweaks have
1889 been made in order to be compatible with that release.
1892 - Removed the use of UNIVERSAL::require to be a better
1893 symbol table citizen and remove a dependency
1894 (thanks Adam Kennedy)
1896 **~~ removed experimental & undocumented feature ~~**
1897 - commented out the 'method' and 'self' keywords, see the
1898 comments for more info.
1901 - added a FAQ and WTF files to document frequently
1902 asked questions and common problems
1904 * Moose::Util::TypeConstraints
1905 - added GlobRef and FileHandle type constraint
1906 - added tests for this
1908 * Moose::Meta::Attribute
1909 - if your attribute 'isa' ArrayRef of HashRef, and you have
1910 not explicitly set a default, then make the default DWIM.
1911 This will also work for subtypes of ArrayRef and HashRef
1913 - you can now auto-deref subtypes of ArrayRef or HashRef too.
1914 - new test added for this (thanks to ashley)
1917 - added basic support for runtime role composition
1918 but this is still *highly experimental*, so feedback
1919 is much appreciated :)
1920 - added tests for this
1922 * Moose::Meta::TypeConstraint
1923 - the type constraint now handles the coercion process
1924 through delegation, this is to support the coercion
1927 * Moose::Meta::TypeConstraint::Union
1928 - it is now possible for coercions to be performed
1930 - added tests for this (thanks to konobi)
1932 * Moose::Meta::TypeCoercion
1933 - properly capturing error when type constraint
1937 - Scalar::Util 1.18 is bad on Win32, so temporarily
1938 only require version 1.17 for Win32 and cygwin.
1939 (thanks Adam Kennedy)
1941 0.12 Sat. Sept. 1, 2006
1943 - Recipe5 (subtypes & coercion) has been written
1946 - fixed "bad meta" error message to be more descriptive
1947 - fixed &unimport to not remove the &inner and &super
1948 keywords because we need to localize them.
1949 - fixed number of spelling/grammer issues, thanks Theory :)
1951 **~~ experimental & undocumented feature ~~**
1952 - added the method and self keywords, they are basically
1953 just sugar, and they may not stay around.
1956 - added &dump method to easily Data::Dumper
1959 * Moose::Meta::TypeConstraint
1960 - added the &is_a_type_of method to check both the current
1961 and the subtype of a method (similar to &isa with classes)
1964 - this is now a subclass of Class::MOP::Module, and no longer
1965 creates the _role_meta ugliness of before.
1966 - fixed tests to reflect this change
1968 0.11 Wed. July 12, 2006
1970 - added an &unimport method to remove all the keywords
1971 that Moose will import, simply add 'no Moose' to the
1972 bottom of your class file.
1975 - fixed some test failures caused by a forgotten test
1978 0.10 Thurs. July 6, 2006
1980 - improved error message when loading modules so
1981 it is less confusing when you load a role.
1982 - added &calculate_all_roles method to
1983 Moose::Meta::Class and Moose::Meta::Role
1986 This module has been tested against Class::MOP 0.30
1987 but it does not yet utilize the optimizations
1988 it makes available. Stay tuned for that ;)
1990 0.09_03 Fri. June 23, 2006
1991 ++ DEVELOPER RELEASE ++
1993 - 'use strict' and 'use warnings' are no longer
1994 needed in Moose classes, Moose itself will
1995 turn them on for you.
1996 - added tests for this
1997 - moved code from exported subs to private methods
1998 in Moose::Meta::Class
2001 - as with Moose, strict and warnings are
2002 automatically turned on for you.
2003 - added tests for this
2006 - now handles an edge case for override errors
2007 - added tests for this
2008 - added some more edge case tests
2010 0.09_02 Tues. May 16, 2006
2011 ++ DEVELOPER RELEASE ++
2013 - added prototypes to the exported subs
2017 - added prototypes to the exported subs
2020 * Moose::Util::TypeConstraints
2021 - cleaned up prototypes for the subs
2024 0.09_01 Fri. May 12, 2006
2025 ++ DEVELOPER RELEASE ++
2026 - This release works in combination with
2027 Class::MOP 0.29_01, it is a developer
2028 release because it uses the a new
2029 instance sub-protocol and a fairly
2030 complete Role implementation. It has
2031 not yet been optimized, so it slower
2032 the the previous CPAN version. This
2033 release also lacks good updated docs,
2034 the official release will have updated docs.
2037 - refactored the keyword exports
2038 - 'with' now checks Role validaity and
2039 accepts more than one Role at a time
2040 - 'extends' makes metaclass adjustments as
2041 needed to ensure metaclass compatibility
2044 - refactored the keyword exports
2045 - 'with' now checks Role validaity and
2046 accepts more than one Role at a time
2048 * Moose::Util::TypeConstraints
2049 - added the 'enum' keyword for simple
2050 string enumerations which can be used as
2052 - see example of usage in t/202_example.t
2055 - more careful checking of params to new()
2058 - much work done on the role composition
2059 - many new tests for conflict detection
2060 and composition edge cases
2061 - not enough documentation, I suggest
2062 looking at the tests
2064 * Moose::Meta::Instance
2065 - added new Instance metaclass to support
2066 the new Class::MOP instance protocol
2068 * Moose::Meta::Class
2069 - some small changes to support the new
2071 - some small additions to support Roles
2073 * Moose::Meta::Attribute
2074 - some improvements to the accessor generation code
2076 - some small changes to support the new
2078 - (still somewhat) experimental delegation support
2079 with the 'handles' option
2080 - added several tests for this
2081 - no docs for this yet
2083 0.05 Thurs. April 27, 2006
2085 - keywords are now exported with Sub::Exporter
2086 thanks to chansen for this commit
2087 - has keyword now takes a 'metaclass' option
2088 to support custom attribute meta-classes
2089 on a per-attribute basis
2090 - added tests for this
2091 - the 'has' keyword not accepts inherited slot
2092 specifications (has '+foo'). This is still an
2093 experimental feature and probably not finished
2094 see t/038_attribute_inherited_slot_specs.t for
2095 more details, or ask about it on #moose
2096 - added tests for this
2099 - keywords are now exported with Sub::Exporter
2101 * Moose::Utils::TypeConstraints
2102 - reorganized the type constraint hierarchy, thanks
2103 to nothingmuch and chansen for his help and advice
2105 - added some tests for this
2106 - keywords are now exported with Sub::Exporter
2107 thanks to chansen for this commit
2109 * Moose::Meta::Class
2110 - due to changes in Class::MOP, we had to change
2111 construct_instance (for the better)
2113 * Moose::Meta::Attribute
2114 - due to changes in Class::MOP, we had to add the
2115 initialize_instance_slot method (it's a good thing)
2117 * Moose::Meta::TypeConstraint
2118 - added type constraint unions
2119 - added tests for this
2120 - added the is_subtype_of predicate method
2121 - added tests for this
2123 0.04 Sun. April 16th, 2006
2125 - Roles can now consume other roles
2126 - added tests for this
2127 - Roles can specify required methods now with
2128 the requires() keyword
2129 - added tests for this
2132 - ripped out much of it's guts ,.. much cleaner now
2133 - added required methods and correct handling of
2134 them in apply() for both classes and roles
2135 - added tests for this
2136 - no longer adds a does() method to consuming classes
2137 it relys on the one in Moose::Object
2138 - added roles attribute and some methods to support
2139 roles consuming roles
2141 * Moose::Meta::Attribute
2142 - added support for triggers on attributes
2143 - added tests for this
2144 - added support for does option on an attribute
2145 - added tests for this
2147 * Moose::Meta::Class
2148 - added support for attribute triggers in the
2150 - added tests for this
2153 - Moose no longer creates a subtype for your class
2154 if a subtype of the same name already exists, this
2155 should DWIM in 99.9999% of all cases
2157 * Moose::Util::TypeConstraints
2158 - fixed bug where incorrect subtype conflicts were
2160 - added test for this
2163 - this class can now be extended with 'use base' if
2164 you need it, it properly loads the metaclass class now
2165 - added test for this
2167 0.03_02 Wed. April 12, 2006
2169 - you must now explictly use Moose::Util::TypeConstraints
2170 it no longer gets exported for you automatically
2173 - new() now accepts hash-refs as well as key/value lists
2174 - added does() method to check for Roles
2175 - added tests for this
2177 * Moose::Meta::Class
2178 - added roles attribute along with the add_role() and
2180 - added tests for this
2183 - now adds a does() method to consuming classes
2184 which tests the class's hierarchy for roles
2185 - added tests for this
2187 0.03_01 Mon. April 10, 2006
2189 - added new Role recipe (no content yet, only code)
2192 - added 'with' keyword for Role support
2193 - added test and docs for this
2194 - fixed subtype quoting bug
2195 - added test for this
2199 - added test and docs
2201 * Moose::Util::TypeConstraints
2202 - added the message keyword to add custom
2203 error messages to type constraints
2206 - the meta role to support Moose::Role
2207 - added tests and docs
2209 * Moose::Meta::Class
2210 - moved a number of things from Moose.pm
2211 to here, they should have been here
2214 * Moose::Meta::Attribute
2215 - moved the attribute option macros here
2216 instead of putting them in Moose.pm
2218 * Moose::Meta::TypeConstraint
2219 - added the message attributes and the
2221 - added tests and docs for this
2223 0.03 Thurs. March 30, 2006
2225 - added the Moose::Cookbook with 5 recipes,
2226 describing all the stuff Moose can do.
2229 - fixed an issue with &extends super class loading
2230 it now captures errors and deals with inline
2231 packages correctly (bug found by mst, solution
2233 - added super/override & inner/augment features
2234 - added tests and docs for these
2237 - BUILDALL now takes a reference of the %params
2238 that are passed to &new, and passes that to
2241 * Moose::Util::TypeConstraints
2242 - Type constraints now survive runtime reloading
2243 - added test for this
2245 * Moose::Meta::Class
2246 - fixed the way attribute defaults are handled
2247 during instance construction (bug found by chansen)
2249 * Moose::Meta::Attribute
2250 - read-only attributes now actually enforce their
2251 read-only-ness (this corrected in Class::MOP as
2254 0.02 Tues. March 21, 2006
2256 - many more tests, fixing some bugs and
2258 - &extends now loads the base module with
2260 - added UNIVERSAL::require to the
2263 - each new Moose class will also create
2264 and register a subtype of Object which
2265 correspond to the new Moose class.
2266 - the 'isa' option in &has now only
2267 accepts strings, and will DWIM in
2270 * Moose::Util::TypeConstraints
2271 - added type coercion features
2272 - added tests for this
2273 - added support for this in attributes
2274 and instance construction
2276 - type construction no longer creates a
2277 function, it registers the type instead.
2278 - added several functions to get the
2282 - BUILDALL and DEMOLISHALL were broken
2283 because of a mis-named hash key, Whoops :)
2285 * Moose::Meta::Attribute
2286 - adding support for coercion in the
2287 autogenerated accessors
2289 * Moose::Meta::Class
2290 - adding support for coercion in the
2291 instance construction
2293 * Moose::Meta::TypeConstraint
2294 * Moose::Meta::TypeCoercion
2295 - type constraints and coercions are now
2296 full fledges meta-objects
2298 0.01 Wed. March 15, 2006
2299 - Moooooooooooooooooose!!!