2.000002 - 2015-07-24
- BUILDARGS will now always be called on object creation, even if no
attributes exist
- fix required attributes with spaces or other odd characters in init_arg
- fix (is => 'lazy', required => 1, init_arg => undef), which previously
didn't think it provided a builder
- under 'no Moo::sification', prevent automatic Moose metaclass inflation
from ->meta calls
- don't load Moo::Role for a ->does check if no roles could exist
- make global destruction test more robust from outside interference
- fix false default values satisfying required attributes
- Fix Moose attribute delegation to a Moo class via a wildcard
- work around case where Sub::Util is loadable but doesn't provide
Sub::Util::set_subname
- skip thread tests on perl 5.8.4 and below where threads are extremely
unreliable
- Allow stub methods (e.g. sub foo;) to be overwritten by accessors or other
generated methods. (RT#103804)
2.000001 - 2015-03-16
- Fix how we pick between Sub::Name and Sub::Util if they are both loaded.
This fixes how we interact with Moose in some cases. (RT#102729) (GH#15)
2.000000 - 2015-03-02
* Incompatible Changes
- Fatal warnings and the other additional checks from the strictures
module will no longer be applied to modules using Moo or Moo::Role. We
now only apply strict and (non-fatal) warnings, matching the behavior of
Moose.
- Classes without attributes used to store everything passed to ->new
in the object. This has been fixed to not store anything in the object,
making it consistent with classes that had attributes.
- Moo will now pass __no_BUILD__ to parent constructors when inheriting
from a Moose or Class::Tiny class, to prevent them from calling BUILD
functions. Moo calls the BUILD functions itself, which previously led
to them being called multiple times.
- Attempting to replace an existing constructor, or modify one that has
been used, will throw an error. This includes adding attributes.
Previously, this would result in some attributes being silently ignored
by the constructor.
- If a class's @ISA is modified without using 'extends' in a way that
affects object construction, Moo will detect this and throw an error.
This can happen in code that uses ->load_components from
Class::C3::Componentised, which is common in DBIx::Class modules.
* Bug Fixes
- Fix calling class methods on Moo::HandleMoose::FakeMetaClass, such as
modules scanning all classes
* Miscellaneous
- use Sub::Util instead of Sub::Name if available
Upstream changes:
1.007000 - 2015-01-21
- fix Moose metaclass inflation of Method::Generate::Constructor (RT#101111)
- clarify behavior of clearers for non-lazy attribute defaults
- add Sub::Defer::undefer_package to undefer all subs from a given package
- existing attributes will no longer be overwritten when composing roles.
Previously, the attribute configuration used by the constructor would be
overridden, but the attribute methods would not be. This caused a mismatch
in attribute behavior.
- link to Type::Tiny in docs rather than MooX::Types::MooseLike
- document exports of Sub::Defer
- fix capture_unroll usage in inlinify example
- fix needless re-assigning of variables in generated Sub::Quote subs
- fix global destruction test to work when perl path has spaces
1.006001 - 2014-10-22
- Name the ->DOES method installed by Role::Tiny
- don't apply threading workarounds on non-threaded perls, even if module for
it is loaded by something
- avoid loading base.pm and just set @ISA manually
- fix some Pod links to Class::Method::Modifiers
- fix applying roles with multiple attributes with defaults to objects
(RT#99217)
- fix Moose inheriting from a Moo class that inherits from a non-M* class
when the Moose class is not made immutable
- fix ->does method on Moose child classes of Moo classes
Upstream changes:
1.006000 - 2014-08-16
- support coerce => 1 in attributes, taking the coercion from the isa option
if it is an object that supports the coerce or coercion method.
- add attribute information to type check errors by trapping with an eval
rather than overriding the global __DIE__ handler
- bump Module::Runtime prerequisite to fix error messages when there is a
missing module used by a role loaded using 'with' or similar (rt#97669)
Upstream changes:
1.005000 - 2014-06-10
- add qsub to Sub::Quote as a prototyped alternative to quote_sub, accepting
only the sub body
- avoid testing UTF-8 on perl 5.6
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
Upstream changes:
1.004006 - 2014-05-27
- fix quotify for characters in the \x80-\xFF range when used under the utf8
pragma. Also fixes some cases of constructor generation with the pragma.
1.004005 - 2014-05-23
- releasing 1.004_004 as stable
1.004_004 - 2014-05-12
- stop internally depending on Moo::Object::new including all inputs in
constructed object
- be more careful when munging code for inlining
- fix maintaining source of quoted sub for lifetime of sub
- redo foreign C3 compatibility, fixing constructors without changing behavior
for Moo constructors
- don't build Moose metaclass when checking Moo classes with ->is_role
- include Sub::Name in recommendations metadata
1.004_003 - 2014-04-13
- always maintain source of quoted subs for the lifetime of the sub
- fix Sub::Quote and Sub::Defer leaking memory
- Class::XSAccessor is now listed as a recommended prerequisite
- fix generating a subclass with roles when using a non-standard accessor
- use alternate quoting routine, which is faster and saves memory by not
loading B.pm
- fix default of undef
- fix inheriting from a class with a prototype on new
- use ->is_role internally to check if a package is a role
- minimise Role::Tiny coupling outside Moo::Role
- fix calling parent constructor when C3 multiple inheritance is in use
(such as when combining with DBIx::Class)
- return true from Moo::Role->is_role for all loaded Moose roles
- improved test coverage
- fix strictures author test when PERL_STRICTURES_EXTRA is set
- remove Dist::CheckConflicts prerequisite and replace with a test to report
known broken downstream modules
- fix x_breaks metadata
Update DEPENDS
Upstream changes:
1.004002 - 2013-12-31
- fix type inflation in threads when types are inserted by manually
stringifying the type first (like Type::Tiny)
- add undefer_all to Sub::Defer
1.004001 - 2013-12-27
- fix repository links in pod
- add missing changelog entry regarding strictures to 1.004000 release
1.004000 - 2013-12-26
- strictures will now be applied to modules using Moo just as if they
included "use strictures" directly. This means that strictures extra
checks will now apply to code in checkouts.
- fix handling of type inflation when used with threads
- don't include meta method when consuming Mouse roles
- inhale Moose roles for has attr => ( handles => "RoleName" )
- provide useful error if attribute defined as required but with
init_arg => undef
- document that BUILDARGS isn't called when there are no attributes
- omit sub imported before use Moo from Moose method inflation
- check for FOREIGNBUILDARGS only once per class instead of on each
instantiation
- take advantage of XS predicates from newer versions of Class::XSAccessor
- always try to load superclasses and roles, and only fall back on the
heuristic of checking for subs if the file doesn't exist
- fix handling of attributes with names that aren't valid identifiers
- Quoted subs now preserve the package and pragmas from their calling code
- the official Moo git repository has moved to the Moose organization on
GitHub: https://github.com/moose/Moo
Update DEPENDS
Upstream changes:
1.003001 - 2013-09-10
- abbreviate class names from created by create_class_with_roles if they are
too long for perl to handle (RT#83248)
- prevent destructors from failing in global destruction for certain
combinations of Moo and Moose classes subclassing each other (RT#87810)
- clarify in docs that Sub::Quote's captured variables are copies, not aliases
- fix infinite recursion if an isa check fails due to another isa check
(RT#87575)
- fix Sub::Quote and Sub::Defer under threads (RT#87043)
- better diagnostics when bad parameters given to has
Update DEPENDS
Upstream changes:
1.003000 - 2013-07-15
- fix composing roles that require methods provided by the other (RT#82711)
- document optional use of Class::XSAccessor with caveats
- fix constructor generated when creating a class with
create_class_with_roles when the superclass constructor hasn't been
generated yet
- fix extending the constructor generator using Moo classes/roles
- non-lazy attribute defaults are used when applying a role to an object
- updated META files to list prerequisites in proper phases
- $Method::Generate::Accessor::CurrentAttribute hashref contains
information about attribute currently being processed (available
to exception objects thrown by "isa" and "coerce")
- properly die when composing a module that isn't a Role
- fix passing attribute parameters for traits when inflating to Moose
- fix inflating method modifiers applied to multiple methods
- fix documentation for Sub::Quote::capture_unroll
- add documentation noting Sub::Quote's use of strictures
- fix FOREIGNBUILDARGS not being called if no attributes created
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
Upstream changes:
1.002000 - 2013-05-04
- add 'moosify' attribute key to provide code for inflating to Moose
- fix warnings about unknown attribute parameters on metaclass inflation
- don't pass 'handles' down when doing 'has +' to avoid unDWIMmy explosions
- throw a useful exception when typemap doesn't return a value
- avoid localising @_ when not required for Sub::Quote
- successfully inflate a metaclass for attributeless classes (RT#86415)
- fix false default values used with non-lazy accessors
- stop built values that fail isa checks still getting stored in the object
- stop lazy+weak_ref accessors re-building their value on every call
- make lazy+weak_ref accessors return undef if built value isn't already
stored elsewhere (Moose compatibility)
- stop isa checks being called on every access for lazy attributes
- bump Devel::GlobalDestruction dependency to fix warning on cleanup
when run under -c (RT#78617)
- document Moose type constraint creation for roles and classes
(actually fixed in 1.001000)
Update DEPENDS
Upstream changes:
1.001000 - 2013-03-16
- has will refuse to overwrite locally defined subs with generated
accessors.
- added more meta resources and added more support relevant links into
the POD documentation
- clarify in docs that default and built values won't call triggers
(RT#82310)
- expand is => 'lazy' doc to make it clear that you can make rw lazy
attributes if you really want to
- handles => "RoleName" tries to load the module
- fix delegation to false/undef attributes (RT#83361)
1.000008 - 2013-02-06
- Re-export on 'use Moo' after 'no Moo'
- Export meta() into roles (but mark as non-method to avoid composing it)
- Don't generate an accessor for rw attributes if reader+writer both set
- Support builder => sub {} ala MooseX::AttributeShortcuts
- Fix 'no Moo;' to preserve non-sub package variables
- Switch to testing for Mouse::Util->can('find_meta') to avoid
exploding on ancient Mouse installs
- Fix loading order bug that results in _install_coderef being treated
as indirect object notation
ChangeLog:
1.000007 - 2012-12-15
- Correctly handle methods dragged along by role composition
- Die if Moo and Moo::Role are imported into the same package
Update DEPENDS
Upstream changes:
1.000006 - 2012-11-16
- Don't use $_ as loop variable when calling arbitrary code (RT#81072)
- Bump Role::Tiny prereq to fix method modifier breakage on 5.10.0
1.000005 - 2012-10-23
- fix POD typo (RT#80060)
- include init_arg name in constructor errors (RT#79596)
- bump Class::Method::Modifiers dependency to avoid warnings on 5.8
Upstream changes:
1.000002 - 2012-08-04
- remove Devel::GlobalDestruction fallback inlining because we can now
depend on 0.08 which uses Sub::Exporter::Progressive
- honour BUILDARGS when calling $meta->new_object on behalf of Moose
- throw an error on invalid builder (RT#78479)
- fix stupid typo in new Sub::Quote section
1.000001 - 2012-07-21
- documentation tweaks and cleanup
- ignore required when default or builder is present
- document Moo versus Any::Moose in brief with article link
- remove quote_sub from SYNOPSIS and has docs, expand Sub::Quote section
- localize @_ when inlining quote_sub'ed isa checks (fixes lazy+isa+default)
- ensure constructor gets regenerated if forced early by metaclass inflation
1.000000 - 2012-07-18
- clean up doc language and expand on Moo and Moose
- error prefixes for isa and coerce exceptions
- unmark Moo and Moose as experimental since it's relatively solid now
- convert isa and coerce info from external role attributes
- clear method cache after metaclass generation to fix autoclean bug
0.091014.
pkgsrc changes:
- add newly introduced dependencies
upstream changes:
0.091014 - 2012-07-16
- load overload.pm explicitly for overload::StrVal
0.091013 - 2012-07-15
- useful and detailed errors for coerce in attrib generation
0.091012 - 2012-07-15
- useful and detailed errors for default checker in attrib generation
- throw an error when trying to extend a role
0.091011 - 2012-06-27
- re-add #web-simple as development IRC
- don't assume Scalar::Util is imported into the current package
0.091010 - 2012-06-26
- isa checks on builders
- additional quote_sub docs
- remove multi-populate code to fix exists/defined new() bug
- document move to #moose and include repository metadata
- no Moo and no Moo::Role
- squelch used only once warnings for $Moo::HandleMoose::MOUSE
- MooClass->meta
- subconstructor handling for Moose classes
0.091009 - 2012-06-20
- squelch redefine warnings in the coderef installation code
0.091008 - 2012-06-19
- bump Role::Tiny dependency to get working modifiers under composition
- handle "has '+foo'" for attrs from superclass or consumed role
- document override -> around translation
- use D::GD if installed rather than re-adding it as a requirement
0.091007 - 2012-05-17
- remove stray reference to Devel::GlobalDestruction
0.091006 - 2012-05-16
- drop a couple of dependencies by minor releases we don't strictly need
0.091005 - 2012-05-14
- temporary switch to an inlined in_global_destruction to avoid needing
to fatpack Sub::Exporter for features we don't use
- re-order is documentation to give readonly styles more prominence
- a weakened value should still be returned on set (fixes lazy + weak_ref)
- add an explicit return to all exported subs so people don't accidentally
rely on the return value
0.091004 - 2012-05-07
- also inhale from Mouse
- clarify how isa and coerce interact
- support isa and coerce together for Moose
- guard _accessor_maker_for calls in Moo::Role in case Moo isn't loaded
- reset handlemoose state on mutation in case somebody reified the
metaclass too early
0.091003 - 2012-05-06
- improve attribute option documentation
- update the incompatibilities section since we're less incompatible now
- fix coderef naming to avoid confusing autoclean
0.091002 - 2012-05-05
- exclude union roles and same-role-as-self from metaclass inflation
- inhale Moose roles before checking for composition conflicts
- enable Moo::sification if only Moo::Role is loaded and not Moo
- preserve attribute ordering
- factor out accessor generation code a bit more to enable extension
0.091001 - 2012-05-02
- bump Role::Tiny dependency to require de-strictures-ed version
- fix test failure where Class::XSAccessor is not available
0.091000 - 2012-04-27
- document MX::AttributeShortcuts 009+ support
- documentation for the metaclass inflation code
- better error message for broken BUILDARGS
- provide 'no Moo::sification' to forcibly disable metaclass inflation
- switch to Devel::GlobalDestruction to correctly disarm the
Moo::sification trigger under threads
- make extends after has work
- name subs if Sub::Name is available for better stracktraces
- undefer all subs before creating a concrete Moose metaclass
- fix bug in _load_module where global vars could cause mis-detection
of the module already being loaded
0.009_017 - 2012-04-16
- mangle constructor meta-method on inflation so make_immutable works
- fix possible infinite loop caused by subconstructor code
0.009_016 - 2012-04-12
- don't accidentally load Moo::HandleMoose during global destruction
- better docs for trigger (and initializer's absence)
0.009_015 - 2012-04-11
- Complete support for MooseX::AttributeShortcuts 0.009
- Allow Moo classes to compose Moose roles
- Introduce Moo::HandleMoose, which should allow Moo classes and roles
to be treated as Moose classes/roles. Supported so far:
- Some level of attributes and methods for both classes and roles
- Required methods in roles
- Method modifiers in roles (they're already applied in classes)
- Type constraints
databases/p5-SQL-Translator.
This module is an extremely light-weight, high-performance Moose
replacement. It also avoids depending on any XS modules to allow
simple deployments. The name "Moo" is based on the idea that it
provides almost -but not quite- two thirds of Moose.