Upstream changes:
1.14 Tue, Sep 21, 2010
[BUG FIXES]
* Work around what looks like a bug in List::MoreUtils::any. This bug caused
a weird error when defining the same union type twice, but only when using
MooseX::Types. Reported by Curtis Jewell. RT #61001. (Dave Rolsky)
1.13 Mon, Sep 13, 2010
[API CHANGES]
* The deprecation warnings for alias and excludes are back, use -alias and
-excludes instead. (Dave Rolsky)
[ENHANCEMENTS]
* When composing one role into another and there is an attribute conflict,
the error message now includes the attribute name. Reported by Sam
Graham. RT #59985. (Dave Rolsky)
* When a class is made immutable, the does_role method is overridden with a
much faster version that simply looks role names up in a hash. Code which
uses lots of role-based type constraints should be faster. (Dave Rolsky)
Pkgsrc changes:
- adjust dependencies
Upstream changes:
1.12 Sat, Aug 28, 2010
[BUG FIXES]
* Fix the MANIFEST. Fixes RT #60831, reported by Alberto Simões.
1.11 Fri, Aug 27, 2010
[API CHANGES]
* An attribute in a subclass can now override the value of "is". (doy)
* The deprecation warnings for alias and excludes have been turned back off
for this release, to give other module authors a chance to tweak their
code. (Dave Rolsky)
[BUG FIXES]
* mro::get_linear_isa was being called as a function rather than a method,
which caused problems with Perl 5.8.x. (t0m)
* Union types always created a type constraint, even if their constituent
constraints did not have any coercions. This bogus coercion always
returned undef, which meant that a union which included Undef as a member
always coerced bad values to undef. Reported by Eric Brine. RT
#58411. (Dave Rolsky)
* Union types with coercions would always fall back to coercing the value to
undef (unintentionally). Now if all the coercions for a union type fail,
the value returned by the coercion is the original value that we attempted
to coerce. (Dave Rolsky).
Pkgsrc changes:
- adjust dependencies
Upstream changes:
1.10 Sun, Aug 22, 2010
[API CHANGES]
* The long-deprecated alias and excludes options for role applications now
issue a deprecation warning. Use -alias and -excludes instead. (Dave
Rolsky)
[BUG FIXES]
* Inlined code no longer stringifies numeric attribute defaults. (vg, doy)
* default => undef now works properly. (doy)
* Enum type constraints now throw errors if their values are nonsensical.
(Sartak)
[ENHANCEMENTS]
* Optimizations that should help speed up compilation time (Dave Rolsky).
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
Pkgsrc changes:
- adjust dependencies
Upstream changes:
1.09 Tue, Jul 25, 2010
[API CHANGES]
* You can no longer pass "coerce => 1" for an attribute unless its type
constraint has a coercion defined. Doing so will issue a deprecation
warning. (Dave Rolsky)
* Previously, '+foo' only allowed a specific set of options to be
overridden, which made it impossible to change attribute options related
to extensions. Now we blacklist some options, and anything else is
allowed. (doy, Tuomas Jormola)
* Most features which have been declared deprecated now issue a warning using
Moose::Deprecated. Warnings are issued once per calling package, not
repeatedly. See Moose::Deprecated for information on how you can shut
these warnings up entirely. Note that deprecated features will eventually
be removed, so shutting up the warnings may not be the best idea. (Dave
Rolsky)
* Removed the long-deprecated Moose::Meta::Role->alias_method method. (Dave
Rolsky).
[NEW FEATURES]
* We no longer unimport strict and warnings when Moose, Moose::Role, or
Moose::Exporter are unimported. Doing this was broken if the user
explicitly loaded strict and warnings themself, and the results could be
generally surprising. We decided that it was best to err on the side of
safety and leave these on. Reported by David Wheeler. RT #58310. (Dave
Rolsky)
* New with_traits helper function in Moose::Util. (doy)
[BUG FIXES]
* Accessors will no longer be inlined if the instance metaclass isn't
inlinable. (doy)
* Use Perl 5.10's new recursive regex features, if possible, for the type
constraint parser. (doy, nothingmuch)
[ENHANCEMENTS]
* Attributes now warn if their accessors overwrite a locally defined
function (not just method). (doy)
[OTHER]
* Bump our required perl version to 5.8.3, since earlier versions fail tests
and aren't easily installable/testable.
Upstream changes:
1.08 Tue, Jun 15, 2010
[ENHANCEMENTS]
* Refactored a small amount of Moose::Meta::Method::Constructor to allow it
to be overridden more easily (doy).
Upstream changes:
1.07 Sat, Jun 05, 2010
[BUG FIXES]
* Fixed a minor metaclass compatibility fixing bug dealing with immutable
classes and non-class metaclass traits (doy, dougdude).
1.06 Tue, Jun 01, 2010
[NEW FEATURES]
* Added '0+' overloading in Moose::Meta::TypeConstraint so that we can
more uniformly compare type constraints between 'classic' Moose type
constraints and MooseX::Types based type constraints.
Pkgsrc changes:
- adjust dependencies
Upstream changes:
1.05 Thu, May 20, 2010
[API CHANGES]
* Packages and modules no longer have methods - this functionality was
moved back up into Moose::Meta::Class and Moose::Meta::Role individually
(through the Class::MOP::Mixin::HasMethods mixin) (doy).
* BUILDALL is now called by Moose::Meta::Class::new_object, rather than by
Moose::Object::new. (doy)
[NEW FEATURES]
* strict and warnings are now unimported when Moose, Moose::Role, or
Moose::Exporter are unimported. (doy, Adam Kennedy)
* Added a 'consumers' method to Moose::Meta::Role for finding all
classes/roles which consume the given role. (doy)
[BUG FIXES]
* Fix has '+attr' in Roles to explode immediately, rather than when the role
is applied to a class (t0m).
* Fix type constraint validation messages to not include the string 'failed'
twice in the same sentance (Florian Ragwitz).
* New type constraints will default to being unequal, rather than equal
(rjbs).
* The tests no longer check for perl's behavior of clobbering $@, which has
been fixed in perl-5.13.1 (Florian Ragwitz).
* Metaclass compatibility fixing has been completely rewritten, and should
be much more robust. (doy)
1.04 Thu, May 20, 2010
* This release was broken and has been deleted from CPAN shortly after its
upload.
Upstream changes:
1.02 Sat, May 01, 2010
[BUG FIXES]
* Stop the natatime method provided by the native Array trait from returning
an exhausted iterator when being called with a callback. (Florian Ragwitz)
* Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
(Florian Ragwitz)
* Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or
the class the TC represents as an argument incorrectly returned true. This
behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi)
* Use File::Temp for temp files created during tests. Previously, files were
written to the t/ dir, which could cause problems of the user running the
tests did not have write access to that directory.. (Chris Weyl, Ævar
Arnfjörð Bjarmason)
* Pass role arguments along when applying roles to instances. (doy, lsm)
Pkgsrc changes:
- clean up "test dependencies" and comment which tests need them
Upstream changes:
1.01 Fri, Mar 26, 2010
[NEW FEATURES]
* The handles option now also accepts a role type constraint in addition to a
plain role name. (Florian Ragwitz)
[OTHER]
* Record the Sartak/doy debt properly in Changes (perigrin)
1.00 Tue, Mar 25, 2010
[BUG FIXES]
* Moose::Meta::Attribute::Native::Trait::Code no longer creates reader
methods by default. (Florian Ragwitz)
[DOCUMENTATION]
* Improve various parts of the documentation and fix many typos.
(Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs)
[OTHER]
* Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak)
Upstream changes:
0.99 Mon, Mar 8, 2010
[NEW FEATURES]
* New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding
which member of the union a given value validates for. (Cory Watson)
[BUG FIXES]
* DEMOLISH methods in mutable subclasses of immutable classes are now called
properly (Chia-liang Kao, Jesse Luehrs)
[NEW DOCUMENTATION]
* Added Moose::Manual::Support that defines the support, compatiblity, and
release policies for Moose. (Chris Prather)
Upstream changes:
0.98 Wed, Feb 10, 2010
[BUG FIXES]
* An internals change in 0.97 broke role application to an instance in some
cases. The bug occurred when two different roles were applied to different
instances of the same class. (Rafael Kitover)
0.97 Tue, Feb 9, 2010
[BUG FIXES]
* Calling ->reinitialize on a cached anonymous class destroyed the cache,
causing the class to go out of scope unexpectedly. This could easily
happen at a distance by applying a metarole to an anonymous class. (Dave
Rolsky).
Upstream changes:
0.96 Sat, Feb 6, 2010
[NEW FEATURES]
* ScalarRef is now a parameterized type. You can now specify a type
constraint for whatever the reference points to. (Closes RT#50857)
(Michael G. Schwern, Florian Ragwitz)
[BUG FIXES]
* ScalarRef now accepts references to other references. (Closes RT#50934)
(Michael G. Schwern)
0.95 Thu, Feb 4, 2010
[NEW FEATURES]
* Moose::Meta::Attribute::Native::Trait::Code now provides execute_method, in
addition to execute, to be able to call a code attribute as a method.
(Florian Ragwitz)
[ENHANCEMENTS]
* Moose::Object::does no longer checks the entire inheritance tree, since
Moose::Meta::Class::does_role already does this. (doy)
* Moose::Util::add_method_modifier (and subsequently the sugar functions Moose::before,
Moose::after, and Moose::around) can now accept arrayrefs, with the same
behavior as lists. Types other than arrayref and regexp result in an error.
(Dylan Hardison)
Pkgsrc changes:
- Adjust dependencies
- Set PERL5_MODULE_TYPE to Module::Install::Bundled (isomorphism)
- A C compiler is now required
Upstream changes:
0.94 Mon, Jan 18, 2010
[API CHANGES]
* Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
[ENHANCEMENTS]
* Improved support for anonymous roles by changing various APIs to take
Moose::Meta::Role objects as well as role names. This included
- Moose::Meta::Class->does_role
- Moose::Meta::Role->does_role
- Moose::Util::does_role
- Moose::Util::apply_all_roles
- Moose::Util::ensure_all_roles
- Moose::Util::search_class_by_role
Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
[BUG FIXES]
* Fix handling of non-alphanumeric attributes names like '@foo'. This should
work as long as the accessor method names are explicitly set to valid Perl
method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
0.93_03 Tue, Jan 5, 2010
[BUG FIXES]
* Portability fixes to our XS code so we compile with 5.8.8 with Visual
C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
0.93_02 Tue, Jan 5, 2010
[BUG FIXES]
* Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
testers. (Dave Rolsky)
0.93_01 Mon, Jan 4, 2010
[API CHANGES]
See Moose::Manual::Delta for more details on backwards compatiblity issues.
* Role attributes are now objects of the Moose::Meta::Role::Attribute
class. (Dave Rolsky).
* There were major changes to how metaroles are applied. We now distinguish
between metaroles for classes vs those for roles. See the
Moose::Util::MetaRole docs for details. (Dave Rolsky)
* The old MetaRole API has been deprecated, but will continue to
work. However, if you are applying an attribute metaclass role, this may
break because of the fact that roles now have an attribute metaclass
too. (Dave Rolsky)
* Moose::Util::MetaRole::apply_metaclass_roles is now called
apply_metaroles. The old name is deprecated. Dave Rolsky>
* The unimport subs created by Moose::Exporter now clean up re-exported
functions like blessed and confess, unless the caller imported them from
somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
[ENHANCEMENTS AND BUG FIXES]
* Changed the Str constraint to accept magic lvalue strings like one gets from
substr et al, again. (sorear)
* Sped up the type constraint parsing regex. (Sam Vilain)
* The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
jrey.
* Added Moose::Util::TypeConstraints exports when using oose.pm to allow
easier testing of TypeConstraints from the command line. (perigrin)
* Added a with_immutable test function to Test::Moose, to run a block of tests
with and without certain classes being immutable. (doy)
* We now use Module::Install extensions explicitly to avoid confusing errors
if they're not installed. We use Module::Install::AuthorRequires to stop
test extraction and general failures if you don't have the author side
dependencies installed.
* Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
#51791. (Amir E. Aharoni)
Upstream changes:
0.93 Thu, Nov 19, 2009
* Moose::Object
- Calling $object->new() is no longer deprecated, and no longer
warns. (doy)
* Moose::Meta::Role
- The get_attribute_map method is now deprecated. (Dave Rolsky)
* Moose::Meta::Method::Delegation
- Preserve variable aliasing in @_ for delegated methods, so that
altering @_ affects the passed value. (doy)
* Moose::Util::TypeConstraints
- Allow array refs for non-anonymous form of enum and duck_type, not
just anonymous. The non-arrayref forms may be removed in the
future. (doy)
- Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
- Properly document Int being a subtype of Str. (doy)
* Moose::Exporter
- Moose::Exporter using modules can now export their functions to the
main package. This applied to Moose and Moose::Role, among
others. (nothingmuch)
* Moose::Meta::Attribute
- Don't remove attribute accessors we never installed, during
remove_accessors. (doy)
* Moose::Meta::Attribute::Native::Trait::Array
- Don't bypass prototype checking when calling List::Util::first, to
avoid a segfault when it is called with a non-code argument. (doy)
* Moose::Meta::Attribute::Native::Trait::Code
- Fix passing arguments to code execute helpers. (doy)
pkgsrc changes:
- requiring new Class::MOP (0.94)
Upstream changes:
0.92 Tue, Sep 22, 2009
* Moose::Util::TypeConstraints
- added the match_on_type operator (Stevan)
- added tests and docs for this (Stevan)
* Moose::Meta::Class
- Metaclass compat fixing should already happen recursively, there's no
need to explicitly walk up the inheritance tree. (doy)
* Moose::Meta::Attribute
- Add tests for set_raw_value and get_raw_value. (nothingmuch)
pkgsrc changes:
- Adjusting dependencies
Upstream changes:
0.91 Tue, Sep 17, 2009
* Moose::Object
- Don't import any functions, in order to avoid polluting our namespace
with things that can look like methods (blessed, try, etc)
(nothingmuch)
* Moose::Meta::Method::Constructor
- The generated code needs to called Scalar::Util::blessed by its
fully-qualified name or else Perl can interpret the call to blessed as
an indirect method call. This broke Search::GIN, which in turn broke
KiokuDB. (nothingmuch)
Pkgsrc changes:
- Adjust dependencies
Upstream changes:
0.90 Tue, Sep 15, 2009
* Moose::Meta::Attribute::Native::Trait::Counter
* Moose::Meta::Attribute::Native::Trait::String
- For these two traits, an attribute which did not explicitly provide
methods to handles magically ended up delegating *all* the helper
methods. This has been removed. You must be explicit in your handles
declaration for all Native Traits. (Dave Rolsky)
* Moose::Object
- DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
sure to rethrow its error message. However, we also localize $@ before
this so that if all the DEMOLISH methods success, the value of $@ will
be preserved. (nothingmuch and Dave Rolsky)
- We now also localize $? during object destruction. (nothingmuch and
Dave Rolsky)
- The handling of DEMOLISH methods was broken for immutablized classes,
which were not receiving the value of
Devel::GlobalDestruction::in_global_destruction.
- These two fixes address some of RT #48271, reported by Zefram.
- This is all now documented in Moose::Manual::Construction.
- Calling $object->new() is now deprecated. A warning will be
issued. (perigrin)
* Moose::Meta::Role
- Added more hooks to customize how roles are applied. The role
summation class, used to create composite roles, can now be changed
and/or have meta-roles applied to it. (rafl)
* Moose::Meta::Method::Delegation
- fixed delegated methods to make sure that any modifiers attached to
the accessor being delegated on will be called (Stevan)
- added tests for this (Stevan)
* Moose::Meta::Class
- Moose no longer warns when a class that is being made immutable has
mutable ancestors. While in theory this is a good thing to warn about,
we found so many exceptions to this that doing this properly became
quite problematic.
0.89_02 Thu, Sep 10, 2009
* Moose::Meta::Attribute::Native
- Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
* Moose::Meta::Attribute::Native::Trait::Array
- Added a number of functions from List::Util and List::MoreUtils,
including reduce, shuffle, uniq, and natatime. (doy)
* Moose::Exporter
- This module will now generate an init_meta method for your exporting
class if you pass it options for
Moose::Util::MetaRole::apply_metaclass_roles or
apply_base_class_roles. This eliminates a lot of repetitive
boilerplate for typical MooseX modules. (doy).
- Documented the with_meta feature, which is a replacement for
with_caller. This feature was added by josh a while ago.
- The with_caller feature is now deprecated, but will not issue a
warning yet. (Dave Rolsky)
- If you try to wrap/export a subroutine which doesn't actually exist,
Moose::Exporter will warn you about this. (doy)
* Moose::Meta::Role::Application::ToRole
- When a role aliased a method from another role, it was only getting
the new (aliased) name, not the original name. This differed from what
happens when a class aliases a role's methods. If you _only_ want the
aliased name, make sure to also exclue the original name. (Dave
Rolsky)
0.89_01 Wed Sep 2, 2009
* Moose::Meta::Attribute
- Added the currying syntax for delegation from AttributeHelpers to the
existing delegation API. (hdp)
* Moose::Meta::Attribute::Native
- We have merged the functionality of MooseX::AttributeHelpers into the
Moose core with some API tweaks. You can continue to use
MooseX::AttributeHelpers, but it will not be maintained except
(perhaps) for critical bug fixes in the future. See
Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
perigrin, doy)
* Moose::Error::Croak
* Moose::Error::Confess
- Clarify documentation on how to use different error-throwing
modules. (Curtis Jewell)
* Moose
- Correct POD for builder to point to Recipe8, not 9. (gphat)
* Moose::Exporter
- When a nonexistent sub name is passed to as_is, with_caller, or
with_meta, throw a warning and skip the exporting, rather than
installing a broken sub. (doy)
* Moose::Meta::Class
- Moose now warns if you call C<make_immutable> for a class with mutable
ancestors. (doy)
Pkgsrc changes:
- Adjust dependency on devel/p5-Class-MOP
Upstream changes:
0.89 Thu Aug 13, 2009
* Moose::Manual::Attributes
- Clarify "is", include discussion of "bare". (Sartak)
* Moose::Meta::Role::Method::Conflicting
* Moose::Meta::Role::Application::ToClass
- For the first set of roles involved in a conflict, report all
unresolved method conflicts, not just the first method. Fixes#47210
reported by Ovid. (Sartak)
* Moose::Meta::TypeConstraint
- Add assert_valid method to use a TypeConstraint for assertion (rjbs)
* Moose::Exporter
- Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
does. (doy)
- Allow specifying role options (alias, excludes, MXRP stuff) in the
arrayref passed to "use Moose -traits" (doy)
* Moose::Util
- Add functions meta_class_alias and meta_attribute_alias for creating
aliases for class and attribute metaclasses and metatraits. (doy)
* Moose::Meta::Attribute
* Moose::Meta::Method::Accessor
- A trigger now receives the old value as a second argument, if the
attribute had one. (Dave Rolsky)
* Moose::Meta::Method::Constructor
- Fix a bug with $obj->new when $obj has stringify overloading.
Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
- However, we will probably deprecate $obj->new, so please don't start
using it for new code!
Upstream changes:
0.88 Fri Jul 24, 2009
* Moose::Manual::Contributing
- Re-write the Moose::Manual::Contributing document to reflect
the new layout and methods of work for the Git repository. All
work now should be done in topic branches and reviewed by a
core committer before being applied to master. All releases
are done by a cabal member and merged from master to
stable. This plan was devised by Yuval, blame him. (perigrin)
* Moose::Meta::Role
- Create metaclass attributes for the different role application
classes. (rafl)
* Moose::Util::MetaRole
- Allow applying roles to a meta role's role application
classes. (rafl)
* Moose::Meta::Attribute
- Add weak_ref to allowed options for "has '+foo'" (mst)
* Moose::Meta::Method::Accessor
- No longer uses inline_slot_access in accessors, to support
non-lvalue-based meta instances. (sorear)
- Updating package for p5 module Moose from 0.81 to 0.87
- Adjust dependencies according to META.yml
Upstream changes:
0.87 Tue Jul 7, 2009
* Moose::Meta::Method::Delegation
- Once again allow class names as well as objects for
delegation. This was changed in 0.86.
0.86 Fri Jul 3, 2009
* Moose::Meta::Class::Immutable::Trait
- Fixes to work with the latest Class::MOP.
* Moose::Meta::Method::Delegation
- Delegation now dies with a more useful error message if the
attribute's accessor returns something defined but
unblessed. (hdp)
0.85 Fri, Jun 26, 2009
* Moose::Meta::Attribute
- The warning for 'no associated methods' is now split out into
the _check_associated_methods method, so that extensions can
safely call 'after install_accessors => ...'. This fixes a
warning from MooseX::AttributeHelpers. (hdp)
0.84 Fri, Jun 26, 2009
* Moose::Role
- has now sets definition_context for attributes defined in
roles. (doy)
* Moose::Meta::Attribute
- When adding an attribute to a metaclass, if the attribute has
no associated methods, it will give a deprecation
warning. (hdp)
- Methods generated by delegation were not being added to
associated_methods. (hdp)
- Attribute accessors (reader, writer, accessor, predicate,
clearer) now warn if they overwrite an existing method. (doy)
- Attribute constructors now warn very noisily about unknown (or
mispelled) arguments
* Moose::Util::TypeConstraints
- Deprecated the totally useless Role type name, which just
checked if $object->can('does'). Note that this is _not_ the
same as a type created by calling role_type('RoleName').
* Moose::Util::TypeConstraints
* Moose::Meta::TypeConstraint::DuckType
- Reify duck type from a regular subtype into an actual class
(Sartak)
- Document this because Sartak did all my work for me
(perigrin)
* Moose::Meta::Attribute
- Allow Moose::Meta::TypeConstraint::DuckType in handles, since
it is just a list of methods (Sartak)
* Moose::Meta::Role
- The get_*_method_modifiers methods would die if the role had
no modifiers of the given type (Robert Buels).
0.83 Tue, Jun 23, 2009
* Moose::Meta::Class
- Fix _construct_instance not setting the special __MOP__ object
key in instances of anon classes. (doy)
0.82 Sun, Jun 21, 2009
* Moose::Manual::Types
- Mention MooseX::Types early to avoid users falling down the
string parsing rathole (mst)
* Moose::Manual::MooseX
- Add warnings about class-level extensions and mention considering
using plain objects instead
- Updating package of p5 module Moose from 0.80 to 0.81
- Apply Module::Install switch to skip dependency check, but keep
bundled Module::Install (extended)
- Adjusting license according to META.yaml
Upstream changes:
0.81 Sun, Jun 7, 2009
* Bumped our Class::MOP prereq to the latest version (0.85), since
that's what we need.
Upstream changes:
0.80 Sat, Jun 6, 2009
* Moose::Manual::FAQ
- Add FAQ about the coercion change from 0.76 because it came up
three times today (perigrin)
- Win doy $10 dollars because Sartak didn't think anybody
would document this fast enough (perigrin)
* Moose::Meta::Method::Destructor
- Inline a DESTROY method even if there are no DEMOLISH methods
to prevent unnecessary introspection in
Moose::Object::DEMOLISHALL
* Moose::*
- A role's required methods are now represented by
Moose::Meta::Role::Method::Required objects. Conflicts are now
represented by Moose::Meta::Role::Method::Conflicting
objects. The benefit for end-users in that unresolved
conflicts generate different, more instructive, errors,
resolving Ovid's #44895. (Sartak)
* Moose::Role
- Improve the error message of "extends" as suggested by Adam
Kennedy and confound (Sartak)
- Link to Moose::Manual::Roles from Moose::Role as we now have
excellent documentation (Adam Kennedy)
* Tests
- Update test suite for subname change in Class::MOP
(nothingmuch)
- Add TODO test for infinite recursion in Moose::Meta::Class
(groditi)
Upstream changes:
0.79 Wed, May 13, 2009
* Tests
- More fixes for Win32 problems. Reported by Robert Krimen.
* Moose::Object
- The DEMOLISHALL method could still blow up in some cases
during global destruction. This method has been made more
resilient in the face of global destruction's random garbage
collection order.
Pkgsrc changes:
- Adjust dependency: requires p5-Class-MOP>=0.83 and p5-Sub-Name for
runtime and p5-Test-Exception>=0.27 for build (test really)
Upstream changes:
0.78 Tue, May 12, 2009
* Moose::Cookbook::FAQ and Moose::Cookbook::WTF
- Merged these documents into what is now Moose::Manual::FAQ
* Moose::Unsweetened
- Moved to Moose::Manual::Unsweetened
* Moose::Cookbook::Basics::Recipes 9-12
- Renamed to be 8-11, since recipe 8 did not exist
* Moose::Exporter
- Make Moose::Exporter import strict and warnings into packages
that use it (doy)
* Moose::Object
- Fix DEMOLISHALL sometimes not being able to find DEMOLISH
methods during global destruction (doy)
* Moose::Meta::Class
* Moose::Meta::Role::Application::ToClass
- Track the Role::Application objects created during class-role
consumption (Sartak)
* Moose::Meta::Class
- Fix metaclass incompatibility errors when extending a vanilla perl
class which isa Moose class with a metaclass role applied (t0m)
* Moose::Meta::Role
- Add a role-combination hook, _role_for_combination, for the
benefit of MooseX::Role::Parameterized (Sartak)
* Tests
- Some tests were failing on Win32 because they explicit checked
warning output for newlines. Reported by Nickolay Platonov.
Pkgsrc changes:
- Adjust dependency on p5-Class-MOP
Upstream changes:
0.77 Sat, May 2, 2009
* Moose::Meta::Role
- Add explicit use of Devel::GlobalDestruction and Sub::Name
(perigrin)
* Moose::Object
- Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
or not we are currently in global destruction (doy)
- Add explicit use of Devel::GlobalDestruction and Sub::Name
(perigrin)
* Moose::Cookbook::FAQ
- Reworked much of the existing content to be more useful to
modern Moose hackers (Sartak)
* Makefile.PL
- Depend on Class::MOP 0.83 instead of 0.82_01. It seems that if
we use a dev version number there CPAN.pm will not follow the
dependency.
Pkgsrc changes:
- Adjust dependency on p5-Class-MOP
Upstream changes:
0.76 Mon, April 27, 2009
* Moose::Meta::TypeConstraint
- Do not run coercions in coerce() if the value already passes the type
constraint (hdp)
* Moose::Meta::TypeConstraint::Class
- In validation error messages, specifically say that the value is not
an instance of the class. This should alleviate some frustrating
forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
* Moose::Meta::Role::Application::ToClass
- Revert the class-overrides-role warning in favor of a solution outside
of the Moose core (Sartak)
Upstream changes:
0.75 Mon, April 20, 2009
* Moose
* Moose::Meta::Class
- Move validation of not inheriting from roles from Moose::extends to
Moose::Meta::Class::superclasses (doy)
* Moose::Util
- add ensure_all_roles() function to encapsulate the common "apply this
role unless the object already does it" pattern (hdp)
* Moose::Exporter
- Users can now select a different metaclass with the "-metaclass"
option to import, for classes and roles (Sartak)
* Moose::Meta::Role
- Make method_metaclass an attr so that it can accept a metarole
application. (jdv)
- Update package for p5 module Moose to 0.74
- set artistic-2.0 as license
- update dependencies along META.yml
Upstream changes:
0.74 Tue, April 7, 2009
* Moose::Meta::Role
* Moose::Meta::Method::Destructor
- Include stack traces in the deprecation warnings.
(Florian Ragwitz)
* Moose::Meta::Class
- Removed the long-deprecated _apply_all_roles method.
* Moose::Meta::TypeContsraint
- Removed the long-deprecated union method.
0.73_02 Mon, April 6, 2009
* More deprecations and renamings
- Moose::Meta::Method::Constructor
- initialize_body => _initialize_body (this is always called
when an object is constructed)
* Moose::Object
- The DEMOLISHALL method could throw an exception during global
destruction, meaning that your class's DEMOLISH methods would
not be properly called. Reported by t0m.
* Moose::Meta::Method::Destructor
- Destructor inlining was totally broken by the change to the
is_needed method in 0.72_01. Now there is a test for this
feature, and it works again.
0.73_01 Sun, April 5, 2009
* Moose::*
- Call user_class->meta in fewer places, with the eventual goal
of allowing the user to rename or exclude ->meta
altogether. Instead uses Class::MOP::class_of. (Sartak)
* Moose::Meta::Method::Accessor
- If an attribute had a lazy default, and that value did not
pass the attribute's type constraint, it did not get the
message from the type constraint, instead using a generic
message. Test provided by perigrin.
* Moose::Util::TypeConstraints
- Add duck_type keyword. It's sugar over making sure an object
can() a list of methods. This is easier than jrockway's
suggestion to fork all of CPAN. (perigrin)
- add tests and documentation (perigrin)
* Moose
- Document the fact that init_meta() returns the target class's
metaclass object. (hdp)
* Moose::Cookbook::Extending::Recipe1
* Moose::Cookbook::Extending::Recipe2
* Moose::Cookbook::Extending::Recipe3
* Moose::Cookbook::Extending::Recipe4
- Make init_meta() examples explicitly return the metaclass and
point out this fact. (hdp)
* Moose::Cookbook::Meta::Recipe6
- A new recipe, creating a custom meta-method class.
* Moose::Meta::Class
* Moose::Meta::Method::Constructor
- Attribute triggers no longer receive the meta-attribute object
as an argument in any circumstance. Previously, triggers
called during instance construction were passed the
meta-attribute, but triggers called by normal accessors were
not. Fixes RT#44429, reported by Mark Swayne. (hdp)
* Moose::Manual::Attributes
- Remove references to triggers receving the meta-attribute object as an
argument. (hdp)
* Moose::Cookbook::FAQ
- Remove recommendation for deprecated Moose::Policy and
Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
instead. (hdp)
* Many methods have been renamed with a leading underscore, and a
few have been deprecated entirely. The methods with a leading
underscore are consider "internals only". People writing
subclasses or extensions to Moose should feel free to override
them, but they are not for "public" use.
- Moose::Meta::Class
- check_metaclass_compatibility => _check_metaclass_compatibility
- Moose::Meta::Method::Accessor
- initialize_body => _initialize_body (this is always called
when an object is constructed)
- /(generate_.*_method(?:_inline)?)/ => '_' . $1
- Moose::Meta::Method::Constructor
- initialize_body => _initialize_body (this is always called
when an object is constructed)
- /(generate_constructor_method(?:_inline)?)/ => '_' . $1
- attributes => _attributes (now inherited from parent)
- meta_instance => _meta_instance (now inherited from parent)
- Moose::Meta::Role
- alias_method is deprecated. Use add_method
0.73 Fri, March 29, 2009
* No changes from 0.72_01.
0.72_01 Thu, March 26, 2009
* Everything
- Almost every module has complete API documentation. A few
methods (and even whole classes) have been intentionally
excluded pending some rethinking of their APIs.
* Moose::Util::TypeConstraints
- Calling subtype with a name as the only argument is now an
exception. If you want an anonymous subtype do:
my $subtype = subtype as 'Foo';
* Moose::Cookbook::Meta::Recipe7
- A new recipe, creating a custom meta-instance class.
* Moose::Cookbook::Basics::Recipe5
- Fix various typos and mistakes. Includes a patch from Radu
Greab.
* Moose::Cookbook::Basics::Recipe9
- Link to this recipe from Moose.pm's builder blurb
* Moose::Exporter
- When wrapping a function with a prototype, Moose::Exporter now
makes sure the wrapped function still has the same
prototype. (Daisuke Maki)
* Moose::Meta::Attribute
- Allow a subclass to set lazy_build for an inherited
attribute. (hdp)
* Makefile.PL
- Explicitly depend on Data::OptList. We already had this dependency
via Sub::Exporter, but since we're using it directly we're
better off with it listed. (Sartak)
* Moose::Meta::Method::Constructor
- Make it easier to subclass the inlining behaviour. (Ash
Berlin)
* Moose::Manual::Delta
- Details significant changes in the history of Moose, along
with recommended workarounds.
* Moose::Manual::Contributing
- Contributor's guide to Moose.
* Moose::Meta::Method::Constructor
- The long-deprecated intialize_body method has been removed
(yes, spelled like that).
* Moose::Meta::Method::Destructor
- This is_needed method is now always a class method.
* Moose::Meta::Class
- Changes to the internals of how make_immutable works to match
changes in latest Class::MOP.
Upstream changes:
0.72 Mon, February 23, 2009
* Moose::Object
* Moose::Meta::Method::Constructor
- A mutable class accepted Foo->new(undef) without complaint,
while an immutable class would blow up with an unhelpful
error. Now, in both cases we throw a helpful error
instead. Reported by doy.
0.71_01 Sun, February 22, 2009
* Moose::Cookbook
- Hopefully fixed some POD errors in a few recipes that caused
them to display weird on search.cpan.org.
* Moose::Util::TypeConstraints
- Calling type or subtype without the sugar helpers (as, where,
message) is now deprecated.
- The subtype function tried hard to guess what you meant, but
often got it wrong. For example:
my $subtype = subtype as 'ArrayRef[Object]';
This caused an error in the past, but now works as you'd
expect.
* Everywhere
- Make sure Moose.pm is loaded before calling
Moose->throw_error. This wasn't normally an issue, but could
bite you in weird cases.
0.71 Thu, February 19, 2009
* Moose::Cookbook::Basics::Recipe11
- A new recipe which demonstrates the use of BUILDARGS and
BUILD. (Dave Rolsky)
* Moose::Cookbook::Roles::Recipe3
- A new recipe, applying a role to an object instance. (Dave
Rolsky)
* Moose::Exporter
- Allow overriding specific keywords from "also" packages. (doy)
* Tests
- Replace hardcoded cookbook tests with Test::Inline POD
to ensure they don't get out of sync. (Dave Rolsky)
* Moose::Cookbook
- Working on the above turned up a number of little bugs in the
recipe code. (Dave Rolsky)
* Moose::Util::TypeConstraints::Optimized
- Just use Class::MOP for the optimized ClassName check. (Dave
Rolsky)
Pkgsrc changes:
- adjust dependency on devel/p5-Moose
Upstream changes:
0.70 Sat, February 14, 2009
* Moose::Util::TypeConstraints
- Added the RoleName type (stevan)
- added tests for this (stevan)
* Moose::Cookbook::Basics::Recipe3
- Updated the before qw[left right] sub to be a little more
defensive about what it accepts (stevan)
- added more tests to t/000_recipies/basics/003_binary_tree.t
(stevan)
* Moose::Object
- We now always call DEMOLISHALL, even if a class does not
define DEMOLISH. This makes sure that method modifiers on
DEMOLISHALL work as expected. (doy)
- added tests for this (EvanCarroll)
* Moose::Util::MetaRole
- Accept roles for the wrapped_method_metaclass (rafl)
- added tests for this (rafl)
* Moose::Meta::Attribute
- We no longer pass the meta-attribute object as a final
argument to triggers. This actually changed for inlined code a
while back, but the non-inlined version and the docs were
still out of date.
* Tests
- Some tests tried to use Test::Warn 0.10, which had bugs. Now
they require 0.11. (Dave Rolsky)
* Documentation
- Lots of small changes to the manual, cookbook, and
elsewhere. These were based on feedback from various
users, too many to list here. (Dave Rolsky)
Upstream changes:
0.69 Thu, February 12, 2009
* Moose
- Make some keyword errors use throw_error instead of croak
since Moose::Exporter wraps keywords now (Sartak)
* Moose::Cookbook::*
- Revised every recipe for style and clarity. Also moved some
documentation out of cookbook recipes and into Moose::Manual
pages. This work was funded as part of the Moose docs grant
from TPF. (Dave Rolsky)
* Moose::Meta::Method::Delegation
- If the attribute doing the delegation was not populated, the
error message did not specify the attribute name
properly. (doy)
Upstream changes:
0.68 Wed, February 4, 2009
* POD
- Many spelling, typo, and formatting fixes by daxim.
* Moose::Manual::Attributes
- The NAME section in the POD used "Attribute" so search.cpan
didn't resolve links from other documents properly.
* Moose::Meta::Method::Overriden
- Now properly spelled as Overridden. Thanks to daxim for
noticing this.
0.67 Tue, February 3, 2009
* Moose::Manual::*
- Lots of little typo fixes and a few clarifications. Several
pages didn't have proper titles, and so weren't actually
visible on search.cpan.org. Thanks to hanekomu for a variety
of fixes and formatting improvements.
0.66 Tue, February 3, 2009
* Moose::Manual
- This is a brand new, extensive manual for Moose. This aims to
provide a complete introduction to all of Moose's
features. This work was funded as part of the Moose docs grant
from TPF. (Dave Rolsky)
* Moose::Meta::Attribute
- Added a delegation_metaclass method to replace a hard-coded
use of Moose::Meta::Method::Delegation. (Dave Rolsky)
* Moose::Util::TypeConstraints
- If you created a subtype and passed a parent that Moose didn't
know about, it simply ignored the parent. Now it automatically
creates the parent as a class type. This may not be what you
want, but is less broken than before. (Dave Rolsky)
* Moose::Util::TypeConstraints
- This module tried throw errors by calling Moose->throw_error,
but it did not ensure that Moose was loaded first. This could
cause very unhelpful errors when it tried to throw an error
before Moose was loaded. (Dave Rolsky)
* Moose::Util::TypeConstraints
- You could declare a name with subtype such as "Foo!Bar" that
would be allowed, but if you used it in a parameterized type
such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
vetting on names created via the sugar functions, so that they
can only contain alphanumerics, ":", and ".". (Dave Rolsky)
Pkgsrc changes:
- Adjust dependency on devel/p5-Class-MOP
- Remove build dependency on devel/p5-Test-LongString
Upstream changes:
0.65 Thu, January 22, 2008
* Moose and Moose::Meta::Method::Overridden
- If an overridden method called super(), and then the
superclass's method (not overridden) _also_ called super(),
Moose went into an endless recursion loop. Test provided by
Chris Prather. (Dave Rolsky)
* Moose::Meta::TypeConstraint
- All methods are now documented. (gphat)
* t/100_bugs/011_DEMOLISH_eats_exceptions.t
- Fixed some bogus failures that occurred because we tried to
validate filesystem paths in a very ad-hoc and
not-quite-correct way. (Dave Rolsky)
* Moose::Util::TypeConstraints
- Added maybe_type to exports. See docs for details. (rjbs)
* Moose
- Added Moose::Util::TypeConstraints to the SEE ALSO
section. (pjf)
* Moose::Role
- Methods created via an attribute can now fulfill a "requires"
declaration for a role. (nothingmuch)
* Moose::Meta::Method::*
- Stack traces from inlined code will now report its line and
file as being in your class, as opposed to in Moose
guts. (nothingmuch).
Pkgsrc changes:
- Adjust dependency on devel/p5-Class-MOP
Upstream changes:
0.64 Wed, December 31, 2008
* Moose::Meta::Method::Accessor
- Always inline predicate and clearer methods (Sartak)
* Moose::Meta::Attribute
- Support for parameterized traits (Sartak)
- verify_against_type_constraint method to avoid duplication
and enhance extensibility (Sartak)
* Moose::Meta::Class
- Tests (but no support yet) for parameterized traits (Sartak)
* Moose
- Require Class::MOP 0.75+, which has the side effect of making
sure we work on Win32. (Dave Rolsky)
Pkgsrc changes:
- adjust dependency on devel/p5-Class-MOP: minimum required version is
0.72 while Moose's minimum required version is 0.71_02 but the latter
did not make it into pkgsrc.
- set minimum required version of devel/p5-List-MoreUtils to 0.12
- whitespace fix
Upstream changes:
0.63 Mon, December 8, 2008
* Moose::Unsweetened
- Some small grammar tweaks and bug fixes in non-Moose example
code. (Dave Rolsky)
0.62_02 Fri, December 5, 2008
* Moose::Meta::Role::Application::ToClass
- When a class does not provide all of a role's required
methods, the error thrown now mentions all of the missing
methods, as opposed to just the first one found. Requested by
Michael Schwern (RT #41119). (Dave Rolsky)
* Moose::Meta::Method::Constructor
- Moose will no longer inline a constructor for your class
unless it inherits its constructor from Moose::Object, and
will warn when it doesn't inline. If you want to force
inlining anyway, pass "replace_constructor => 1" to
make_immutable. Addresses RT #40968, reported by Jon
Swartz. (Dave Rolsky)
- The quoting of default values could be broken if the default
contained a single quote ('). Now we use quotemeta to escape
anything potentially dangerous in the defaults. (Dave Rolsky)
0.62_01 Wed, December 3, 2008
* Moose::Object
- use the method->execute API for BUILDALL
and DEMOLISHALL (Sartak)
* Moose::Util::TypeConstraints
- We now make all the type constraint meta classes immutable
before creating the default types provided by Moose. This
should make loading Moose a little faster. (Dave Rolsky)
Pkgsrc changes:
- adjust dependency on devel/p5-Class-MOP
- add new dependency on devel/p5-Task-Weaken
Upstream changes:
0.62 Wed November 26, 2008
* Moose::Meta::Role::Application::ToClass
Moose::Meta::Role::Application::ToRole
- fixed issues where excluding and aliasing the
same methods for a single role did not work
right (worked just fine with multiple
roles) (stevan)
- added test for this (stevan)
* Moose::Meta::Role::Application::RoleSummation
- fixed the error message when trying to compose
a role with a role it excludes (Sartak)
* Moose::Exporter
- Catch another case where recursion caused the value
of $CALLER to be stamped on (t0m)
- added test for this (t0m)
* Moose
- Remove the make_immutable keyword, which has been
deprecated since April. It breaks metaclasses that
use Moose without no Moose (Sartak)
* Moose::Meta::Attribute
- Removing an attribute from a class now also removes delegation
(handles) methods installed for that attribute (t0m)
- added test for this (t0m)
* Moose::Meta::Method::Constructor
- An attribute with a default that looked like a number (but was
really a string) would accidentally be treated as a number
when the constructor was made immutable (perigrin)
- added test for this (perigrin)
* Moose::Meta::Role
- create method for constructing a role
dynamically (Sartak)
- added test for this (Sartak)
- anonymous roles! (Sartak)
- added test for this (Sartak)
* Moose::Role
- more consistent error messages (Sartak)
* Moose::Cookbook::Roles::Recipe1
- attempt to explain why a role that just requires
methods is useful (Sartak)
Changes:
0.61 Fri November 7, 2008
* Moose::Meta::Attribute
- When passing a role to handles, it will be loaded if necessary
(perigrin)
* Moose::Meta::Class
- Method objects returned by get_method (and other methods)
Could end up being returned without an associated_metaclass
attribute. Removing get_method_map, which is provided by
Class::MOP::Class, fixed this. The Moose version did nothing
different from its parent except introduce a bug. (Dave Rolsky)
- added tests for this (jdv79)
* Various
- Added a $VERSION to all .pm files which didn't have one. Fixes
RT #40049, reported by Adam Kennedy. (Dave Rolsky)
* Moose::Cookbook::Basics::Recipe4
* Moose::Cookbook::Basics::Recipe6
- These files had spaces on the first line of the SYNOPSIS, as
opposed to a totally empty line. According to RT #40432, this
confuses POD parsers. (Dave Rolsky)
Changes:
0.60 Fri October 25, 2008
* Moose::Exporter
- Passing "-traits" when loading Moose caused the Moose.pm
exports to be broken. Reported by t0m. (Dave Rolsky)
- Tests for this bug. (t0m)
* Moose::Util
- Change resolve_metaclass alias to use the new
load_first_existing_class function. This makes it a lot
simpler, and also around 5 times faster. (t0m)
- Add caching to resolve_metaclass_alias, which gives an order
of magnitude speedup to things which repeatedly call the
Moose::Meta::Attribute->does method, notably MooseX::Storage
(t0m)
* Moose::Util::TypeConstraint
- Put back the changes for parameterized constraints that
shouldn't have been removed in 0.59. We still cannot parse
them, but MooseX modules can create them in some other
way. See the 0.58 changes for more details. (jnapiorkowski)
- Changed the way subtypes are created so that the job is
delegated to a type constraint parent. This clears up some
hardcoded checking and should allow correct subtypes of
Moose::Meta::Type::Constraint. Don't rely on this new API too
much (create_child_type) because it may go away in the
future. (jnapiorkowski)
* Moose::Meta::TypeConstraint::Union
- Type constraint names are sorted as strings, not numbers.
(jnapiorkowski)
* Moose::Meta::TypeConstraint::Parameterizable
- New parameterize method. This can be used as a factory method
to make a new type constraint with a given parameterized
type. (jnapiorkowski)
- added tests (jnapiorkowski)
Changes:
0.59 Tue October 14, 2008
* Moose
- Add abridged documentation for builder/default/initializer/
predicate, and link to more details sections in
Class::MOP::Attribute. (t0m)
* Moose::Util::TypeConstraints
- removed prototypes from all but the &-based stuff (mst)
* Moose::Util::TypeConstraints
- Creating a anonymous subtype with both a constraint and a
message failed with a very unhelpful error, but should just
work. Reported by t0m. (Dave Rolsky)
* Tests
- Some tests that used Test::Warn if it was available failed
with older versions of Test::Warn. Reported by Fayland. (Dave
Rolsky)
- Test firing behavior of triggers in relation to builder/default/
lazy_build. (t0m)
- Test behavior of equals/is_a_type_of/is_a_subtype_of for all
kinds of supported type. (t0m)
* Moose::Meta::Class
- In create(), do not pass "roles" option to the superclass
- added related test that creates an anon metaclass with
a required attribute
* Moose::Meta::TypeConstraint::Class
* Moose::Meta::TypeConstraint::Role
- Unify behavior of equals/is_a_type_of/is_a_subtype_of with
other types (as per change in 0.55_02). (t0m)
* Moose::Meta::TypeConstraint::Registry
- Fix warning when dealing with unknown type names (t0m)
* Moose::Util::TypeConstraints
- Reverted changes from 0.58 related to handle parameterized
types. This caused random failures on BSD and Win32 systems,
apparently related to the regex engine. This means that Moose
can no longer parse structured type constraints like
ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
supported in a slightly different way via MooseX::Types some
time in the future. (Dave Rolsky)
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
Changes:
0.58
!! This release has an incompatible change regarding !!
!! how roles add methods to a class !!
* Roles and role application
! Roles now add methods by calling add_method, not
alias_method. They make sure to always provide a method
object, which will be cloned internally. This means that it is
now possible to track the source of a method provided by a
role, and even follow its history through intermediate roles.
This means that methods added by a role now show up when
looking at a class's method list/map. (Dave Rolsky)
* Makefile.PL
- From this release on, we'll try to maintain a list of
conflicting modules, and warn you if you have one
installed. For example, this release conflicts with ...
- MooseX::Singleton <= 0.11
- MooseX::Params::Validate <= 0.05
- Fey::ORM <= 0.10
In general, we try to not break backwards compatibility for
most Moose users, but MooseX modules and other code which
extends Moose's metaclasses is often affected by very small
changes in the Moose internals.
* Moose::Meta::Method::Delegation
* Moose::Meta::Attribute
- Delegation methods now have their own method class. (Dave
Rolsky)
* Moose::Meta::TypeConstraint::Parameterizable
- Added a new method 'parameterize' which is basically a factory
for the containing constraint. This makes it easier to create
new types of parameterized constraints. (jnapiorkowski)
* Moose::Meta::TypeConstraint::Union
- Changed the way Union types canonicalize their names to follow
the normalized TC naming rules, which means we strip all
whitespace. (jnapiorkowski)
* Moose::Util::TypeConstraints
- Parameter and Union args are now sorted, this makes Int|Str
the same constraint as Str|Int. (jnapiorkowski)
- Changes to the way Union types are parsed to more correctly
stringify their names. (jnapiorkowski)
- When creating a parameterized type, we now use the new
parameterize method. (jnapiorkowski)
- Incoming type constraint strings are now normalized to remove
all whitespace differences. (jnapiorkowski)
- Changed the way we parse type constraint strings so that we now
match TC[Int,Int,...] and TC[name=>Str] as parameterized type
constraints. This lays the foundation for more flexible type
constraint implementations.
* Tests and docs for all the above. (jnapiorkowski)
* Moose::Exporter
* Moose
- Moose::Exporter will no longer remove a subroutine that the
exporting package re-exports. Moose re-exports the
Carp::confess function, among others. The reasoning is that we
cannot know whether you have also explicitly imported those
functions for your own use, so we err on the safe side and
always keep them. (Dave Rolsky)
- added tests for this (rafl)
* Moose::Meta::Class
- Changes to how we fix metaclass compatibility that are much
too complicated to go into. The summary is that Moose is much
less likely to complain about metaclass incompatibility
now. In particular, if two metaclasses differ because
Moose::Util::MetaRole was used on the two corresponding
classes, then the difference in roles is reconciled for the
subclass's metaclass. (Dave Rolsky)
- Squashed an warning in _process_attribute (thepler)
* Moose::Meta::Role
- throw exceptions (sooner) for invalid attribute names (thepler)
- added tests for this (thepler)
* Moose::Util::MetaRole
- If you explicitly set a constructor or destructor class for a
metaclass object, and then applied roles to the metaclass,
that explicitly set class would be lost and replaced with the
default.
* Moose::Meta::Class
* Moose::Meta::Attribute
* Moose::Meta::Method
* Moose
* Moose::Object
* Moose::Error::Default
* Moose::Error::Croak
* Moose::Error::Confess
- All instances of confess() changed to use overridable
C<throw_error> method. This method ultimately calls a class
constructor, and you can change the class being called. In
addition, errors now pass more information than just a string.
The default C<error_class> behaves like C<Carp::confess>, so
the behavior is not visibly different for end users.
Package changes: add all required Perl modules for test target as
build dependencies
Changes:
0.57 Wed September 3, 2008
* Moose::Intro
- A new bit of doc intended to introduce folks familiar with
"standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
* Moose::Unsweetened
- Shows examples of two classes, each done first with and then
without Moose. This makes a nice parallel to
Moose::Intro. (Dave Rolsky)
* Moose::Util::TypeConstraints
- Fixed a bug in find_or_parse_type_constraint so that it
accepts a Moose::Meta::TypeConstraint object as the parent
type, not just a name (jnapiorkowski)
- added tests (jnapiorkowski)
* Moose::Exporter
- If Sub::Name was not present, unimporting failed to actually
remove some sugar subs, causing test failures (Dave Rolsky)
0.56 Mon September 1, 2008
For those not following the series of dev releases, there are
several major changes in this release of Moose.
! Moose::init_meta should now be called as a method. See the
docs for details.
- Major performance improvements by nothingmuch.
- New modules for extension writers, Moose::Exporter and
Moose::Util::MetaRole by Dave Rolsky.
- Lots of doc improvements and additions, especially in the
cookbook sections.
- Various bug fixes.
* Removed all references to the experimental-but-no-longer-needed
Moose::Meta::Role::Application::ToMetaclassInstance.
* Require Class::MOP 0.65.
0.55_04 Sat August 30, 2008
* Moose::Util::MetaRole
* Moose::Cookbook::Extending::Recipe2
- This simplifies the application of roles to any meta class, as
well as the base object class. Reimplemented metaclass traits
using this module. (Dave Rolsky)
* Moose::Cookbook::Extending::Recipe1
- This a new recipe, an overview of various ways to write Moose
extensions (Dave Rolsky)
* Moose::Cookbook::Extending::Recipe3
* Moose::Cookbook::Extending::Recipe4
- These used to be Extending::Recipe1 and Extending::Recipe2,
respectively.
0.55_03 Fri August 29, 2008
* No changes from 0.55_02 except increasing the Class::MOP
dependency to 0.64_07.
0.55_02 Fri August 29, 2008
* Makefile.PL and Moose.pm
- explicitly require Perl 5.8.0+ (Dave Rolsky)
* Moose::Util::TypeConstraints
- Fix warnings from find_type_constraint if the type is not
found (t0m).
* Moose::Meta::TypeConstraint
- Predicate methods (equals/is_a_type_of/is_subtype_of) now
return false if the type you specify cannot be found in the
type registry, rather than throwing an unhelpful and
coincidental exception. (t0m).
- added docs & test for this (t0m)
* Moose::Meta::TypeConstraint::Registry
- add_type_constraint now throws an exception if a parameter is
not supplied (t0m).
- added docs & test for this (t0m)
* Moose::Cookbook::FAQ
- Added a faq entry on the difference between "role" and "trait"
(t0m)
* Moose::Meta::Role
- Fixed a bug that caused role composition to not see a required
method when that method was provided by another role being
composed at the same time. (Dave Rolsky)
- test and bug finding (tokuhirom)
0.55_01 Wed August 20, 2008
!! Calling Moose::init_meta as a function is now !!
!! deprecated. Please see the Moose.pm docs for details. !!
* Moose::Meta::Method::Constructor
- Fix inlined constructor so that values produced by default
or builder methods are coerced as required. (t0m)
- added test for this (t0m)
* Moose::Meta::Attribute
- A lazy attribute with a default or builder did not attempt to
coerce the default value. The immutable code _did_
coerce. (t0m)
- added test for this (t0m)
* Moose::Exporter
- This is a new helper module for writing "Moose-alike"
modules. This should make the lives of MooseX module authors
much easier. (Dave Rolsky)
* Moose
* Moose::Cookbook::Meta::Recipe5
- Implemented metaclass traits (and wrote a recipe for it):
use Moose -traits => 'Foo'
This should make writing small Moose extensions a little
easier (Dave Rolsky)
* Moose::Cookbook::Basics::Recipe1
- Removed any examples of direct hashref access, and applied an
editorial axe to reduce verbosity. (Dave Rolsky)
* Moose::Cookbook::Basics::Recipe1
- Also applied an editorial axe here. (Dave Rolsky)
* Moose
* Moose::Cookbook::Extending::Recipe1
* Moose::Cookbook::Extending::Recipe2
- Rewrote extending and embedding moose documentation and
recipes to use Moose::Exporter (Dave Rolsky)
* Moose
* Moose::Role
- These two modules now warn when you load them from the main
package "main" package, because we will not export sugar to
main. Previously it just did nothing. (Dave Rolsky)
* Moose::Role
- Now provide an init_meta method just like Moose.pm, and you
can call this to provide an alternate role metaclass. (Dave
Rolsky and nothingmuch)
- get_method_map now respects the package cache flag (nothingmuch)
* Moose::Meta::Role
- Two new methods - add_method and wrap_method_body
(nothingmuch)
* many modules
- Optimizations including allowing constructors to accept hash
refs, making many more classes immutable, and making
constructors immutable. (nothingmuch)
(while here adjust MASTER_SITES).
Changes:
0.55 Sun August 3, 2008
* Moose::Meta::Attribute
- breaking down the way 'handles' methods are
created so that the process can be more easily
overridden by subclasses (stevan)
* Moose::Meta::TypeConstraint
- fixing what is passed into a ->message with
the type constraints (RT #37569)
- added tests for this (Charles Alderman)
* Moose::Util::TypeConstraints
- fix coerce to accept anon types like subtype can (mst)
* Moose::Cookbook
- reorganized the recipes into sections - Basics, Roles, Meta,
Extending - and wrote abstracts for each section (Dave Rolsky)
* Moose::Cookbook::Basics::Recipe10
- A new recipe that demonstrates operator overloading
in combination with Moose. (bluefeet)
* Moose::Cookbook::Meta::Recipe1
- an introduction to what meta is and why you'd want to make
your own metaclass extensions (Dave Rolsky)
* Moose::Cookbook::Meta::Recipe4
- a very simple metaclass example (Dave Rolsky)
* Moose::Cookbook::Extending::Recipe1
- how to write a Moose-alike module to use your own object base
class (Dave Rolsky)
* Moose::Cookbook::Extending::Recipe2
- how to write modules with an API just like C<Moose.pm> (Dave
Rolsky)
* all documentation
- Tons of fixes, both syntactical and grammatical (Dave
Rolsky, Paul Fenwick)
Packages Collection.
Moose is an extension of the Perl 5 object system.
The main goal of Moose is to make Perl 5 Object Oriented programming
easier, more consistent and less tedious. With Moose you can to
think more about what you want to do and less about the mechanics
of OOP.
Additionally, Moose is built on top of Class::MOP, which is a
metaclass system for Perl 5. This means that Moose not only makes
building normal Perl 5 objects better, but it provides the power
of metaclass programming as well.